Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 /// <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));
 }