Exemple #1
0
        /// <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));
        }
Exemple #2
0
        /// <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));
        }