Пример #1
0
 public AbsynStatement VisitWhile(AbsynWhile loop)
 {
     for (int i = 0; i < loop.Body.Count; ++i)
     {
         loop.Body[i] = loop.Body[i].Accept(this);
     }
     return(loop);
 }
Пример #2
0
        public void VisitWhile(AbsynWhile loop)
        {
            writer.Indent();
            writer.WriteKeyword("while");
            writer.Write(" (");
            WriteExpression(loop.Condition);
            writer.Terminate(")");

            WriteIndentedStatements(loop.Body, false);
        }
Пример #3
0
        private AbsynFor TryRewriteWhileLoop(AbsynWhile whi, List <AbsynStatement> stmts, int i)
        {
            RewriteForLoops(whi.Body);
            var candidate = TryMakeLoopCandidate(whi.Condition, whi.Body, stmts, i);

            if (candidate != null)
            {
                return(MakeForLoop(candidate, stmts));
            }
            else
            {
                return(null);
            }
        }
Пример #4
0
 public void VisitWhile(AbsynWhile loop)
 {
     stms.Add(loop);
 }
Пример #5
0
 public bool VisitWhile(AbsynWhile loop)
 {
     return(false);
 }
Пример #6
0
        public void EmitForever(StructureNode node, List <AbsynStatement> body)
        {
            AbsynWhile whileStm = new AbsynWhile(Constant.True(), body);

            stms.Add(whileStm);
        }