public override object VisitSql_stmt([NotNull] SqlParser.Sql_stmtContext context) { if (context.exception != null) { throw new SQLParseException($"Incorrect syntax in the sql statement."); } ISQLStatement statement; queryTableStack.Push(new Dictionary <string, string>()); queryColumnStack.Push(new Dictionary <string, ColumnExpression>()); if (context.factored_select_stmt() != null) { statement = (SelectStatement)VisitFactored_select_stmt(context.factored_select_stmt()); } else if (context.update_stmt() != null) { statement = (UpdateStatement)VisitUpdate_stmt(context.update_stmt()); } else if (context.insert_stmt() != null) { statement = (InsertStatement)VisitInsert_stmt(context.insert_stmt()); } else if (context.delete_stmt() != null) { statement = (DeleteStatement)VisitDelete_stmt(context.delete_stmt()); } else { statement = (ISQLStatement)VisitChildren(context); } queryTableStack.Pop(); queryColumnStack.Pop(); return(statement); }
/// <summary> /// Visit a parse tree produced by <see cref="SqlParser.sql_stmt"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitSql_stmt([NotNull] SqlParser.Sql_stmtContext context) { return(VisitChildren(context)); }