/// <summary> /// Binds a binary operator token. /// </summary> /// <param name="binaryOperatorToken">The binary operator token to bind.</param> /// <returns>The bound binary operator token.</returns> internal QueryNode BindBinaryOperator(BinaryOperatorToken binaryOperatorToken) { DebugUtils.CheckNoExternalCallers(); ExceptionUtils.CheckArgumentNotNull(binaryOperatorToken, "binaryOperatorToken"); SingleValueNode left = this.GetOperandFromToken(binaryOperatorToken.OperatorKind, binaryOperatorToken.Left); SingleValueNode right = this.GetOperandFromToken(binaryOperatorToken.OperatorKind, binaryOperatorToken.Right); BinaryOperatorBinder.PromoteOperandTypes(binaryOperatorToken.OperatorKind, ref left, ref right); return(new BinaryOperatorNode(binaryOperatorToken.OperatorKind, left, right)); }
/// <summary> /// Binds a binary operator token. /// </summary> /// <param name="binaryOperatorToken">The binary operator token to bind.</param> /// <returns>The bound binary operator token.</returns> protected virtual QueryNode BindBinaryOperator(BinaryOperatorToken binaryOperatorToken) { BinaryOperatorBinder binaryOperatorBinder = new BinaryOperatorBinder(this.Bind); return(binaryOperatorBinder.BindBinaryOperator(binaryOperatorToken)); }