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 VisitParenthesis <TNode>(SqlParenthesisNode <TNode> n) where TNode : class, ISqlNode { var expr = Visit(n.Expression) as TNode; return(n.Update(expr)); }
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)); }