001/* 002MIT License 003 004Copyright (c) 2020 FBSQL Team 005 006Permission is hereby granted, free of charge, to any person obtaining a copy 007of this software and associated documentation files (the "Software"), to deal 008in the Software without restriction, including without limitation the rights 009to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 010copies of the Software, and to permit persons to whom the Software is 011furnished to do so, subject to the following conditions: 012 013The above copyright notice and this permission notice shall be included in all 014copies or substantial portions of the Software. 015 016THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 017IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 018FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 019AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 020LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 021OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 022SOFTWARE. 023 024Home: https://fbsql.github.io 025E-Mail: fbsql.team@gmail.com 026*/ 027 028package org.fbsql.antlr4.generated; 029 030import org.antlr.v4.runtime.Lexer; 031import org.antlr.v4.runtime.CharStream; 032import org.antlr.v4.runtime.Token; 033import org.antlr.v4.runtime.TokenStream; 034import org.antlr.v4.runtime.*; 035import org.antlr.v4.runtime.atn.*; 036import org.antlr.v4.runtime.dfa.DFA; 037import org.antlr.v4.runtime.misc.*; 038 039@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) 040public class FbsqlLexer extends Lexer { 041 static { RuntimeMetaData.checkVersion("4.8", RuntimeMetaData.VERSION); } 042 043 protected static final DFA[] _decisionToDFA; 044 protected static final PredictionContextCache _sharedContextCache = 045 new PredictionContextCache(); 046 public static final int 047 T__0=1, T__1=2, T__2=3, T__3=4, STATIC=5, ROLES=6, TRIGGER=7, BEFORE=8, 048 AFTER=9, AS=10, NO=11, COMPRESSION=12, BEST=13, SPEED=14, DECLARE=15, 049 PROCEDURE=16, TYPE=17, JAVA=18, JS=19, EXEC=20, URL=21, OPTIONS=22, FILE=23, 050 STATEMENT=24, CONNECT=25, TO=26, USER=27, PASSWORD=28, PROPERTIES=29, 051 DRIVER=30, LIB=31, CONNECTION=32, POOL=33, SIZE=34, MIN=35, MAX=36, UNDECLARED=37, 052 STATEMENTS=38, INCOMING=39, CONNECTIONS=40, ALLOW=41, REJECT=42, IF=43, 053 EXISTS=44, SWITCH=45, SCHEDULE=46, AT=47, INCLUDE=48, NULL=49, IDENTIFIER=50, 054 NUMERIC_LITERAL=51, STRING_LITERAL=52, SINGLE_LINE_COMMENT=53, MULTILINE_COMMENT=54, 055 SPACES=55, UNEXPECTED_CHAR=56; 056 public static String[] channelNames = { 057 "DEFAULT_TOKEN_CHANNEL", "HIDDEN" 058 }; 059 060 public static String[] modeNames = { 061 "DEFAULT_MODE" 062 }; 063 064 private static String[] makeRuleNames() { 065 return new String[] { 066 "T__0", "T__1", "T__2", "T__3", "STATIC", "ROLES", "TRIGGER", "BEFORE", 067 "AFTER", "AS", "NO", "COMPRESSION", "BEST", "SPEED", "DECLARE", "PROCEDURE", 068 "TYPE", "JAVA", "JS", "EXEC", "URL", "OPTIONS", "FILE", "STATEMENT", 069 "CONNECT", "TO", "USER", "PASSWORD", "PROPERTIES", "DRIVER", "LIB", "CONNECTION", 070 "POOL", "SIZE", "MIN", "MAX", "UNDECLARED", "STATEMENTS", "INCOMING", 071 "CONNECTIONS", "ALLOW", "REJECT", "IF", "EXISTS", "SWITCH", "SCHEDULE", 072 "AT", "INCLUDE", "NULL", "IDENTIFIER", "NUMERIC_LITERAL", "STRING_LITERAL", 073 "SINGLE_LINE_COMMENT", "MULTILINE_COMMENT", "SPACES", "UNEXPECTED_CHAR", 074 "DIGIT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", 075 "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" 076 }; 077 } 078 public static final String[] ruleNames = makeRuleNames(); 079 080 private static String[] makeLiteralNames() { 081 return new String[] { 082 null, "':'", "'('", "','", "')'" 083 }; 084 } 085 private static final String[] _LITERAL_NAMES = makeLiteralNames(); 086 private static String[] makeSymbolicNames() { 087 return new String[] { 088 null, null, null, null, null, "STATIC", "ROLES", "TRIGGER", "BEFORE", 089 "AFTER", "AS", "NO", "COMPRESSION", "BEST", "SPEED", "DECLARE", "PROCEDURE", 090 "TYPE", "JAVA", "JS", "EXEC", "URL", "OPTIONS", "FILE", "STATEMENT", 091 "CONNECT", "TO", "USER", "PASSWORD", "PROPERTIES", "DRIVER", "LIB", "CONNECTION", 092 "POOL", "SIZE", "MIN", "MAX", "UNDECLARED", "STATEMENTS", "INCOMING", 093 "CONNECTIONS", "ALLOW", "REJECT", "IF", "EXISTS", "SWITCH", "SCHEDULE", 094 "AT", "INCLUDE", "NULL", "IDENTIFIER", "NUMERIC_LITERAL", "STRING_LITERAL", 095 "SINGLE_LINE_COMMENT", "MULTILINE_COMMENT", "SPACES", "UNEXPECTED_CHAR" 096 }; 097 } 098 private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); 099 public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); 100 101 /** 102 * @deprecated Use {@link #VOCABULARY} instead. 103 */ 104 @Deprecated 105 public static final String[] tokenNames; 106 static { 107 tokenNames = new String[_SYMBOLIC_NAMES.length]; 108 for (int i = 0; i < tokenNames.length; i++) { 109 tokenNames[i] = VOCABULARY.getLiteralName(i); 110 if (tokenNames[i] == null) { 111 tokenNames[i] = VOCABULARY.getSymbolicName(i); 112 } 113 114 if (tokenNames[i] == null) { 115 tokenNames[i] = "<INVALID>"; 116 } 117 } 118 } 119 120 @Override 121 @Deprecated 122 public String[] getTokenNames() { 123 return tokenNames; 124 } 125 126 @Override 127 128 public Vocabulary getVocabulary() { 129 return VOCABULARY; 130 } 131 132 133 public FbsqlLexer(CharStream input) { 134 super(input); 135 _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); 136 } 137 138 @Override 139 public String getGrammarFileName() { return "Fbsql.g4"; } 140 141 @Override 142 public String[] getRuleNames() { return ruleNames; } 143 144 @Override 145 public String getSerializedATN() { return _serializedATN; } 146 147 @Override 148 public String[] getChannelNames() { return channelNames; } 149 150 @Override 151 public String[] getModeNames() { return modeNames; } 152 153 @Override 154 public ATN getATN() { return _ATN; } 155 156 public static final String _serializedATN = 157 "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2:\u0290\b\1\4\2\t"+ 158 "\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"+ 159 "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ 160 "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ 161 "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ 162 "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ 163 ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ 164 "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ 165 "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ 166 "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ 167 "\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3"+ 168 "\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\t"+ 169 "\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\f\3\f\3\f\3\r\3\r\3\r\3"+ 170 "\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\17\3\17"+ 171 "\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21"+ 172 "\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\23"+ 173 "\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\26\3\26"+ 174 "\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30"+ 175 "\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32"+ 176 "\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\35"+ 177 "\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\36"+ 178 "\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 \3 \3 "+ 179 "\3 \3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3"+ 180 "#\3$\3$\3$\3$\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'"+ 181 "\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3"+ 182 ")\3)\3)\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3,\3"+ 183 ",\3,\3-\3-\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3/\3/\3"+ 184 "/\3/\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\62\3\62"+ 185 "\3\62\3\62\3\62\3\63\3\63\3\63\3\63\7\63\u01e2\n\63\f\63\16\63\u01e5\13"+ 186 "\63\3\63\3\63\3\63\3\63\3\63\7\63\u01ec\n\63\f\63\16\63\u01ef\13\63\3"+ 187 "\63\3\63\3\63\7\63\u01f4\n\63\f\63\16\63\u01f7\13\63\3\63\3\63\3\63\7"+ 188 "\63\u01fc\n\63\f\63\16\63\u01ff\13\63\5\63\u0201\n\63\3\64\6\64\u0204"+ 189 "\n\64\r\64\16\64\u0205\3\64\3\64\7\64\u020a\n\64\f\64\16\64\u020d\13\64"+ 190 "\5\64\u020f\n\64\3\64\3\64\5\64\u0213\n\64\3\64\6\64\u0216\n\64\r\64\16"+ 191 "\64\u0217\5\64\u021a\n\64\3\64\3\64\6\64\u021e\n\64\r\64\16\64\u021f\3"+ 192 "\64\3\64\5\64\u0224\n\64\3\64\6\64\u0227\n\64\r\64\16\64\u0228\5\64\u022b"+ 193 "\n\64\5\64\u022d\n\64\3\65\3\65\3\65\3\65\7\65\u0233\n\65\f\65\16\65\u0236"+ 194 "\13\65\3\65\3\65\3\66\3\66\3\66\3\66\7\66\u023e\n\66\f\66\16\66\u0241"+ 195 "\13\66\3\66\3\66\3\67\3\67\3\67\3\67\7\67\u0249\n\67\f\67\16\67\u024c"+ 196 "\13\67\3\67\3\67\3\67\5\67\u0251\n\67\3\67\3\67\38\38\38\38\39\39\3:\3"+ 197 ":\3;\3;\3<\3<\3=\3=\3>\3>\3?\3?\3@\3@\3A\3A\3B\3B\3C\3C\3D\3D\3E\3E\3"+ 198 "F\3F\3G\3G\3H\3H\3I\3I\3J\3J\3K\3K\3L\3L\3M\3M\3N\3N\3O\3O\3P\3P\3Q\3"+ 199 "Q\3R\3R\3S\3S\3T\3T\3\u024a\2U\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13"+ 200 "\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61"+ 201 "\32\63\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61"+ 202 "a\62c\63e\64g\65i\66k\67m8o9q:s\2u\2w\2y\2{\2}\2\177\2\u0081\2\u0083\2"+ 203 "\u0085\2\u0087\2\u0089\2\u008b\2\u008d\2\u008f\2\u0091\2\u0093\2\u0095"+ 204 "\2\u0097\2\u0099\2\u009b\2\u009d\2\u009f\2\u00a1\2\u00a3\2\u00a5\2\u00a7"+ 205 "\2\3\2&\3\2$$\3\2bb\3\2__\5\2C\\aac|\6\2\62;C\\aac|\4\2--//\3\2))\4\2"+ 206 "\f\f\17\17\5\2\13\r\17\17\"\"\3\2\62;\4\2CCcc\4\2DDdd\4\2EEee\4\2FFff"+ 207 "\4\2GGgg\4\2HHhh\4\2IIii\4\2JJjj\4\2KKkk\4\2LLll\4\2MMmm\4\2NNnn\4\2O"+ 208 "Ooo\4\2PPpp\4\2QQqq\4\2RRrr\4\2SSss\4\2TTtt\4\2UUuu\4\2VVvv\4\2WWww\4"+ 209 "\2XXxx\4\2YYyy\4\2ZZzz\4\2[[{{\4\2\\\\||\2\u028d\2\3\3\2\2\2\2\5\3\2\2"+ 210 "\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21"+ 211 "\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2"+ 212 "\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3"+ 213 "\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3"+ 214 "\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3"+ 215 "\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2"+ 216 "\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2"+ 217 "Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3"+ 218 "\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2"+ 219 "\2\3\u00a9\3\2\2\2\5\u00ab\3\2\2\2\7\u00ad\3\2\2\2\t\u00af\3\2\2\2\13"+ 220 "\u00b1\3\2\2\2\r\u00b8\3\2\2\2\17\u00be\3\2\2\2\21\u00c6\3\2\2\2\23\u00cd"+ 221 "\3\2\2\2\25\u00d3\3\2\2\2\27\u00d6\3\2\2\2\31\u00d9\3\2\2\2\33\u00e5\3"+ 222 "\2\2\2\35\u00ea\3\2\2\2\37\u00f0\3\2\2\2!\u00f8\3\2\2\2#\u0102\3\2\2\2"+ 223 "%\u0107\3\2\2\2\'\u010c\3\2\2\2)\u010f\3\2\2\2+\u0114\3\2\2\2-\u0118\3"+ 224 "\2\2\2/\u0120\3\2\2\2\61\u0125\3\2\2\2\63\u012f\3\2\2\2\65\u0137\3\2\2"+ 225 "\2\67\u013a\3\2\2\29\u013f\3\2\2\2;\u0148\3\2\2\2=\u0153\3\2\2\2?\u015a"+ 226 "\3\2\2\2A\u015e\3\2\2\2C\u0169\3\2\2\2E\u016e\3\2\2\2G\u0173\3\2\2\2I"+ 227 "\u0177\3\2\2\2K\u017b\3\2\2\2M\u0186\3\2\2\2O\u0191\3\2\2\2Q\u019a\3\2"+ 228 "\2\2S\u01a6\3\2\2\2U\u01ac\3\2\2\2W\u01b3\3\2\2\2Y\u01b6\3\2\2\2[\u01bd"+ 229 "\3\2\2\2]\u01c4\3\2\2\2_\u01cd\3\2\2\2a\u01d0\3\2\2\2c\u01d8\3\2\2\2e"+ 230 "\u0200\3\2\2\2g\u022c\3\2\2\2i\u022e\3\2\2\2k\u0239\3\2\2\2m\u0244\3\2"+ 231 "\2\2o\u0254\3\2\2\2q\u0258\3\2\2\2s\u025a\3\2\2\2u\u025c\3\2\2\2w\u025e"+ 232 "\3\2\2\2y\u0260\3\2\2\2{\u0262\3\2\2\2}\u0264\3\2\2\2\177\u0266\3\2\2"+ 233 "\2\u0081\u0268\3\2\2\2\u0083\u026a\3\2\2\2\u0085\u026c\3\2\2\2\u0087\u026e"+ 234 "\3\2\2\2\u0089\u0270\3\2\2\2\u008b\u0272\3\2\2\2\u008d\u0274\3\2\2\2\u008f"+ 235 "\u0276\3\2\2\2\u0091\u0278\3\2\2\2\u0093\u027a\3\2\2\2\u0095\u027c\3\2"+ 236 "\2\2\u0097\u027e\3\2\2\2\u0099\u0280\3\2\2\2\u009b\u0282\3\2\2\2\u009d"+ 237 "\u0284\3\2\2\2\u009f\u0286\3\2\2\2\u00a1\u0288\3\2\2\2\u00a3\u028a\3\2"+ 238 "\2\2\u00a5\u028c\3\2\2\2\u00a7\u028e\3\2\2\2\u00a9\u00aa\7<\2\2\u00aa"+ 239 "\4\3\2\2\2\u00ab\u00ac\7*\2\2\u00ac\6\3\2\2\2\u00ad\u00ae\7.\2\2\u00ae"+ 240 "\b\3\2\2\2\u00af\u00b0\7+\2\2\u00b0\n\3\2\2\2\u00b1\u00b2\5\u0099M\2\u00b2"+ 241 "\u00b3\5\u009bN\2\u00b3\u00b4\5u;\2\u00b4\u00b5\5\u009bN\2\u00b5\u00b6"+ 242 "\5\u0085C\2\u00b6\u00b7\5y=\2\u00b7\f\3\2\2\2\u00b8\u00b9\5\u0097L\2\u00b9"+ 243 "\u00ba\5\u0091I\2\u00ba\u00bb\5\u008bF\2\u00bb\u00bc\5}?\2\u00bc\u00bd"+ 244 "\5\u0099M\2\u00bd\16\3\2\2\2\u00be\u00bf\5\u009bN\2\u00bf\u00c0\5\u0097"+ 245 "L\2\u00c0\u00c1\5\u0085C\2\u00c1\u00c2\5\u0081A\2\u00c2\u00c3\5\u0081"+ 246 "A\2\u00c3\u00c4\5}?\2\u00c4\u00c5\5\u0097L\2\u00c5\20\3\2\2\2\u00c6\u00c7"+ 247 "\5w<\2\u00c7\u00c8\5}?\2\u00c8\u00c9\5\177@\2\u00c9\u00ca\5\u0091I\2\u00ca"+ 248 "\u00cb\5\u0097L\2\u00cb\u00cc\5}?\2\u00cc\22\3\2\2\2\u00cd\u00ce\5u;\2"+ 249 "\u00ce\u00cf\5\177@\2\u00cf\u00d0\5\u009bN\2\u00d0\u00d1\5}?\2\u00d1\u00d2"+ 250 "\5\u0097L\2\u00d2\24\3\2\2\2\u00d3\u00d4\5u;\2\u00d4\u00d5\5\u0099M\2"+ 251 "\u00d5\26\3\2\2\2\u00d6\u00d7\5\u008fH\2\u00d7\u00d8\5\u0091I\2\u00d8"+ 252 "\30\3\2\2\2\u00d9\u00da\5y=\2\u00da\u00db\5\u0091I\2\u00db\u00dc\5\u008d"+ 253 "G\2\u00dc\u00dd\5\u0093J\2\u00dd\u00de\5\u0097L\2\u00de\u00df\5}?\2\u00df"+ 254 "\u00e0\5\u0099M\2\u00e0\u00e1\5\u0099M\2\u00e1\u00e2\5\u0085C\2\u00e2"+ 255 "\u00e3\5\u0091I\2\u00e3\u00e4\5\u008fH\2\u00e4\32\3\2\2\2\u00e5\u00e6"+ 256 "\5w<\2\u00e6\u00e7\5}?\2\u00e7\u00e8\5\u0099M\2\u00e8\u00e9\5\u009bN\2"+ 257 "\u00e9\34\3\2\2\2\u00ea\u00eb\5\u0099M\2\u00eb\u00ec\5\u0093J\2\u00ec"+ 258 "\u00ed\5}?\2\u00ed\u00ee\5}?\2\u00ee\u00ef\5{>\2\u00ef\36\3\2\2\2\u00f0"+ 259 "\u00f1\5{>\2\u00f1\u00f2\5}?\2\u00f2\u00f3\5y=\2\u00f3\u00f4\5\u008bF"+ 260 "\2\u00f4\u00f5\5u;\2\u00f5\u00f6\5\u0097L\2\u00f6\u00f7\5}?\2\u00f7 \3"+ 261 "\2\2\2\u00f8\u00f9\5\u0093J\2\u00f9\u00fa\5\u0097L\2\u00fa\u00fb\5\u0091"+ 262 "I\2\u00fb\u00fc\5y=\2\u00fc\u00fd\5}?\2\u00fd\u00fe\5{>\2\u00fe\u00ff"+ 263 "\5\u009dO\2\u00ff\u0100\5\u0097L\2\u0100\u0101\5}?\2\u0101\"\3\2\2\2\u0102"+ 264 "\u0103\5\u009bN\2\u0103\u0104\5\u00a5S\2\u0104\u0105\5\u0093J\2\u0105"+ 265 "\u0106\5}?\2\u0106$\3\2\2\2\u0107\u0108\5\u0087D\2\u0108\u0109\5u;\2\u0109"+ 266 "\u010a\5\u009fP\2\u010a\u010b\5u;\2\u010b&\3\2\2\2\u010c\u010d\5\u0087"+ 267 "D\2\u010d\u010e\5\u0099M\2\u010e(\3\2\2\2\u010f\u0110\5}?\2\u0110\u0111"+ 268 "\5\u00a3R\2\u0111\u0112\5}?\2\u0112\u0113\5y=\2\u0113*\3\2\2\2\u0114\u0115"+ 269 "\5\u009dO\2\u0115\u0116\5\u0097L\2\u0116\u0117\5\u008bF\2\u0117,\3\2\2"+ 270 "\2\u0118\u0119\5\u0091I\2\u0119\u011a\5\u0093J\2\u011a\u011b\5\u009bN"+ 271 "\2\u011b\u011c\5\u0085C\2\u011c\u011d\5\u0091I\2\u011d\u011e\5\u008fH"+ 272 "\2\u011e\u011f\5\u0099M\2\u011f.\3\2\2\2\u0120\u0121\5\177@\2\u0121\u0122"+ 273 "\5\u0085C\2\u0122\u0123\5\u008bF\2\u0123\u0124\5}?\2\u0124\60\3\2\2\2"+ 274 "\u0125\u0126\5\u0099M\2\u0126\u0127\5\u009bN\2\u0127\u0128\5u;\2\u0128"+ 275 "\u0129\5\u009bN\2\u0129\u012a\5}?\2\u012a\u012b\5\u008dG\2\u012b\u012c"+ 276 "\5}?\2\u012c\u012d\5\u008fH\2\u012d\u012e\5\u009bN\2\u012e\62\3\2\2\2"+ 277 "\u012f\u0130\5y=\2\u0130\u0131\5\u0091I\2\u0131\u0132\5\u008fH\2\u0132"+ 278 "\u0133\5\u008fH\2\u0133\u0134\5}?\2\u0134\u0135\5y=\2\u0135\u0136\5\u009b"+ 279 "N\2\u0136\64\3\2\2\2\u0137\u0138\5\u009bN\2\u0138\u0139\5\u0091I\2\u0139"+ 280 "\66\3\2\2\2\u013a\u013b\5\u009dO\2\u013b\u013c\5\u0099M\2\u013c\u013d"+ 281 "\5}?\2\u013d\u013e\5\u0097L\2\u013e8\3\2\2\2\u013f\u0140\5\u0093J\2\u0140"+ 282 "\u0141\5u;\2\u0141\u0142\5\u0099M\2\u0142\u0143\5\u0099M\2\u0143\u0144"+ 283 "\5\u00a1Q\2\u0144\u0145\5\u0091I\2\u0145\u0146\5\u0097L\2\u0146\u0147"+ 284 "\5{>\2\u0147:\3\2\2\2\u0148\u0149\5\u0093J\2\u0149\u014a\5\u0097L\2\u014a"+ 285 "\u014b\5\u0091I\2\u014b\u014c\5\u0093J\2\u014c\u014d\5}?\2\u014d\u014e"+ 286 "\5\u0097L\2\u014e\u014f\5\u009bN\2\u014f\u0150\5\u0085C\2\u0150\u0151"+ 287 "\5}?\2\u0151\u0152\5\u0099M\2\u0152<\3\2\2\2\u0153\u0154\5{>\2\u0154\u0155"+ 288 "\5\u0097L\2\u0155\u0156\5\u0085C\2\u0156\u0157\5\u009fP\2\u0157\u0158"+ 289 "\5}?\2\u0158\u0159\5\u0097L\2\u0159>\3\2\2\2\u015a\u015b\5\u008bF\2\u015b"+ 290 "\u015c\5\u0085C\2\u015c\u015d\5w<\2\u015d@\3\2\2\2\u015e\u015f\5y=\2\u015f"+ 291 "\u0160\5\u0091I\2\u0160\u0161\5\u008fH\2\u0161\u0162\5\u008fH\2\u0162"+ 292 "\u0163\5}?\2\u0163\u0164\5y=\2\u0164\u0165\5\u009bN\2\u0165\u0166\5\u0085"+ 293 "C\2\u0166\u0167\5\u0091I\2\u0167\u0168\5\u008fH\2\u0168B\3\2\2\2\u0169"+ 294 "\u016a\5\u0093J\2\u016a\u016b\5\u0091I\2\u016b\u016c\5\u0091I\2\u016c"+ 295 "\u016d\5\u008bF\2\u016dD\3\2\2\2\u016e\u016f\5\u0099M\2\u016f\u0170\5"+ 296 "\u0085C\2\u0170\u0171\5\u00a7T\2\u0171\u0172\5}?\2\u0172F\3\2\2\2\u0173"+ 297 "\u0174\5\u008dG\2\u0174\u0175\5\u0085C\2\u0175\u0176\5\u008fH\2\u0176"+ 298 "H\3\2\2\2\u0177\u0178\5\u008dG\2\u0178\u0179\5u;\2\u0179\u017a\5\u00a3"+ 299 "R\2\u017aJ\3\2\2\2\u017b\u017c\5\u009dO\2\u017c\u017d\5\u008fH\2\u017d"+ 300 "\u017e\5{>\2\u017e\u017f\5}?\2\u017f\u0180\5y=\2\u0180\u0181\5\u008bF"+ 301 "\2\u0181\u0182\5u;\2\u0182\u0183\5\u0097L\2\u0183\u0184\5}?\2\u0184\u0185"+ 302 "\5{>\2\u0185L\3\2\2\2\u0186\u0187\5\u0099M\2\u0187\u0188\5\u009bN\2\u0188"+ 303 "\u0189\5u;\2\u0189\u018a\5\u009bN\2\u018a\u018b\5}?\2\u018b\u018c\5\u008d"+ 304 "G\2\u018c\u018d\5}?\2\u018d\u018e\5\u008fH\2\u018e\u018f\5\u009bN\2\u018f"+ 305 "\u0190\5\u0099M\2\u0190N\3\2\2\2\u0191\u0192\5\u0085C\2\u0192\u0193\5"+ 306 "\u008fH\2\u0193\u0194\5y=\2\u0194\u0195\5\u0091I\2\u0195\u0196\5\u008d"+ 307 "G\2\u0196\u0197\5\u0085C\2\u0197\u0198\5\u008fH\2\u0198\u0199\5\u0081"+ 308 "A\2\u0199P\3\2\2\2\u019a\u019b\5y=\2\u019b\u019c\5\u0091I\2\u019c\u019d"+ 309 "\5\u008fH\2\u019d\u019e\5\u008fH\2\u019e\u019f\5}?\2\u019f\u01a0\5y=\2"+ 310 "\u01a0\u01a1\5\u009bN\2\u01a1\u01a2\5\u0085C\2\u01a2\u01a3\5\u0091I\2"+ 311 "\u01a3\u01a4\5\u008fH\2\u01a4\u01a5\5\u0099M\2\u01a5R\3\2\2\2\u01a6\u01a7"+ 312 "\5u;\2\u01a7\u01a8\5\u008bF\2\u01a8\u01a9\5\u008bF\2\u01a9\u01aa\5\u0091"+ 313 "I\2\u01aa\u01ab\5\u00a1Q\2\u01abT\3\2\2\2\u01ac\u01ad\5\u0097L\2\u01ad"+ 314 "\u01ae\5}?\2\u01ae\u01af\5\u0087D\2\u01af\u01b0\5}?\2\u01b0\u01b1\5y="+ 315 "\2\u01b1\u01b2\5\u009bN\2\u01b2V\3\2\2\2\u01b3\u01b4\5\u0085C\2\u01b4"+ 316 "\u01b5\5\177@\2\u01b5X\3\2\2\2\u01b6\u01b7\5}?\2\u01b7\u01b8\5\u00a3R"+ 317 "\2\u01b8\u01b9\5\u0085C\2\u01b9\u01ba\5\u0099M\2\u01ba\u01bb\5\u009bN"+ 318 "\2\u01bb\u01bc\5\u0099M\2\u01bcZ\3\2\2\2\u01bd\u01be\5\u0099M\2\u01be"+ 319 "\u01bf\5\u00a1Q\2\u01bf\u01c0\5\u0085C\2\u01c0\u01c1\5\u009bN\2\u01c1"+ 320 "\u01c2\5y=\2\u01c2\u01c3\5\u0083B\2\u01c3\\\3\2\2\2\u01c4\u01c5\5\u0099"+ 321 "M\2\u01c5\u01c6\5y=\2\u01c6\u01c7\5\u0083B\2\u01c7\u01c8\5}?\2\u01c8\u01c9"+ 322 "\5{>\2\u01c9\u01ca\5\u009dO\2\u01ca\u01cb\5\u008bF\2\u01cb\u01cc\5}?\2"+ 323 "\u01cc^\3\2\2\2\u01cd\u01ce\5u;\2\u01ce\u01cf\5\u009bN\2\u01cf`\3\2\2"+ 324 "\2\u01d0\u01d1\5\u0085C\2\u01d1\u01d2\5\u008fH\2\u01d2\u01d3\5y=\2\u01d3"+ 325 "\u01d4\5\u008bF\2\u01d4\u01d5\5\u009dO\2\u01d5\u01d6\5{>\2\u01d6\u01d7"+ 326 "\5}?\2\u01d7b\3\2\2\2\u01d8\u01d9\5\u008fH\2\u01d9\u01da\5\u009dO\2\u01da"+ 327 "\u01db\5\u008bF\2\u01db\u01dc\5\u008bF\2\u01dcd\3\2\2\2\u01dd\u01e3\7"+ 328 "$\2\2\u01de\u01e2\n\2\2\2\u01df\u01e0\7$\2\2\u01e0\u01e2\7$\2\2\u01e1"+ 329 "\u01de\3\2\2\2\u01e1\u01df\3\2\2\2\u01e2\u01e5\3\2\2\2\u01e3\u01e1\3\2"+ 330 "\2\2\u01e3\u01e4\3\2\2\2\u01e4\u01e6\3\2\2\2\u01e5\u01e3\3\2\2\2\u01e6"+ 331 "\u0201\7$\2\2\u01e7\u01ed\7b\2\2\u01e8\u01ec\n\3\2\2\u01e9\u01ea\7b\2"+ 332 "\2\u01ea\u01ec\7b\2\2\u01eb\u01e8\3\2\2\2\u01eb\u01e9\3\2\2\2\u01ec\u01ef"+ 333 "\3\2\2\2\u01ed\u01eb\3\2\2\2\u01ed\u01ee\3\2\2\2\u01ee\u01f0\3\2\2\2\u01ef"+ 334 "\u01ed\3\2\2\2\u01f0\u0201\7b\2\2\u01f1\u01f5\7]\2\2\u01f2\u01f4\n\4\2"+ 335 "\2\u01f3\u01f2\3\2\2\2\u01f4\u01f7\3\2\2\2\u01f5\u01f3\3\2\2\2\u01f5\u01f6"+ 336 "\3\2\2\2\u01f6\u01f8\3\2\2\2\u01f7\u01f5\3\2\2\2\u01f8\u0201\7_\2\2\u01f9"+ 337 "\u01fd\t\5\2\2\u01fa\u01fc\t\6\2\2\u01fb\u01fa\3\2\2\2\u01fc\u01ff\3\2"+ 338 "\2\2\u01fd\u01fb\3\2\2\2\u01fd\u01fe\3\2\2\2\u01fe\u0201\3\2\2\2\u01ff"+ 339 "\u01fd\3\2\2\2\u0200\u01dd\3\2\2\2\u0200\u01e7\3\2\2\2\u0200\u01f1\3\2"+ 340 "\2\2\u0200\u01f9\3\2\2\2\u0201f\3\2\2\2\u0202\u0204\5s:\2\u0203\u0202"+ 341 "\3\2\2\2\u0204\u0205\3\2\2\2\u0205\u0203\3\2\2\2\u0205\u0206\3\2\2\2\u0206"+ 342 "\u020e\3\2\2\2\u0207\u020b\7\60\2\2\u0208\u020a\5s:\2\u0209\u0208\3\2"+ 343 "\2\2\u020a\u020d\3\2\2\2\u020b\u0209\3\2\2\2\u020b\u020c\3\2\2\2\u020c"+ 344 "\u020f\3\2\2\2\u020d\u020b\3\2\2\2\u020e\u0207\3\2\2\2\u020e\u020f\3\2"+ 345 "\2\2\u020f\u0219\3\2\2\2\u0210\u0212\5}?\2\u0211\u0213\t\7\2\2\u0212\u0211"+ 346 "\3\2\2\2\u0212\u0213\3\2\2\2\u0213\u0215\3\2\2\2\u0214\u0216\5s:\2\u0215"+ 347 "\u0214\3\2\2\2\u0216\u0217\3\2\2\2\u0217\u0215\3\2\2\2\u0217\u0218\3\2"+ 348 "\2\2\u0218\u021a\3\2\2\2\u0219\u0210\3\2\2\2\u0219\u021a\3\2\2\2\u021a"+ 349 "\u022d\3\2\2\2\u021b\u021d\7\60\2\2\u021c\u021e\5s:\2\u021d\u021c\3\2"+ 350 "\2\2\u021e\u021f\3\2\2\2\u021f\u021d\3\2\2\2\u021f\u0220\3\2\2\2\u0220"+ 351 "\u022a\3\2\2\2\u0221\u0223\5}?\2\u0222\u0224\t\7\2\2\u0223\u0222\3\2\2"+ 352 "\2\u0223\u0224\3\2\2\2\u0224\u0226\3\2\2\2\u0225\u0227\5s:\2\u0226\u0225"+ 353 "\3\2\2\2\u0227\u0228\3\2\2\2\u0228\u0226\3\2\2\2\u0228\u0229\3\2\2\2\u0229"+ 354 "\u022b\3\2\2\2\u022a\u0221\3\2\2\2\u022a\u022b\3\2\2\2\u022b\u022d\3\2"+ 355 "\2\2\u022c\u0203\3\2\2\2\u022c\u021b\3\2\2\2\u022dh\3\2\2\2\u022e\u0234"+ 356 "\7)\2\2\u022f\u0233\n\b\2\2\u0230\u0231\7)\2\2\u0231\u0233\7)\2\2\u0232"+ 357 "\u022f\3\2\2\2\u0232\u0230\3\2\2\2\u0233\u0236\3\2\2\2\u0234\u0232\3\2"+ 358 "\2\2\u0234\u0235\3\2\2\2\u0235\u0237\3\2\2\2\u0236\u0234\3\2\2\2\u0237"+ 359 "\u0238\7)\2\2\u0238j\3\2\2\2\u0239\u023a\7/\2\2\u023a\u023b\7/\2\2\u023b"+ 360 "\u023f\3\2\2\2\u023c\u023e\n\t\2\2\u023d\u023c\3\2\2\2\u023e\u0241\3\2"+ 361 "\2\2\u023f\u023d\3\2\2\2\u023f\u0240\3\2\2\2\u0240\u0242\3\2\2\2\u0241"+ 362 "\u023f\3\2\2\2\u0242\u0243\b\66\2\2\u0243l\3\2\2\2\u0244\u0245\7\61\2"+ 363 "\2\u0245\u0246\7,\2\2\u0246\u024a\3\2\2\2\u0247\u0249\13\2\2\2\u0248\u0247"+ 364 "\3\2\2\2\u0249\u024c\3\2\2\2\u024a\u024b\3\2\2\2\u024a\u0248\3\2\2\2\u024b"+ 365 "\u0250\3\2\2\2\u024c\u024a\3\2\2\2\u024d\u024e\7,\2\2\u024e\u0251\7\61"+ 366 "\2\2\u024f\u0251\7\2\2\3\u0250\u024d\3\2\2\2\u0250\u024f\3\2\2\2\u0251"+ 367 "\u0252\3\2\2\2\u0252\u0253\b\67\2\2\u0253n\3\2\2\2\u0254\u0255\t\n\2\2"+ 368 "\u0255\u0256\3\2\2\2\u0256\u0257\b8\2\2\u0257p\3\2\2\2\u0258\u0259\13"+ 369 "\2\2\2\u0259r\3\2\2\2\u025a\u025b\t\13\2\2\u025bt\3\2\2\2\u025c\u025d"+ 370 "\t\f\2\2\u025dv\3\2\2\2\u025e\u025f\t\r\2\2\u025fx\3\2\2\2\u0260\u0261"+ 371 "\t\16\2\2\u0261z\3\2\2\2\u0262\u0263\t\17\2\2\u0263|\3\2\2\2\u0264\u0265"+ 372 "\t\20\2\2\u0265~\3\2\2\2\u0266\u0267\t\21\2\2\u0267\u0080\3\2\2\2\u0268"+ 373 "\u0269\t\22\2\2\u0269\u0082\3\2\2\2\u026a\u026b\t\23\2\2\u026b\u0084\3"+ 374 "\2\2\2\u026c\u026d\t\24\2\2\u026d\u0086\3\2\2\2\u026e\u026f\t\25\2\2\u026f"+ 375 "\u0088\3\2\2\2\u0270\u0271\t\26\2\2\u0271\u008a\3\2\2\2\u0272\u0273\t"+ 376 "\27\2\2\u0273\u008c\3\2\2\2\u0274\u0275\t\30\2\2\u0275\u008e\3\2\2\2\u0276"+ 377 "\u0277\t\31\2\2\u0277\u0090\3\2\2\2\u0278\u0279\t\32\2\2\u0279\u0092\3"+ 378 "\2\2\2\u027a\u027b\t\33\2\2\u027b\u0094\3\2\2\2\u027c\u027d\t\34\2\2\u027d"+ 379 "\u0096\3\2\2\2\u027e\u027f\t\35\2\2\u027f\u0098\3\2\2\2\u0280\u0281\t"+ 380 "\36\2\2\u0281\u009a\3\2\2\2\u0282\u0283\t\37\2\2\u0283\u009c\3\2\2\2\u0284"+ 381 "\u0285\t \2\2\u0285\u009e\3\2\2\2\u0286\u0287\t!\2\2\u0287\u00a0\3\2\2"+ 382 "\2\u0288\u0289\t\"\2\2\u0289\u00a2\3\2\2\2\u028a\u028b\t#\2\2\u028b\u00a4"+ 383 "\3\2\2\2\u028c\u028d\t$\2\2\u028d\u00a6\3\2\2\2\u028e\u028f\t%\2\2\u028f"+ 384 "\u00a8\3\2\2\2\32\2\u01e1\u01e3\u01eb\u01ed\u01f5\u01fd\u0200\u0205\u020b"+ 385 "\u020e\u0212\u0217\u0219\u021f\u0223\u0228\u022a\u022c\u0232\u0234\u023f"+ 386 "\u024a\u0250\3\2\3\2"; 387 public static final ATN _ATN = 388 new ATNDeserializer().deserialize(_serializedATN.toCharArray()); 389 static { 390 _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; 391 for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { 392 _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); 393 } 394 } 395}