Esempio n. 1
0
        public ISqlNode ParseExecute(ITokenizer t)
        {
            // ("EXEC"|"EXECUTE") ( <stringExpression> | <objectIdentifier> <ListOfArgument> )
            // TODO: @return_status = ...
            // TODO: WITH <execute_option>
            var execToken = t.Expect(SqlTokenType.Keyword, "EXEC", "EXECUTE");
            var execNode  = new SqlExecuteNode()
            {
                Location = execToken.Location,
            };

            if (t.Peek().IsType(SqlTokenType.Identifier))
            {
                execNode.Name      = ParseObjectIdentifier(t);
                execNode.Arguments = ParseList(t, ParseExecArgument);
                return(execNode);
            }

            bool isParenthesis    = t.Peek().IsSymbol("(");
            var  stringExpression = ParseScalarTerm(t);

            if (isParenthesis)
            {
                stringExpression = new SqlParenthesisNode <ISqlNode>(stringExpression);
            }
            execNode.Name = stringExpression;
            return(execNode);
        }
Esempio n. 2
0
        public virtual ISqlNode VisitParenthesis <TNode>(SqlParenthesisNode <TNode> n)
            where TNode : class, ISqlNode
        {
            var expr = Visit(n.Expression) as TNode;

            return(n.Update(expr));
        }
Esempio n. 3
0
 public ISqlNode VisitParenthesis <TNode>(SqlParenthesisNode <TNode> n)
     where TNode : class, ISqlNode
 {
     AppendLine("(");
     IncreaseIndent();
     WriteIndent();
     if (n.Expression != null)
     {
         Visit(n.Expression);
     }
     DecreaseIndent();
     AppendLineAndIndent();
     Append(")");
     return(n);
 }
 public override ISqlNode VisitParenthesis <TNode>(SqlParenthesisNode <TNode> n)
 {
     _result.AssertNotNull(n, nameof(n.Expression), n.Expression);
     return(base.VisitParenthesis(n));
 }