public override ImperativeNode VisitWhileStatementNode(WhileStmtNode node) { var newExpr = node.Expr.Accept(this); if (node.Expr != newExpr) { node.Expr = newExpr; } node.Body = VisitNodeList(node.Body); return(node); }
void whilestmt(out Node node) { WhileStmtNode whileStmtNode = new WhileStmtNode(); NodeList body = null; Expect(22); Expect(8); expr(out node); whileStmtNode.Expr = node; Expect(9); Expect(32); stmtlist(out body); whileStmtNode.Body = body; Expect(33); node = whileStmtNode; }
private void WhileStmt(WhileStmtNode node) { ScopeManager.ScopeEnter(); node.body = new StmtNode(); Move(); RequiredToken(Tag.DL_LPAR); node.condition = new ExprNode(); Expr(node.condition); if (node.condition.Type() != VarType.TYPE_BOOL) { new TypeMismatchError(VarType.TYPE_BOOL, node.condition.Type()).PrintErrMsg(); } RequiredToken(Tag.DL_RPAR); Stmt(node.body); ScopeManager.ScopeLeave(); }
public virtual void VisitWhileStatementNode(WhileStmtNode node) { DefaultVisit(node); }
public virtual bool VisitWhileStatementNode(WhileStmtNode node) { return(DefaultVisit(node)); }