예제 #1
0
        public override AbstractNode VisitWhileLoop([NotNull] GiraphParser.WhileLoopContext context)
        {
            WhileLoopNode WhileNode = new WhileLoopNode(context.Start.Line, context.Start.Column);

            // Read the boolComparison for the while loop.
            WhileNode.BoolCompare = Visit(context.GetChild(1));
            // Read the codeblock in the whileLoop
            foreach (var Child in context.codeBlock().codeBlockContent())
            {
                WhileNode.AdoptChildren(Visit(Child.GetChild(0)));
            }

            return(WhileNode);
        }
 public override void Visit(WhileLoopNode node)
 {
     ProgramCode.Append("WHILE ");
     node.BoolCompare.Accept(this);
     VisitChildren(node);
 }
예제 #3
0
 public override void Visit(WhileLoopNode node)
 {
     _symbolTable.SetCurrentNode(node);
     node.BoolCompare.Accept(this);
     VisitChildrenNewScope(node, BlockType.WhileLoop);
 }
예제 #4
0
 public abstract void Visit(WhileLoopNode node);