Exemplo n.º 1
0
        private void VisitRepeat(repeat_node stmt)
        {
            RetVal rv = GetConstantValue(stmt.condition);

            VisitStatement(stmt.body);
            VisitExpression(stmt.condition);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
 public override void visit(repeat_node _repeat_node)
 {
 }
Exemplo n.º 4
0
 public virtual void visit(repeat_node _repeat_node)
 {
     DefaultVisit(_repeat_node);
 }
Exemplo n.º 5
0
		public virtual void post_do_visit(repeat_node _repeat_node)
		{
		}
Exemplo n.º 6
0
		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);
		}
Exemplo n.º 7
0
 public virtual void visit(repeat_node _repeat_node)
 {
 }
Exemplo n.º 8
0
 public override void visit(repeat_node _repeat_node)
 {
     AddPossibleComments(_repeat_node, true, false);
     _repeat_node.statements.visit(this);
     _repeat_node.expr.visit(this);
 }
Exemplo n.º 9
0
		public virtual void visit(repeat_node _repeat_node)
		{
		}
		public virtual void visit(repeat_node _repeat_node)
		{
			DefaultVisit(_repeat_node);
		}
Exemplo n.º 11
0
 public override void visit(repeat_node _repeat_node)
 {
     prepare_node(_repeat_node.statements, "body");
     prepare_node(_repeat_node.expr, "condition");
 }
Exemplo n.º 12
0
		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);
		}