예제 #1
0
        private OperatorExpressionNode RelationalOperation(string expression)
        {
            OperatorExpressionNode node = null;

            if (Same(expression, Token.TokenType.LessThan))
            {
                node = new LessThanExpressionNode();
            }
            else if (Same(expression, Token.TokenType.GreaterThan))
            {
                node = new GreaterThanExpressionNode();
            }
            else if (Same(expression, Token.TokenType.LessThanOrEqualTo))
            {
                node = new LessThanOrEqualExpressionNode();
            }
            else if (Same(expression, Token.TokenType.GreaterThanOrEqualTo))
            {
                node = new GreaterThanOrEqualExpressionNode();
            }
            else if (Same(expression, Token.TokenType.EqualTo))
            {
                node = new EqualExpressionNode();
            }
            else if (Same(expression, Token.TokenType.NotEqualTo))
            {
                node = new NotEqualExpressionNode();
            }
            return(node);
        }
예제 #2
0
        private GenericExpressionNode RelationalExpr(string expression)
        {
            {
                GenericExpressionNode lhs = Factor(expression);
                if (null == lhs)
                {
                    this.errorPosition = this._lexer.GetErrorPosition();
                }

                OperatorExpressionNode node = RelationalOperation(expression);
                if (node == null)
                {
                    return(lhs);
                }
                GenericExpressionNode rhs = Factor(expression);
                node.LeftChild  = lhs;
                node.RightChild = rhs;
                return(node);
            }
        }