private void VisitRepeat(repeat_node stmt) { RetVal rv = GetConstantValue(stmt.condition); VisitStatement(stmt.body); VisitExpression(stmt.condition); }
public override void visit(repeat_node rn) { var b = HasStatementVisitor <yield_node> .Has(rn); if (!b) { return; } var gotoContinue = goto_statement.New; var gotoBreak = goto_statement.New; ReplaceBreakContinueWithGotoLabelVisitor replaceBreakContinueVis = new ReplaceBreakContinueWithGotoLabelVisitor(gotoContinue, gotoBreak); rn.statements.visit(replaceBreakContinueVis); ProcessNode(rn.statements); var gotoContinueIfNotCondition = new if_node(un_expr.Not(rn.expr), gotoContinue); var continueLabeledStatement = new labeled_statement(gotoContinue.label, new statement_list(rn.statements, gotoContinueIfNotCondition)); var breakLabeledStatement = new labeled_statement(gotoBreak.label); ReplaceStatement(rn, SeqStatements(gotoContinue, continueLabeledStatement, breakLabeledStatement)); // в declarations ближайшего блока добавить описание labels block bl = listNodes.FindLast(x => x is block) as block; bl.defs.Add(new label_definitions(gotoContinue.label, gotoBreak.label)); }
public override void visit(repeat_node _repeat_node) { }
public virtual void visit(repeat_node _repeat_node) { DefaultVisit(_repeat_node); }
public virtual void post_do_visit(repeat_node _repeat_node) { }
public override void visit(repeat_node _repeat_node) { DefaultVisit(_repeat_node); pre_do_visit(_repeat_node); visit(repeat_node.statements); visit(repeat_node.expr); post_do_visit(_repeat_node); }
public virtual void visit(repeat_node _repeat_node) { }
public override void visit(repeat_node _repeat_node) { AddPossibleComments(_repeat_node, true, false); _repeat_node.statements.visit(this); _repeat_node.expr.visit(this); }
public override void visit(repeat_node _repeat_node) { prepare_node(_repeat_node.statements, "body"); prepare_node(_repeat_node.expr, "condition"); }
public override void visit(repeat_node _repeat_node) { executer.visit(_repeat_node); if (_repeat_node.statements != null) this.visit((dynamic)_repeat_node.statements); if (_repeat_node.expr != null) this.visit((dynamic)_repeat_node.expr); if (_repeat_node.attributes != null) this.visit((dynamic)_repeat_node.attributes); }