Exemplo n.º 1
0
 public void Visit(ExprRelNode node)
 {
     foreach (var subnode in node)
     {
         Visit((dynamic)subnode);
     }
 }
Exemplo n.º 2
0
        public Node ExprRel()
        {
            var node1 = ExprAdd();

            while (firstOfExprRel.Contains(CurrentToken))
            {
                var node2 = new ExprRelNode();
                switch (CurrentToken)
                {
                case TokenCategory.LESS:
                    node2.AnchorToken = Expect(TokenCategory.LESS);
                    break;

                case TokenCategory.LESS_EQUAL:
                    node2.AnchorToken = Expect(TokenCategory.LESS_EQUAL);
                    break;

                case TokenCategory.GREATER:
                    node2.AnchorToken = Expect(TokenCategory.GREATER);
                    break;

                case TokenCategory.GREATER_EQUAL:
                    node2.AnchorToken = Expect(TokenCategory.GREATER_EQUAL);
                    break;

                default:
                    throw new SyntaxError(firstOfExprRel, tokenStream.Current);
                }
                node2.Add(node1);
                node2.Add(ExprAdd());
                node1 = node2;
            }
            return(node1);
        }