public void Visit(IterationStatementNode node)
        {
            ComparisonExpressionAstEvaluator compEvaluator = new ComparisonExpressionAstEvaluator();

            try
            {
                while (compEvaluator.Visit(node.Conditioner))
                {
                    Visit(node.Statement);
                }
            }
            catch (TheLanguageErrorException e) { throw new TheLanguageErrorException("Iteration statement", e); }
        }
예제 #2
0
        public override StatementNode VisitIterationStatement([NotNull] CoronaParser.IterationStatementContext context)
        {
            BuildExpressionAst     exprVisitor = new BuildExpressionAst();
            IterationStatementNode node        = new IterationStatementNode();

            try
            {
                // Visit expressions
                node.Conditioner = exprVisitor.Visit(context.conditioner);

                // Visit statement
                node.Statement = Visit(context.statement());
            }
            catch (TheLanguageErrorException e) { throw new TheLanguageErrorException("Iteration statement", e); }

            return(node);
        }