public override ImperativeNode VisitElseIfNode(ElseIfBlock node) { var newExpr = node.Expr.Accept(this); if (node.Expr != newExpr) { node.Expr = newExpr; } node.Body = VisitNodeList(node.Body); return(node); }
void ifstmt(out Node node) { IfStmtNode ifStmtNode = new IfStmtNode(); NodeList body = null; Expect(19); Expect(8); expr(out node); ifStmtNode.IfExprNode = node; Expect(9); if (StartOf(2)) { Node singleStmt; stmt(out singleStmt); ifStmtNode.IfBody.Add(singleStmt); } else if (la.kind == 32) { Get(); stmtlist(out body); ifStmtNode.IfBody = body; Expect(33); } else { SynErr(54); } while (la.kind == 20) { ElseIfBlock elseifBlock = new ElseIfBlock(); Get(); Expect(8); expr(out node); elseifBlock.Expr = node; Expect(9); if (StartOf(2)) { Node singleStmt = null; stmt(out singleStmt); elseifBlock.Body.Add(singleStmt); } else if (la.kind == 32) { Get(); stmtlist(out body); elseifBlock.Body = body; Expect(33); } else { SynErr(55); } ifStmtNode.ElseIfList.Add(elseifBlock); } if (la.kind == 21) { Get(); if (StartOf(2)) { Node singleStmt = null; stmt(out singleStmt); ifStmtNode.ElseBody.Add(singleStmt); } else if (la.kind == 32) { Get(); stmtlist(out body); ifStmtNode.ElseBody = body; Expect(33); } else { SynErr(56); } } node = ifStmtNode; }
public virtual void VisitElseIfNode(ElseIfBlock node) { DefaultVisit(node); }
public virtual bool VisitElseIfNode(ElseIfBlock node) { return(DefaultVisit(node)); }