Esempio n. 1
0
        private ISqlNode ParseBooleanExpression5(ITokenizer t)
        {
            // <BooleanExpression3> ("AND" | "OR") <BooleanExpression3>
            var left = ParseBooleanExpression4(t);

            while (t.Peek().IsKeyword("AND", "OR"))
            {
                var op    = new SqlOperatorNode(t.GetNext());
                var right = ParseBooleanExpression4(t);
                left = new SqlInfixOperationNode
                {
                    Location = op.Location,
                    Left     = left,
                    Operator = op,
                    Right    = right
                };
            }

            return(left);
        }
        private ISqlNode ParseScalarExpression3(ITokenizer t)
        {
            // Operators with + - precidence
            // <Expression2> (<op> <Expression2>)+
            var left = ParseScalarExpression2(t);

            while (t.Peek().IsSymbol("+", "-", "&", "^", "|"))
            {
                var op    = new SqlOperatorNode(t.GetNext());
                var right = ParseScalarExpression2(t);
                left = new SqlInfixOperationNode
                {
                    Location = op.Location,
                    Left     = left,
                    Operator = op,
                    Right    = right
                };
            }

            return(left);
        }
Esempio n. 3
0
 public ISqlNode VisitOperator(SqlOperatorNode n)
 {
     Append(n.Operator);
     return(n);
 }
Esempio n. 4
0
 public virtual ISqlNode VisitOperator(SqlOperatorNode n) => n;
 public override ISqlNode VisitOperator(SqlOperatorNode n)
 {
     _result.AssertIsNotNullOrEmpty(n, nameof(n.Operator), n.Operator);
     return(base.VisitOperator(n));
 }