コード例 #1
0
ファイル: DeltaVisitor.cs プロジェクト: migueladanrm/Volta
        public object VisitWhileStatementAST([NotNull] WhileStatementASTContext context)
        {
            if (context.condition() != null && context.statement() != null)
            {
                Visit(context.condition());

                int jumpIfFalse = LineCount;
                AddLine("JUMP_IF_FALSE");

                int jumpIfNext = LineCount;
                Visit(context.statement());
                Visit(context.condition());
                AddLine($"JUMP_IF_TRUE {jumpIfNext}");

                SetLineOnRealIndexOf(jumpIfFalse, $"JUMP_IF_FALSE {LineCount}");
            }
            return(null);
        }
コード例 #2
0
 public object VisitWhileStatementAST([NotNull] WhileStatementASTContext context)
 {
     Visit(context.condition());
     return(Visit(context.statement()));
 }