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); }
public ISqlNode VisitOperator(SqlOperatorNode n) { Append(n.Operator); return(n); }
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)); }