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); }
public virtual ISqlNode VisitExecute(SqlExecuteNode n) { var name = Visit(n.Name); var args = Visit(n.Arguments) as SqlListNode <SqlExecuteArgumentNode>; return(n.Update(name, args)); }
public ISqlNode VisitExecute(SqlExecuteNode n) { Append("EXECUTE ", n.Name, " ", n.Arguments); return(n); }