in src/resolver/client.js [1020:1066]
visitIfElse(stmt, type = 'if') {
let node = new GrammerCondition(type);
if (stmt.condition) {
node.addCondition(this.visitIfConfition(stmt.condition));
}
if (stmt.stmts) {
if (stmt.stmts.type && stmt.stmts.type === 'stmts') {
if (stmt.stmts.stmts.length > 0) {
stmt.stmts.stmts.forEach(item => {
this.visitStmt(node, item, node.index);
});
} else {
this.findComments(node, stmt.stmts, 'between');
}
} else if (stmt.type && stmt.type === 'stmts') {
if (stmt.stmts.length > 0) {
stmt.stmts.forEach(item => {
this.visitStmt(node, item, node.index);
});
} else {
this.findComments(node, stmt, 'between');
}
} else {
debug.stack(stmt);
}
} else {
debug.stack(stmt);
}
if (stmt.elseIfs) {
stmt.elseIfs.forEach(elseIf => {
node.addElse(this.visitIfElse(elseIf, 'elseif'));
});
}
if (stmt.elseStmts) {
node.addElse(this.visitIfElse(stmt.elseStmts, 'else'));
}
if (stmt.elseAssigns) {
stmt.elseAssigns.forEach(elseAssign => {
node.elseItem.push(this.visitIfElse(elseAssign, 'else'));
});
}
return node;
}