예제 #1
0
        public override void ExitBodyStatement([NotNull] CmanParser.BodyStatementContext context)
        {
            //TODO: пересмотреть
            var statements = new List <IASTStatementNode>();

            while (_nodes.Peek() is IASTStatementNode && !(_nodes.Peek() is ASTBodyStatementNode))
            {
                statements.Add((IASTStatementNode)_nodes.Pop());
            }

            var bodyNode = (ASTBodyStatementNode)_nodes.Peek();

            foreach (var s in statements)
            {
                bodyNode.AddStatement(s);
            }
        }
예제 #2
0
 public override void EnterBodyStatement([NotNull] CmanParser.BodyStatementContext context)
 {
     _nodes.Push(new ASTBodyStatementNode(context, _nodes.Peek()));
 }