All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.delta.sql.parser.DeltaSqlBaseParser Maven / Gradle / Ivy

The newest version!
// Generated from /home/andr3a/workspace/delta/src/main/antlr4/io/delta/sql/parser/DeltaSqlBase.g4 by ANTLR 4.7
package io.delta.sql.parser;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class DeltaSqlBaseParser extends Parser {
	static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); }

	protected static final DFA[] _decisionToDFA;
	protected static final PredictionContextCache _sharedContextCache =
		new PredictionContextCache();
	public static final int
		T__0=1, T__1=2, T__2=3, T__3=4, BY=5, COMMENT=6, CONVERT=7, DELTA=8, DESC=9, 
		DESCRIBE=10, DETAIL=11, GENERATE=12, DRY=13, HISTORY=14, HOURS=15, LIMIT=16, 
		MINUS=17, NOT=18, NULL=19, FOR=20, TABLE=21, PARTITIONED=22, RETAIN=23, 
		RUN=24, TO=25, VACUUM=26, STRING=27, BIGINT_LITERAL=28, SMALLINT_LITERAL=29, 
		TINYINT_LITERAL=30, INTEGER_VALUE=31, DECIMAL_VALUE=32, DOUBLE_LITERAL=33, 
		BIGDECIMAL_LITERAL=34, IDENTIFIER=35, BACKQUOTED_IDENTIFIER=36, SIMPLE_COMMENT=37, 
		BRACKETED_COMMENT=38, WS=39, UNRECOGNIZED=40, DELIMITER=41;
	public static final int
		RULE_singleStatement = 0, RULE_statement = 1, RULE_qualifiedName = 2, 
		RULE_identifier = 3, RULE_quotedIdentifier = 4, RULE_colTypeList = 5, 
		RULE_colType = 6, RULE_dataType = 7, RULE_number = 8, RULE_nonReserved = 9;
	public static final String[] ruleNames = {
		"singleStatement", "statement", "qualifiedName", "identifier", "quotedIdentifier", 
		"colTypeList", "colType", "dataType", "number", "nonReserved"
	};

	private static final String[] _LITERAL_NAMES = {
		null, "'('", "')'", "'.'", "','", "'BY'", "'COMMENT'", "'CONVERT'", "'DELTA'", 
		"'DESC'", "'DESCRIBE'", "'DETAIL'", "'GENERATE'", "'DRY'", "'HISTORY'", 
		"'HOURS'", "'LIMIT'", "'-'", null, "'NULL'", "'FOR'", "'TABLE'", "'PARTITIONED'", 
		"'RETAIN'", "'RUN'", "'TO'", "'VACUUM'"
	};
	private static final String[] _SYMBOLIC_NAMES = {
		null, null, null, null, null, "BY", "COMMENT", "CONVERT", "DELTA", "DESC", 
		"DESCRIBE", "DETAIL", "GENERATE", "DRY", "HISTORY", "HOURS", "LIMIT", 
		"MINUS", "NOT", "NULL", "FOR", "TABLE", "PARTITIONED", "RETAIN", "RUN", 
		"TO", "VACUUM", "STRING", "BIGINT_LITERAL", "SMALLINT_LITERAL", "TINYINT_LITERAL", 
		"INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_LITERAL", "BIGDECIMAL_LITERAL", 
		"IDENTIFIER", "BACKQUOTED_IDENTIFIER", "SIMPLE_COMMENT", "BRACKETED_COMMENT", 
		"WS", "UNRECOGNIZED", "DELIMITER"
	};
	public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);

	/**
	 * @deprecated Use {@link #VOCABULARY} instead.
	 */
	@Deprecated
	public static final String[] tokenNames;
	static {
		tokenNames = new String[_SYMBOLIC_NAMES.length];
		for (int i = 0; i < tokenNames.length; i++) {
			tokenNames[i] = VOCABULARY.getLiteralName(i);
			if (tokenNames[i] == null) {
				tokenNames[i] = VOCABULARY.getSymbolicName(i);
			}

			if (tokenNames[i] == null) {
				tokenNames[i] = "";
			}
		}
	}

	@Override
	@Deprecated
	public String[] getTokenNames() {
		return tokenNames;
	}

	@Override

	public Vocabulary getVocabulary() {
		return VOCABULARY;
	}

	@Override
	public String getGrammarFileName() { return "DeltaSqlBase.g4"; }

	@Override
	public String[] getRuleNames() { return ruleNames; }

	@Override
	public String getSerializedATN() { return _serializedATN; }

	@Override
	public ATN getATN() { return _ATN; }


	  /**
	   * Verify whether current token is a valid decimal token (which contains dot).
	   * Returns true if the character that follows the token is not a digit or letter or underscore.
	   *
	   * For example:
	   * For char stream "2.3", "2." is not a valid decimal token, because it is followed by digit '3'.
	   * For char stream "2.3_", "2.3" is not a valid decimal token, because it is followed by '_'.
	   * For char stream "2.3W", "2.3" is not a valid decimal token, because it is followed by 'W'.
	   * For char stream "12.0D 34.E2+0.12 "  12.0D is a valid decimal token because it is folllowed
	   * by a space. 34.E2 is a valid decimal token because it is followed by symbol '+'
	   * which is not a digit or letter or underscore.
	   */
	  public boolean isValidDecimal() {
	    int nextChar = _input.LA(1);
	    if (nextChar >= 'A' && nextChar <= 'Z' || nextChar >= '0' && nextChar <= '9' ||
	      nextChar == '_') {
	      return false;
	    } else {
	      return true;
	    }
	  }

	public DeltaSqlBaseParser(TokenStream input) {
		super(input);
		_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
	}
	public static class SingleStatementContext extends ParserRuleContext {
		public StatementContext statement() {
			return getRuleContext(StatementContext.class,0);
		}
		public TerminalNode EOF() { return getToken(DeltaSqlBaseParser.EOF, 0); }
		public SingleStatementContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_singleStatement; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterSingleStatement(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitSingleStatement(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitSingleStatement(this);
			else return visitor.visitChildren(this);
		}
	}

	public final SingleStatementContext singleStatement() throws RecognitionException {
		SingleStatementContext _localctx = new SingleStatementContext(_ctx, getState());
		enterRule(_localctx, 0, RULE_singleStatement);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(20);
			statement();
			setState(21);
			match(EOF);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static class StatementContext extends ParserRuleContext {
		public StatementContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_statement; }
	 
		public StatementContext() { }
		public void copyFrom(StatementContext ctx) {
			super.copyFrom(ctx);
		}
	}
	public static class PassThroughContext extends StatementContext {
		public PassThroughContext(StatementContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterPassThrough(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitPassThrough(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitPassThrough(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class DescribeDeltaDetailContext extends StatementContext {
		public Token path;
		public QualifiedNameContext table;
		public TerminalNode DETAIL() { return getToken(DeltaSqlBaseParser.DETAIL, 0); }
		public TerminalNode DESC() { return getToken(DeltaSqlBaseParser.DESC, 0); }
		public TerminalNode DESCRIBE() { return getToken(DeltaSqlBaseParser.DESCRIBE, 0); }
		public TerminalNode STRING() { return getToken(DeltaSqlBaseParser.STRING, 0); }
		public QualifiedNameContext qualifiedName() {
			return getRuleContext(QualifiedNameContext.class,0);
		}
		public DescribeDeltaDetailContext(StatementContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterDescribeDeltaDetail(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitDescribeDeltaDetail(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitDescribeDeltaDetail(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class ConvertContext extends StatementContext {
		public QualifiedNameContext table;
		public TerminalNode CONVERT() { return getToken(DeltaSqlBaseParser.CONVERT, 0); }
		public TerminalNode TO() { return getToken(DeltaSqlBaseParser.TO, 0); }
		public TerminalNode DELTA() { return getToken(DeltaSqlBaseParser.DELTA, 0); }
		public QualifiedNameContext qualifiedName() {
			return getRuleContext(QualifiedNameContext.class,0);
		}
		public TerminalNode PARTITIONED() { return getToken(DeltaSqlBaseParser.PARTITIONED, 0); }
		public TerminalNode BY() { return getToken(DeltaSqlBaseParser.BY, 0); }
		public ColTypeListContext colTypeList() {
			return getRuleContext(ColTypeListContext.class,0);
		}
		public ConvertContext(StatementContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterConvert(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitConvert(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitConvert(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class VacuumTableContext extends StatementContext {
		public Token path;
		public QualifiedNameContext table;
		public TerminalNode VACUUM() { return getToken(DeltaSqlBaseParser.VACUUM, 0); }
		public TerminalNode STRING() { return getToken(DeltaSqlBaseParser.STRING, 0); }
		public QualifiedNameContext qualifiedName() {
			return getRuleContext(QualifiedNameContext.class,0);
		}
		public TerminalNode RETAIN() { return getToken(DeltaSqlBaseParser.RETAIN, 0); }
		public NumberContext number() {
			return getRuleContext(NumberContext.class,0);
		}
		public TerminalNode HOURS() { return getToken(DeltaSqlBaseParser.HOURS, 0); }
		public TerminalNode DRY() { return getToken(DeltaSqlBaseParser.DRY, 0); }
		public TerminalNode RUN() { return getToken(DeltaSqlBaseParser.RUN, 0); }
		public VacuumTableContext(StatementContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterVacuumTable(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitVacuumTable(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitVacuumTable(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class GenerateContext extends StatementContext {
		public IdentifierContext modeName;
		public QualifiedNameContext table;
		public TerminalNode GENERATE() { return getToken(DeltaSqlBaseParser.GENERATE, 0); }
		public TerminalNode FOR() { return getToken(DeltaSqlBaseParser.FOR, 0); }
		public TerminalNode TABLE() { return getToken(DeltaSqlBaseParser.TABLE, 0); }
		public IdentifierContext identifier() {
			return getRuleContext(IdentifierContext.class,0);
		}
		public QualifiedNameContext qualifiedName() {
			return getRuleContext(QualifiedNameContext.class,0);
		}
		public GenerateContext(StatementContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterGenerate(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitGenerate(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitGenerate(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class DescribeDeltaHistoryContext extends StatementContext {
		public Token path;
		public QualifiedNameContext table;
		public Token limit;
		public TerminalNode HISTORY() { return getToken(DeltaSqlBaseParser.HISTORY, 0); }
		public TerminalNode DESC() { return getToken(DeltaSqlBaseParser.DESC, 0); }
		public TerminalNode DESCRIBE() { return getToken(DeltaSqlBaseParser.DESCRIBE, 0); }
		public TerminalNode STRING() { return getToken(DeltaSqlBaseParser.STRING, 0); }
		public QualifiedNameContext qualifiedName() {
			return getRuleContext(QualifiedNameContext.class,0);
		}
		public TerminalNode LIMIT() { return getToken(DeltaSqlBaseParser.LIMIT, 0); }
		public TerminalNode INTEGER_VALUE() { return getToken(DeltaSqlBaseParser.INTEGER_VALUE, 0); }
		public DescribeDeltaHistoryContext(StatementContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterDescribeDeltaHistory(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitDescribeDeltaHistory(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitDescribeDeltaHistory(this);
			else return visitor.visitChildren(this);
		}
	}

	public final StatementContext statement() throws RecognitionException {
		StatementContext _localctx = new StatementContext(_ctx, getState());
		enterRule(_localctx, 2, RULE_statement);
		int _la;
		try {
			int _alt;
			setState(78);
			_errHandler.sync(this);
			switch ( getInterpreter().adaptivePredict(_input,8,_ctx) ) {
			case 1:
				_localctx = new VacuumTableContext(_localctx);
				enterOuterAlt(_localctx, 1);
				{
				setState(23);
				match(VACUUM);
				setState(26);
				_errHandler.sync(this);
				switch (_input.LA(1)) {
				case STRING:
					{
					setState(24);
					((VacuumTableContext)_localctx).path = match(STRING);
					}
					break;
				case BY:
				case CONVERT:
				case DELTA:
				case DESC:
				case DESCRIBE:
				case DETAIL:
				case GENERATE:
				case DRY:
				case HOURS:
				case LIMIT:
				case FOR:
				case TABLE:
				case PARTITIONED:
				case RETAIN:
				case RUN:
				case TO:
				case VACUUM:
				case IDENTIFIER:
				case BACKQUOTED_IDENTIFIER:
					{
					setState(25);
					((VacuumTableContext)_localctx).table = qualifiedName();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				setState(32);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==RETAIN) {
					{
					setState(28);
					match(RETAIN);
					setState(29);
					number();
					setState(30);
					match(HOURS);
					}
				}

				setState(36);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==DRY) {
					{
					setState(34);
					match(DRY);
					setState(35);
					match(RUN);
					}
				}

				}
				break;
			case 2:
				_localctx = new DescribeDeltaDetailContext(_localctx);
				enterOuterAlt(_localctx, 2);
				{
				setState(38);
				_la = _input.LA(1);
				if ( !(_la==DESC || _la==DESCRIBE) ) {
				_errHandler.recoverInline(this);
				}
				else {
					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
					_errHandler.reportMatch(this);
					consume();
				}
				setState(39);
				match(DETAIL);
				setState(42);
				_errHandler.sync(this);
				switch (_input.LA(1)) {
				case STRING:
					{
					setState(40);
					((DescribeDeltaDetailContext)_localctx).path = match(STRING);
					}
					break;
				case BY:
				case CONVERT:
				case DELTA:
				case DESC:
				case DESCRIBE:
				case DETAIL:
				case GENERATE:
				case DRY:
				case HOURS:
				case LIMIT:
				case FOR:
				case TABLE:
				case PARTITIONED:
				case RETAIN:
				case RUN:
				case TO:
				case VACUUM:
				case IDENTIFIER:
				case BACKQUOTED_IDENTIFIER:
					{
					setState(41);
					((DescribeDeltaDetailContext)_localctx).table = qualifiedName();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 3:
				_localctx = new GenerateContext(_localctx);
				enterOuterAlt(_localctx, 3);
				{
				setState(44);
				match(GENERATE);
				setState(45);
				((GenerateContext)_localctx).modeName = identifier();
				setState(46);
				match(FOR);
				setState(47);
				match(TABLE);
				setState(48);
				((GenerateContext)_localctx).table = qualifiedName();
				}
				break;
			case 4:
				_localctx = new DescribeDeltaHistoryContext(_localctx);
				enterOuterAlt(_localctx, 4);
				{
				setState(50);
				_la = _input.LA(1);
				if ( !(_la==DESC || _la==DESCRIBE) ) {
				_errHandler.recoverInline(this);
				}
				else {
					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
					_errHandler.reportMatch(this);
					consume();
				}
				setState(51);
				match(HISTORY);
				setState(54);
				_errHandler.sync(this);
				switch (_input.LA(1)) {
				case STRING:
					{
					setState(52);
					((DescribeDeltaHistoryContext)_localctx).path = match(STRING);
					}
					break;
				case BY:
				case CONVERT:
				case DELTA:
				case DESC:
				case DESCRIBE:
				case DETAIL:
				case GENERATE:
				case DRY:
				case HOURS:
				case LIMIT:
				case FOR:
				case TABLE:
				case PARTITIONED:
				case RETAIN:
				case RUN:
				case TO:
				case VACUUM:
				case IDENTIFIER:
				case BACKQUOTED_IDENTIFIER:
					{
					setState(53);
					((DescribeDeltaHistoryContext)_localctx).table = qualifiedName();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				setState(58);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==LIMIT) {
					{
					setState(56);
					match(LIMIT);
					setState(57);
					((DescribeDeltaHistoryContext)_localctx).limit = match(INTEGER_VALUE);
					}
				}

				}
				break;
			case 5:
				_localctx = new ConvertContext(_localctx);
				enterOuterAlt(_localctx, 5);
				{
				setState(60);
				match(CONVERT);
				setState(61);
				match(TO);
				setState(62);
				match(DELTA);
				setState(63);
				((ConvertContext)_localctx).table = qualifiedName();
				setState(70);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==PARTITIONED) {
					{
					setState(64);
					match(PARTITIONED);
					setState(65);
					match(BY);
					setState(66);
					match(T__0);
					setState(67);
					colTypeList();
					setState(68);
					match(T__1);
					}
				}

				}
				break;
			case 6:
				_localctx = new PassThroughContext(_localctx);
				enterOuterAlt(_localctx, 6);
				{
				setState(75);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
				while ( _alt!=1 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1+1 ) {
						{
						{
						setState(72);
						matchWildcard();
						}
						} 
					}
					setState(77);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
				}
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static class QualifiedNameContext extends ParserRuleContext {
		public List identifier() {
			return getRuleContexts(IdentifierContext.class);
		}
		public IdentifierContext identifier(int i) {
			return getRuleContext(IdentifierContext.class,i);
		}
		public QualifiedNameContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_qualifiedName; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterQualifiedName(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitQualifiedName(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitQualifiedName(this);
			else return visitor.visitChildren(this);
		}
	}

	public final QualifiedNameContext qualifiedName() throws RecognitionException {
		QualifiedNameContext _localctx = new QualifiedNameContext(_ctx, getState());
		enterRule(_localctx, 4, RULE_qualifiedName);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(80);
			identifier();
			setState(85);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while (_la==T__2) {
				{
				{
				setState(81);
				match(T__2);
				setState(82);
				identifier();
				}
				}
				setState(87);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static class IdentifierContext extends ParserRuleContext {
		public IdentifierContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_identifier; }
	 
		public IdentifierContext() { }
		public void copyFrom(IdentifierContext ctx) {
			super.copyFrom(ctx);
		}
	}
	public static class QuotedIdentifierAlternativeContext extends IdentifierContext {
		public QuotedIdentifierContext quotedIdentifier() {
			return getRuleContext(QuotedIdentifierContext.class,0);
		}
		public QuotedIdentifierAlternativeContext(IdentifierContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterQuotedIdentifierAlternative(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitQuotedIdentifierAlternative(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitQuotedIdentifierAlternative(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class UnquotedIdentifierContext extends IdentifierContext {
		public TerminalNode IDENTIFIER() { return getToken(DeltaSqlBaseParser.IDENTIFIER, 0); }
		public NonReservedContext nonReserved() {
			return getRuleContext(NonReservedContext.class,0);
		}
		public UnquotedIdentifierContext(IdentifierContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterUnquotedIdentifier(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitUnquotedIdentifier(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitUnquotedIdentifier(this);
			else return visitor.visitChildren(this);
		}
	}

	public final IdentifierContext identifier() throws RecognitionException {
		IdentifierContext _localctx = new IdentifierContext(_ctx, getState());
		enterRule(_localctx, 6, RULE_identifier);
		try {
			setState(91);
			_errHandler.sync(this);
			switch (_input.LA(1)) {
			case IDENTIFIER:
				_localctx = new UnquotedIdentifierContext(_localctx);
				enterOuterAlt(_localctx, 1);
				{
				setState(88);
				match(IDENTIFIER);
				}
				break;
			case BACKQUOTED_IDENTIFIER:
				_localctx = new QuotedIdentifierAlternativeContext(_localctx);
				enterOuterAlt(_localctx, 2);
				{
				setState(89);
				quotedIdentifier();
				}
				break;
			case BY:
			case CONVERT:
			case DELTA:
			case DESC:
			case DESCRIBE:
			case DETAIL:
			case GENERATE:
			case DRY:
			case HOURS:
			case LIMIT:
			case FOR:
			case TABLE:
			case PARTITIONED:
			case RETAIN:
			case RUN:
			case TO:
			case VACUUM:
				_localctx = new UnquotedIdentifierContext(_localctx);
				enterOuterAlt(_localctx, 3);
				{
				setState(90);
				nonReserved();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static class QuotedIdentifierContext extends ParserRuleContext {
		public TerminalNode BACKQUOTED_IDENTIFIER() { return getToken(DeltaSqlBaseParser.BACKQUOTED_IDENTIFIER, 0); }
		public QuotedIdentifierContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_quotedIdentifier; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterQuotedIdentifier(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitQuotedIdentifier(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitQuotedIdentifier(this);
			else return visitor.visitChildren(this);
		}
	}

	public final QuotedIdentifierContext quotedIdentifier() throws RecognitionException {
		QuotedIdentifierContext _localctx = new QuotedIdentifierContext(_ctx, getState());
		enterRule(_localctx, 8, RULE_quotedIdentifier);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(93);
			match(BACKQUOTED_IDENTIFIER);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static class ColTypeListContext extends ParserRuleContext {
		public List colType() {
			return getRuleContexts(ColTypeContext.class);
		}
		public ColTypeContext colType(int i) {
			return getRuleContext(ColTypeContext.class,i);
		}
		public ColTypeListContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_colTypeList; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterColTypeList(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitColTypeList(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitColTypeList(this);
			else return visitor.visitChildren(this);
		}
	}

	public final ColTypeListContext colTypeList() throws RecognitionException {
		ColTypeListContext _localctx = new ColTypeListContext(_ctx, getState());
		enterRule(_localctx, 10, RULE_colTypeList);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(95);
			colType();
			setState(100);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while (_la==T__3) {
				{
				{
				setState(96);
				match(T__3);
				setState(97);
				colType();
				}
				}
				setState(102);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static class ColTypeContext extends ParserRuleContext {
		public IdentifierContext colName;
		public DataTypeContext dataType() {
			return getRuleContext(DataTypeContext.class,0);
		}
		public IdentifierContext identifier() {
			return getRuleContext(IdentifierContext.class,0);
		}
		public TerminalNode NOT() { return getToken(DeltaSqlBaseParser.NOT, 0); }
		public TerminalNode NULL() { return getToken(DeltaSqlBaseParser.NULL, 0); }
		public TerminalNode COMMENT() { return getToken(DeltaSqlBaseParser.COMMENT, 0); }
		public TerminalNode STRING() { return getToken(DeltaSqlBaseParser.STRING, 0); }
		public ColTypeContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_colType; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterColType(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitColType(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitColType(this);
			else return visitor.visitChildren(this);
		}
	}

	public final ColTypeContext colType() throws RecognitionException {
		ColTypeContext _localctx = new ColTypeContext(_ctx, getState());
		enterRule(_localctx, 12, RULE_colType);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(103);
			((ColTypeContext)_localctx).colName = identifier();
			setState(104);
			dataType();
			setState(107);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==NOT) {
				{
				setState(105);
				match(NOT);
				setState(106);
				match(NULL);
				}
			}

			setState(111);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==COMMENT) {
				{
				setState(109);
				match(COMMENT);
				setState(110);
				match(STRING);
				}
			}

			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static class DataTypeContext extends ParserRuleContext {
		public DataTypeContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_dataType; }
	 
		public DataTypeContext() { }
		public void copyFrom(DataTypeContext ctx) {
			super.copyFrom(ctx);
		}
	}
	public static class PrimitiveDataTypeContext extends DataTypeContext {
		public IdentifierContext identifier() {
			return getRuleContext(IdentifierContext.class,0);
		}
		public List INTEGER_VALUE() { return getTokens(DeltaSqlBaseParser.INTEGER_VALUE); }
		public TerminalNode INTEGER_VALUE(int i) {
			return getToken(DeltaSqlBaseParser.INTEGER_VALUE, i);
		}
		public PrimitiveDataTypeContext(DataTypeContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterPrimitiveDataType(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitPrimitiveDataType(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitPrimitiveDataType(this);
			else return visitor.visitChildren(this);
		}
	}

	public final DataTypeContext dataType() throws RecognitionException {
		DataTypeContext _localctx = new DataTypeContext(_ctx, getState());
		enterRule(_localctx, 14, RULE_dataType);
		int _la;
		try {
			_localctx = new PrimitiveDataTypeContext(_localctx);
			enterOuterAlt(_localctx, 1);
			{
			setState(113);
			identifier();
			setState(124);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__0) {
				{
				setState(114);
				match(T__0);
				setState(115);
				match(INTEGER_VALUE);
				setState(120);
				_errHandler.sync(this);
				_la = _input.LA(1);
				while (_la==T__3) {
					{
					{
					setState(116);
					match(T__3);
					setState(117);
					match(INTEGER_VALUE);
					}
					}
					setState(122);
					_errHandler.sync(this);
					_la = _input.LA(1);
				}
				setState(123);
				match(T__1);
				}
			}

			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static class NumberContext extends ParserRuleContext {
		public NumberContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_number; }
	 
		public NumberContext() { }
		public void copyFrom(NumberContext ctx) {
			super.copyFrom(ctx);
		}
	}
	public static class DecimalLiteralContext extends NumberContext {
		public TerminalNode DECIMAL_VALUE() { return getToken(DeltaSqlBaseParser.DECIMAL_VALUE, 0); }
		public TerminalNode MINUS() { return getToken(DeltaSqlBaseParser.MINUS, 0); }
		public DecimalLiteralContext(NumberContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterDecimalLiteral(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitDecimalLiteral(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitDecimalLiteral(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class BigIntLiteralContext extends NumberContext {
		public TerminalNode BIGINT_LITERAL() { return getToken(DeltaSqlBaseParser.BIGINT_LITERAL, 0); }
		public TerminalNode MINUS() { return getToken(DeltaSqlBaseParser.MINUS, 0); }
		public BigIntLiteralContext(NumberContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterBigIntLiteral(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitBigIntLiteral(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitBigIntLiteral(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class TinyIntLiteralContext extends NumberContext {
		public TerminalNode TINYINT_LITERAL() { return getToken(DeltaSqlBaseParser.TINYINT_LITERAL, 0); }
		public TerminalNode MINUS() { return getToken(DeltaSqlBaseParser.MINUS, 0); }
		public TinyIntLiteralContext(NumberContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterTinyIntLiteral(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitTinyIntLiteral(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitTinyIntLiteral(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class BigDecimalLiteralContext extends NumberContext {
		public TerminalNode BIGDECIMAL_LITERAL() { return getToken(DeltaSqlBaseParser.BIGDECIMAL_LITERAL, 0); }
		public TerminalNode MINUS() { return getToken(DeltaSqlBaseParser.MINUS, 0); }
		public BigDecimalLiteralContext(NumberContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterBigDecimalLiteral(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitBigDecimalLiteral(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitBigDecimalLiteral(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class DoubleLiteralContext extends NumberContext {
		public TerminalNode DOUBLE_LITERAL() { return getToken(DeltaSqlBaseParser.DOUBLE_LITERAL, 0); }
		public TerminalNode MINUS() { return getToken(DeltaSqlBaseParser.MINUS, 0); }
		public DoubleLiteralContext(NumberContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterDoubleLiteral(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitDoubleLiteral(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitDoubleLiteral(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class IntegerLiteralContext extends NumberContext {
		public TerminalNode INTEGER_VALUE() { return getToken(DeltaSqlBaseParser.INTEGER_VALUE, 0); }
		public TerminalNode MINUS() { return getToken(DeltaSqlBaseParser.MINUS, 0); }
		public IntegerLiteralContext(NumberContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterIntegerLiteral(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitIntegerLiteral(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitIntegerLiteral(this);
			else return visitor.visitChildren(this);
		}
	}
	public static class SmallIntLiteralContext extends NumberContext {
		public TerminalNode SMALLINT_LITERAL() { return getToken(DeltaSqlBaseParser.SMALLINT_LITERAL, 0); }
		public TerminalNode MINUS() { return getToken(DeltaSqlBaseParser.MINUS, 0); }
		public SmallIntLiteralContext(NumberContext ctx) { copyFrom(ctx); }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterSmallIntLiteral(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitSmallIntLiteral(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitSmallIntLiteral(this);
			else return visitor.visitChildren(this);
		}
	}

	public final NumberContext number() throws RecognitionException {
		NumberContext _localctx = new NumberContext(_ctx, getState());
		enterRule(_localctx, 16, RULE_number);
		int _la;
		try {
			setState(154);
			_errHandler.sync(this);
			switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) {
			case 1:
				_localctx = new DecimalLiteralContext(_localctx);
				enterOuterAlt(_localctx, 1);
				{
				setState(127);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==MINUS) {
					{
					setState(126);
					match(MINUS);
					}
				}

				setState(129);
				match(DECIMAL_VALUE);
				}
				break;
			case 2:
				_localctx = new IntegerLiteralContext(_localctx);
				enterOuterAlt(_localctx, 2);
				{
				setState(131);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==MINUS) {
					{
					setState(130);
					match(MINUS);
					}
				}

				setState(133);
				match(INTEGER_VALUE);
				}
				break;
			case 3:
				_localctx = new BigIntLiteralContext(_localctx);
				enterOuterAlt(_localctx, 3);
				{
				setState(135);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==MINUS) {
					{
					setState(134);
					match(MINUS);
					}
				}

				setState(137);
				match(BIGINT_LITERAL);
				}
				break;
			case 4:
				_localctx = new SmallIntLiteralContext(_localctx);
				enterOuterAlt(_localctx, 4);
				{
				setState(139);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==MINUS) {
					{
					setState(138);
					match(MINUS);
					}
				}

				setState(141);
				match(SMALLINT_LITERAL);
				}
				break;
			case 5:
				_localctx = new TinyIntLiteralContext(_localctx);
				enterOuterAlt(_localctx, 5);
				{
				setState(143);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==MINUS) {
					{
					setState(142);
					match(MINUS);
					}
				}

				setState(145);
				match(TINYINT_LITERAL);
				}
				break;
			case 6:
				_localctx = new DoubleLiteralContext(_localctx);
				enterOuterAlt(_localctx, 6);
				{
				setState(147);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==MINUS) {
					{
					setState(146);
					match(MINUS);
					}
				}

				setState(149);
				match(DOUBLE_LITERAL);
				}
				break;
			case 7:
				_localctx = new BigDecimalLiteralContext(_localctx);
				enterOuterAlt(_localctx, 7);
				{
				setState(151);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==MINUS) {
					{
					setState(150);
					match(MINUS);
					}
				}

				setState(153);
				match(BIGDECIMAL_LITERAL);
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static class NonReservedContext extends ParserRuleContext {
		public TerminalNode VACUUM() { return getToken(DeltaSqlBaseParser.VACUUM, 0); }
		public TerminalNode RETAIN() { return getToken(DeltaSqlBaseParser.RETAIN, 0); }
		public TerminalNode HOURS() { return getToken(DeltaSqlBaseParser.HOURS, 0); }
		public TerminalNode DRY() { return getToken(DeltaSqlBaseParser.DRY, 0); }
		public TerminalNode RUN() { return getToken(DeltaSqlBaseParser.RUN, 0); }
		public TerminalNode CONVERT() { return getToken(DeltaSqlBaseParser.CONVERT, 0); }
		public TerminalNode TO() { return getToken(DeltaSqlBaseParser.TO, 0); }
		public TerminalNode DELTA() { return getToken(DeltaSqlBaseParser.DELTA, 0); }
		public TerminalNode PARTITIONED() { return getToken(DeltaSqlBaseParser.PARTITIONED, 0); }
		public TerminalNode BY() { return getToken(DeltaSqlBaseParser.BY, 0); }
		public TerminalNode DESC() { return getToken(DeltaSqlBaseParser.DESC, 0); }
		public TerminalNode DESCRIBE() { return getToken(DeltaSqlBaseParser.DESCRIBE, 0); }
		public TerminalNode LIMIT() { return getToken(DeltaSqlBaseParser.LIMIT, 0); }
		public TerminalNode DETAIL() { return getToken(DeltaSqlBaseParser.DETAIL, 0); }
		public TerminalNode GENERATE() { return getToken(DeltaSqlBaseParser.GENERATE, 0); }
		public TerminalNode FOR() { return getToken(DeltaSqlBaseParser.FOR, 0); }
		public TerminalNode TABLE() { return getToken(DeltaSqlBaseParser.TABLE, 0); }
		public NonReservedContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_nonReserved; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).enterNonReserved(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof DeltaSqlBaseListener ) ((DeltaSqlBaseListener)listener).exitNonReserved(this);
		}
		@Override
		public  T accept(ParseTreeVisitor visitor) {
			if ( visitor instanceof DeltaSqlBaseVisitor ) return ((DeltaSqlBaseVisitor)visitor).visitNonReserved(this);
			else return visitor.visitChildren(this);
		}
	}

	public final NonReservedContext nonReserved() throws RecognitionException {
		NonReservedContext _localctx = new NonReservedContext(_ctx, getState());
		enterRule(_localctx, 18, RULE_nonReserved);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(156);
			_la = _input.LA(1);
			if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BY) | (1L << CONVERT) | (1L << DELTA) | (1L << DESC) | (1L << DESCRIBE) | (1L << DETAIL) | (1L << GENERATE) | (1L << DRY) | (1L << HOURS) | (1L << LIMIT) | (1L << FOR) | (1L << TABLE) | (1L << PARTITIONED) | (1L << RETAIN) | (1L << RUN) | (1L << TO) | (1L << VACUUM))) != 0)) ) {
			_errHandler.recoverInline(this);
			}
			else {
				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
				_errHandler.reportMatch(this);
				consume();
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public static final String _serializedATN =
		"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3+\u00a1\4\2\t\2\4"+
		"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
		"\13\3\2\3\2\3\2\3\3\3\3\3\3\5\3\35\n\3\3\3\3\3\3\3\3\3\5\3#\n\3\3\3\3"+
		"\3\5\3\'\n\3\3\3\3\3\3\3\3\3\5\3-\n\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3"+
		"\3\3\3\3\5\39\n\3\3\3\3\3\5\3=\n\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3"+
		"\3\3\5\3I\n\3\3\3\7\3L\n\3\f\3\16\3O\13\3\5\3Q\n\3\3\4\3\4\3\4\7\4V\n"+
		"\4\f\4\16\4Y\13\4\3\5\3\5\3\5\5\5^\n\5\3\6\3\6\3\7\3\7\3\7\7\7e\n\7\f"+
		"\7\16\7h\13\7\3\b\3\b\3\b\3\b\5\bn\n\b\3\b\3\b\5\br\n\b\3\t\3\t\3\t\3"+
		"\t\3\t\7\ty\n\t\f\t\16\t|\13\t\3\t\5\t\177\n\t\3\n\5\n\u0082\n\n\3\n\3"+
		"\n\5\n\u0086\n\n\3\n\3\n\5\n\u008a\n\n\3\n\3\n\5\n\u008e\n\n\3\n\3\n\5"+
		"\n\u0092\n\n\3\n\3\n\5\n\u0096\n\n\3\n\3\n\5\n\u009a\n\n\3\n\5\n\u009d"+
		"\n\n\3\13\3\13\3\13\3M\2\f\2\4\6\b\n\f\16\20\22\24\2\4\3\2\13\f\6\2\7"+
		"\7\t\17\21\22\26\34\2\u00b8\2\26\3\2\2\2\4P\3\2\2\2\6R\3\2\2\2\b]\3\2"+
		"\2\2\n_\3\2\2\2\fa\3\2\2\2\16i\3\2\2\2\20s\3\2\2\2\22\u009c\3\2\2\2\24"+
		"\u009e\3\2\2\2\26\27\5\4\3\2\27\30\7\2\2\3\30\3\3\2\2\2\31\34\7\34\2\2"+
		"\32\35\7\35\2\2\33\35\5\6\4\2\34\32\3\2\2\2\34\33\3\2\2\2\35\"\3\2\2\2"+
		"\36\37\7\31\2\2\37 \5\22\n\2 !\7\21\2\2!#\3\2\2\2\"\36\3\2\2\2\"#\3\2"+
		"\2\2#&\3\2\2\2$%\7\17\2\2%\'\7\32\2\2&$\3\2\2\2&\'\3\2\2\2\'Q\3\2\2\2"+
		"()\t\2\2\2),\7\r\2\2*-\7\35\2\2+-\5\6\4\2,*\3\2\2\2,+\3\2\2\2-Q\3\2\2"+
		"\2./\7\16\2\2/\60\5\b\5\2\60\61\7\26\2\2\61\62\7\27\2\2\62\63\5\6\4\2"+
		"\63Q\3\2\2\2\64\65\t\2\2\2\658\7\20\2\2\669\7\35\2\2\679\5\6\4\28\66\3"+
		"\2\2\28\67\3\2\2\29<\3\2\2\2:;\7\22\2\2;=\7!\2\2<:\3\2\2\2<=\3\2\2\2="+
		"Q\3\2\2\2>?\7\t\2\2?@\7\33\2\2@A\7\n\2\2AH\5\6\4\2BC\7\30\2\2CD\7\7\2"+
		"\2DE\7\3\2\2EF\5\f\7\2FG\7\4\2\2GI\3\2\2\2HB\3\2\2\2HI\3\2\2\2IQ\3\2\2"+
		"\2JL\13\2\2\2KJ\3\2\2\2LO\3\2\2\2MN\3\2\2\2MK\3\2\2\2NQ\3\2\2\2OM\3\2"+
		"\2\2P\31\3\2\2\2P(\3\2\2\2P.\3\2\2\2P\64\3\2\2\2P>\3\2\2\2PM\3\2\2\2Q"+
		"\5\3\2\2\2RW\5\b\5\2ST\7\5\2\2TV\5\b\5\2US\3\2\2\2VY\3\2\2\2WU\3\2\2\2"+
		"WX\3\2\2\2X\7\3\2\2\2YW\3\2\2\2Z^\7%\2\2[^\5\n\6\2\\^\5\24\13\2]Z\3\2"+
		"\2\2][\3\2\2\2]\\\3\2\2\2^\t\3\2\2\2_`\7&\2\2`\13\3\2\2\2af\5\16\b\2b"+
		"c\7\6\2\2ce\5\16\b\2db\3\2\2\2eh\3\2\2\2fd\3\2\2\2fg\3\2\2\2g\r\3\2\2"+
		"\2hf\3\2\2\2ij\5\b\5\2jm\5\20\t\2kl\7\24\2\2ln\7\25\2\2mk\3\2\2\2mn\3"+
		"\2\2\2nq\3\2\2\2op\7\b\2\2pr\7\35\2\2qo\3\2\2\2qr\3\2\2\2r\17\3\2\2\2"+
		"s~\5\b\5\2tu\7\3\2\2uz\7!\2\2vw\7\6\2\2wy\7!\2\2xv\3\2\2\2y|\3\2\2\2z"+
		"x\3\2\2\2z{\3\2\2\2{}\3\2\2\2|z\3\2\2\2}\177\7\4\2\2~t\3\2\2\2~\177\3"+
		"\2\2\2\177\21\3\2\2\2\u0080\u0082\7\23\2\2\u0081\u0080\3\2\2\2\u0081\u0082"+
		"\3\2\2\2\u0082\u0083\3\2\2\2\u0083\u009d\7\"\2\2\u0084\u0086\7\23\2\2"+
		"\u0085\u0084\3\2\2\2\u0085\u0086\3\2\2\2\u0086\u0087\3\2\2\2\u0087\u009d"+
		"\7!\2\2\u0088\u008a\7\23\2\2\u0089\u0088\3\2\2\2\u0089\u008a\3\2\2\2\u008a"+
		"\u008b\3\2\2\2\u008b\u009d\7\36\2\2\u008c\u008e\7\23\2\2\u008d\u008c\3"+
		"\2\2\2\u008d\u008e\3\2\2\2\u008e\u008f\3\2\2\2\u008f\u009d\7\37\2\2\u0090"+
		"\u0092\7\23\2\2\u0091\u0090\3\2\2\2\u0091\u0092\3\2\2\2\u0092\u0093\3"+
		"\2\2\2\u0093\u009d\7 \2\2\u0094\u0096\7\23\2\2\u0095\u0094\3\2\2\2\u0095"+
		"\u0096\3\2\2\2\u0096\u0097\3\2\2\2\u0097\u009d\7#\2\2\u0098\u009a\7\23"+
		"\2\2\u0099\u0098\3\2\2\2\u0099\u009a\3\2\2\2\u009a\u009b\3\2\2\2\u009b"+
		"\u009d\7$\2\2\u009c\u0081\3\2\2\2\u009c\u0085\3\2\2\2\u009c\u0089\3\2"+
		"\2\2\u009c\u008d\3\2\2\2\u009c\u0091\3\2\2\2\u009c\u0095\3\2\2\2\u009c"+
		"\u0099\3\2\2\2\u009d\23\3\2\2\2\u009e\u009f\t\3\2\2\u009f\25\3\2\2\2\32"+
		"\34\"&,8




© 2015 - 2025 Weber Informatics LLC | Privacy Policy