diff --git a/OAT.xml b/OAT.xml index a970fb32ce50ae280d4bbabeaf82a2b9dbc83218..014bc05f28fb3d329cfa2ca256460603cb373004 100644 --- a/OAT.xml +++ b/OAT.xml @@ -68,13 +68,14 @@ Note:If the text contains special characters, please escape them according to th + - + @@ -88,7 +89,7 @@ Note:If the text contains special characters, please escape them according to th - + diff --git a/src/intellij_plugin/ohosgen/build.gradle.kts b/src/intellij_plugin/ohosgen/build.gradle.kts index 0f6e167b281f2616e8de886e5eece759e07c5274..f24581308036f38312fc96f1309914b7e9e527ce 100644 --- a/src/intellij_plugin/ohosgen/build.gradle.kts +++ b/src/intellij_plugin/ohosgen/build.gradle.kts @@ -66,6 +66,7 @@ tasks.test { } dependencies { + implementation("org.antlr:antlr4-runtime:4.13.2") testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.0") // JUnit 5 API testImplementation("org.junit.vintage:junit-vintage-engine") { exclude(group = "junit", module = "junit") diff --git a/src/intellij_plugin/ohosgen/src/main/java/Dts2cpp.java b/src/intellij_plugin/ohosgen/src/main/java/Dts2cpp.java index d946ce770be4d1f830c751a184f6d72821949688..1396d98283f959e7d91d458d5870a569a2f03998 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/Dts2cpp.java +++ b/src/intellij_plugin/ohosgen/src/main/java/Dts2cpp.java @@ -55,7 +55,7 @@ public class Dts2cpp extends AnAction { * @param file 文件 */ private void doProgress(Project project, VirtualFile file) { - ParseTask pt = new ParseTask(project, "C", true); + ParseTask pt = new ParseTask(project, "TS", true); pt.setFile(file); ProgressManager.getInstance().run(pt); } @@ -73,6 +73,8 @@ public class Dts2cpp extends AnAction { /** * 更新插件线程状态 + * + * @return 线程类型 */ @Override @NotNull diff --git a/src/intellij_plugin/ohosgen/src/main/java/H2dtsAction.java b/src/intellij_plugin/ohosgen/src/main/java/H2dtsAction.java index 6b418f9c5687160242e7520720306a81df16e346..e863096e119365008784c3da2a3460748004fed2 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/H2dtsAction.java +++ b/src/intellij_plugin/ohosgen/src/main/java/H2dtsAction.java @@ -92,7 +92,11 @@ public class H2dtsAction extends AnAction { showProgress(e); } - // 新增方法:显式选择线程模型 + /** + * 显式选择线程模型 + * + * @return 线程类型 + */ @Override @NotNull public ActionUpdateThread getActionUpdateThread() { diff --git a/src/intellij_plugin/ohosgen/src/main/java/H2dtscppAction.java b/src/intellij_plugin/ohosgen/src/main/java/H2dtscppAction.java index 59520789ad8a76fbd28b6fffb397b2d1811383ef..79a03f33a6ec03d2f0ee4b42528981ec7cc62fa7 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/H2dtscppAction.java +++ b/src/intellij_plugin/ohosgen/src/main/java/H2dtscppAction.java @@ -94,6 +94,8 @@ public class H2dtscppAction extends AnAction { /** * 更新插件线程类型 + * + * @return 线程类型 */ @Override @NotNull diff --git a/src/intellij_plugin/ohosgen/src/main/java/H2hdf.java b/src/intellij_plugin/ohosgen/src/main/java/H2hdf.java index 3ba6a828cb229d3c6913039e389a204785022d23..692c55d354dcc1bc6cd87732869a9c445b7ac4b2 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/H2hdf.java +++ b/src/intellij_plugin/ohosgen/src/main/java/H2hdf.java @@ -94,6 +94,8 @@ public class H2hdf extends AnAction { /** * 获取线程类型 + * + * @return 线程类型 */ @Override @NotNull diff --git a/src/intellij_plugin/ohosgen/src/main/java/H2sa.java b/src/intellij_plugin/ohosgen/src/main/java/H2sa.java index 6b2c8836d7892aafc835d014128fcc533b22bb25..fdd616f047efc81a346131df1d6ee649c8d7535f 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/H2sa.java +++ b/src/intellij_plugin/ohosgen/src/main/java/H2sa.java @@ -93,6 +93,8 @@ public class H2sa extends AnAction { /** * 更新插件线程类型 + * + * @return 线程类型 */ @Override @NotNull diff --git a/src/intellij_plugin/ohosgen/src/main/java/OhCrossCompile.java b/src/intellij_plugin/ohosgen/src/main/java/OhCrossCompile.java index 7a0c4294bf4fa1eedf7583b48f476df7f9d02b92..5ea37ea1f1983cc796e75c538691ebd49cb6db1f 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/OhCrossCompile.java +++ b/src/intellij_plugin/ohosgen/src/main/java/OhCrossCompile.java @@ -44,6 +44,8 @@ public class OhCrossCompile extends AnAction { /** * 插件线程类型更新 + * + * @return 线程类型 */ @Override @NotNull diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptCustomListener.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptCustomListener.java new file mode 100644 index 0000000000000000000000000000000000000000..f68ed75ac66cde05378135c0ffe5a7d6dde4a76b --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptCustomListener.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr; + +/** + *

类名:该类用于xxx

+ * description typescript custom visitor + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class TypeScriptCustomListener extends TypeScriptParserBaseListener { + @Override + public void enterVariableDeclaration(TypeScriptParser.VariableDeclarationContext ctx) { + String varName = ctx.identifierOrKeyWord().getText(); + System.out.println("变量名: " + varName); + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptCustomVisitor.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptCustomVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..a2fb589bc4374fb5d1a04c151f25a4db6d0e8e77 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptCustomVisitor.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr; + +import java.util.List; +import java.util.ArrayList; + +/** + *

类名:该类用于xxx

+ * description typescript custom visitor + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class TypeScriptCustomVisitor extends TypeScriptParserBaseVisitor { + private List functionNames = new ArrayList<>(); + + public List getFunctionNames() { return functionNames; } + + @Override + public Void visitFunctionDeclaration(TypeScriptParser.FunctionDeclarationContext ctx) { + functionNames.add(ctx.identifier().getText()); + return super.visitFunctionDeclaration(ctx); + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptLexer.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptLexer.java new file mode 100644 index 0000000000000000000000000000000000000000..1203b7ae15e9facf69eb6beb186356595698ec9d --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptLexer.java @@ -0,0 +1,1434 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr; + +// Generated from TypeScriptLexer.g4 by ANTLR 4.13.2 +import antlr.TypeScriptLexerBase; +import org.antlr.v4.runtime.atn.LexerATNSimulator; +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue", "this-escape"}) +public class TypeScriptLexer extends TypeScriptLexerBase { + static { RuntimeMetaData.checkVersion("4.13.2", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + MultiLineComment=1, SingleLineComment=2, RegularExpressionLiteral=3, OpenBracket=4, + CloseBracket=5, OpenParen=6, CloseParen=7, OpenBrace=8, TemplateCloseBrace=9, + CloseBrace=10, SemiColon=11, Comma=12, Assign=13, QuestionMark=14, QuestionMarkDot=15, + Colon=16, Ellipsis=17, Dot=18, PlusPlus=19, MinusMinus=20, Plus=21, Minus=22, + BitNot=23, Not=24, Multiply=25, Divide=26, Modulus=27, Power=28, NullCoalesce=29, + Hashtag=30, LeftShiftArithmetic=31, LessThan=32, MoreThan=33, LessThanEquals=34, + GreaterThanEquals=35, Equals_=36, NotEquals=37, IdentityEquals=38, IdentityNotEquals=39, + BitAnd=40, BitXOr=41, BitOr=42, And=43, Or=44, MultiplyAssign=45, DivideAssign=46, + ModulusAssign=47, PlusAssign=48, MinusAssign=49, LeftShiftArithmeticAssign=50, + RightShiftArithmeticAssign=51, RightShiftLogicalAssign=52, BitAndAssign=53, + BitXorAssign=54, BitOrAssign=55, PowerAssign=56, NullishCoalescingAssign=57, + ARROW=58, NullLiteral=59, BooleanLiteral=60, DecimalLiteral=61, HexIntegerLiteral=62, + OctalIntegerLiteral=63, OctalIntegerLiteral2=64, BinaryIntegerLiteral=65, + BigHexIntegerLiteral=66, BigOctalIntegerLiteral=67, BigBinaryIntegerLiteral=68, + BigDecimalIntegerLiteral=69, Break=70, Do=71, Instanceof=72, Typeof=73, + Case=74, Else=75, New=76, Var=77, Catch=78, Finally=79, Return=80, Void=81, + Continue=82, For=83, Switch=84, While=85, Debugger=86, Function_=87, This=88, + With=89, Default=90, If=91, Throw=92, Delete=93, In=94, Try=95, As=96, + From=97, ReadOnly=98, Async=99, Await=100, Yield=101, YieldStar=102, Class=103, + Enum=104, Extends=105, Super=106, Const=107, Export=108, Import=109, Implements=110, + Let=111, Private=112, Public=113, Interface=114, Package=115, Protected=116, + Static=117, Any=118, Number=119, Never=120, Boolean=121, String=122, Unique=123, + Symbol=124, Undefined=125, Object=126, Of=127, KeyOf=128, TypeAlias=129, + Constructor=130, Namespace=131, Require=132, Module=133, Declare=134, + Abstract=135, Is=136, At=137, Identifier=138, StringLiteral=139, BackTick=140, + WhiteSpaces=141, LineTerminator=142, HtmlComment=143, CDataComment=144, + UnexpectedCharacter=145, TemplateStringEscapeAtom=146, TemplateStringStartExpression=147, + TemplateStringAtom=148; + public static final int + ERROR=2; + public static final int + TEMPLATE=1; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN", "ERROR" + }; + + public static String[] modeNames = { + "DEFAULT_MODE", "TEMPLATE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "MultiLineComment", "SingleLineComment", "RegularExpressionLiteral", + "OpenBracket", "CloseBracket", "OpenParen", "CloseParen", "OpenBrace", + "TemplateCloseBrace", "CloseBrace", "SemiColon", "Comma", "Assign", "QuestionMark", + "QuestionMarkDot", "Colon", "Ellipsis", "Dot", "PlusPlus", "MinusMinus", + "Plus", "Minus", "BitNot", "Not", "Multiply", "Divide", "Modulus", "Power", + "NullCoalesce", "Hashtag", "LeftShiftArithmetic", "LessThan", "MoreThan", + "LessThanEquals", "GreaterThanEquals", "Equals_", "NotEquals", "IdentityEquals", + "IdentityNotEquals", "BitAnd", "BitXOr", "BitOr", "And", "Or", "MultiplyAssign", + "DivideAssign", "ModulusAssign", "PlusAssign", "MinusAssign", "LeftShiftArithmeticAssign", + "RightShiftArithmeticAssign", "RightShiftLogicalAssign", "BitAndAssign", + "BitXorAssign", "BitOrAssign", "PowerAssign", "NullishCoalescingAssign", + "ARROW", "NullLiteral", "BooleanLiteral", "DecimalLiteral", "HexIntegerLiteral", + "OctalIntegerLiteral", "OctalIntegerLiteral2", "BinaryIntegerLiteral", + "BigHexIntegerLiteral", "BigOctalIntegerLiteral", "BigBinaryIntegerLiteral", + "BigDecimalIntegerLiteral", "Break", "Do", "Instanceof", "Typeof", "Case", + "Else", "New", "Var", "Catch", "Finally", "Return", "Void", "Continue", + "For", "Switch", "While", "Debugger", "Function_", "This", "With", "Default", + "If", "Throw", "Delete", "In", "Try", "As", "From", "ReadOnly", "Async", + "Await", "Yield", "YieldStar", "Class", "Enum", "Extends", "Super", "Const", + "Export", "Import", "Implements", "Let", "Private", "Public", "Interface", + "Package", "Protected", "Static", "Any", "Number", "Never", "Boolean", + "String", "Unique", "Symbol", "Undefined", "Object", "Of", "KeyOf", "TypeAlias", + "Constructor", "Namespace", "Require", "Module", "Declare", "Abstract", + "Is", "At", "Identifier", "StringLiteral", "BackTick", "WhiteSpaces", + "LineTerminator", "HtmlComment", "CDataComment", "UnexpectedCharacter", + "TemplateStringEscapeAtom", "BackTickInside", "TemplateStringStartExpression", + "TemplateStringAtom", "DoubleStringCharacter", "SingleStringCharacter", + "EscapeSequence", "CharacterEscapeSequence", "HexEscapeSequence", "UnicodeEscapeSequence", + "ExtendedUnicodeEscapeSequence", "SingleEscapeCharacter", "NonEscapeCharacter", + "EscapeCharacter", "LineContinuation", "HexDigit", "DecimalIntegerLiteral", + "ExponentPart", "IdentifierPart", "IdentifierStart", "RegularExpressionFirstChar", + "RegularExpressionChar", "RegularExpressionClassChar", "RegularExpressionBackslashSequence" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, null, null, null, "'['", "']'", "'('", "')'", "'{'", null, "'}'", + "';'", "','", "'='", "'?'", "'?.'", "':'", "'...'", "'.'", "'++'", "'--'", + "'+'", "'-'", "'~'", "'!'", "'*'", "'/'", "'%'", "'**'", "'??'", "'#'", + "'<<'", "'<'", "'>'", "'<='", "'>='", "'=='", "'!='", "'==='", "'!=='", + "'&'", "'^'", "'|'", "'&&'", "'||'", "'*='", "'/='", "'%='", "'+='", + "'-='", "'<<='", "'>>='", "'>>>='", "'&='", "'^='", "'|='", "'**='", + "'??='", "'=>'", "'null'", null, null, null, null, null, null, null, + null, null, null, "'break'", "'do'", "'instanceof'", "'typeof'", "'case'", + "'else'", "'new'", "'var'", "'catch'", "'finally'", "'return'", "'void'", + "'continue'", "'for'", "'switch'", "'while'", "'debugger'", "'function'", + "'this'", "'with'", "'default'", "'if'", "'throw'", "'delete'", "'in'", + "'try'", "'as'", "'from'", "'readonly'", "'async'", "'await'", "'yield'", + "'yield*'", "'class'", "'enum'", "'extends'", "'super'", "'const'", "'export'", + "'import'", "'implements'", "'let'", "'private'", "'public'", "'interface'", + "'package'", "'protected'", "'static'", "'any'", "'number'", "'never'", + "'boolean'", "'string'", "'unique'", "'symbol'", "'undefined'", "'object'", + "'of'", "'keyof'", "'type'", "'constructor'", "'namespace'", "'require'", + "'module'", "'declare'", "'abstract'", "'is'", "'@'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "MultiLineComment", "SingleLineComment", "RegularExpressionLiteral", + "OpenBracket", "CloseBracket", "OpenParen", "CloseParen", "OpenBrace", + "TemplateCloseBrace", "CloseBrace", "SemiColon", "Comma", "Assign", "QuestionMark", + "QuestionMarkDot", "Colon", "Ellipsis", "Dot", "PlusPlus", "MinusMinus", + "Plus", "Minus", "BitNot", "Not", "Multiply", "Divide", "Modulus", "Power", + "NullCoalesce", "Hashtag", "LeftShiftArithmetic", "LessThan", "MoreThan", + "LessThanEquals", "GreaterThanEquals", "Equals_", "NotEquals", "IdentityEquals", + "IdentityNotEquals", "BitAnd", "BitXOr", "BitOr", "And", "Or", "MultiplyAssign", + "DivideAssign", "ModulusAssign", "PlusAssign", "MinusAssign", "LeftShiftArithmeticAssign", + "RightShiftArithmeticAssign", "RightShiftLogicalAssign", "BitAndAssign", + "BitXorAssign", "BitOrAssign", "PowerAssign", "NullishCoalescingAssign", + "ARROW", "NullLiteral", "BooleanLiteral", "DecimalLiteral", "HexIntegerLiteral", + "OctalIntegerLiteral", "OctalIntegerLiteral2", "BinaryIntegerLiteral", + "BigHexIntegerLiteral", "BigOctalIntegerLiteral", "BigBinaryIntegerLiteral", + "BigDecimalIntegerLiteral", "Break", "Do", "Instanceof", "Typeof", "Case", + "Else", "New", "Var", "Catch", "Finally", "Return", "Void", "Continue", + "For", "Switch", "While", "Debugger", "Function_", "This", "With", "Default", + "If", "Throw", "Delete", "In", "Try", "As", "From", "ReadOnly", "Async", + "Await", "Yield", "YieldStar", "Class", "Enum", "Extends", "Super", "Const", + "Export", "Import", "Implements", "Let", "Private", "Public", "Interface", + "Package", "Protected", "Static", "Any", "Number", "Never", "Boolean", + "String", "Unique", "Symbol", "Undefined", "Object", "Of", "KeyOf", "TypeAlias", + "Constructor", "Namespace", "Require", "Module", "Declare", "Abstract", + "Is", "At", "Identifier", "StringLiteral", "BackTick", "WhiteSpaces", + "LineTerminator", "HtmlComment", "CDataComment", "UnexpectedCharacter", + "TemplateStringEscapeAtom", "TemplateStringStartExpression", "TemplateStringAtom" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + 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; + } + + + public TypeScriptLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "TypeScriptLexer.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + @Override + public void action(RuleContext _localctx, int ruleIndex, int actionIndex) { + switch (ruleIndex) { + case 7: + OpenBrace_action((RuleContext)_localctx, actionIndex); + break; + case 9: + CloseBrace_action((RuleContext)_localctx, actionIndex); + break; + case 138: + StringLiteral_action((RuleContext)_localctx, actionIndex); + break; + case 139: + BackTick_action((RuleContext)_localctx, actionIndex); + break; + case 146: + BackTickInside_action((RuleContext)_localctx, actionIndex); + break; + case 147: + TemplateStringStartExpression_action((RuleContext)_localctx, actionIndex); + break; + } + } + private void OpenBrace_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 0: + this.ProcessOpenBrace(); + break; + } + } + private void CloseBrace_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 1: + this.ProcessCloseBrace(); + break; + } + } + private void StringLiteral_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 2: + this.ProcessStringLiteral(); + break; + } + } + private void BackTick_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 3: + this.IncreaseTemplateDepth(); + break; + } + } + private void BackTickInside_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 4: + this.DecreaseTemplateDepth(); + break; + } + } + private void TemplateStringStartExpression_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 5: + this.StartTemplateString(); + break; + } + } + @Override + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 2: + return RegularExpressionLiteral_sempred((RuleContext)_localctx, predIndex); + case 8: + return TemplateCloseBrace_sempred((RuleContext)_localctx, predIndex); + case 62: + return OctalIntegerLiteral_sempred((RuleContext)_localctx, predIndex); + } + return true; + } + private boolean RegularExpressionLiteral_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return this.IsRegexPossible(); + } + return true; + } + private boolean TemplateCloseBrace_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 1: + return this.IsInTemplateString(); + } + return true; + } + private boolean OctalIntegerLiteral_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 2: + return !this.IsStrictMode(); + } + return true; + } + + public static final String _serializedATN = + "\u0004\u0000\u0094\u052f\u0006\uffff\uffff\u0006\uffff\uffff\u0002\u0000"+ + "\u0007\u0000\u0002\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003"+ + "\u0007\u0003\u0002\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006"+ + "\u0007\u0006\u0002\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002"+ + "\n\u0007\n\u0002\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002"+ + "\u000e\u0007\u000e\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002"+ + "\u0011\u0007\u0011\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002"+ + "\u0014\u0007\u0014\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002"+ + "\u0017\u0007\u0017\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002"+ + "\u001a\u0007\u001a\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002"+ + "\u001d\u0007\u001d\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002"+ + " \u0007 \u0002!\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002"+ + "%\u0007%\u0002&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002"+ + "*\u0007*\u0002+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002"+ + "/\u0007/\u00020\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u0002"+ + "4\u00074\u00025\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u0002"+ + "9\u00079\u0002:\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002"+ + ">\u0007>\u0002?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002"+ + "C\u0007C\u0002D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002"+ + "H\u0007H\u0002I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002"+ + "M\u0007M\u0002N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002"+ + "R\u0007R\u0002S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002"+ + "W\u0007W\u0002X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002"+ + "\\\u0007\\\u0002]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002"+ + "a\u0007a\u0002b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002"+ + "f\u0007f\u0002g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002"+ + "k\u0007k\u0002l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002"+ + "p\u0007p\u0002q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002"+ + "u\u0007u\u0002v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002"+ + "z\u0007z\u0002{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002"+ + "\u007f\u0007\u007f\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002"+ + "\u0082\u0007\u0082\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002"+ + "\u0085\u0007\u0085\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002"+ + "\u0088\u0007\u0088\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002"+ + "\u008b\u0007\u008b\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002"+ + "\u008e\u0007\u008e\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002"+ + "\u0091\u0007\u0091\u0002\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002"+ + "\u0094\u0007\u0094\u0002\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002"+ + "\u0097\u0007\u0097\u0002\u0098\u0007\u0098\u0002\u0099\u0007\u0099\u0002"+ + "\u009a\u0007\u009a\u0002\u009b\u0007\u009b\u0002\u009c\u0007\u009c\u0002"+ + "\u009d\u0007\u009d\u0002\u009e\u0007\u009e\u0002\u009f\u0007\u009f\u0002"+ + "\u00a0\u0007\u00a0\u0002\u00a1\u0007\u00a1\u0002\u00a2\u0007\u00a2\u0002"+ + "\u00a3\u0007\u00a3\u0002\u00a4\u0007\u00a4\u0002\u00a5\u0007\u00a5\u0002"+ + "\u00a6\u0007\u00a6\u0002\u00a7\u0007\u00a7\u0002\u00a8\u0007\u00a8\u0001"+ + "\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0005\u0000\u0159\b\u0000\n"+ + "\u0000\f\u0000\u015c\t\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001"+ + "\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005"+ + "\u0001\u0167\b\u0001\n\u0001\f\u0001\u016a\t\u0001\u0001\u0001\u0001\u0001"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0005\u0002\u0171\b\u0002\n\u0002"+ + "\f\u0002\u0174\t\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0005\u0002"+ + "\u0179\b\u0002\n\u0002\f\u0002\u017c\t\u0002\u0001\u0003\u0001\u0003\u0001"+ + "\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001"+ + "\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b"+ + "\u0001\t\u0001\t\u0001\t\u0001\n\u0001\n\u0001\u000b\u0001\u000b\u0001"+ + "\f\u0001\f\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f"+ + "\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011"+ + "\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013"+ + "\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0016"+ + "\u0001\u0016\u0001\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0019"+ + "\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001b"+ + "\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001e"+ + "\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001!"+ + "\u0001!\u0001!\u0001\"\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001$\u0001"+ + "$\u0001$\u0001%\u0001%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001"+ + "\'\u0001\'\u0001(\u0001(\u0001)\u0001)\u0001*\u0001*\u0001*\u0001+\u0001"+ + "+\u0001+\u0001,\u0001,\u0001,\u0001-\u0001-\u0001-\u0001.\u0001.\u0001"+ + ".\u0001/\u0001/\u0001/\u00010\u00010\u00010\u00011\u00011\u00011\u0001"+ + "1\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u00013\u00013\u0001"+ + "4\u00014\u00014\u00015\u00015\u00015\u00016\u00016\u00016\u00017\u0001"+ + "7\u00017\u00017\u00018\u00018\u00018\u00018\u00019\u00019\u00019\u0001"+ + ":\u0001:\u0001:\u0001:\u0001:\u0001;\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001;\u0003;\u0225\b;\u0001<\u0001<\u0001<\u0001<\u0005"+ + "<\u022b\b<\n<\f<\u022e\t<\u0001<\u0003<\u0231\b<\u0001<\u0001<\u0001<"+ + "\u0005<\u0236\b<\n<\f<\u0239\t<\u0001<\u0003<\u023c\b<\u0001<\u0001<\u0003"+ + "<\u0240\b<\u0003<\u0242\b<\u0001=\u0001=\u0001=\u0001=\u0005=\u0248\b"+ + "=\n=\f=\u024b\t=\u0001>\u0001>\u0004>\u024f\b>\u000b>\f>\u0250\u0001>"+ + "\u0001>\u0001?\u0001?\u0001?\u0001?\u0005?\u0259\b?\n?\f?\u025c\t?\u0001"+ + "@\u0001@\u0001@\u0001@\u0005@\u0262\b@\n@\f@\u0265\t@\u0001A\u0001A\u0001"+ + "A\u0001A\u0005A\u026b\bA\nA\fA\u026e\tA\u0001A\u0001A\u0001B\u0001B\u0001"+ + "B\u0001B\u0005B\u0276\bB\nB\fB\u0279\tB\u0001B\u0001B\u0001C\u0001C\u0001"+ + "C\u0001C\u0005C\u0281\bC\nC\fC\u0284\tC\u0001C\u0001C\u0001D\u0001D\u0001"+ + "D\u0001E\u0001E\u0001E\u0001E\u0001E\u0001E\u0001F\u0001F\u0001F\u0001"+ + "G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ + "G\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001I\u0001I\u0001"+ + "I\u0001I\u0001I\u0001J\u0001J\u0001J\u0001J\u0001J\u0001K\u0001K\u0001"+ + "K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001"+ + "O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001"+ + "P\u0001P\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001"+ + "Q\u0001R\u0001R\u0001R\u0001R\u0001S\u0001S\u0001S\u0001S\u0001S\u0001"+ + "S\u0001S\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001U\u0001U\u0001"+ + "U\u0001U\u0001U\u0001U\u0001U\u0001U\u0001U\u0001V\u0001V\u0001V\u0001"+ + "V\u0001V\u0001V\u0001V\u0001V\u0001V\u0001W\u0001W\u0001W\u0001W\u0001"+ + "W\u0001X\u0001X\u0001X\u0001X\u0001X\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001Z\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001"+ + "\\\u0001]\u0001]\u0001]\u0001^\u0001^\u0001^\u0001^\u0001_\u0001_\u0001"+ + "_\u0001`\u0001`\u0001`\u0001`\u0001`\u0001a\u0001a\u0001a\u0001a\u0001"+ + "a\u0001a\u0001a\u0001a\u0001a\u0001b\u0001b\u0001b\u0001b\u0001b\u0001"+ + "b\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001d\u0001d\u0001d\u0001"+ + "d\u0001d\u0001d\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001"+ + "f\u0001f\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001g\u0001g\u0001"+ + "g\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001j\u0001j\u0001j\u0001j\u0001j\u0001"+ + "j\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001k\u0001l\u0001l\u0001"+ + "l\u0001l\u0001l\u0001l\u0001l\u0001m\u0001m\u0001m\u0001m\u0001m\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001n\u0001"+ + "o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001o\u0001p\u0001p\u0001"+ + "p\u0001p\u0001p\u0001p\u0001p\u0001q\u0001q\u0001q\u0001q\u0001q\u0001"+ + "q\u0001q\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001r\u0001r\u0001"+ + "r\u0001r\u0001r\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001s\u0001"+ + "s\u0001s\u0001s\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001"+ + "u\u0001u\u0001u\u0001u\u0001v\u0001v\u0001v\u0001v\u0001v\u0001v\u0001"+ + "v\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001x\u0001x\u0001x\u0001"+ + "x\u0001x\u0001x\u0001x\u0001x\u0001y\u0001y\u0001y\u0001y\u0001y\u0001"+ + "y\u0001y\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001{\u0001"+ + "{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001|\u0001|\u0001|\u0001|\u0001"+ + "|\u0001|\u0001|\u0001|\u0001|\u0001|\u0001}\u0001}\u0001}\u0001}\u0001"+ + "}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001\u007f\u0001\u007f\u0001\u007f"+ + "\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u0080\u0001\u0080\u0001\u0080"+ + "\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0081\u0001\u0081\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082"+ + "\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082"+ + "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083"+ + "\u0001\u0083\u0001\u0083\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ + "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0085\u0001\u0085\u0001\u0085"+ + "\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0086"+ + "\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086\u0001\u0086"+ + "\u0001\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0088"+ + "\u0001\u0088\u0001\u0089\u0001\u0089\u0005\u0089\u0449\b\u0089\n\u0089"+ + "\f\u0089\u044c\t\u0089\u0001\u008a\u0001\u008a\u0005\u008a\u0450\b\u008a"+ + "\n\u008a\f\u008a\u0453\t\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0005"+ + "\u008a\u0458\b\u008a\n\u008a\f\u008a\u045b\t\u008a\u0001\u008a\u0003\u008a"+ + "\u045e\b\u008a\u0001\u008a\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008c\u0004\u008c\u0468\b\u008c\u000b\u008c"+ + "\f\u008c\u0469\u0001\u008c\u0001\u008c\u0001\u008d\u0001\u008d\u0001\u008d"+ + "\u0001\u008d\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0001\u008e\u0005\u008e\u0478\b\u008e\n\u008e\f\u008e\u047b\t\u008e\u0001"+ + "\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001\u008e\u0001"+ + "\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001"+ + "\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0005\u008f\u048e"+ + "\b\u008f\n\u008f\f\u008f\u0491\t\u008f\u0001\u008f\u0001\u008f\u0001\u008f"+ + "\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u0090\u0001\u0090\u0001\u0090"+ + "\u0001\u0090\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0092\u0001\u0092"+ + "\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0093\u0001\u0093"+ + "\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0094"+ + "\u0001\u0094\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0003\u0095"+ + "\u04b3\b\u0095\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0003\u0096"+ + "\u04b9\b\u0096\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097"+ + "\u0003\u0097\u04c0\b\u0097\u0001\u0098\u0001\u0098\u0003\u0098\u04c4\b"+ + "\u0098\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0004\u009a\u04d4\b\u009a\u000b\u009a\f"+ + "\u009a\u04d5\u0001\u009a\u0001\u009a\u0003\u009a\u04da\b\u009a\u0001\u009b"+ + "\u0001\u009b\u0001\u009b\u0004\u009b\u04df\b\u009b\u000b\u009b\f\u009b"+ + "\u04e0\u0001\u009b\u0001\u009b\u0001\u009c\u0001\u009c\u0001\u009d\u0001"+ + "\u009d\u0001\u009e\u0001\u009e\u0003\u009e\u04eb\b\u009e\u0001\u009f\u0001"+ + "\u009f\u0004\u009f\u04ef\b\u009f\u000b\u009f\f\u009f\u04f0\u0001\u00a0"+ + "\u0001\u00a0\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0005\u00a1\u04f8\b\u00a1"+ + "\n\u00a1\f\u00a1\u04fb\t\u00a1\u0003\u00a1\u04fd\b\u00a1\u0001\u00a2\u0001"+ + "\u00a2\u0003\u00a2\u0501\b\u00a2\u0001\u00a2\u0004\u00a2\u0504\b\u00a2"+ + "\u000b\u00a2\f\u00a2\u0505\u0001\u00a3\u0001\u00a3\u0003\u00a3\u050a\b"+ + "\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0003\u00a4\u050f\b\u00a4\u0001"+ + "\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0005\u00a5\u0515\b\u00a5\n"+ + "\u00a5\f\u00a5\u0518\t\u00a5\u0001\u00a5\u0003\u00a5\u051b\b\u00a5\u0001"+ + "\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0005\u00a6\u0521\b\u00a6\n"+ + "\u00a6\f\u00a6\u0524\t\u00a6\u0001\u00a6\u0003\u00a6\u0527\b\u00a6\u0001"+ + "\u00a7\u0001\u00a7\u0003\u00a7\u052b\b\u00a7\u0001\u00a8\u0001\u00a8\u0001"+ + "\u00a8\u0003\u015a\u0479\u048f\u0000\u00a9\u0002\u0001\u0004\u0002\u0006"+ + "\u0003\b\u0004\n\u0005\f\u0006\u000e\u0007\u0010\b\u0012\t\u0014\n\u0016"+ + "\u000b\u0018\f\u001a\r\u001c\u000e\u001e\u000f \u0010\"\u0011$\u0012&"+ + "\u0013(\u0014*\u0015,\u0016.\u00170\u00182\u00194\u001a6\u001b8\u001c"+ + ":\u001d<\u001e>\u001f@ B!D\"F#H$J%L&N\'P(R)T*V+X,Z-\\.^/`0b1d2f3h4j5l"+ + "6n7p8r9t:v;x~?\u0080@\u0082A\u0084B\u0086C\u0088D\u008aE\u008cF\u008e"+ + "G\u0090H\u0092I\u0094J\u0096K\u0098L\u009aM\u009cN\u009eO\u00a0P\u00a2"+ + "Q\u00a4R\u00a6S\u00a8T\u00aaU\u00acV\u00aeW\u00b0X\u00b2Y\u00b4Z\u00b6"+ + "[\u00b8\\\u00ba]\u00bc^\u00be_\u00c0`\u00c2a\u00c4b\u00c6c\u00c8d\u00ca"+ + "e\u00ccf\u00ceg\u00d0h\u00d2i\u00d4j\u00d6k\u00d8l\u00dam\u00dcn\u00de"+ + "o\u00e0p\u00e2q\u00e4r\u00e6s\u00e8t\u00eau\u00ecv\u00eew\u00f0x\u00f2"+ + "y\u00f4z\u00f6{\u00f8|\u00fa}\u00fc~\u00fe\u007f\u0100\u0080\u0102\u0081"+ + "\u0104\u0082\u0106\u0083\u0108\u0084\u010a\u0085\u010c\u0086\u010e\u0087"+ + "\u0110\u0088\u0112\u0089\u0114\u008a\u0116\u008b\u0118\u008c\u011a\u008d"+ + "\u011c\u008e\u011e\u008f\u0120\u0090\u0122\u0091\u0124\u0092\u0126\u0000"+ + "\u0128\u0093\u012a\u0094\u012c\u0000\u012e\u0000\u0130\u0000\u0132\u0000"+ + "\u0134\u0000\u0136\u0000\u0138\u0000\u013a\u0000\u013c\u0000\u013e\u0000"+ + "\u0140\u0000\u0142\u0000\u0144\u0000\u0146\u0000\u0148\u0000\u014a\u0000"+ + "\u014c\u0000\u014e\u0000\u0150\u0000\u0152\u0000\u0002\u0000\u0001\u001b"+ + "\u0003\u0000\n\n\r\r\u2028\u2029\u0001\u000009\u0002\u000009__\u0002\u0000"+ + "XXxx\u0003\u000009AFaf\u0001\u000007\u0002\u0000OOoo\u0002\u000007__\u0002"+ + "\u0000BBbb\u0001\u000001\u0002\u000001__\u0004\u0000\t\t\u000b\f \u00a0"+ + "\u00a0\u0002\u0000\\\\``\u0004\u0000\n\n\r\r\"\"\\\\\u0004\u0000\n\n\r"+ + "\r\'\'\\\\\t\u0000\"\"\'\'\\\\bbffnnrrttvv\f\u0000\n\n\r\r\"\"\'\'09\\"+ + "\\bbffnnrrtvxx\u0003\u000009uuxx\u0004\u000009AF__af\u0001\u000019\u0002"+ + "\u0000EEee\u0002\u0000++--\u0198\u000009__\u0300\u036f\u0483\u0487\u0591"+ + "\u05bd\u05bf\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05c7\u0610\u061a\u064b"+ + "\u0669\u0670\u0670\u06d6\u06dc\u06df\u06e4\u06e7\u06e8\u06ea\u06ed\u06f0"+ + "\u06f9\u0711\u0711\u0730\u074a\u07a6\u07b0\u07c0\u07c9\u07eb\u07f3\u07fd"+ + "\u07fd\u0816\u0819\u081b\u0823\u0825\u0827\u0829\u082d\u0859\u085b\u0898"+ + "\u089f\u08ca\u08e1\u08e3\u0902\u093a\u093a\u093c\u093c\u0941\u0948\u094d"+ + "\u094d\u0951\u0957\u0962\u0963\u0966\u096f\u0981\u0981\u09bc\u09bc\u09c1"+ + "\u09c4\u09cd\u09cd\u09e2\u09e3\u09e6\u09ef\u09fe\u09fe\u0a01\u0a02\u0a3c"+ + "\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b\u0a4d\u0a51\u0a51\u0a66\u0a71\u0a75"+ + "\u0a75\u0a81\u0a82\u0abc\u0abc\u0ac1\u0ac5\u0ac7\u0ac8\u0acd\u0acd\u0ae2"+ + "\u0ae3\u0ae6\u0aef\u0afa\u0aff\u0b01\u0b01\u0b3c\u0b3c\u0b3f\u0b3f\u0b41"+ + "\u0b44\u0b4d\u0b4d\u0b55\u0b56\u0b62\u0b63\u0b66\u0b6f\u0b82\u0b82\u0bc0"+ + "\u0bc0\u0bcd\u0bcd\u0be6\u0bef\u0c00\u0c00\u0c04\u0c04\u0c3c\u0c3c\u0c3e"+ + "\u0c40\u0c46\u0c48\u0c4a\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66\u0c6f\u0c81"+ + "\u0c81\u0cbc\u0cbc\u0cbf\u0cbf\u0cc6\u0cc6\u0ccc\u0ccd\u0ce2\u0ce3\u0ce6"+ + "\u0cef\u0d00\u0d01\u0d3b\u0d3c\u0d41\u0d44\u0d4d\u0d4d\u0d62\u0d63\u0d66"+ + "\u0d6f\u0d81\u0d81\u0dca\u0dca\u0dd2\u0dd4\u0dd6\u0dd6\u0de6\u0def\u0e31"+ + "\u0e31\u0e34\u0e3a\u0e47\u0e4e\u0e50\u0e59\u0eb1\u0eb1\u0eb4\u0ebc\u0ec8"+ + "\u0ece\u0ed0\u0ed9\u0f18\u0f19\u0f20\u0f29\u0f35\u0f35\u0f37\u0f37\u0f39"+ + "\u0f39\u0f71\u0f7e\u0f80\u0f84\u0f86\u0f87\u0f8d\u0f97\u0f99\u0fbc\u0fc6"+ + "\u0fc6\u102d\u1030\u1032\u1037\u1039\u103a\u103d\u103e\u1040\u1049\u1058"+ + "\u1059\u105e\u1060\u1071\u1074\u1082\u1082\u1085\u1086\u108d\u108d\u1090"+ + "\u1099\u109d\u109d\u135d\u135f\u1712\u1714\u1732\u1733\u1752\u1753\u1772"+ + "\u1773\u17b4\u17b5\u17b7\u17bd\u17c6\u17c6\u17c9\u17d3\u17dd\u17dd\u17e0"+ + "\u17e9\u180b\u180d\u180f\u1819\u1885\u1886\u18a9\u18a9\u1920\u1922\u1927"+ + "\u1928\u1932\u1932\u1939\u193b\u1946\u194f\u19d0\u19d9\u1a17\u1a18\u1a1b"+ + "\u1a1b\u1a56\u1a56\u1a58\u1a5e\u1a60\u1a60\u1a62\u1a62\u1a65\u1a6c\u1a73"+ + "\u1a7c\u1a7f\u1a89\u1a90\u1a99\u1ab0\u1abd\u1abf\u1ace\u1b00\u1b03\u1b34"+ + "\u1b34\u1b36\u1b3a\u1b3c\u1b3c\u1b42\u1b42\u1b50\u1b59\u1b6b\u1b73\u1b80"+ + "\u1b81\u1ba2\u1ba5\u1ba8\u1ba9\u1bab\u1bad\u1bb0\u1bb9\u1be6\u1be6\u1be8"+ + "\u1be9\u1bed\u1bed\u1bef\u1bf1\u1c2c\u1c33\u1c36\u1c37\u1c40\u1c49\u1c50"+ + "\u1c59\u1cd0\u1cd2\u1cd4\u1ce0\u1ce2\u1ce8\u1ced\u1ced\u1cf4\u1cf4\u1cf8"+ + "\u1cf9\u1dc0\u1dff\u200c\u200d\u203f\u2040\u2054\u2054\u20d0\u20dc\u20e1"+ + "\u20e1\u20e5\u20f0\u2cef\u2cf1\u2d7f\u2d7f\u2de0\u2dff\u302a\u302d\u3099"+ + "\u309a\u8000\ua620\u8000\ua629\u8000\ua66f\u8000\ua66f\u8000\ua674\u8000"+ + "\ua67d\u8000\ua69e\u8000\ua69f\u8000\ua6f0\u8000\ua6f1\u8000\ua802\u8000"+ + "\ua802\u8000\ua806\u8000\ua806\u8000\ua80b\u8000\ua80b\u8000\ua825\u8000"+ + "\ua826\u8000\ua82c\u8000\ua82c\u8000\ua8c4\u8000\ua8c5\u8000\ua8d0\u8000"+ + "\ua8d9\u8000\ua8e0\u8000\ua8f1\u8000\ua8ff\u8000\ua909\u8000\ua926\u8000"+ + "\ua92d\u8000\ua947\u8000\ua951\u8000\ua980\u8000\ua982\u8000\ua9b3\u8000"+ + "\ua9b3\u8000\ua9b6\u8000\ua9b9\u8000\ua9bc\u8000\ua9bd\u8000\ua9d0\u8000"+ + "\ua9d9\u8000\ua9e5\u8000\ua9e5\u8000\ua9f0\u8000\ua9f9\u8000\uaa29\u8000"+ + "\uaa2e\u8000\uaa31\u8000\uaa32\u8000\uaa35\u8000\uaa36\u8000\uaa43\u8000"+ + "\uaa43\u8000\uaa4c\u8000\uaa4c\u8000\uaa50\u8000\uaa59\u8000\uaa7c\u8000"+ + "\uaa7c\u8000\uaab0\u8000\uaab0\u8000\uaab2\u8000\uaab4\u8000\uaab7\u8000"+ + "\uaab8\u8000\uaabe\u8000\uaabf\u8000\uaac1\u8000\uaac1\u8000\uaaec\u8000"+ + "\uaaed\u8000\uaaf6\u8000\uaaf6\u8000\uabe5\u8000\uabe5\u8000\uabe8\u8000"+ + "\uabe8\u8000\uabed\u8000\uabed\u8000\uabf0\u8000\uabf9\u8000\ufb1e\u8000"+ + "\ufb1e\u8000\ufe00\u8000\ufe0f\u8000\ufe20\u8000\ufe2f\u8000\ufe33\u8000"+ + "\ufe34\u8000\ufe4d\u8000\ufe4f\u8000\uff10\u8000\uff19\u8000\uff3f\u8000"+ + "\uff3f\u8001\u01fd\u8001\u01fd\u8001\u02e0\u8001\u02e0\u8001\u0376\u8001"+ + "\u037a\u8001\u04a0\u8001\u04a9\u8001\u0a01\u8001\u0a03\u8001\u0a05\u8001"+ + "\u0a06\u8001\u0a0c\u8001\u0a0f\u8001\u0a38\u8001\u0a3a\u8001\u0a3f\u8001"+ + "\u0a3f\u8001\u0ae5\u8001\u0ae6\u8001\u0d24\u8001\u0d27\u8001\u0d30\u8001"+ + "\u0d39\u8001\u0eab\u8001\u0eac\u8001\u0efd\u8001\u0eff\u8001\u0f46\u8001"+ + "\u0f50\u8001\u0f82\u8001\u0f85\u8001\u1001\u8001\u1001\u8001\u1038\u8001"+ + "\u1046\u8001\u1066\u8001\u1070\u8001\u1073\u8001\u1074\u8001\u107f\u8001"+ + "\u1081\u8001\u10b3\u8001\u10b6\u8001\u10b9\u8001\u10ba\u8001\u10c2\u8001"+ + "\u10c2\u8001\u10f0\u8001\u10f9\u8001\u1100\u8001\u1102\u8001\u1127\u8001"+ + "\u112b\u8001\u112d\u8001\u1134\u8001\u1136\u8001\u113f\u8001\u1173\u8001"+ + "\u1173\u8001\u1180\u8001\u1181\u8001\u11b6\u8001\u11be\u8001\u11c9\u8001"+ + "\u11cc\u8001\u11cf\u8001\u11d9\u8001\u122f\u8001\u1231\u8001\u1234\u8001"+ + "\u1234\u8001\u1236\u8001\u1237\u8001\u123e\u8001\u123e\u8001\u1241\u8001"+ + "\u1241\u8001\u12df\u8001\u12df\u8001\u12e3\u8001\u12ea\u8001\u12f0\u8001"+ + "\u12f9\u8001\u1300\u8001\u1301\u8001\u133b\u8001\u133c\u8001\u1340\u8001"+ + "\u1340\u8001\u1366\u8001\u136c\u8001\u1370\u8001\u1374\u8001\u1438\u8001"+ + "\u143f\u8001\u1442\u8001\u1444\u8001\u1446\u8001\u1446\u8001\u1450\u8001"+ + "\u1459\u8001\u145e\u8001\u145e\u8001\u14b3\u8001\u14b8\u8001\u14ba\u8001"+ + "\u14ba\u8001\u14bf\u8001\u14c0\u8001\u14c2\u8001\u14c3\u8001\u14d0\u8001"+ + "\u14d9\u8001\u15b2\u8001\u15b5\u8001\u15bc\u8001\u15bd\u8001\u15bf\u8001"+ + "\u15c0\u8001\u15dc\u8001\u15dd\u8001\u1633\u8001\u163a\u8001\u163d\u8001"+ + "\u163d\u8001\u163f\u8001\u1640\u8001\u1650\u8001\u1659\u8001\u16ab\u8001"+ + "\u16ab\u8001\u16ad\u8001\u16ad\u8001\u16b0\u8001\u16b5\u8001\u16b7\u8001"+ + "\u16b7\u8001\u16c0\u8001\u16c9\u8001\u171d\u8001\u171f\u8001\u1722\u8001"+ + "\u1725\u8001\u1727\u8001\u172b\u8001\u1730\u8001\u1739\u8001\u182f\u8001"+ + "\u1837\u8001\u1839\u8001\u183a\u8001\u18e0\u8001\u18e9\u8001\u193b\u8001"+ + "\u193c\u8001\u193e\u8001\u193e\u8001\u1943\u8001\u1943\u8001\u1950\u8001"+ + "\u1959\u8001\u19d4\u8001\u19d7\u8001\u19da\u8001\u19db\u8001\u19e0\u8001"+ + "\u19e0\u8001\u1a01\u8001\u1a0a\u8001\u1a33\u8001\u1a38\u8001\u1a3b\u8001"+ + "\u1a3e\u8001\u1a47\u8001\u1a47\u8001\u1a51\u8001\u1a56\u8001\u1a59\u8001"+ + "\u1a5b\u8001\u1a8a\u8001\u1a96\u8001\u1a98\u8001\u1a99\u8001\u1c30\u8001"+ + "\u1c36\u8001\u1c38\u8001\u1c3d\u8001\u1c3f\u8001\u1c3f\u8001\u1c50\u8001"+ + "\u1c59\u8001\u1c92\u8001\u1ca7\u8001\u1caa\u8001\u1cb0\u8001\u1cb2\u8001"+ + "\u1cb3\u8001\u1cb5\u8001\u1cb6\u8001\u1d31\u8001\u1d36\u8001\u1d3a\u8001"+ + "\u1d3a\u8001\u1d3c\u8001\u1d3d\u8001\u1d3f\u8001\u1d45\u8001\u1d47\u8001"+ + "\u1d47\u8001\u1d50\u8001\u1d59\u8001\u1d90\u8001\u1d91\u8001\u1d95\u8001"+ + "\u1d95\u8001\u1d97\u8001\u1d97\u8001\u1da0\u8001\u1da9\u8001\u1ef3\u8001"+ + "\u1ef4\u8001\u1f00\u8001\u1f01\u8001\u1f36\u8001\u1f3a\u8001\u1f40\u8001"+ + "\u1f40\u8001\u1f42\u8001\u1f42\u8001\u1f50\u8001\u1f59\u8001\u3440\u8001"+ + "\u3440\u8001\u3447\u8001\u3455\u8001\u6a60\u8001\u6a69\u8001\u6ac0\u8001"+ + "\u6ac9\u8001\u6af0\u8001\u6af4\u8001\u6b30\u8001\u6b36\u8001\u6b50\u8001"+ + "\u6b59\u8001\u6f4f\u8001\u6f4f\u8001\u6f8f\u8001\u6f92\u8001\u6fe4\u8001"+ + "\u6fe4\u8001\ubc9d\u8001\ubc9e\u8001\ucf00\u8001\ucf2d\u8001\ucf30\u8001"+ + "\ucf46\u8001\ud167\u8001\ud169\u8001\ud17b\u8001\ud182\u8001\ud185\u8001"+ + "\ud18b\u8001\ud1aa\u8001\ud1ad\u8001\ud242\u8001\ud244\u8001\ud7ce\u8001"+ + "\ud7ff\u8001\uda00\u8001\uda36\u8001\uda3b\u8001\uda6c\u8001\uda75\u8001"+ + "\uda75\u8001\uda84\u8001\uda84\u8001\uda9b\u8001\uda9f\u8001\udaa1\u8001"+ + "\udaaf\u8001\ue000\u8001\ue006\u8001\ue008\u8001\ue018\u8001\ue01b\u8001"+ + "\ue021\u8001\ue023\u8001\ue024\u8001\ue026\u8001\ue02a\u8001\ue08f\u8001"+ + "\ue08f\u8001\ue130\u8001\ue136\u8001\ue140\u8001\ue149\u8001\ue2ae\u8001"+ + "\ue2ae\u8001\ue2ec\u8001\ue2f9\u8001\ue4ec\u8001\ue4f9\u8001\ue8d0\u8001"+ + "\ue8d6\u8001\ue944\u8001\ue94a\u8001\ue950\u8001\ue959\u8001\ufbf0\u8001"+ + "\ufbf9\u800e\u0100\u800e\u01ef\u0295\u0000$$AZ__az\u00aa\u00aa\u00b5\u00b5"+ + "\u00ba\u00ba\u00c0\u00d6\u00d8\u00f6\u00f8\u02c1\u02c6\u02d1\u02e0\u02e4"+ + "\u02ec\u02ec\u02ee\u02ee\u0370\u0374\u0376\u0377\u037a\u037d\u037f\u037f"+ + "\u0386\u0386\u0388\u038a\u038c\u038c\u038e\u03a1\u03a3\u03f5\u03f7\u0481"+ + "\u048a\u052f\u0531\u0556\u0559\u0559\u0560\u0588\u05d0\u05ea\u05ef\u05f2"+ + "\u0620\u064a\u066e\u066f\u0671\u06d3\u06d5\u06d5\u06e5\u06e6\u06ee\u06ef"+ + "\u06fa\u06fc\u06ff\u06ff\u0710\u0710\u0712\u072f\u074d\u07a5\u07b1\u07b1"+ + "\u07ca\u07ea\u07f4\u07f5\u07fa\u07fa\u0800\u0815\u081a\u081a\u0824\u0824"+ + "\u0828\u0828\u0840\u0858\u0860\u086a\u0870\u0887\u0889\u088e\u08a0\u08c9"+ + "\u0904\u0939\u093d\u093d\u0950\u0950\u0958\u0961\u0971\u0980\u0985\u098c"+ + "\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09bd\u09bd"+ + "\u09ce\u09ce\u09dc\u09dd\u09df\u09e1\u09f0\u09f1\u09fc\u09fc\u0a05\u0a0a"+ + "\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39"+ + "\u0a59\u0a5c\u0a5e\u0a5e\u0a72\u0a74\u0a85\u0a8d\u0a8f\u0a91\u0a93\u0aa8"+ + "\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abd\u0abd\u0ad0\u0ad0\u0ae0\u0ae1"+ + "\u0af9\u0af9\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33"+ + "\u0b35\u0b39\u0b3d\u0b3d\u0b5c\u0b5d\u0b5f\u0b61\u0b71\u0b71\u0b83\u0b83"+ + "\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f"+ + "\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb9\u0bd0\u0bd0\u0c05\u0c0c\u0c0e\u0c10"+ + "\u0c12\u0c28\u0c2a\u0c39\u0c3d\u0c3d\u0c58\u0c5a\u0c5d\u0c5d\u0c60\u0c61"+ + "\u0c80\u0c80\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9"+ + "\u0cbd\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04\u0d0c\u0d0e\u0d10"+ + "\u0d12\u0d3a\u0d3d\u0d3d\u0d4e\u0d4e\u0d54\u0d56\u0d5f\u0d61\u0d7a\u0d7f"+ + "\u0d85\u0d96\u0d9a\u0db1\u0db3\u0dbb\u0dbd\u0dbd\u0dc0\u0dc6\u0e01\u0e30"+ + "\u0e32\u0e33\u0e40\u0e46\u0e81\u0e82\u0e84\u0e84\u0e86\u0e8a\u0e8c\u0ea3"+ + "\u0ea5\u0ea5\u0ea7\u0eb0\u0eb2\u0eb3\u0ebd\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6"+ + "\u0edc\u0edf\u0f00\u0f00\u0f40\u0f47\u0f49\u0f6c\u0f88\u0f8c\u1000\u102a"+ + "\u103f\u103f\u1050\u1055\u105a\u105d\u1061\u1061\u1065\u1066\u106e\u1070"+ + "\u1075\u1081\u108e\u108e\u10a0\u10c5\u10c7\u10c7\u10cd\u10cd\u10d0\u10fa"+ + "\u10fc\u1248\u124a\u124d\u1250\u1256\u1258\u1258\u125a\u125d\u1260\u1288"+ + "\u128a\u128d\u1290\u12b0\u12b2\u12b5\u12b8\u12be\u12c0\u12c0\u12c2\u12c5"+ + "\u12c8\u12d6\u12d8\u1310\u1312\u1315\u1318\u135a\u1380\u138f\u13a0\u13f5"+ + "\u13f8\u13fd\u1401\u166c\u166f\u167f\u1681\u169a\u16a0\u16ea\u16f1\u16f8"+ + "\u1700\u1711\u171f\u1731\u1740\u1751\u1760\u176c\u176e\u1770\u1780\u17b3"+ + "\u17d7\u17d7\u17dc\u17dc\u1820\u1878\u1880\u1884\u1887\u18a8\u18aa\u18aa"+ + "\u18b0\u18f5\u1900\u191e\u1950\u196d\u1970\u1974\u1980\u19ab\u19b0\u19c9"+ + "\u1a00\u1a16\u1a20\u1a54\u1aa7\u1aa7\u1b05\u1b33\u1b45\u1b4c\u1b83\u1ba0"+ + "\u1bae\u1baf\u1bba\u1be5\u1c00\u1c23\u1c4d\u1c4f\u1c5a\u1c7d\u1c80\u1c88"+ + "\u1c90\u1cba\u1cbd\u1cbf\u1ce9\u1cec\u1cee\u1cf3\u1cf5\u1cf6\u1cfa\u1cfa"+ + "\u1d00\u1dbf\u1e00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57"+ + "\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc"+ + "\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec"+ + "\u1ff2\u1ff4\u1ff6\u1ffc\u2071\u2071\u207f\u207f\u2090\u209c\u2102\u2102"+ + "\u2107\u2107\u210a\u2113\u2115\u2115\u2119\u211d\u2124\u2124\u2126\u2126"+ + "\u2128\u2128\u212a\u212d\u212f\u2139\u213c\u213f\u2145\u2149\u214e\u214e"+ + "\u2183\u2184\u2c00\u2ce4\u2ceb\u2cee\u2cf2\u2cf3\u2d00\u2d25\u2d27\u2d27"+ + "\u2d2d\u2d2d\u2d30\u2d67\u2d6f\u2d6f\u2d80\u2d96\u2da0\u2da6\u2da8\u2dae"+ + "\u2db0\u2db6\u2db8\u2dbe\u2dc0\u2dc6\u2dc8\u2dce\u2dd0\u2dd6\u2dd8\u2dde"+ + "\u2e2f\u2e2f\u3005\u3006\u3031\u3035\u303b\u303c\u3041\u3096\u309d\u309f"+ + "\u30a1\u30fa\u30fc\u30ff\u3105\u312f\u3131\u318e\u31a0\u31bf\u31f0\u31ff"+ + "\u3400\u4dbf\u4e00\u8000\ua48c\u8000\ua4d0\u8000\ua4fd\u8000\ua500\u8000"+ + "\ua60c\u8000\ua610\u8000\ua61f\u8000\ua62a\u8000\ua62b\u8000\ua640\u8000"+ + "\ua66e\u8000\ua67f\u8000\ua69d\u8000\ua6a0\u8000\ua6e5\u8000\ua717\u8000"+ + "\ua71f\u8000\ua722\u8000\ua788\u8000\ua78b\u8000\ua7ca\u8000\ua7d0\u8000"+ + "\ua7d1\u8000\ua7d3\u8000\ua7d3\u8000\ua7d5\u8000\ua7d9\u8000\ua7f2\u8000"+ + "\ua801\u8000\ua803\u8000\ua805\u8000\ua807\u8000\ua80a\u8000\ua80c\u8000"+ + "\ua822\u8000\ua840\u8000\ua873\u8000\ua882\u8000\ua8b3\u8000\ua8f2\u8000"+ + "\ua8f7\u8000\ua8fb\u8000\ua8fb\u8000\ua8fd\u8000\ua8fe\u8000\ua90a\u8000"+ + "\ua925\u8000\ua930\u8000\ua946\u8000\ua960\u8000\ua97c\u8000\ua984\u8000"+ + "\ua9b2\u8000\ua9cf\u8000\ua9cf\u8000\ua9e0\u8000\ua9e4\u8000\ua9e6\u8000"+ + "\ua9ef\u8000\ua9fa\u8000\ua9fe\u8000\uaa00\u8000\uaa28\u8000\uaa40\u8000"+ + "\uaa42\u8000\uaa44\u8000\uaa4b\u8000\uaa60\u8000\uaa76\u8000\uaa7a\u8000"+ + "\uaa7a\u8000\uaa7e\u8000\uaaaf\u8000\uaab1\u8000\uaab1\u8000\uaab5\u8000"+ + "\uaab6\u8000\uaab9\u8000\uaabd\u8000\uaac0\u8000\uaac0\u8000\uaac2\u8000"+ + "\uaac2\u8000\uaadb\u8000\uaadd\u8000\uaae0\u8000\uaaea\u8000\uaaf2\u8000"+ + "\uaaf4\u8000\uab01\u8000\uab06\u8000\uab09\u8000\uab0e\u8000\uab11\u8000"+ + "\uab16\u8000\uab20\u8000\uab26\u8000\uab28\u8000\uab2e\u8000\uab30\u8000"+ + "\uab5a\u8000\uab5c\u8000\uab69\u8000\uab70\u8000\uabe2\u8000\uac00\u8000"+ + "\ud7a3\u8000\ud7b0\u8000\ud7c6\u8000\ud7cb\u8000\ud7fb\u8000\uf900\u8000"+ + "\ufa6d\u8000\ufa70\u8000\ufad9\u8000\ufb00\u8000\ufb06\u8000\ufb13\u8000"+ + "\ufb17\u8000\ufb1d\u8000\ufb1d\u8000\ufb1f\u8000\ufb28\u8000\ufb2a\u8000"+ + "\ufb36\u8000\ufb38\u8000\ufb3c\u8000\ufb3e\u8000\ufb3e\u8000\ufb40\u8000"+ + "\ufb41\u8000\ufb43\u8000\ufb44\u8000\ufb46\u8000\ufbb1\u8000\ufbd3\u8000"+ + "\ufd3d\u8000\ufd50\u8000\ufd8f\u8000\ufd92\u8000\ufdc7\u8000\ufdf0\u8000"+ + "\ufdfb\u8000\ufe70\u8000\ufe74\u8000\ufe76\u8000\ufefc\u8000\uff21\u8000"+ + "\uff3a\u8000\uff41\u8000\uff5a\u8000\uff66\u8000\uffbe\u8000\uffc2\u8000"+ + "\uffc7\u8000\uffca\u8000\uffcf\u8000\uffd2\u8000\uffd7\u8000\uffda\u8000"+ + "\uffdc\u8001\u0000\u8001\u000b\u8001\r\u8001&\u8001(\u8001:\u8001<\u8001"+ + "=\u8001?\u8001M\u8001P\u8001]\u8001\u0080\u8001\u00fa\u8001\u0280\u8001"+ + "\u029c\u8001\u02a0\u8001\u02d0\u8001\u0300\u8001\u031f\u8001\u032d\u8001"+ + "\u0340\u8001\u0342\u8001\u0349\u8001\u0350\u8001\u0375\u8001\u0380\u8001"+ + "\u039d\u8001\u03a0\u8001\u03c3\u8001\u03c8\u8001\u03cf\u8001\u0400\u8001"+ + "\u049d\u8001\u04b0\u8001\u04d3\u8001\u04d8\u8001\u04fb\u8001\u0500\u8001"+ + "\u0527\u8001\u0530\u8001\u0563\u8001\u0570\u8001\u057a\u8001\u057c\u8001"+ + "\u058a\u8001\u058c\u8001\u0592\u8001\u0594\u8001\u0595\u8001\u0597\u8001"+ + "\u05a1\u8001\u05a3\u8001\u05b1\u8001\u05b3\u8001\u05b9\u8001\u05bb\u8001"+ + "\u05bc\u8001\u0600\u8001\u0736\u8001\u0740\u8001\u0755\u8001\u0760\u8001"+ + "\u0767\u8001\u0780\u8001\u0785\u8001\u0787\u8001\u07b0\u8001\u07b2\u8001"+ + "\u07ba\u8001\u0800\u8001\u0805\u8001\u0808\u8001\u0808\u8001\u080a\u8001"+ + "\u0835\u8001\u0837\u8001\u0838\u8001\u083c\u8001\u083c\u8001\u083f\u8001"+ + "\u0855\u8001\u0860\u8001\u0876\u8001\u0880\u8001\u089e\u8001\u08e0\u8001"+ + "\u08f2\u8001\u08f4\u8001\u08f5\u8001\u0900\u8001\u0915\u8001\u0920\u8001"+ + "\u0939\u8001\u0980\u8001\u09b7\u8001\u09be\u8001\u09bf\u8001\u0a00\u8001"+ + "\u0a00\u8001\u0a10\u8001\u0a13\u8001\u0a15\u8001\u0a17\u8001\u0a19\u8001"+ + "\u0a35\u8001\u0a60\u8001\u0a7c\u8001\u0a80\u8001\u0a9c\u8001\u0ac0\u8001"+ + "\u0ac7\u8001\u0ac9\u8001\u0ae4\u8001\u0b00\u8001\u0b35\u8001\u0b40\u8001"+ + "\u0b55\u8001\u0b60\u8001\u0b72\u8001\u0b80\u8001\u0b91\u8001\u0c00\u8001"+ + "\u0c48\u8001\u0c80\u8001\u0cb2\u8001\u0cc0\u8001\u0cf2\u8001\u0d00\u8001"+ + "\u0d23\u8001\u0e80\u8001\u0ea9\u8001\u0eb0\u8001\u0eb1\u8001\u0f00\u8001"+ + "\u0f1c\u8001\u0f27\u8001\u0f27\u8001\u0f30\u8001\u0f45\u8001\u0f70\u8001"+ + "\u0f81\u8001\u0fb0\u8001\u0fc4\u8001\u0fe0\u8001\u0ff6\u8001\u1003\u8001"+ + "\u1037\u8001\u1071\u8001\u1072\u8001\u1075\u8001\u1075\u8001\u1083\u8001"+ + "\u10af\u8001\u10d0\u8001\u10e8\u8001\u1103\u8001\u1126\u8001\u1144\u8001"+ + "\u1144\u8001\u1147\u8001\u1147\u8001\u1150\u8001\u1172\u8001\u1176\u8001"+ + "\u1176\u8001\u1183\u8001\u11b2\u8001\u11c1\u8001\u11c4\u8001\u11da\u8001"+ + "\u11da\u8001\u11dc\u8001\u11dc\u8001\u1200\u8001\u1211\u8001\u1213\u8001"+ + "\u122b\u8001\u123f\u8001\u1240\u8001\u1280\u8001\u1286\u8001\u1288\u8001"+ + "\u1288\u8001\u128a\u8001\u128d\u8001\u128f\u8001\u129d\u8001\u129f\u8001"+ + "\u12a8\u8001\u12b0\u8001\u12de\u8001\u1305\u8001\u130c\u8001\u130f\u8001"+ + "\u1310\u8001\u1313\u8001\u1328\u8001\u132a\u8001\u1330\u8001\u1332\u8001"+ + "\u1333\u8001\u1335\u8001\u1339\u8001\u133d\u8001\u133d\u8001\u1350\u8001"+ + "\u1350\u8001\u135d\u8001\u1361\u8001\u1400\u8001\u1434\u8001\u1447\u8001"+ + "\u144a\u8001\u145f\u8001\u1461\u8001\u1480\u8001\u14af\u8001\u14c4\u8001"+ + "\u14c5\u8001\u14c7\u8001\u14c7\u8001\u1580\u8001\u15ae\u8001\u15d8\u8001"+ + "\u15db\u8001\u1600\u8001\u162f\u8001\u1644\u8001\u1644\u8001\u1680\u8001"+ + "\u16aa\u8001\u16b8\u8001\u16b8\u8001\u1700\u8001\u171a\u8001\u1740\u8001"+ + "\u1746\u8001\u1800\u8001\u182b\u8001\u18a0\u8001\u18df\u8001\u18ff\u8001"+ + "\u1906\u8001\u1909\u8001\u1909\u8001\u190c\u8001\u1913\u8001\u1915\u8001"+ + "\u1916\u8001\u1918\u8001\u192f\u8001\u193f\u8001\u193f\u8001\u1941\u8001"+ + "\u1941\u8001\u19a0\u8001\u19a7\u8001\u19aa\u8001\u19d0\u8001\u19e1\u8001"+ + "\u19e1\u8001\u19e3\u8001\u19e3\u8001\u1a00\u8001\u1a00\u8001\u1a0b\u8001"+ + "\u1a32\u8001\u1a3a\u8001\u1a3a\u8001\u1a50\u8001\u1a50\u8001\u1a5c\u8001"+ + "\u1a89\u8001\u1a9d\u8001\u1a9d\u8001\u1ab0\u8001\u1af8\u8001\u1c00\u8001"+ + "\u1c08\u8001\u1c0a\u8001\u1c2e\u8001\u1c40\u8001\u1c40\u8001\u1c72\u8001"+ + "\u1c8f\u8001\u1d00\u8001\u1d06\u8001\u1d08\u8001\u1d09\u8001\u1d0b\u8001"+ + "\u1d30\u8001\u1d46\u8001\u1d46\u8001\u1d60\u8001\u1d65\u8001\u1d67\u8001"+ + "\u1d68\u8001\u1d6a\u8001\u1d89\u8001\u1d98\u8001\u1d98\u8001\u1ee0\u8001"+ + "\u1ef2\u8001\u1f02\u8001\u1f02\u8001\u1f04\u8001\u1f10\u8001\u1f12\u8001"+ + "\u1f33\u8001\u1fb0\u8001\u1fb0\u8001\u2000\u8001\u2399\u8001\u2480\u8001"+ + "\u2543\u8001\u2f90\u8001\u2ff0\u8001\u3000\u8001\u342f\u8001\u3441\u8001"+ + "\u3446\u8001\u4400\u8001\u4646\u8001\u6800\u8001\u6a38\u8001\u6a40\u8001"+ + "\u6a5e\u8001\u6a70\u8001\u6abe\u8001\u6ad0\u8001\u6aed\u8001\u6b00\u8001"+ + "\u6b2f\u8001\u6b40\u8001\u6b43\u8001\u6b63\u8001\u6b77\u8001\u6b7d\u8001"+ + "\u6b8f\u8001\u6e40\u8001\u6e7f\u8001\u6f00\u8001\u6f4a\u8001\u6f50\u8001"+ + "\u6f50\u8001\u6f93\u8001\u6f9f\u8001\u6fe0\u8001\u6fe1\u8001\u6fe3\u8001"+ + "\u6fe3\u8001\u7000\u8001\u87f7\u8001\u8800\u8001\u8cd5\u8001\u8d00\u8001"+ + "\u8d08\u8001\uaff0\u8001\uaff3\u8001\uaff5\u8001\uaffb\u8001\uaffd\u8001"+ + "\uaffe\u8001\ub000\u8001\ub122\u8001\ub132\u8001\ub132\u8001\ub150\u8001"+ + "\ub152\u8001\ub155\u8001\ub155\u8001\ub164\u8001\ub167\u8001\ub170\u8001"+ + "\ub2fb\u8001\ubc00\u8001\ubc6a\u8001\ubc70\u8001\ubc7c\u8001\ubc80\u8001"+ + "\ubc88\u8001\ubc90\u8001\ubc99\u8001\ud400\u8001\ud454\u8001\ud456\u8001"+ + "\ud49c\u8001\ud49e\u8001\ud49f\u8001\ud4a2\u8001\ud4a2\u8001\ud4a5\u8001"+ + "\ud4a6\u8001\ud4a9\u8001\ud4ac\u8001\ud4ae\u8001\ud4b9\u8001\ud4bb\u8001"+ + "\ud4bb\u8001\ud4bd\u8001\ud4c3\u8001\ud4c5\u8001\ud505\u8001\ud507\u8001"+ + "\ud50a\u8001\ud50d\u8001\ud514\u8001\ud516\u8001\ud51c\u8001\ud51e\u8001"+ + "\ud539\u8001\ud53b\u8001\ud53e\u8001\ud540\u8001\ud544\u8001\ud546\u8001"+ + "\ud546\u8001\ud54a\u8001\ud550\u8001\ud552\u8001\ud6a5\u8001\ud6a8\u8001"+ + "\ud6c0\u8001\ud6c2\u8001\ud6da\u8001\ud6dc\u8001\ud6fa\u8001\ud6fc\u8001"+ + "\ud714\u8001\ud716\u8001\ud734\u8001\ud736\u8001\ud74e\u8001\ud750\u8001"+ + "\ud76e\u8001\ud770\u8001\ud788\u8001\ud78a\u8001\ud7a8\u8001\ud7aa\u8001"+ + "\ud7c2\u8001\ud7c4\u8001\ud7cb\u8001\udf00\u8001\udf1e\u8001\udf25\u8001"+ + "\udf2a\u8001\ue030\u8001\ue06d\u8001\ue100\u8001\ue12c\u8001\ue137\u8001"+ + "\ue13d\u8001\ue14e\u8001\ue14e\u8001\ue290\u8001\ue2ad\u8001\ue2c0\u8001"+ + "\ue2eb\u8001\ue4d0\u8001\ue4eb\u8001\ue7e0\u8001\ue7e6\u8001\ue7e8\u8001"+ + "\ue7eb\u8001\ue7ed\u8001\ue7ee\u8001\ue7f0\u8001\ue7fe\u8001\ue800\u8001"+ + "\ue8c4\u8001\ue900\u8001\ue943\u8001\ue94b\u8001\ue94b\u8001\uee00\u8001"+ + "\uee03\u8001\uee05\u8001\uee1f\u8001\uee21\u8001\uee22\u8001\uee24\u8001"+ + "\uee24\u8001\uee27\u8001\uee27\u8001\uee29\u8001\uee32\u8001\uee34\u8001"+ + "\uee37\u8001\uee39\u8001\uee39\u8001\uee3b\u8001\uee3b\u8001\uee42\u8001"+ + "\uee42\u8001\uee47\u8001\uee47\u8001\uee49\u8001\uee49\u8001\uee4b\u8001"+ + "\uee4b\u8001\uee4d\u8001\uee4f\u8001\uee51\u8001\uee52\u8001\uee54\u8001"+ + "\uee54\u8001\uee57\u8001\uee57\u8001\uee59\u8001\uee59\u8001\uee5b\u8001"+ + "\uee5b\u8001\uee5d\u8001\uee5d\u8001\uee5f\u8001\uee5f\u8001\uee61\u8001"+ + "\uee62\u8001\uee64\u8001\uee64\u8001\uee67\u8001\uee6a\u8001\uee6c\u8001"+ + "\uee72\u8001\uee74\u8001\uee77\u8001\uee79\u8001\uee7c\u8001\uee7e\u8001"+ + "\uee7e\u8001\uee80\u8001\uee89\u8001\uee8b\u8001\uee9b\u8001\ueea1\u8001"+ + "\ueea3\u8001\ueea5\u8001\ueea9\u8001\ueeab\u8001\ueebb\u8002\u0000\u8002"+ + "\ua6df\u8002\ua700\u8002\ub739\u8002\ub740\u8002\ub81d\u8002\ub820\u8002"+ + "\ucea1\u8002\uceb0\u8002\uebe0\u8002\uf800\u8002\ufa1d\u8003\u0000\u8003"+ + "\u134a\u8003\u1350\u8003\u23af\u0006\u0000\n\n\r\r**//[\\\u2028\u2029"+ + "\u0005\u0000\n\n\r\r//[\\\u2028\u2029\u0004\u0000\n\n\r\r\\]\u2028\u2029"+ + "\u054e\u0000\u0002\u0001\u0000\u0000\u0000\u0000\u0004\u0001\u0000\u0000"+ + "\u0000\u0000\u0006\u0001\u0000\u0000\u0000\u0000\b\u0001\u0000\u0000\u0000"+ + "\u0000\n\u0001\u0000\u0000\u0000\u0000\f\u0001\u0000\u0000\u0000\u0000"+ + "\u000e\u0001\u0000\u0000\u0000\u0000\u0010\u0001\u0000\u0000\u0000\u0000"+ + "\u0012\u0001\u0000\u0000\u0000\u0000\u0014\u0001\u0000\u0000\u0000\u0000"+ + "\u0016\u0001\u0000\u0000\u0000\u0000\u0018\u0001\u0000\u0000\u0000\u0000"+ + "\u001a\u0001\u0000\u0000\u0000\u0000\u001c\u0001\u0000\u0000\u0000\u0000"+ + "\u001e\u0001\u0000\u0000\u0000\u0000 \u0001\u0000\u0000\u0000\u0000\""+ + "\u0001\u0000\u0000\u0000\u0000$\u0001\u0000\u0000\u0000\u0000&\u0001\u0000"+ + "\u0000\u0000\u0000(\u0001\u0000\u0000\u0000\u0000*\u0001\u0000\u0000\u0000"+ + "\u0000,\u0001\u0000\u0000\u0000\u0000.\u0001\u0000\u0000\u0000\u00000"+ + "\u0001\u0000\u0000\u0000\u00002\u0001\u0000\u0000\u0000\u00004\u0001\u0000"+ + "\u0000\u0000\u00006\u0001\u0000\u0000\u0000\u00008\u0001\u0000\u0000\u0000"+ + "\u0000:\u0001\u0000\u0000\u0000\u0000<\u0001\u0000\u0000\u0000\u0000>"+ + "\u0001\u0000\u0000\u0000\u0000@\u0001\u0000\u0000\u0000\u0000B\u0001\u0000"+ + "\u0000\u0000\u0000D\u0001\u0000\u0000\u0000\u0000F\u0001\u0000\u0000\u0000"+ + "\u0000H\u0001\u0000\u0000\u0000\u0000J\u0001\u0000\u0000\u0000\u0000L"+ + "\u0001\u0000\u0000\u0000\u0000N\u0001\u0000\u0000\u0000\u0000P\u0001\u0000"+ + "\u0000\u0000\u0000R\u0001\u0000\u0000\u0000\u0000T\u0001\u0000\u0000\u0000"+ + "\u0000V\u0001\u0000\u0000\u0000\u0000X\u0001\u0000\u0000\u0000\u0000Z"+ + "\u0001\u0000\u0000\u0000\u0000\\\u0001\u0000\u0000\u0000\u0000^\u0001"+ + "\u0000\u0000\u0000\u0000`\u0001\u0000\u0000\u0000\u0000b\u0001\u0000\u0000"+ + "\u0000\u0000d\u0001\u0000\u0000\u0000\u0000f\u0001\u0000\u0000\u0000\u0000"+ + "h\u0001\u0000\u0000\u0000\u0000j\u0001\u0000\u0000\u0000\u0000l\u0001"+ + "\u0000\u0000\u0000\u0000n\u0001\u0000\u0000\u0000\u0000p\u0001\u0000\u0000"+ + "\u0000\u0000r\u0001\u0000\u0000\u0000\u0000t\u0001\u0000\u0000\u0000\u0000"+ + "v\u0001\u0000\u0000\u0000\u0000x\u0001\u0000\u0000\u0000\u0000z\u0001"+ + "\u0000\u0000\u0000\u0000|\u0001\u0000\u0000\u0000\u0000~\u0001\u0000\u0000"+ + "\u0000\u0000\u0080\u0001\u0000\u0000\u0000\u0000\u0082\u0001\u0000\u0000"+ + "\u0000\u0000\u0084\u0001\u0000\u0000\u0000\u0000\u0086\u0001\u0000\u0000"+ + "\u0000\u0000\u0088\u0001\u0000\u0000\u0000\u0000\u008a\u0001\u0000\u0000"+ + "\u0000\u0000\u008c\u0001\u0000\u0000\u0000\u0000\u008e\u0001\u0000\u0000"+ + "\u0000\u0000\u0090\u0001\u0000\u0000\u0000\u0000\u0092\u0001\u0000\u0000"+ + "\u0000\u0000\u0094\u0001\u0000\u0000\u0000\u0000\u0096\u0001\u0000\u0000"+ + "\u0000\u0000\u0098\u0001\u0000\u0000\u0000\u0000\u009a\u0001\u0000\u0000"+ + "\u0000\u0000\u009c\u0001\u0000\u0000\u0000\u0000\u009e\u0001\u0000\u0000"+ + "\u0000\u0000\u00a0\u0001\u0000\u0000\u0000\u0000\u00a2\u0001\u0000\u0000"+ + "\u0000\u0000\u00a4\u0001\u0000\u0000\u0000\u0000\u00a6\u0001\u0000\u0000"+ + "\u0000\u0000\u00a8\u0001\u0000\u0000\u0000\u0000\u00aa\u0001\u0000\u0000"+ + "\u0000\u0000\u00ac\u0001\u0000\u0000\u0000\u0000\u00ae\u0001\u0000\u0000"+ + "\u0000\u0000\u00b0\u0001\u0000\u0000\u0000\u0000\u00b2\u0001\u0000\u0000"+ + "\u0000\u0000\u00b4\u0001\u0000\u0000\u0000\u0000\u00b6\u0001\u0000\u0000"+ + "\u0000\u0000\u00b8\u0001\u0000\u0000\u0000\u0000\u00ba\u0001\u0000\u0000"+ + "\u0000\u0000\u00bc\u0001\u0000\u0000\u0000\u0000\u00be\u0001\u0000\u0000"+ + "\u0000\u0000\u00c0\u0001\u0000\u0000\u0000\u0000\u00c2\u0001\u0000\u0000"+ + "\u0000\u0000\u00c4\u0001\u0000\u0000\u0000\u0000\u00c6\u0001\u0000\u0000"+ + "\u0000\u0000\u00c8\u0001\u0000\u0000\u0000\u0000\u00ca\u0001\u0000\u0000"+ + "\u0000\u0000\u00cc\u0001\u0000\u0000\u0000\u0000\u00ce\u0001\u0000\u0000"+ + "\u0000\u0000\u00d0\u0001\u0000\u0000\u0000\u0000\u00d2\u0001\u0000\u0000"+ + "\u0000\u0000\u00d4\u0001\u0000\u0000\u0000\u0000\u00d6\u0001\u0000\u0000"+ + "\u0000\u0000\u00d8\u0001\u0000\u0000\u0000\u0000\u00da\u0001\u0000\u0000"+ + "\u0000\u0000\u00dc\u0001\u0000\u0000\u0000\u0000\u00de\u0001\u0000\u0000"+ + "\u0000\u0000\u00e0\u0001\u0000\u0000\u0000\u0000\u00e2\u0001\u0000\u0000"+ + "\u0000\u0000\u00e4\u0001\u0000\u0000\u0000\u0000\u00e6\u0001\u0000\u0000"+ + "\u0000\u0000\u00e8\u0001\u0000\u0000\u0000\u0000\u00ea\u0001\u0000\u0000"+ + "\u0000\u0000\u00ec\u0001\u0000\u0000\u0000\u0000\u00ee\u0001\u0000\u0000"+ + "\u0000\u0000\u00f0\u0001\u0000\u0000\u0000\u0000\u00f2\u0001\u0000\u0000"+ + "\u0000\u0000\u00f4\u0001\u0000\u0000\u0000\u0000\u00f6\u0001\u0000\u0000"+ + "\u0000\u0000\u00f8\u0001\u0000\u0000\u0000\u0000\u00fa\u0001\u0000\u0000"+ + "\u0000\u0000\u00fc\u0001\u0000\u0000\u0000\u0000\u00fe\u0001\u0000\u0000"+ + "\u0000\u0000\u0100\u0001\u0000\u0000\u0000\u0000\u0102\u0001\u0000\u0000"+ + "\u0000\u0000\u0104\u0001\u0000\u0000\u0000\u0000\u0106\u0001\u0000\u0000"+ + "\u0000\u0000\u0108\u0001\u0000\u0000\u0000\u0000\u010a\u0001\u0000\u0000"+ + "\u0000\u0000\u010c\u0001\u0000\u0000\u0000\u0000\u010e\u0001\u0000\u0000"+ + "\u0000\u0000\u0110\u0001\u0000\u0000\u0000\u0000\u0112\u0001\u0000\u0000"+ + "\u0000\u0000\u0114\u0001\u0000\u0000\u0000\u0000\u0116\u0001\u0000\u0000"+ + "\u0000\u0000\u0118\u0001\u0000\u0000\u0000\u0000\u011a\u0001\u0000\u0000"+ + "\u0000\u0000\u011c\u0001\u0000\u0000\u0000\u0000\u011e\u0001\u0000\u0000"+ + "\u0000\u0000\u0120\u0001\u0000\u0000\u0000\u0000\u0122\u0001\u0000\u0000"+ + "\u0000\u0001\u0124\u0001\u0000\u0000\u0000\u0001\u0126\u0001\u0000\u0000"+ + "\u0000\u0001\u0128\u0001\u0000\u0000\u0000\u0001\u012a\u0001\u0000\u0000"+ + "\u0000\u0002\u0154\u0001\u0000\u0000\u0000\u0004\u0162\u0001\u0000\u0000"+ + "\u0000\u0006\u016d\u0001\u0000\u0000\u0000\b\u017d\u0001\u0000\u0000\u0000"+ + "\n\u017f\u0001\u0000\u0000\u0000\f\u0181\u0001\u0000\u0000\u0000\u000e"+ + "\u0183\u0001\u0000\u0000\u0000\u0010\u0185\u0001\u0000\u0000\u0000\u0012"+ + "\u0188\u0001\u0000\u0000\u0000\u0014\u018d\u0001\u0000\u0000\u0000\u0016"+ + "\u0190\u0001\u0000\u0000\u0000\u0018\u0192\u0001\u0000\u0000\u0000\u001a"+ + "\u0194\u0001\u0000\u0000\u0000\u001c\u0196\u0001\u0000\u0000\u0000\u001e"+ + "\u0198\u0001\u0000\u0000\u0000 \u019b\u0001\u0000\u0000\u0000\"\u019d"+ + "\u0001\u0000\u0000\u0000$\u01a1\u0001\u0000\u0000\u0000&\u01a3\u0001\u0000"+ + "\u0000\u0000(\u01a6\u0001\u0000\u0000\u0000*\u01a9\u0001\u0000\u0000\u0000"+ + ",\u01ab\u0001\u0000\u0000\u0000.\u01ad\u0001\u0000\u0000\u00000\u01af"+ + "\u0001\u0000\u0000\u00002\u01b1\u0001\u0000\u0000\u00004\u01b3\u0001\u0000"+ + "\u0000\u00006\u01b5\u0001\u0000\u0000\u00008\u01b7\u0001\u0000\u0000\u0000"+ + ":\u01ba\u0001\u0000\u0000\u0000<\u01bd\u0001\u0000\u0000\u0000>\u01bf"+ + "\u0001\u0000\u0000\u0000@\u01c2\u0001\u0000\u0000\u0000B\u01c4\u0001\u0000"+ + "\u0000\u0000D\u01c6\u0001\u0000\u0000\u0000F\u01c9\u0001\u0000\u0000\u0000"+ + "H\u01cc\u0001\u0000\u0000\u0000J\u01cf\u0001\u0000\u0000\u0000L\u01d2"+ + "\u0001\u0000\u0000\u0000N\u01d6\u0001\u0000\u0000\u0000P\u01da\u0001\u0000"+ + "\u0000\u0000R\u01dc\u0001\u0000\u0000\u0000T\u01de\u0001\u0000\u0000\u0000"+ + "V\u01e0\u0001\u0000\u0000\u0000X\u01e3\u0001\u0000\u0000\u0000Z\u01e6"+ + "\u0001\u0000\u0000\u0000\\\u01e9\u0001\u0000\u0000\u0000^\u01ec\u0001"+ + "\u0000\u0000\u0000`\u01ef\u0001\u0000\u0000\u0000b\u01f2\u0001\u0000\u0000"+ + "\u0000d\u01f5\u0001\u0000\u0000\u0000f\u01f9\u0001\u0000\u0000\u0000h"+ + "\u01fd\u0001\u0000\u0000\u0000j\u0202\u0001\u0000\u0000\u0000l\u0205\u0001"+ + "\u0000\u0000\u0000n\u0208\u0001\u0000\u0000\u0000p\u020b\u0001\u0000\u0000"+ + "\u0000r\u020f\u0001\u0000\u0000\u0000t\u0213\u0001\u0000\u0000\u0000v"+ + "\u0216\u0001\u0000\u0000\u0000x\u0224\u0001\u0000\u0000\u0000z\u0241\u0001"+ + "\u0000\u0000\u0000|\u0243\u0001\u0000\u0000\u0000~\u024c\u0001\u0000\u0000"+ + "\u0000\u0080\u0254\u0001\u0000\u0000\u0000\u0082\u025d\u0001\u0000\u0000"+ + "\u0000\u0084\u0266\u0001\u0000\u0000\u0000\u0086\u0271\u0001\u0000\u0000"+ + "\u0000\u0088\u027c\u0001\u0000\u0000\u0000\u008a\u0287\u0001\u0000\u0000"+ + "\u0000\u008c\u028a\u0001\u0000\u0000\u0000\u008e\u0290\u0001\u0000\u0000"+ + "\u0000\u0090\u0293\u0001\u0000\u0000\u0000\u0092\u029e\u0001\u0000\u0000"+ + "\u0000\u0094\u02a5\u0001\u0000\u0000\u0000\u0096\u02aa\u0001\u0000\u0000"+ + "\u0000\u0098\u02af\u0001\u0000\u0000\u0000\u009a\u02b3\u0001\u0000\u0000"+ + "\u0000\u009c\u02b7\u0001\u0000\u0000\u0000\u009e\u02bd\u0001\u0000\u0000"+ + "\u0000\u00a0\u02c5\u0001\u0000\u0000\u0000\u00a2\u02cc\u0001\u0000\u0000"+ + "\u0000\u00a4\u02d1\u0001\u0000\u0000\u0000\u00a6\u02da\u0001\u0000\u0000"+ + "\u0000\u00a8\u02de\u0001\u0000\u0000\u0000\u00aa\u02e5\u0001\u0000\u0000"+ + "\u0000\u00ac\u02eb\u0001\u0000\u0000\u0000\u00ae\u02f4\u0001\u0000\u0000"+ + "\u0000\u00b0\u02fd\u0001\u0000\u0000\u0000\u00b2\u0302\u0001\u0000\u0000"+ + "\u0000\u00b4\u0307\u0001\u0000\u0000\u0000\u00b6\u030f\u0001\u0000\u0000"+ + "\u0000\u00b8\u0312\u0001\u0000\u0000\u0000\u00ba\u0318\u0001\u0000\u0000"+ + "\u0000\u00bc\u031f\u0001\u0000\u0000\u0000\u00be\u0322\u0001\u0000\u0000"+ + "\u0000\u00c0\u0326\u0001\u0000\u0000\u0000\u00c2\u0329\u0001\u0000\u0000"+ + "\u0000\u00c4\u032e\u0001\u0000\u0000\u0000\u00c6\u0337\u0001\u0000\u0000"+ + "\u0000\u00c8\u033d\u0001\u0000\u0000\u0000\u00ca\u0343\u0001\u0000\u0000"+ + "\u0000\u00cc\u0349\u0001\u0000\u0000\u0000\u00ce\u0350\u0001\u0000\u0000"+ + "\u0000\u00d0\u0356\u0001\u0000\u0000\u0000\u00d2\u035b\u0001\u0000\u0000"+ + "\u0000\u00d4\u0363\u0001\u0000\u0000\u0000\u00d6\u0369\u0001\u0000\u0000"+ + "\u0000\u00d8\u036f\u0001\u0000\u0000\u0000\u00da\u0376\u0001\u0000\u0000"+ + "\u0000\u00dc\u037d\u0001\u0000\u0000\u0000\u00de\u0388\u0001\u0000\u0000"+ + "\u0000\u00e0\u038c\u0001\u0000\u0000\u0000\u00e2\u0394\u0001\u0000\u0000"+ + "\u0000\u00e4\u039b\u0001\u0000\u0000\u0000\u00e6\u03a5\u0001\u0000\u0000"+ + "\u0000\u00e8\u03ad\u0001\u0000\u0000\u0000\u00ea\u03b7\u0001\u0000\u0000"+ + "\u0000\u00ec\u03be\u0001\u0000\u0000\u0000\u00ee\u03c2\u0001\u0000\u0000"+ + "\u0000\u00f0\u03c9\u0001\u0000\u0000\u0000\u00f2\u03cf\u0001\u0000\u0000"+ + "\u0000\u00f4\u03d7\u0001\u0000\u0000\u0000\u00f6\u03de\u0001\u0000\u0000"+ + "\u0000\u00f8\u03e5\u0001\u0000\u0000\u0000\u00fa\u03ec\u0001\u0000\u0000"+ + "\u0000\u00fc\u03f6\u0001\u0000\u0000\u0000\u00fe\u03fd\u0001\u0000\u0000"+ + "\u0000\u0100\u0400\u0001\u0000\u0000\u0000\u0102\u0406\u0001\u0000\u0000"+ + "\u0000\u0104\u040b\u0001\u0000\u0000\u0000\u0106\u0417\u0001\u0000\u0000"+ + "\u0000\u0108\u0421\u0001\u0000\u0000\u0000\u010a\u0429\u0001\u0000\u0000"+ + "\u0000\u010c\u0430\u0001\u0000\u0000\u0000\u010e\u0438\u0001\u0000\u0000"+ + "\u0000\u0110\u0441\u0001\u0000\u0000\u0000\u0112\u0444\u0001\u0000\u0000"+ + "\u0000\u0114\u0446\u0001\u0000\u0000\u0000\u0116\u045d\u0001\u0000\u0000"+ + "\u0000\u0118\u0461\u0001\u0000\u0000\u0000\u011a\u0467\u0001\u0000\u0000"+ + "\u0000\u011c\u046d\u0001\u0000\u0000\u0000\u011e\u0471\u0001\u0000\u0000"+ + "\u0000\u0120\u0482\u0001\u0000\u0000\u0000\u0122\u0498\u0001\u0000\u0000"+ + "\u0000\u0124\u049c\u0001\u0000\u0000\u0000\u0126\u049f\u0001\u0000\u0000"+ + "\u0000\u0128\u04a5\u0001\u0000\u0000\u0000\u012a\u04ac\u0001\u0000\u0000"+ + "\u0000\u012c\u04b2\u0001\u0000\u0000\u0000\u012e\u04b8\u0001\u0000\u0000"+ + "\u0000\u0130\u04bf\u0001\u0000\u0000\u0000\u0132\u04c3\u0001\u0000\u0000"+ + "\u0000\u0134\u04c5\u0001\u0000\u0000\u0000\u0136\u04d9\u0001\u0000\u0000"+ + "\u0000\u0138\u04db\u0001\u0000\u0000\u0000\u013a\u04e4\u0001\u0000\u0000"+ + "\u0000\u013c\u04e6\u0001\u0000\u0000\u0000\u013e\u04ea\u0001\u0000\u0000"+ + "\u0000\u0140\u04ec\u0001\u0000\u0000\u0000\u0142\u04f2\u0001\u0000\u0000"+ + "\u0000\u0144\u04fc\u0001\u0000\u0000\u0000\u0146\u04fe\u0001\u0000\u0000"+ + "\u0000\u0148\u0509\u0001\u0000\u0000\u0000\u014a\u050e\u0001\u0000\u0000"+ + "\u0000\u014c\u051a\u0001\u0000\u0000\u0000\u014e\u0526\u0001\u0000\u0000"+ + "\u0000\u0150\u052a\u0001\u0000\u0000\u0000\u0152\u052c\u0001\u0000\u0000"+ + "\u0000\u0154\u0155\u0005/\u0000\u0000\u0155\u0156\u0005*\u0000\u0000\u0156"+ + "\u015a\u0001\u0000\u0000\u0000\u0157\u0159\t\u0000\u0000\u0000\u0158\u0157"+ + "\u0001\u0000\u0000\u0000\u0159\u015c\u0001\u0000\u0000\u0000\u015a\u015b"+ + "\u0001\u0000\u0000\u0000\u015a\u0158\u0001\u0000\u0000\u0000\u015b\u015d"+ + "\u0001\u0000\u0000\u0000\u015c\u015a\u0001\u0000\u0000\u0000\u015d\u015e"+ + "\u0005*\u0000\u0000\u015e\u015f\u0005/\u0000\u0000\u015f\u0160\u0001\u0000"+ + "\u0000\u0000\u0160\u0161\u0006\u0000\u0000\u0000\u0161\u0003\u0001\u0000"+ + "\u0000\u0000\u0162\u0163\u0005/\u0000\u0000\u0163\u0164\u0005/\u0000\u0000"+ + "\u0164\u0168\u0001\u0000\u0000\u0000\u0165\u0167\b\u0000\u0000\u0000\u0166"+ + "\u0165\u0001\u0000\u0000\u0000\u0167\u016a\u0001\u0000\u0000\u0000\u0168"+ + "\u0166\u0001\u0000\u0000\u0000\u0168\u0169\u0001\u0000\u0000\u0000\u0169"+ + "\u016b\u0001\u0000\u0000\u0000\u016a\u0168\u0001\u0000\u0000\u0000\u016b"+ + "\u016c\u0006\u0001\u0000\u0000\u016c\u0005\u0001\u0000\u0000\u0000\u016d"+ + "\u016e\u0005/\u0000\u0000\u016e\u0172\u0003\u014c\u00a5\u0000\u016f\u0171"+ + "\u0003\u014e\u00a6\u0000\u0170\u016f\u0001\u0000\u0000\u0000\u0171\u0174"+ + "\u0001\u0000\u0000\u0000\u0172\u0170\u0001\u0000\u0000\u0000\u0172\u0173"+ + "\u0001\u0000\u0000\u0000\u0173\u0175\u0001\u0000\u0000\u0000\u0174\u0172"+ + "\u0001\u0000\u0000\u0000\u0175\u0176\u0004\u0002\u0000\u0000\u0176\u017a"+ + "\u0005/\u0000\u0000\u0177\u0179\u0003\u0148\u00a3\u0000\u0178\u0177\u0001"+ + "\u0000\u0000\u0000\u0179\u017c\u0001\u0000\u0000\u0000\u017a\u0178\u0001"+ + "\u0000\u0000\u0000\u017a\u017b\u0001\u0000\u0000\u0000\u017b\u0007\u0001"+ + "\u0000\u0000\u0000\u017c\u017a\u0001\u0000\u0000\u0000\u017d\u017e\u0005"+ + "[\u0000\u0000\u017e\t\u0001\u0000\u0000\u0000\u017f\u0180\u0005]\u0000"+ + "\u0000\u0180\u000b\u0001\u0000\u0000\u0000\u0181\u0182\u0005(\u0000\u0000"+ + "\u0182\r\u0001\u0000\u0000\u0000\u0183\u0184\u0005)\u0000\u0000\u0184"+ + "\u000f\u0001\u0000\u0000\u0000\u0185\u0186\u0005{\u0000\u0000\u0186\u0187"+ + "\u0006\u0007\u0001\u0000\u0187\u0011\u0001\u0000\u0000\u0000\u0188\u0189"+ + "\u0004\b\u0001\u0000\u0189\u018a\u0005}\u0000\u0000\u018a\u018b\u0001"+ + "\u0000\u0000\u0000\u018b\u018c\u0006\b\u0002\u0000\u018c\u0013\u0001\u0000"+ + "\u0000\u0000\u018d\u018e\u0005}\u0000\u0000\u018e\u018f\u0006\t\u0003"+ + "\u0000\u018f\u0015\u0001\u0000\u0000\u0000\u0190\u0191\u0005;\u0000\u0000"+ + "\u0191\u0017\u0001\u0000\u0000\u0000\u0192\u0193\u0005,\u0000\u0000\u0193"+ + "\u0019\u0001\u0000\u0000\u0000\u0194\u0195\u0005=\u0000\u0000\u0195\u001b"+ + "\u0001\u0000\u0000\u0000\u0196\u0197\u0005?\u0000\u0000\u0197\u001d\u0001"+ + "\u0000\u0000\u0000\u0198\u0199\u0005?\u0000\u0000\u0199\u019a\u0005.\u0000"+ + "\u0000\u019a\u001f\u0001\u0000\u0000\u0000\u019b\u019c\u0005:\u0000\u0000"+ + "\u019c!\u0001\u0000\u0000\u0000\u019d\u019e\u0005.\u0000\u0000\u019e\u019f"+ + "\u0005.\u0000\u0000\u019f\u01a0\u0005.\u0000\u0000\u01a0#\u0001\u0000"+ + "\u0000\u0000\u01a1\u01a2\u0005.\u0000\u0000\u01a2%\u0001\u0000\u0000\u0000"+ + "\u01a3\u01a4\u0005+\u0000\u0000\u01a4\u01a5\u0005+\u0000\u0000\u01a5\'"+ + "\u0001\u0000\u0000\u0000\u01a6\u01a7\u0005-\u0000\u0000\u01a7\u01a8\u0005"+ + "-\u0000\u0000\u01a8)\u0001\u0000\u0000\u0000\u01a9\u01aa\u0005+\u0000"+ + "\u0000\u01aa+\u0001\u0000\u0000\u0000\u01ab\u01ac\u0005-\u0000\u0000\u01ac"+ + "-\u0001\u0000\u0000\u0000\u01ad\u01ae\u0005~\u0000\u0000\u01ae/\u0001"+ + "\u0000\u0000\u0000\u01af\u01b0\u0005!\u0000\u0000\u01b01\u0001\u0000\u0000"+ + "\u0000\u01b1\u01b2\u0005*\u0000\u0000\u01b23\u0001\u0000\u0000\u0000\u01b3"+ + "\u01b4\u0005/\u0000\u0000\u01b45\u0001\u0000\u0000\u0000\u01b5\u01b6\u0005"+ + "%\u0000\u0000\u01b67\u0001\u0000\u0000\u0000\u01b7\u01b8\u0005*\u0000"+ + "\u0000\u01b8\u01b9\u0005*\u0000\u0000\u01b99\u0001\u0000\u0000\u0000\u01ba"+ + "\u01bb\u0005?\u0000\u0000\u01bb\u01bc\u0005?\u0000\u0000\u01bc;\u0001"+ + "\u0000\u0000\u0000\u01bd\u01be\u0005#\u0000\u0000\u01be=\u0001\u0000\u0000"+ + "\u0000\u01bf\u01c0\u0005<\u0000\u0000\u01c0\u01c1\u0005<\u0000\u0000\u01c1"+ + "?\u0001\u0000\u0000\u0000\u01c2\u01c3\u0005<\u0000\u0000\u01c3A\u0001"+ + "\u0000\u0000\u0000\u01c4\u01c5\u0005>\u0000\u0000\u01c5C\u0001\u0000\u0000"+ + "\u0000\u01c6\u01c7\u0005<\u0000\u0000\u01c7\u01c8\u0005=\u0000\u0000\u01c8"+ + "E\u0001\u0000\u0000\u0000\u01c9\u01ca\u0005>\u0000\u0000\u01ca\u01cb\u0005"+ + "=\u0000\u0000\u01cbG\u0001\u0000\u0000\u0000\u01cc\u01cd\u0005=\u0000"+ + "\u0000\u01cd\u01ce\u0005=\u0000\u0000\u01ceI\u0001\u0000\u0000\u0000\u01cf"+ + "\u01d0\u0005!\u0000\u0000\u01d0\u01d1\u0005=\u0000\u0000\u01d1K\u0001"+ + "\u0000\u0000\u0000\u01d2\u01d3\u0005=\u0000\u0000\u01d3\u01d4\u0005=\u0000"+ + "\u0000\u01d4\u01d5\u0005=\u0000\u0000\u01d5M\u0001\u0000\u0000\u0000\u01d6"+ + "\u01d7\u0005!\u0000\u0000\u01d7\u01d8\u0005=\u0000\u0000\u01d8\u01d9\u0005"+ + "=\u0000\u0000\u01d9O\u0001\u0000\u0000\u0000\u01da\u01db\u0005&\u0000"+ + "\u0000\u01dbQ\u0001\u0000\u0000\u0000\u01dc\u01dd\u0005^\u0000\u0000\u01dd"+ + "S\u0001\u0000\u0000\u0000\u01de\u01df\u0005|\u0000\u0000\u01dfU\u0001"+ + "\u0000\u0000\u0000\u01e0\u01e1\u0005&\u0000\u0000\u01e1\u01e2\u0005&\u0000"+ + "\u0000\u01e2W\u0001\u0000\u0000\u0000\u01e3\u01e4\u0005|\u0000\u0000\u01e4"+ + "\u01e5\u0005|\u0000\u0000\u01e5Y\u0001\u0000\u0000\u0000\u01e6\u01e7\u0005"+ + "*\u0000\u0000\u01e7\u01e8\u0005=\u0000\u0000\u01e8[\u0001\u0000\u0000"+ + "\u0000\u01e9\u01ea\u0005/\u0000\u0000\u01ea\u01eb\u0005=\u0000\u0000\u01eb"+ + "]\u0001\u0000\u0000\u0000\u01ec\u01ed\u0005%\u0000\u0000\u01ed\u01ee\u0005"+ + "=\u0000\u0000\u01ee_\u0001\u0000\u0000\u0000\u01ef\u01f0\u0005+\u0000"+ + "\u0000\u01f0\u01f1\u0005=\u0000\u0000\u01f1a\u0001\u0000\u0000\u0000\u01f2"+ + "\u01f3\u0005-\u0000\u0000\u01f3\u01f4\u0005=\u0000\u0000\u01f4c\u0001"+ + "\u0000\u0000\u0000\u01f5\u01f6\u0005<\u0000\u0000\u01f6\u01f7\u0005<\u0000"+ + "\u0000\u01f7\u01f8\u0005=\u0000\u0000\u01f8e\u0001\u0000\u0000\u0000\u01f9"+ + "\u01fa\u0005>\u0000\u0000\u01fa\u01fb\u0005>\u0000\u0000\u01fb\u01fc\u0005"+ + "=\u0000\u0000\u01fcg\u0001\u0000\u0000\u0000\u01fd\u01fe\u0005>\u0000"+ + "\u0000\u01fe\u01ff\u0005>\u0000\u0000\u01ff\u0200\u0005>\u0000\u0000\u0200"+ + "\u0201\u0005=\u0000\u0000\u0201i\u0001\u0000\u0000\u0000\u0202\u0203\u0005"+ + "&\u0000\u0000\u0203\u0204\u0005=\u0000\u0000\u0204k\u0001\u0000\u0000"+ + "\u0000\u0205\u0206\u0005^\u0000\u0000\u0206\u0207\u0005=\u0000\u0000\u0207"+ + "m\u0001\u0000\u0000\u0000\u0208\u0209\u0005|\u0000\u0000\u0209\u020a\u0005"+ + "=\u0000\u0000\u020ao\u0001\u0000\u0000\u0000\u020b\u020c\u0005*\u0000"+ + "\u0000\u020c\u020d\u0005*\u0000\u0000\u020d\u020e\u0005=\u0000\u0000\u020e"+ + "q\u0001\u0000\u0000\u0000\u020f\u0210\u0005?\u0000\u0000\u0210\u0211\u0005"+ + "?\u0000\u0000\u0211\u0212\u0005=\u0000\u0000\u0212s\u0001\u0000\u0000"+ + "\u0000\u0213\u0214\u0005=\u0000\u0000\u0214\u0215\u0005>\u0000\u0000\u0215"+ + "u\u0001\u0000\u0000\u0000\u0216\u0217\u0005n\u0000\u0000\u0217\u0218\u0005"+ + "u\u0000\u0000\u0218\u0219\u0005l\u0000\u0000\u0219\u021a\u0005l\u0000"+ + "\u0000\u021aw\u0001\u0000\u0000\u0000\u021b\u021c\u0005t\u0000\u0000\u021c"+ + "\u021d\u0005r\u0000\u0000\u021d\u021e\u0005u\u0000\u0000\u021e\u0225\u0005"+ + "e\u0000\u0000\u021f\u0220\u0005f\u0000\u0000\u0220\u0221\u0005a\u0000"+ + "\u0000\u0221\u0222\u0005l\u0000\u0000\u0222\u0223\u0005s\u0000\u0000\u0223"+ + "\u0225\u0005e\u0000\u0000\u0224\u021b\u0001\u0000\u0000\u0000\u0224\u021f"+ + "\u0001\u0000\u0000\u0000\u0225y\u0001\u0000\u0000\u0000\u0226\u0227\u0003"+ + "\u0144\u00a1\u0000\u0227\u0228\u0005.\u0000\u0000\u0228\u022c\u0007\u0001"+ + "\u0000\u0000\u0229\u022b\u0007\u0002\u0000\u0000\u022a\u0229\u0001\u0000"+ + "\u0000\u0000\u022b\u022e\u0001\u0000\u0000\u0000\u022c\u022a\u0001\u0000"+ + "\u0000\u0000\u022c\u022d\u0001\u0000\u0000\u0000\u022d\u0230\u0001\u0000"+ + "\u0000\u0000\u022e\u022c\u0001\u0000\u0000\u0000\u022f\u0231\u0003\u0146"+ + "\u00a2\u0000\u0230\u022f\u0001\u0000\u0000\u0000\u0230\u0231\u0001\u0000"+ + "\u0000\u0000\u0231\u0242\u0001\u0000\u0000\u0000\u0232\u0233\u0005.\u0000"+ + "\u0000\u0233\u0237\u0007\u0001\u0000\u0000\u0234\u0236\u0007\u0002\u0000"+ + "\u0000\u0235\u0234\u0001\u0000\u0000\u0000\u0236\u0239\u0001\u0000\u0000"+ + "\u0000\u0237\u0235\u0001\u0000\u0000\u0000\u0237\u0238\u0001\u0000\u0000"+ + "\u0000\u0238\u023b\u0001\u0000\u0000\u0000\u0239\u0237\u0001\u0000\u0000"+ + "\u0000\u023a\u023c\u0003\u0146\u00a2\u0000\u023b\u023a\u0001\u0000\u0000"+ + "\u0000\u023b\u023c\u0001\u0000\u0000\u0000\u023c\u0242\u0001\u0000\u0000"+ + "\u0000\u023d\u023f\u0003\u0144\u00a1\u0000\u023e\u0240\u0003\u0146\u00a2"+ + "\u0000\u023f\u023e\u0001\u0000\u0000\u0000\u023f\u0240\u0001\u0000\u0000"+ + "\u0000\u0240\u0242\u0001\u0000\u0000\u0000\u0241\u0226\u0001\u0000\u0000"+ + "\u0000\u0241\u0232\u0001\u0000\u0000\u0000\u0241\u023d\u0001\u0000\u0000"+ + "\u0000\u0242{\u0001\u0000\u0000\u0000\u0243\u0244\u00050\u0000\u0000\u0244"+ + "\u0245\u0007\u0003\u0000\u0000\u0245\u0249\u0007\u0004\u0000\u0000\u0246"+ + "\u0248\u0003\u0142\u00a0\u0000\u0247\u0246\u0001\u0000\u0000\u0000\u0248"+ + "\u024b\u0001\u0000\u0000\u0000\u0249\u0247\u0001\u0000\u0000\u0000\u0249"+ + "\u024a\u0001\u0000\u0000\u0000\u024a}\u0001\u0000\u0000\u0000\u024b\u0249"+ + "\u0001\u0000\u0000\u0000\u024c\u024e\u00050\u0000\u0000\u024d\u024f\u0007"+ + "\u0005\u0000\u0000\u024e\u024d\u0001\u0000\u0000\u0000\u024f\u0250\u0001"+ + "\u0000\u0000\u0000\u0250\u024e\u0001\u0000\u0000\u0000\u0250\u0251\u0001"+ + "\u0000\u0000\u0000\u0251\u0252\u0001\u0000\u0000\u0000\u0252\u0253\u0004"+ + ">\u0002\u0000\u0253\u007f\u0001\u0000\u0000\u0000\u0254\u0255\u00050\u0000"+ + "\u0000\u0255\u0256\u0007\u0006\u0000\u0000\u0256\u025a\u0007\u0005\u0000"+ + "\u0000\u0257\u0259\u0007\u0007\u0000\u0000\u0258\u0257\u0001\u0000\u0000"+ + "\u0000\u0259\u025c\u0001\u0000\u0000\u0000\u025a\u0258\u0001\u0000\u0000"+ + "\u0000\u025a\u025b\u0001\u0000\u0000\u0000\u025b\u0081\u0001\u0000\u0000"+ + "\u0000\u025c\u025a\u0001\u0000\u0000\u0000\u025d\u025e\u00050\u0000\u0000"+ + "\u025e\u025f\u0007\b\u0000\u0000\u025f\u0263\u0007\t\u0000\u0000\u0260"+ + "\u0262\u0007\n\u0000\u0000\u0261\u0260\u0001\u0000\u0000\u0000\u0262\u0265"+ + "\u0001\u0000\u0000\u0000\u0263\u0261\u0001\u0000\u0000\u0000\u0263\u0264"+ + "\u0001\u0000\u0000\u0000\u0264\u0083\u0001\u0000\u0000\u0000\u0265\u0263"+ + "\u0001\u0000\u0000\u0000\u0266\u0267\u00050\u0000\u0000\u0267\u0268\u0007"+ + "\u0003\u0000\u0000\u0268\u026c\u0007\u0004\u0000\u0000\u0269\u026b\u0003"+ + "\u0142\u00a0\u0000\u026a\u0269\u0001\u0000\u0000\u0000\u026b\u026e\u0001"+ + "\u0000\u0000\u0000\u026c\u026a\u0001\u0000\u0000\u0000\u026c\u026d\u0001"+ + "\u0000\u0000\u0000\u026d\u026f\u0001\u0000\u0000\u0000\u026e\u026c\u0001"+ + "\u0000\u0000\u0000\u026f\u0270\u0005n\u0000\u0000\u0270\u0085\u0001\u0000"+ + "\u0000\u0000\u0271\u0272\u00050\u0000\u0000\u0272\u0273\u0007\u0006\u0000"+ + "\u0000\u0273\u0277\u0007\u0005\u0000\u0000\u0274\u0276\u0007\u0007\u0000"+ + "\u0000\u0275\u0274\u0001\u0000\u0000\u0000\u0276\u0279\u0001\u0000\u0000"+ + "\u0000\u0277\u0275\u0001\u0000\u0000\u0000\u0277\u0278\u0001\u0000\u0000"+ + "\u0000\u0278\u027a\u0001\u0000\u0000\u0000\u0279\u0277\u0001\u0000\u0000"+ + "\u0000\u027a\u027b\u0005n\u0000\u0000\u027b\u0087\u0001\u0000\u0000\u0000"+ + "\u027c\u027d\u00050\u0000\u0000\u027d\u027e\u0007\b\u0000\u0000\u027e"+ + "\u0282\u0007\t\u0000\u0000\u027f\u0281\u0007\n\u0000\u0000\u0280\u027f"+ + "\u0001\u0000\u0000\u0000\u0281\u0284\u0001\u0000\u0000\u0000\u0282\u0280"+ + "\u0001\u0000\u0000\u0000\u0282\u0283\u0001\u0000\u0000\u0000\u0283\u0285"+ + "\u0001\u0000\u0000\u0000\u0284\u0282\u0001\u0000\u0000\u0000\u0285\u0286"+ + "\u0005n\u0000\u0000\u0286\u0089\u0001\u0000\u0000\u0000\u0287\u0288\u0003"+ + "\u0144\u00a1\u0000\u0288\u0289\u0005n\u0000\u0000\u0289\u008b\u0001\u0000"+ + "\u0000\u0000\u028a\u028b\u0005b\u0000\u0000\u028b\u028c\u0005r\u0000\u0000"+ + "\u028c\u028d\u0005e\u0000\u0000\u028d\u028e\u0005a\u0000\u0000\u028e\u028f"+ + "\u0005k\u0000\u0000\u028f\u008d\u0001\u0000\u0000\u0000\u0290\u0291\u0005"+ + "d\u0000\u0000\u0291\u0292\u0005o\u0000\u0000\u0292\u008f\u0001\u0000\u0000"+ + "\u0000\u0293\u0294\u0005i\u0000\u0000\u0294\u0295\u0005n\u0000\u0000\u0295"+ + "\u0296\u0005s\u0000\u0000\u0296\u0297\u0005t\u0000\u0000\u0297\u0298\u0005"+ + "a\u0000\u0000\u0298\u0299\u0005n\u0000\u0000\u0299\u029a\u0005c\u0000"+ + "\u0000\u029a\u029b\u0005e\u0000\u0000\u029b\u029c\u0005o\u0000\u0000\u029c"+ + "\u029d\u0005f\u0000\u0000\u029d\u0091\u0001\u0000\u0000\u0000\u029e\u029f"+ + "\u0005t\u0000\u0000\u029f\u02a0\u0005y\u0000\u0000\u02a0\u02a1\u0005p"+ + "\u0000\u0000\u02a1\u02a2\u0005e\u0000\u0000\u02a2\u02a3\u0005o\u0000\u0000"+ + "\u02a3\u02a4\u0005f\u0000\u0000\u02a4\u0093\u0001\u0000\u0000\u0000\u02a5"+ + "\u02a6\u0005c\u0000\u0000\u02a6\u02a7\u0005a\u0000\u0000\u02a7\u02a8\u0005"+ + "s\u0000\u0000\u02a8\u02a9\u0005e\u0000\u0000\u02a9\u0095\u0001\u0000\u0000"+ + "\u0000\u02aa\u02ab\u0005e\u0000\u0000\u02ab\u02ac\u0005l\u0000\u0000\u02ac"+ + "\u02ad\u0005s\u0000\u0000\u02ad\u02ae\u0005e\u0000\u0000\u02ae\u0097\u0001"+ + "\u0000\u0000\u0000\u02af\u02b0\u0005n\u0000\u0000\u02b0\u02b1\u0005e\u0000"+ + "\u0000\u02b1\u02b2\u0005w\u0000\u0000\u02b2\u0099\u0001\u0000\u0000\u0000"+ + "\u02b3\u02b4\u0005v\u0000\u0000\u02b4\u02b5\u0005a\u0000\u0000\u02b5\u02b6"+ + "\u0005r\u0000\u0000\u02b6\u009b\u0001\u0000\u0000\u0000\u02b7\u02b8\u0005"+ + "c\u0000\u0000\u02b8\u02b9\u0005a\u0000\u0000\u02b9\u02ba\u0005t\u0000"+ + "\u0000\u02ba\u02bb\u0005c\u0000\u0000\u02bb\u02bc\u0005h\u0000\u0000\u02bc"+ + "\u009d\u0001\u0000\u0000\u0000\u02bd\u02be\u0005f\u0000\u0000\u02be\u02bf"+ + "\u0005i\u0000\u0000\u02bf\u02c0\u0005n\u0000\u0000\u02c0\u02c1\u0005a"+ + "\u0000\u0000\u02c1\u02c2\u0005l\u0000\u0000\u02c2\u02c3\u0005l\u0000\u0000"+ + "\u02c3\u02c4\u0005y\u0000\u0000\u02c4\u009f\u0001\u0000\u0000\u0000\u02c5"+ + "\u02c6\u0005r\u0000\u0000\u02c6\u02c7\u0005e\u0000\u0000\u02c7\u02c8\u0005"+ + "t\u0000\u0000\u02c8\u02c9\u0005u\u0000\u0000\u02c9\u02ca\u0005r\u0000"+ + "\u0000\u02ca\u02cb\u0005n\u0000\u0000\u02cb\u00a1\u0001\u0000\u0000\u0000"+ + "\u02cc\u02cd\u0005v\u0000\u0000\u02cd\u02ce\u0005o\u0000\u0000\u02ce\u02cf"+ + "\u0005i\u0000\u0000\u02cf\u02d0\u0005d\u0000\u0000\u02d0\u00a3\u0001\u0000"+ + "\u0000\u0000\u02d1\u02d2\u0005c\u0000\u0000\u02d2\u02d3\u0005o\u0000\u0000"+ + "\u02d3\u02d4\u0005n\u0000\u0000\u02d4\u02d5\u0005t\u0000\u0000\u02d5\u02d6"+ + "\u0005i\u0000\u0000\u02d6\u02d7\u0005n\u0000\u0000\u02d7\u02d8\u0005u"+ + "\u0000\u0000\u02d8\u02d9\u0005e\u0000\u0000\u02d9\u00a5\u0001\u0000\u0000"+ + "\u0000\u02da\u02db\u0005f\u0000\u0000\u02db\u02dc\u0005o\u0000\u0000\u02dc"+ + "\u02dd\u0005r\u0000\u0000\u02dd\u00a7\u0001\u0000\u0000\u0000\u02de\u02df"+ + "\u0005s\u0000\u0000\u02df\u02e0\u0005w\u0000\u0000\u02e0\u02e1\u0005i"+ + "\u0000\u0000\u02e1\u02e2\u0005t\u0000\u0000\u02e2\u02e3\u0005c\u0000\u0000"+ + "\u02e3\u02e4\u0005h\u0000\u0000\u02e4\u00a9\u0001\u0000\u0000\u0000\u02e5"+ + "\u02e6\u0005w\u0000\u0000\u02e6\u02e7\u0005h\u0000\u0000\u02e7\u02e8\u0005"+ + "i\u0000\u0000\u02e8\u02e9\u0005l\u0000\u0000\u02e9\u02ea\u0005e\u0000"+ + "\u0000\u02ea\u00ab\u0001\u0000\u0000\u0000\u02eb\u02ec\u0005d\u0000\u0000"+ + "\u02ec\u02ed\u0005e\u0000\u0000\u02ed\u02ee\u0005b\u0000\u0000\u02ee\u02ef"+ + "\u0005u\u0000\u0000\u02ef\u02f0\u0005g\u0000\u0000\u02f0\u02f1\u0005g"+ + "\u0000\u0000\u02f1\u02f2\u0005e\u0000\u0000\u02f2\u02f3\u0005r\u0000\u0000"+ + "\u02f3\u00ad\u0001\u0000\u0000\u0000\u02f4\u02f5\u0005f\u0000\u0000\u02f5"+ + "\u02f6\u0005u\u0000\u0000\u02f6\u02f7\u0005n\u0000\u0000\u02f7\u02f8\u0005"+ + "c\u0000\u0000\u02f8\u02f9\u0005t\u0000\u0000\u02f9\u02fa\u0005i\u0000"+ + "\u0000\u02fa\u02fb\u0005o\u0000\u0000\u02fb\u02fc\u0005n\u0000\u0000\u02fc"+ + "\u00af\u0001\u0000\u0000\u0000\u02fd\u02fe\u0005t\u0000\u0000\u02fe\u02ff"+ + "\u0005h\u0000\u0000\u02ff\u0300\u0005i\u0000\u0000\u0300\u0301\u0005s"+ + "\u0000\u0000\u0301\u00b1\u0001\u0000\u0000\u0000\u0302\u0303\u0005w\u0000"+ + "\u0000\u0303\u0304\u0005i\u0000\u0000\u0304\u0305\u0005t\u0000\u0000\u0305"+ + "\u0306\u0005h\u0000\u0000\u0306\u00b3\u0001\u0000\u0000\u0000\u0307\u0308"+ + "\u0005d\u0000\u0000\u0308\u0309\u0005e\u0000\u0000\u0309\u030a\u0005f"+ + "\u0000\u0000\u030a\u030b\u0005a\u0000\u0000\u030b\u030c\u0005u\u0000\u0000"+ + "\u030c\u030d\u0005l\u0000\u0000\u030d\u030e\u0005t\u0000\u0000\u030e\u00b5"+ + "\u0001\u0000\u0000\u0000\u030f\u0310\u0005i\u0000\u0000\u0310\u0311\u0005"+ + "f\u0000\u0000\u0311\u00b7\u0001\u0000\u0000\u0000\u0312\u0313\u0005t\u0000"+ + "\u0000\u0313\u0314\u0005h\u0000\u0000\u0314\u0315\u0005r\u0000\u0000\u0315"+ + "\u0316\u0005o\u0000\u0000\u0316\u0317\u0005w\u0000\u0000\u0317\u00b9\u0001"+ + "\u0000\u0000\u0000\u0318\u0319\u0005d\u0000\u0000\u0319\u031a\u0005e\u0000"+ + "\u0000\u031a\u031b\u0005l\u0000\u0000\u031b\u031c\u0005e\u0000\u0000\u031c"+ + "\u031d\u0005t\u0000\u0000\u031d\u031e\u0005e\u0000\u0000\u031e\u00bb\u0001"+ + "\u0000\u0000\u0000\u031f\u0320\u0005i\u0000\u0000\u0320\u0321\u0005n\u0000"+ + "\u0000\u0321\u00bd\u0001\u0000\u0000\u0000\u0322\u0323\u0005t\u0000\u0000"+ + "\u0323\u0324\u0005r\u0000\u0000\u0324\u0325\u0005y\u0000\u0000\u0325\u00bf"+ + "\u0001\u0000\u0000\u0000\u0326\u0327\u0005a\u0000\u0000\u0327\u0328\u0005"+ + "s\u0000\u0000\u0328\u00c1\u0001\u0000\u0000\u0000\u0329\u032a\u0005f\u0000"+ + "\u0000\u032a\u032b\u0005r\u0000\u0000\u032b\u032c\u0005o\u0000\u0000\u032c"+ + "\u032d\u0005m\u0000\u0000\u032d\u00c3\u0001\u0000\u0000\u0000\u032e\u032f"+ + "\u0005r\u0000\u0000\u032f\u0330\u0005e\u0000\u0000\u0330\u0331\u0005a"+ + "\u0000\u0000\u0331\u0332\u0005d\u0000\u0000\u0332\u0333\u0005o\u0000\u0000"+ + "\u0333\u0334\u0005n\u0000\u0000\u0334\u0335\u0005l\u0000\u0000\u0335\u0336"+ + "\u0005y\u0000\u0000\u0336\u00c5\u0001\u0000\u0000\u0000\u0337\u0338\u0005"+ + "a\u0000\u0000\u0338\u0339\u0005s\u0000\u0000\u0339\u033a\u0005y\u0000"+ + "\u0000\u033a\u033b\u0005n\u0000\u0000\u033b\u033c\u0005c\u0000\u0000\u033c"+ + "\u00c7\u0001\u0000\u0000\u0000\u033d\u033e\u0005a\u0000\u0000\u033e\u033f"+ + "\u0005w\u0000\u0000\u033f\u0340\u0005a\u0000\u0000\u0340\u0341\u0005i"+ + "\u0000\u0000\u0341\u0342\u0005t\u0000\u0000\u0342\u00c9\u0001\u0000\u0000"+ + "\u0000\u0343\u0344\u0005y\u0000\u0000\u0344\u0345\u0005i\u0000\u0000\u0345"+ + "\u0346\u0005e\u0000\u0000\u0346\u0347\u0005l\u0000\u0000\u0347\u0348\u0005"+ + "d\u0000\u0000\u0348\u00cb\u0001\u0000\u0000\u0000\u0349\u034a\u0005y\u0000"+ + "\u0000\u034a\u034b\u0005i\u0000\u0000\u034b\u034c\u0005e\u0000\u0000\u034c"+ + "\u034d\u0005l\u0000\u0000\u034d\u034e\u0005d\u0000\u0000\u034e\u034f\u0005"+ + "*\u0000\u0000\u034f\u00cd\u0001\u0000\u0000\u0000\u0350\u0351\u0005c\u0000"+ + "\u0000\u0351\u0352\u0005l\u0000\u0000\u0352\u0353\u0005a\u0000\u0000\u0353"+ + "\u0354\u0005s\u0000\u0000\u0354\u0355\u0005s\u0000\u0000\u0355\u00cf\u0001"+ + "\u0000\u0000\u0000\u0356\u0357\u0005e\u0000\u0000\u0357\u0358\u0005n\u0000"+ + "\u0000\u0358\u0359\u0005u\u0000\u0000\u0359\u035a\u0005m\u0000\u0000\u035a"+ + "\u00d1\u0001\u0000\u0000\u0000\u035b\u035c\u0005e\u0000\u0000\u035c\u035d"+ + "\u0005x\u0000\u0000\u035d\u035e\u0005t\u0000\u0000\u035e\u035f\u0005e"+ + "\u0000\u0000\u035f\u0360\u0005n\u0000\u0000\u0360\u0361\u0005d\u0000\u0000"+ + "\u0361\u0362\u0005s\u0000\u0000\u0362\u00d3\u0001\u0000\u0000\u0000\u0363"+ + "\u0364\u0005s\u0000\u0000\u0364\u0365\u0005u\u0000\u0000\u0365\u0366\u0005"+ + "p\u0000\u0000\u0366\u0367\u0005e\u0000\u0000\u0367\u0368\u0005r\u0000"+ + "\u0000\u0368\u00d5\u0001\u0000\u0000\u0000\u0369\u036a\u0005c\u0000\u0000"+ + "\u036a\u036b\u0005o\u0000\u0000\u036b\u036c\u0005n\u0000\u0000\u036c\u036d"+ + "\u0005s\u0000\u0000\u036d\u036e\u0005t\u0000\u0000\u036e\u00d7\u0001\u0000"+ + "\u0000\u0000\u036f\u0370\u0005e\u0000\u0000\u0370\u0371\u0005x\u0000\u0000"+ + "\u0371\u0372\u0005p\u0000\u0000\u0372\u0373\u0005o\u0000\u0000\u0373\u0374"+ + "\u0005r\u0000\u0000\u0374\u0375\u0005t\u0000\u0000\u0375\u00d9\u0001\u0000"+ + "\u0000\u0000\u0376\u0377\u0005i\u0000\u0000\u0377\u0378\u0005m\u0000\u0000"+ + "\u0378\u0379\u0005p\u0000\u0000\u0379\u037a\u0005o\u0000\u0000\u037a\u037b"+ + "\u0005r\u0000\u0000\u037b\u037c\u0005t\u0000\u0000\u037c\u00db\u0001\u0000"+ + "\u0000\u0000\u037d\u037e\u0005i\u0000\u0000\u037e\u037f\u0005m\u0000\u0000"+ + "\u037f\u0380\u0005p\u0000\u0000\u0380\u0381\u0005l\u0000\u0000\u0381\u0382"+ + "\u0005e\u0000\u0000\u0382\u0383\u0005m\u0000\u0000\u0383\u0384\u0005e"+ + "\u0000\u0000\u0384\u0385\u0005n\u0000\u0000\u0385\u0386\u0005t\u0000\u0000"+ + "\u0386\u0387\u0005s\u0000\u0000\u0387\u00dd\u0001\u0000\u0000\u0000\u0388"+ + "\u0389\u0005l\u0000\u0000\u0389\u038a\u0005e\u0000\u0000\u038a\u038b\u0005"+ + "t\u0000\u0000\u038b\u00df\u0001\u0000\u0000\u0000\u038c\u038d\u0005p\u0000"+ + "\u0000\u038d\u038e\u0005r\u0000\u0000\u038e\u038f\u0005i\u0000\u0000\u038f"+ + "\u0390\u0005v\u0000\u0000\u0390\u0391\u0005a\u0000\u0000\u0391\u0392\u0005"+ + "t\u0000\u0000\u0392\u0393\u0005e\u0000\u0000\u0393\u00e1\u0001\u0000\u0000"+ + "\u0000\u0394\u0395\u0005p\u0000\u0000\u0395\u0396\u0005u\u0000\u0000\u0396"+ + "\u0397\u0005b\u0000\u0000\u0397\u0398\u0005l\u0000\u0000\u0398\u0399\u0005"+ + "i\u0000\u0000\u0399\u039a\u0005c\u0000\u0000\u039a\u00e3\u0001\u0000\u0000"+ + "\u0000\u039b\u039c\u0005i\u0000\u0000\u039c\u039d\u0005n\u0000\u0000\u039d"+ + "\u039e\u0005t\u0000\u0000\u039e\u039f\u0005e\u0000\u0000\u039f\u03a0\u0005"+ + "r\u0000\u0000\u03a0\u03a1\u0005f\u0000\u0000\u03a1\u03a2\u0005a\u0000"+ + "\u0000\u03a2\u03a3\u0005c\u0000\u0000\u03a3\u03a4\u0005e\u0000\u0000\u03a4"+ + "\u00e5\u0001\u0000\u0000\u0000\u03a5\u03a6\u0005p\u0000\u0000\u03a6\u03a7"+ + "\u0005a\u0000\u0000\u03a7\u03a8\u0005c\u0000\u0000\u03a8\u03a9\u0005k"+ + "\u0000\u0000\u03a9\u03aa\u0005a\u0000\u0000\u03aa\u03ab\u0005g\u0000\u0000"+ + "\u03ab\u03ac\u0005e\u0000\u0000\u03ac\u00e7\u0001\u0000\u0000\u0000\u03ad"+ + "\u03ae\u0005p\u0000\u0000\u03ae\u03af\u0005r\u0000\u0000\u03af\u03b0\u0005"+ + "o\u0000\u0000\u03b0\u03b1\u0005t\u0000\u0000\u03b1\u03b2\u0005e\u0000"+ + "\u0000\u03b2\u03b3\u0005c\u0000\u0000\u03b3\u03b4\u0005t\u0000\u0000\u03b4"+ + "\u03b5\u0005e\u0000\u0000\u03b5\u03b6\u0005d\u0000\u0000\u03b6\u00e9\u0001"+ + "\u0000\u0000\u0000\u03b7\u03b8\u0005s\u0000\u0000\u03b8\u03b9\u0005t\u0000"+ + "\u0000\u03b9\u03ba\u0005a\u0000\u0000\u03ba\u03bb\u0005t\u0000\u0000\u03bb"+ + "\u03bc\u0005i\u0000\u0000\u03bc\u03bd\u0005c\u0000\u0000\u03bd\u00eb\u0001"+ + "\u0000\u0000\u0000\u03be\u03bf\u0005a\u0000\u0000\u03bf\u03c0\u0005n\u0000"+ + "\u0000\u03c0\u03c1\u0005y\u0000\u0000\u03c1\u00ed\u0001\u0000\u0000\u0000"+ + "\u03c2\u03c3\u0005n\u0000\u0000\u03c3\u03c4\u0005u\u0000\u0000\u03c4\u03c5"+ + "\u0005m\u0000\u0000\u03c5\u03c6\u0005b\u0000\u0000\u03c6\u03c7\u0005e"+ + "\u0000\u0000\u03c7\u03c8\u0005r\u0000\u0000\u03c8\u00ef\u0001\u0000\u0000"+ + "\u0000\u03c9\u03ca\u0005n\u0000\u0000\u03ca\u03cb\u0005e\u0000\u0000\u03cb"+ + "\u03cc\u0005v\u0000\u0000\u03cc\u03cd\u0005e\u0000\u0000\u03cd\u03ce\u0005"+ + "r\u0000\u0000\u03ce\u00f1\u0001\u0000\u0000\u0000\u03cf\u03d0\u0005b\u0000"+ + "\u0000\u03d0\u03d1\u0005o\u0000\u0000\u03d1\u03d2\u0005o\u0000\u0000\u03d2"+ + "\u03d3\u0005l\u0000\u0000\u03d3\u03d4\u0005e\u0000\u0000\u03d4\u03d5\u0005"+ + "a\u0000\u0000\u03d5\u03d6\u0005n\u0000\u0000\u03d6\u00f3\u0001\u0000\u0000"+ + "\u0000\u03d7\u03d8\u0005s\u0000\u0000\u03d8\u03d9\u0005t\u0000\u0000\u03d9"+ + "\u03da\u0005r\u0000\u0000\u03da\u03db\u0005i\u0000\u0000\u03db\u03dc\u0005"+ + "n\u0000\u0000\u03dc\u03dd\u0005g\u0000\u0000\u03dd\u00f5\u0001\u0000\u0000"+ + "\u0000\u03de\u03df\u0005u\u0000\u0000\u03df\u03e0\u0005n\u0000\u0000\u03e0"+ + "\u03e1\u0005i\u0000\u0000\u03e1\u03e2\u0005q\u0000\u0000\u03e2\u03e3\u0005"+ + "u\u0000\u0000\u03e3\u03e4\u0005e\u0000\u0000\u03e4\u00f7\u0001\u0000\u0000"+ + "\u0000\u03e5\u03e6\u0005s\u0000\u0000\u03e6\u03e7\u0005y\u0000\u0000\u03e7"+ + "\u03e8\u0005m\u0000\u0000\u03e8\u03e9\u0005b\u0000\u0000\u03e9\u03ea\u0005"+ + "o\u0000\u0000\u03ea\u03eb\u0005l\u0000\u0000\u03eb\u00f9\u0001\u0000\u0000"+ + "\u0000\u03ec\u03ed\u0005u\u0000\u0000\u03ed\u03ee\u0005n\u0000\u0000\u03ee"+ + "\u03ef\u0005d\u0000\u0000\u03ef\u03f0\u0005e\u0000\u0000\u03f0\u03f1\u0005"+ + "f\u0000\u0000\u03f1\u03f2\u0005i\u0000\u0000\u03f2\u03f3\u0005n\u0000"+ + "\u0000\u03f3\u03f4\u0005e\u0000\u0000\u03f4\u03f5\u0005d\u0000\u0000\u03f5"+ + "\u00fb\u0001\u0000\u0000\u0000\u03f6\u03f7\u0005o\u0000\u0000\u03f7\u03f8"+ + "\u0005b\u0000\u0000\u03f8\u03f9\u0005j\u0000\u0000\u03f9\u03fa\u0005e"+ + "\u0000\u0000\u03fa\u03fb\u0005c\u0000\u0000\u03fb\u03fc\u0005t\u0000\u0000"+ + "\u03fc\u00fd\u0001\u0000\u0000\u0000\u03fd\u03fe\u0005o\u0000\u0000\u03fe"+ + "\u03ff\u0005f\u0000\u0000\u03ff\u00ff\u0001\u0000\u0000\u0000\u0400\u0401"+ + "\u0005k\u0000\u0000\u0401\u0402\u0005e\u0000\u0000\u0402\u0403\u0005y"+ + "\u0000\u0000\u0403\u0404\u0005o\u0000\u0000\u0404\u0405\u0005f\u0000\u0000"+ + "\u0405\u0101\u0001\u0000\u0000\u0000\u0406\u0407\u0005t\u0000\u0000\u0407"+ + "\u0408\u0005y\u0000\u0000\u0408\u0409\u0005p\u0000\u0000\u0409\u040a\u0005"+ + "e\u0000\u0000\u040a\u0103\u0001\u0000\u0000\u0000\u040b\u040c\u0005c\u0000"+ + "\u0000\u040c\u040d\u0005o\u0000\u0000\u040d\u040e\u0005n\u0000\u0000\u040e"+ + "\u040f\u0005s\u0000\u0000\u040f\u0410\u0005t\u0000\u0000\u0410\u0411\u0005"+ + "r\u0000\u0000\u0411\u0412\u0005u\u0000\u0000\u0412\u0413\u0005c\u0000"+ + "\u0000\u0413\u0414\u0005t\u0000\u0000\u0414\u0415\u0005o\u0000\u0000\u0415"+ + "\u0416\u0005r\u0000\u0000\u0416\u0105\u0001\u0000\u0000\u0000\u0417\u0418"+ + "\u0005n\u0000\u0000\u0418\u0419\u0005a\u0000\u0000\u0419\u041a\u0005m"+ + "\u0000\u0000\u041a\u041b\u0005e\u0000\u0000\u041b\u041c\u0005s\u0000\u0000"+ + "\u041c\u041d\u0005p\u0000\u0000\u041d\u041e\u0005a\u0000\u0000\u041e\u041f"+ + "\u0005c\u0000\u0000\u041f\u0420\u0005e\u0000\u0000\u0420\u0107\u0001\u0000"+ + "\u0000\u0000\u0421\u0422\u0005r\u0000\u0000\u0422\u0423\u0005e\u0000\u0000"+ + "\u0423\u0424\u0005q\u0000\u0000\u0424\u0425\u0005u\u0000\u0000\u0425\u0426"+ + "\u0005i\u0000\u0000\u0426\u0427\u0005r\u0000\u0000\u0427\u0428\u0005e"+ + "\u0000\u0000\u0428\u0109\u0001\u0000\u0000\u0000\u0429\u042a\u0005m\u0000"+ + "\u0000\u042a\u042b\u0005o\u0000\u0000\u042b\u042c\u0005d\u0000\u0000\u042c"+ + "\u042d\u0005u\u0000\u0000\u042d\u042e\u0005l\u0000\u0000\u042e\u042f\u0005"+ + "e\u0000\u0000\u042f\u010b\u0001\u0000\u0000\u0000\u0430\u0431\u0005d\u0000"+ + "\u0000\u0431\u0432\u0005e\u0000\u0000\u0432\u0433\u0005c\u0000\u0000\u0433"+ + "\u0434\u0005l\u0000\u0000\u0434\u0435\u0005a\u0000\u0000\u0435\u0436\u0005"+ + "r\u0000\u0000\u0436\u0437\u0005e\u0000\u0000\u0437\u010d\u0001\u0000\u0000"+ + "\u0000\u0438\u0439\u0005a\u0000\u0000\u0439\u043a\u0005b\u0000\u0000\u043a"+ + "\u043b\u0005s\u0000\u0000\u043b\u043c\u0005t\u0000\u0000\u043c\u043d\u0005"+ + "r\u0000\u0000\u043d\u043e\u0005a\u0000\u0000\u043e\u043f\u0005c\u0000"+ + "\u0000\u043f\u0440\u0005t\u0000\u0000\u0440\u010f\u0001\u0000\u0000\u0000"+ + "\u0441\u0442\u0005i\u0000\u0000\u0442\u0443\u0005s\u0000\u0000\u0443\u0111"+ + "\u0001\u0000\u0000\u0000\u0444\u0445\u0005@\u0000\u0000\u0445\u0113\u0001"+ + "\u0000\u0000\u0000\u0446\u044a\u0003\u014a\u00a4\u0000\u0447\u0449\u0003"+ + "\u0148\u00a3\u0000\u0448\u0447\u0001\u0000\u0000\u0000\u0449\u044c\u0001"+ + "\u0000\u0000\u0000\u044a\u0448\u0001\u0000\u0000\u0000\u044a\u044b\u0001"+ + "\u0000\u0000\u0000\u044b\u0115\u0001\u0000\u0000\u0000\u044c\u044a\u0001"+ + "\u0000\u0000\u0000\u044d\u0451\u0005\"\u0000\u0000\u044e\u0450\u0003\u012c"+ + "\u0095\u0000\u044f\u044e\u0001\u0000\u0000\u0000\u0450\u0453\u0001\u0000"+ + "\u0000\u0000\u0451\u044f\u0001\u0000\u0000\u0000\u0451\u0452\u0001\u0000"+ + "\u0000\u0000\u0452\u0454\u0001\u0000\u0000\u0000\u0453\u0451\u0001\u0000"+ + "\u0000\u0000\u0454\u045e\u0005\"\u0000\u0000\u0455\u0459\u0005\'\u0000"+ + "\u0000\u0456\u0458\u0003\u012e\u0096\u0000\u0457\u0456\u0001\u0000\u0000"+ + "\u0000\u0458\u045b\u0001\u0000\u0000\u0000\u0459\u0457\u0001\u0000\u0000"+ + "\u0000\u0459\u045a\u0001\u0000\u0000\u0000\u045a\u045c\u0001\u0000\u0000"+ + "\u0000\u045b\u0459\u0001\u0000\u0000\u0000\u045c\u045e\u0005\'\u0000\u0000"+ + "\u045d\u044d\u0001\u0000\u0000\u0000\u045d\u0455\u0001\u0000\u0000\u0000"+ + "\u045e\u045f\u0001\u0000\u0000\u0000\u045f\u0460\u0006\u008a\u0004\u0000"+ + "\u0460\u0117\u0001\u0000\u0000\u0000\u0461\u0462\u0005`\u0000\u0000\u0462"+ + "\u0463\u0006\u008b\u0005\u0000\u0463\u0464\u0001\u0000\u0000\u0000\u0464"+ + "\u0465\u0006\u008b\u0006\u0000\u0465\u0119\u0001\u0000\u0000\u0000\u0466"+ + "\u0468\u0007\u000b\u0000\u0000\u0467\u0466\u0001\u0000\u0000\u0000\u0468"+ + "\u0469\u0001\u0000\u0000\u0000\u0469\u0467\u0001\u0000\u0000\u0000\u0469"+ + "\u046a\u0001\u0000\u0000\u0000\u046a\u046b\u0001\u0000\u0000\u0000\u046b"+ + "\u046c\u0006\u008c\u0000\u0000\u046c\u011b\u0001\u0000\u0000\u0000\u046d"+ + "\u046e\u0007\u0000\u0000\u0000\u046e\u046f\u0001\u0000\u0000\u0000\u046f"+ + "\u0470\u0006\u008d\u0000\u0000\u0470\u011d\u0001\u0000\u0000\u0000\u0471"+ + "\u0472\u0005<\u0000\u0000\u0472\u0473\u0005!\u0000\u0000\u0473\u0474\u0005"+ + "-\u0000\u0000\u0474\u0475\u0005-\u0000\u0000\u0475\u0479\u0001\u0000\u0000"+ + "\u0000\u0476\u0478\t\u0000\u0000\u0000\u0477\u0476\u0001\u0000\u0000\u0000"+ + "\u0478\u047b\u0001\u0000\u0000\u0000\u0479\u047a\u0001\u0000\u0000\u0000"+ + "\u0479\u0477\u0001\u0000\u0000\u0000\u047a\u047c\u0001\u0000\u0000\u0000"+ + "\u047b\u0479\u0001\u0000\u0000\u0000\u047c\u047d\u0005-\u0000\u0000\u047d"+ + "\u047e\u0005-\u0000\u0000\u047e\u047f\u0005>\u0000\u0000\u047f\u0480\u0001"+ + "\u0000\u0000\u0000\u0480\u0481\u0006\u008e\u0000\u0000\u0481\u011f\u0001"+ + "\u0000\u0000\u0000\u0482\u0483\u0005<\u0000\u0000\u0483\u0484\u0005!\u0000"+ + "\u0000\u0484\u0485\u0005[\u0000\u0000\u0485\u0486\u0005C\u0000\u0000\u0486"+ + "\u0487\u0005D\u0000\u0000\u0487\u0488\u0005A\u0000\u0000\u0488\u0489\u0005"+ + "T\u0000\u0000\u0489\u048a\u0005A\u0000\u0000\u048a\u048b\u0005[\u0000"+ + "\u0000\u048b\u048f\u0001\u0000\u0000\u0000\u048c\u048e\t\u0000\u0000\u0000"+ + "\u048d\u048c\u0001\u0000\u0000\u0000\u048e\u0491\u0001\u0000\u0000\u0000"+ + "\u048f\u0490\u0001\u0000\u0000\u0000\u048f\u048d\u0001\u0000\u0000\u0000"+ + "\u0490\u0492\u0001\u0000\u0000\u0000\u0491\u048f\u0001\u0000\u0000\u0000"+ + "\u0492\u0493\u0005]\u0000\u0000\u0493\u0494\u0005]\u0000\u0000\u0494\u0495"+ + "\u0005>\u0000\u0000\u0495\u0496\u0001\u0000\u0000\u0000\u0496\u0497\u0006"+ + "\u008f\u0000\u0000\u0497\u0121\u0001\u0000\u0000\u0000\u0498\u0499\t\u0000"+ + "\u0000\u0000\u0499\u049a\u0001\u0000\u0000\u0000\u049a\u049b\u0006\u0090"+ + "\u0007\u0000\u049b\u0123\u0001\u0000\u0000\u0000\u049c\u049d\u0005\\\u0000"+ + "\u0000\u049d\u049e\t\u0000\u0000\u0000\u049e\u0125\u0001\u0000\u0000\u0000"+ + "\u049f\u04a0\u0005`\u0000\u0000\u04a0\u04a1\u0006\u0092\b\u0000\u04a1"+ + "\u04a2\u0001\u0000\u0000\u0000\u04a2\u04a3\u0006\u0092\t\u0000\u04a3\u04a4"+ + "\u0006\u0092\u0002\u0000\u04a4\u0127\u0001\u0000\u0000\u0000\u04a5\u04a6"+ + "\u0005$\u0000\u0000\u04a6\u04a7\u0005{\u0000\u0000\u04a7\u04a8\u0001\u0000"+ + "\u0000\u0000\u04a8\u04a9\u0006\u0093\n\u0000\u04a9\u04aa\u0001\u0000\u0000"+ + "\u0000\u04aa\u04ab\u0006\u0093\u000b\u0000\u04ab\u0129\u0001\u0000\u0000"+ + "\u0000\u04ac\u04ad\b\f\u0000\u0000\u04ad\u012b\u0001\u0000\u0000\u0000"+ + "\u04ae\u04b3\b\r\u0000\u0000\u04af\u04b0\u0005\\\u0000\u0000\u04b0\u04b3"+ + "\u0003\u0130\u0097\u0000\u04b1\u04b3\u0003\u0140\u009f\u0000\u04b2\u04ae"+ + "\u0001\u0000\u0000\u0000\u04b2\u04af\u0001\u0000\u0000\u0000\u04b2\u04b1"+ + "\u0001\u0000\u0000\u0000\u04b3\u012d\u0001\u0000\u0000\u0000\u04b4\u04b9"+ + "\b\u000e\u0000\u0000\u04b5\u04b6\u0005\\\u0000\u0000\u04b6\u04b9\u0003"+ + "\u0130\u0097\u0000\u04b7\u04b9\u0003\u0140\u009f\u0000\u04b8\u04b4\u0001"+ + "\u0000\u0000\u0000\u04b8\u04b5\u0001\u0000\u0000\u0000\u04b8\u04b7\u0001"+ + "\u0000\u0000\u0000\u04b9\u012f\u0001\u0000\u0000\u0000\u04ba\u04c0\u0003"+ + "\u0132\u0098\u0000\u04bb\u04c0\u00050\u0000\u0000\u04bc\u04c0\u0003\u0134"+ + "\u0099\u0000\u04bd\u04c0\u0003\u0136\u009a\u0000\u04be\u04c0\u0003\u0138"+ + "\u009b\u0000\u04bf\u04ba\u0001\u0000\u0000\u0000\u04bf\u04bb\u0001\u0000"+ + "\u0000\u0000\u04bf\u04bc\u0001\u0000\u0000\u0000\u04bf\u04bd\u0001\u0000"+ + "\u0000\u0000\u04bf\u04be\u0001\u0000\u0000\u0000\u04c0\u0131\u0001\u0000"+ + "\u0000\u0000\u04c1\u04c4\u0003\u013a\u009c\u0000\u04c2\u04c4\u0003\u013c"+ + "\u009d\u0000\u04c3\u04c1\u0001\u0000\u0000\u0000\u04c3\u04c2\u0001\u0000"+ + "\u0000\u0000\u04c4\u0133\u0001\u0000\u0000\u0000\u04c5\u04c6\u0005x\u0000"+ + "\u0000\u04c6\u04c7\u0003\u0142\u00a0\u0000\u04c7\u04c8\u0003\u0142\u00a0"+ + "\u0000\u04c8\u0135\u0001\u0000\u0000\u0000\u04c9\u04ca\u0005u\u0000\u0000"+ + "\u04ca\u04cb\u0003\u0142\u00a0\u0000\u04cb\u04cc\u0003\u0142\u00a0\u0000"+ + "\u04cc\u04cd\u0003\u0142\u00a0\u0000\u04cd\u04ce\u0003\u0142\u00a0\u0000"+ + "\u04ce\u04da\u0001\u0000\u0000\u0000\u04cf\u04d0\u0005u\u0000\u0000\u04d0"+ + "\u04d1\u0005{\u0000\u0000\u04d1\u04d3\u0003\u0142\u00a0\u0000\u04d2\u04d4"+ + "\u0003\u0142\u00a0\u0000\u04d3\u04d2\u0001\u0000\u0000\u0000\u04d4\u04d5"+ + "\u0001\u0000\u0000\u0000\u04d5\u04d3\u0001\u0000\u0000\u0000\u04d5\u04d6"+ + "\u0001\u0000\u0000\u0000\u04d6\u04d7\u0001\u0000\u0000\u0000\u04d7\u04d8"+ + "\u0005}\u0000\u0000\u04d8\u04da\u0001\u0000\u0000\u0000\u04d9\u04c9\u0001"+ + "\u0000\u0000\u0000\u04d9\u04cf\u0001\u0000\u0000\u0000\u04da\u0137\u0001"+ + "\u0000\u0000\u0000\u04db\u04dc\u0005u\u0000\u0000\u04dc\u04de\u0005{\u0000"+ + "\u0000\u04dd\u04df\u0003\u0142\u00a0\u0000\u04de\u04dd\u0001\u0000\u0000"+ + "\u0000\u04df\u04e0\u0001\u0000\u0000\u0000\u04e0\u04de\u0001\u0000\u0000"+ + "\u0000\u04e0\u04e1\u0001\u0000\u0000\u0000\u04e1\u04e2\u0001\u0000\u0000"+ + "\u0000\u04e2\u04e3\u0005}\u0000\u0000\u04e3\u0139\u0001\u0000\u0000\u0000"+ + "\u04e4\u04e5\u0007\u000f\u0000\u0000\u04e5\u013b\u0001\u0000\u0000\u0000"+ + "\u04e6\u04e7\b\u0010\u0000\u0000\u04e7\u013d\u0001\u0000\u0000\u0000\u04e8"+ + "\u04eb\u0003\u013a\u009c\u0000\u04e9\u04eb\u0007\u0011\u0000\u0000\u04ea"+ + "\u04e8\u0001\u0000\u0000\u0000\u04ea\u04e9\u0001\u0000\u0000\u0000\u04eb"+ + "\u013f\u0001\u0000\u0000\u0000\u04ec\u04ee\u0005\\\u0000\u0000\u04ed\u04ef"+ + "\u0007\u0000\u0000\u0000\u04ee\u04ed\u0001\u0000\u0000\u0000\u04ef\u04f0"+ + "\u0001\u0000\u0000\u0000\u04f0\u04ee\u0001\u0000\u0000\u0000\u04f0\u04f1"+ + "\u0001\u0000\u0000\u0000\u04f1\u0141\u0001\u0000\u0000\u0000\u04f2\u04f3"+ + "\u0007\u0012\u0000\u0000\u04f3\u0143\u0001\u0000\u0000\u0000\u04f4\u04fd"+ + "\u00050\u0000\u0000\u04f5\u04f9\u0007\u0013\u0000\u0000\u04f6\u04f8\u0007"+ + "\u0002\u0000\u0000\u04f7\u04f6\u0001\u0000\u0000\u0000\u04f8\u04fb\u0001"+ + "\u0000\u0000\u0000\u04f9\u04f7\u0001\u0000\u0000\u0000\u04f9\u04fa\u0001"+ + "\u0000\u0000\u0000\u04fa\u04fd\u0001\u0000\u0000\u0000\u04fb\u04f9\u0001"+ + "\u0000\u0000\u0000\u04fc\u04f4\u0001\u0000\u0000\u0000\u04fc\u04f5\u0001"+ + "\u0000\u0000\u0000\u04fd\u0145\u0001\u0000\u0000\u0000\u04fe\u0500\u0007"+ + "\u0014\u0000\u0000\u04ff\u0501\u0007\u0015\u0000\u0000\u0500\u04ff\u0001"+ + "\u0000\u0000\u0000\u0500\u0501\u0001\u0000\u0000\u0000\u0501\u0503\u0001"+ + "\u0000\u0000\u0000\u0502\u0504\u0007\u0002\u0000\u0000\u0503\u0502\u0001"+ + "\u0000\u0000\u0000\u0504\u0505\u0001\u0000\u0000\u0000\u0505\u0503\u0001"+ + "\u0000\u0000\u0000\u0505\u0506\u0001\u0000\u0000\u0000\u0506\u0147\u0001"+ + "\u0000\u0000\u0000\u0507\u050a\u0003\u014a\u00a4\u0000\u0508\u050a\u0007"+ + "\u0016\u0000\u0000\u0509\u0507\u0001\u0000\u0000\u0000\u0509\u0508\u0001"+ + "\u0000\u0000\u0000\u050a\u0149\u0001\u0000\u0000\u0000\u050b\u050f\u0007"+ + "\u0017\u0000\u0000\u050c\u050d\u0005\\\u0000\u0000\u050d\u050f\u0003\u0136"+ + "\u009a\u0000\u050e\u050b\u0001\u0000\u0000\u0000\u050e\u050c\u0001\u0000"+ + "\u0000\u0000\u050f\u014b\u0001\u0000\u0000\u0000\u0510\u051b\b\u0018\u0000"+ + "\u0000\u0511\u051b\u0003\u0152\u00a8\u0000\u0512\u0516\u0005[\u0000\u0000"+ + "\u0513\u0515\u0003\u0150\u00a7\u0000\u0514\u0513\u0001\u0000\u0000\u0000"+ + "\u0515\u0518\u0001\u0000\u0000\u0000\u0516\u0514\u0001\u0000\u0000\u0000"+ + "\u0516\u0517\u0001\u0000\u0000\u0000\u0517\u0519\u0001\u0000\u0000\u0000"+ + "\u0518\u0516\u0001\u0000\u0000\u0000\u0519\u051b\u0005]\u0000\u0000\u051a"+ + "\u0510\u0001\u0000\u0000\u0000\u051a\u0511\u0001\u0000\u0000\u0000\u051a"+ + "\u0512\u0001\u0000\u0000\u0000\u051b\u014d\u0001\u0000\u0000\u0000\u051c"+ + "\u0527\b\u0019\u0000\u0000\u051d\u0527\u0003\u0152\u00a8\u0000\u051e\u0522"+ + "\u0005[\u0000\u0000\u051f\u0521\u0003\u0150\u00a7\u0000\u0520\u051f\u0001"+ + "\u0000\u0000\u0000\u0521\u0524\u0001\u0000\u0000\u0000\u0522\u0520\u0001"+ + "\u0000\u0000\u0000\u0522\u0523\u0001\u0000\u0000\u0000\u0523\u0525\u0001"+ + "\u0000\u0000\u0000\u0524\u0522\u0001\u0000\u0000\u0000\u0525\u0527\u0005"+ + "]\u0000\u0000\u0526\u051c\u0001\u0000\u0000\u0000\u0526\u051d\u0001\u0000"+ + "\u0000\u0000\u0526\u051e\u0001\u0000\u0000\u0000\u0527\u014f\u0001\u0000"+ + "\u0000\u0000\u0528\u052b\b\u001a\u0000\u0000\u0529\u052b\u0003\u0152\u00a8"+ + "\u0000\u052a\u0528\u0001\u0000\u0000\u0000\u052a\u0529\u0001\u0000\u0000"+ + "\u0000\u052b\u0151\u0001\u0000\u0000\u0000\u052c\u052d\u0005\\\u0000\u0000"+ + "\u052d\u052e\b\u0000\u0000\u0000\u052e\u0153\u0001\u0000\u0000\u0000/"+ + "\u0000\u0001\u015a\u0168\u0172\u017a\u0224\u022c\u0230\u0237\u023b\u023f"+ + "\u0241\u0249\u0250\u025a\u0263\u026c\u0277\u0282\u044a\u0451\u0459\u045d"+ + "\u0469\u0479\u048f\u04b2\u04b8\u04bf\u04c3\u04d5\u04d9\u04e0\u04ea\u04f0"+ + "\u04f9\u04fc\u0500\u0505\u0509\u050e\u0516\u051a\u0522\u0526\u052a\f\u0000"+ + "\u0001\u0000\u0001\u0007\u0000\u0004\u0000\u0000\u0001\t\u0001\u0001\u008a"+ + "\u0002\u0001\u008b\u0003\u0005\u0001\u0000\u0000\u0002\u0000\u0001\u0092"+ + "\u0004\u0007\u008c\u0000\u0001\u0093\u0005\u0005\u0000\u0000"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptLexer.tokens b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptLexer.tokens new file mode 100644 index 0000000000000000000000000000000000000000..18922f93f3cb35e681bcb1da9ecd8b11a0b1f90f --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptLexer.tokens @@ -0,0 +1,271 @@ +MultiLineComment=1 +SingleLineComment=2 +RegularExpressionLiteral=3 +OpenBracket=4 +CloseBracket=5 +OpenParen=6 +CloseParen=7 +OpenBrace=8 +TemplateCloseBrace=9 +CloseBrace=10 +SemiColon=11 +Comma=12 +Assign=13 +QuestionMark=14 +QuestionMarkDot=15 +Colon=16 +Ellipsis=17 +Dot=18 +PlusPlus=19 +MinusMinus=20 +Plus=21 +Minus=22 +BitNot=23 +Not=24 +Multiply=25 +Divide=26 +Modulus=27 +Power=28 +NullCoalesce=29 +Hashtag=30 +LeftShiftArithmetic=31 +LessThan=32 +MoreThan=33 +LessThanEquals=34 +GreaterThanEquals=35 +Equals_=36 +NotEquals=37 +IdentityEquals=38 +IdentityNotEquals=39 +BitAnd=40 +BitXOr=41 +BitOr=42 +And=43 +Or=44 +MultiplyAssign=45 +DivideAssign=46 +ModulusAssign=47 +PlusAssign=48 +MinusAssign=49 +LeftShiftArithmeticAssign=50 +RightShiftArithmeticAssign=51 +RightShiftLogicalAssign=52 +BitAndAssign=53 +BitXorAssign=54 +BitOrAssign=55 +PowerAssign=56 +NullishCoalescingAssign=57 +ARROW=58 +NullLiteral=59 +BooleanLiteral=60 +DecimalLiteral=61 +HexIntegerLiteral=62 +OctalIntegerLiteral=63 +OctalIntegerLiteral2=64 +BinaryIntegerLiteral=65 +BigHexIntegerLiteral=66 +BigOctalIntegerLiteral=67 +BigBinaryIntegerLiteral=68 +BigDecimalIntegerLiteral=69 +Break=70 +Do=71 +Instanceof=72 +Typeof=73 +Case=74 +Else=75 +New=76 +Var=77 +Catch=78 +Finally=79 +Return=80 +Void=81 +Continue=82 +For=83 +Switch=84 +While=85 +Debugger=86 +Function_=87 +This=88 +With=89 +Default=90 +If=91 +Throw=92 +Delete=93 +In=94 +Try=95 +As=96 +From=97 +ReadOnly=98 +Async=99 +Await=100 +Yield=101 +YieldStar=102 +Class=103 +Enum=104 +Extends=105 +Super=106 +Const=107 +Export=108 +Import=109 +Implements=110 +Let=111 +Private=112 +Public=113 +Interface=114 +Package=115 +Protected=116 +Static=117 +Any=118 +Number=119 +Never=120 +Boolean=121 +String=122 +Unique=123 +Symbol=124 +Undefined=125 +Object=126 +Of=127 +KeyOf=128 +TypeAlias=129 +Constructor=130 +Namespace=131 +Require=132 +Module=133 +Declare=134 +Abstract=135 +Is=136 +At=137 +Identifier=138 +StringLiteral=139 +BackTick=140 +WhiteSpaces=141 +LineTerminator=142 +HtmlComment=143 +CDataComment=144 +UnexpectedCharacter=145 +TemplateStringEscapeAtom=146 +TemplateStringStartExpression=147 +TemplateStringAtom=148 +'['=4 +']'=5 +'('=6 +')'=7 +'{'=8 +'}'=10 +';'=11 +','=12 +'='=13 +'?'=14 +'?.'=15 +':'=16 +'...'=17 +'.'=18 +'++'=19 +'--'=20 +'+'=21 +'-'=22 +'~'=23 +'!'=24 +'*'=25 +'/'=26 +'%'=27 +'**'=28 +'??'=29 +'#'=30 +'<<'=31 +'<'=32 +'>'=33 +'<='=34 +'>='=35 +'=='=36 +'!='=37 +'==='=38 +'!=='=39 +'&'=40 +'^'=41 +'|'=42 +'&&'=43 +'||'=44 +'*='=45 +'/='=46 +'%='=47 +'+='=48 +'-='=49 +'<<='=50 +'>>='=51 +'>>>='=52 +'&='=53 +'^='=54 +'|='=55 +'**='=56 +'??='=57 +'=>'=58 +'null'=59 +'break'=70 +'do'=71 +'instanceof'=72 +'typeof'=73 +'case'=74 +'else'=75 +'new'=76 +'var'=77 +'catch'=78 +'finally'=79 +'return'=80 +'void'=81 +'continue'=82 +'for'=83 +'switch'=84 +'while'=85 +'debugger'=86 +'function'=87 +'this'=88 +'with'=89 +'default'=90 +'if'=91 +'throw'=92 +'delete'=93 +'in'=94 +'try'=95 +'as'=96 +'from'=97 +'readonly'=98 +'async'=99 +'await'=100 +'yield'=101 +'yield*'=102 +'class'=103 +'enum'=104 +'extends'=105 +'super'=106 +'const'=107 +'export'=108 +'import'=109 +'implements'=110 +'let'=111 +'private'=112 +'public'=113 +'interface'=114 +'package'=115 +'protected'=116 +'static'=117 +'any'=118 +'number'=119 +'never'=120 +'boolean'=121 +'string'=122 +'unique'=123 +'symbol'=124 +'undefined'=125 +'object'=126 +'of'=127 +'keyof'=128 +'type'=129 +'constructor'=130 +'namespace'=131 +'require'=132 +'module'=133 +'declare'=134 +'abstract'=135 +'is'=136 +'@'=137 diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptLexerBase.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptLexerBase.java new file mode 100644 index 0000000000000000000000000000000000000000..a5928e72d299ddcccbd493430d4b7a924745cce4 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptLexerBase.java @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr; + +import org.antlr.v4.runtime.*; + +import java.util.ArrayDeque; +import java.util.Deque; + +/** + * All lexer methods that used in grammar (IsStrictMode) + * should start with Upper Case Char similar to Lexer rules. + */ +public abstract class TypeScriptLexerBase extends Lexer +{ + /** + * Stores values of nested modes. By default mode is strict or + * defined externally (useStrictDefault) + */ + private final Deque scopeStrictModes = new ArrayDeque<>(); + + private Token lastToken = null; + /** + * Default value of strict mode + * Can be defined externally by setUseStrictDefault + */ + private boolean useStrictDefault = false; + /** + * Current value of strict mode + * Can be defined during parsing, see StringFunctions.js and StringGlobal.js samples + */ + private boolean useStrictCurrent = false; + /** + * Keeps track of the current depth of nested template string backticks. + * E.g. after the X in: + * + * `${a ? `${X + * + * templateDepth will be 2. This variable is needed to determine if a `}` is a + * plain CloseBrace, or one that closes an expression inside a template string. + */ + private int templateDepth = 0; + + /** + * Keeps track of the depth of open- and close-braces. Used for expressions like: + * + * `${[1, 2, 3].map(x => { return x * 2;}).join("")}` + * + * where the '}' from `return x * 2;}` should not become a `TemplateCloseBrace` + * token but rather a `CloseBrace` token. + */ + private int bracesDepth = 0; + + public TypeScriptLexerBase(CharStream input) { + super(input); + } + + public boolean getStrictDefault() { + return useStrictDefault; + } + + public void setUseStrictDefault(boolean value) { + useStrictDefault = value; + useStrictCurrent = value; + } + + public boolean IsStrictMode() { + return useStrictCurrent; + } + + public void StartTemplateString() { + this.bracesDepth = 0; + } + + public boolean IsInTemplateString() { + return this.templateDepth > 0 && this.bracesDepth == 0; + } + + /** + * Return the next token from the character stream and records this last + * token in case it resides on the default channel. This recorded token + * is used to determine when the lexer could possibly match a regex + * literal. Also changes scopeStrictModes stack if tokenize special + * string 'use strict'; + * + * @return the next token from the character stream. + */ + @Override + public Token nextToken() { + Token next = super.nextToken(); + + if (next.getChannel() == Token.DEFAULT_CHANNEL) { + // Keep track of the last token on the default channel. + this.lastToken = next; + } + + return next; + } + + protected void ProcessOpenBrace() + { + bracesDepth++; + useStrictCurrent = scopeStrictModes.size() > 0 && scopeStrictModes.peek() ? true : useStrictDefault; + scopeStrictModes.push(useStrictCurrent); + } + + protected void ProcessCloseBrace() + { + bracesDepth--; + useStrictCurrent = scopeStrictModes.size() > 0 ? scopeStrictModes.pop() : useStrictDefault; + } + + protected void ProcessStringLiteral() + { + if (lastToken == null || lastToken.getType() == TypeScriptLexer.OpenBrace) + { + String text = getText(); + if (text.equals("\"use strict\"") || text.equals("'use strict'")) + { + if (scopeStrictModes.size() > 0) + scopeStrictModes.pop(); + useStrictCurrent = true; + scopeStrictModes.push(useStrictCurrent); + } + } + } + + protected void IncreaseTemplateDepth() { + this.templateDepth++; + } + + protected void DecreaseTemplateDepth() { + this.templateDepth--; + } + + /** + * Returns {@code true} if the lexer can match a regex literal. + */ + protected boolean IsRegexPossible() { + + if (this.lastToken == null) { + // No token has been produced yet: at the start of the input, + // no division is possible, so a regex literal _is_ possible. + return true; + } + + switch (this.lastToken.getType()) { + case TypeScriptLexer.Identifier: + case TypeScriptLexer.NullLiteral: + case TypeScriptLexer.BooleanLiteral: + case TypeScriptLexer.This: + case TypeScriptLexer.CloseBracket: + case TypeScriptLexer.CloseParen: + case TypeScriptLexer.OctalIntegerLiteral: + case TypeScriptLexer.DecimalLiteral: + case TypeScriptLexer.HexIntegerLiteral: + case TypeScriptLexer.StringLiteral: + case TypeScriptLexer.PlusPlus: + case TypeScriptLexer.MinusMinus: + // After any of the tokens above, no regex literal can follow. + return false; + default: + // In all other cases, a regex literal _is_ possible. + return true; + } + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParser.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParser.java new file mode 100644 index 0000000000000000000000000000000000000000..f9cad25af14a4b6155c5185536fa7b1690e61eda --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParser.java @@ -0,0 +1,16663 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr; + +// Generated from TypeScriptParser.g4 by ANTLR 4.13.2 +import antlr.TypeScriptParserBase; +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", "CheckReturnValue", "this-escape"}) +public class TypeScriptParser extends TypeScriptParserBase { + static { RuntimeMetaData.checkVersion("4.13.2", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + MultiLineComment=1, SingleLineComment=2, RegularExpressionLiteral=3, OpenBracket=4, + CloseBracket=5, OpenParen=6, CloseParen=7, OpenBrace=8, TemplateCloseBrace=9, + CloseBrace=10, SemiColon=11, Comma=12, Assign=13, QuestionMark=14, QuestionMarkDot=15, + Colon=16, Ellipsis=17, Dot=18, PlusPlus=19, MinusMinus=20, Plus=21, Minus=22, + BitNot=23, Not=24, Multiply=25, Divide=26, Modulus=27, Power=28, NullCoalesce=29, + Hashtag=30, LeftShiftArithmetic=31, LessThan=32, MoreThan=33, LessThanEquals=34, + GreaterThanEquals=35, Equals_=36, NotEquals=37, IdentityEquals=38, IdentityNotEquals=39, + BitAnd=40, BitXOr=41, BitOr=42, And=43, Or=44, MultiplyAssign=45, DivideAssign=46, + ModulusAssign=47, PlusAssign=48, MinusAssign=49, LeftShiftArithmeticAssign=50, + RightShiftArithmeticAssign=51, RightShiftLogicalAssign=52, BitAndAssign=53, + BitXorAssign=54, BitOrAssign=55, PowerAssign=56, NullishCoalescingAssign=57, + ARROW=58, NullLiteral=59, BooleanLiteral=60, DecimalLiteral=61, HexIntegerLiteral=62, + OctalIntegerLiteral=63, OctalIntegerLiteral2=64, BinaryIntegerLiteral=65, + BigHexIntegerLiteral=66, BigOctalIntegerLiteral=67, BigBinaryIntegerLiteral=68, + BigDecimalIntegerLiteral=69, Break=70, Do=71, Instanceof=72, Typeof=73, + Case=74, Else=75, New=76, Var=77, Catch=78, Finally=79, Return=80, Void=81, + Continue=82, For=83, Switch=84, While=85, Debugger=86, Function_=87, This=88, + With=89, Default=90, If=91, Throw=92, Delete=93, In=94, Try=95, As=96, + From=97, ReadOnly=98, Async=99, Await=100, Yield=101, YieldStar=102, Class=103, + Enum=104, Extends=105, Super=106, Const=107, Export=108, Import=109, Implements=110, + Let=111, Private=112, Public=113, Interface=114, Package=115, Protected=116, + Static=117, Any=118, Number=119, Never=120, Boolean=121, String=122, Unique=123, + Symbol=124, Undefined=125, Object=126, Of=127, KeyOf=128, TypeAlias=129, + Constructor=130, Namespace=131, Require=132, Module=133, Declare=134, + Abstract=135, Is=136, At=137, Identifier=138, StringLiteral=139, BackTick=140, + WhiteSpaces=141, LineTerminator=142, HtmlComment=143, CDataComment=144, + UnexpectedCharacter=145, TemplateStringEscapeAtom=146, TemplateStringStartExpression=147, + TemplateStringAtom=148; + public static final int + RULE_initializer = 0, RULE_bindingPattern = 1, RULE_typeParameters = 2, + RULE_typeParameterList = 3, RULE_typeParameter = 4, RULE_constraint = 5, + RULE_typeArguments = 6, RULE_typeArgumentList = 7, RULE_typeArgument = 8, + RULE_type_ = 9, RULE_unionOrIntersectionOrPrimaryType = 10, RULE_primaryType = 11, + RULE_predefinedType = 12, RULE_typeReference = 13, RULE_typeGeneric = 14, + RULE_typeName = 15, RULE_objectType = 16, RULE_typeBody = 17, RULE_typeMemberList = 18, + RULE_typeMember = 19, RULE_arrayType = 20, RULE_tupleType = 21, RULE_tupleElementTypes = 22, + RULE_functionType = 23, RULE_constructorType = 24, RULE_typeQuery = 25, + RULE_typeQueryExpression = 26, RULE_propertySignatur = 27, RULE_typeAnnotation = 28, + RULE_callSignature = 29, RULE_parameterList = 30, RULE_requiredParameterList = 31, + RULE_parameter = 32, RULE_optionalParameter = 33, RULE_restParameter = 34, + RULE_requiredParameter = 35, RULE_accessibilityModifier = 36, RULE_identifierOrPattern = 37, + RULE_constructSignature = 38, RULE_indexSignature = 39, RULE_methodSignature = 40, + RULE_typeAliasDeclaration = 41, RULE_constructorDeclaration = 42, RULE_interfaceDeclaration = 43, + RULE_interfaceExtendsClause = 44, RULE_classOrInterfaceTypeList = 45, + RULE_enumDeclaration = 46, RULE_enumBody = 47, RULE_enumMemberList = 48, + RULE_enumMember = 49, RULE_namespaceDeclaration = 50, RULE_namespaceName = 51, + RULE_importAliasDeclaration = 52, RULE_decoratorList = 53, RULE_decorator = 54, + RULE_decoratorMemberExpression = 55, RULE_decoratorCallExpression = 56, + RULE_program = 57, RULE_sourceElement = 58, RULE_statement = 59, RULE_block = 60, + RULE_statementList = 61, RULE_abstractDeclaration = 62, RULE_importStatement = 63, + RULE_importFromBlock = 64, RULE_importModuleItems = 65, RULE_importAliasName = 66, + RULE_moduleExportName = 67, RULE_importedBinding = 68, RULE_importDefault = 69, + RULE_importNamespace = 70, RULE_importFrom = 71, RULE_aliasName = 72, + RULE_exportStatement = 73, RULE_exportFromBlock = 74, RULE_exportModuleItems = 75, + RULE_exportAliasName = 76, RULE_declaration = 77, RULE_variableStatement = 78, + RULE_variableDeclarationList = 79, RULE_variableDeclaration = 80, RULE_emptyStatement_ = 81, + RULE_expressionStatement = 82, RULE_ifStatement = 83, RULE_iterationStatement = 84, + RULE_varModifier = 85, RULE_continueStatement = 86, RULE_breakStatement = 87, + RULE_returnStatement = 88, RULE_yieldStatement = 89, RULE_withStatement = 90, + RULE_switchStatement = 91, RULE_caseBlock = 92, RULE_caseClauses = 93, + RULE_caseClause = 94, RULE_defaultClause = 95, RULE_labelledStatement = 96, + RULE_throwStatement = 97, RULE_tryStatement = 98, RULE_catchProduction = 99, + RULE_finallyProduction = 100, RULE_debuggerStatement = 101, RULE_functionDeclaration = 102, + RULE_classDeclaration = 103, RULE_classHeritage = 104, RULE_classTail = 105, + RULE_classExtendsClause = 106, RULE_implementsClause = 107, RULE_classElement = 108, + RULE_propertyMemberDeclaration = 109, RULE_propertyMemberBase = 110, RULE_indexMemberDeclaration = 111, + RULE_generatorMethod = 112, RULE_generatorFunctionDeclaration = 113, RULE_generatorBlock = 114, + RULE_generatorDefinition = 115, RULE_iteratorBlock = 116, RULE_iteratorDefinition = 117, + RULE_classElementName = 118, RULE_privateIdentifier = 119, RULE_formalParameterList = 120, + RULE_formalParameterArg = 121, RULE_lastFormalParameterArg = 122, RULE_functionBody = 123, + RULE_sourceElements = 124, RULE_arrayLiteral = 125, RULE_elementList = 126, + RULE_arrayElement = 127, RULE_objectLiteral = 128, RULE_propertyAssignment = 129, + RULE_getAccessor = 130, RULE_setAccessor = 131, RULE_propertyName = 132, + RULE_arguments = 133, RULE_argumentList = 134, RULE_argument = 135, RULE_expressionSequence = 136, + RULE_singleExpression = 137, RULE_asExpression = 138, RULE_assignable = 139, + RULE_anonymousFunction = 140, RULE_arrowFunctionDeclaration = 141, RULE_arrowFunctionParameters = 142, + RULE_arrowFunctionBody = 143, RULE_assignmentOperator = 144, RULE_literal = 145, + RULE_templateStringLiteral = 146, RULE_templateStringAtom = 147, RULE_numericLiteral = 148, + RULE_bigintLiteral = 149, RULE_getter = 150, RULE_setter = 151, RULE_identifierName = 152, + RULE_identifier = 153, RULE_identifierOrKeyWord = 154, RULE_reservedWord = 155, + RULE_keyword = 156, RULE_eos = 157; + private static String[] makeRuleNames() { + return new String[] { + "initializer", "bindingPattern", "typeParameters", "typeParameterList", + "typeParameter", "constraint", "typeArguments", "typeArgumentList", "typeArgument", + "type_", "unionOrIntersectionOrPrimaryType", "primaryType", "predefinedType", + "typeReference", "typeGeneric", "typeName", "objectType", "typeBody", + "typeMemberList", "typeMember", "arrayType", "tupleType", "tupleElementTypes", + "functionType", "constructorType", "typeQuery", "typeQueryExpression", + "propertySignatur", "typeAnnotation", "callSignature", "parameterList", + "requiredParameterList", "parameter", "optionalParameter", "restParameter", + "requiredParameter", "accessibilityModifier", "identifierOrPattern", + "constructSignature", "indexSignature", "methodSignature", "typeAliasDeclaration", + "constructorDeclaration", "interfaceDeclaration", "interfaceExtendsClause", + "classOrInterfaceTypeList", "enumDeclaration", "enumBody", "enumMemberList", + "enumMember", "namespaceDeclaration", "namespaceName", "importAliasDeclaration", + "decoratorList", "decorator", "decoratorMemberExpression", "decoratorCallExpression", + "program", "sourceElement", "statement", "block", "statementList", "abstractDeclaration", + "importStatement", "importFromBlock", "importModuleItems", "importAliasName", + "moduleExportName", "importedBinding", "importDefault", "importNamespace", + "importFrom", "aliasName", "exportStatement", "exportFromBlock", "exportModuleItems", + "exportAliasName", "declaration", "variableStatement", "variableDeclarationList", + "variableDeclaration", "emptyStatement_", "expressionStatement", "ifStatement", + "iterationStatement", "varModifier", "continueStatement", "breakStatement", + "returnStatement", "yieldStatement", "withStatement", "switchStatement", + "caseBlock", "caseClauses", "caseClause", "defaultClause", "labelledStatement", + "throwStatement", "tryStatement", "catchProduction", "finallyProduction", + "debuggerStatement", "functionDeclaration", "classDeclaration", "classHeritage", + "classTail", "classExtendsClause", "implementsClause", "classElement", + "propertyMemberDeclaration", "propertyMemberBase", "indexMemberDeclaration", + "generatorMethod", "generatorFunctionDeclaration", "generatorBlock", + "generatorDefinition", "iteratorBlock", "iteratorDefinition", "classElementName", + "privateIdentifier", "formalParameterList", "formalParameterArg", "lastFormalParameterArg", + "functionBody", "sourceElements", "arrayLiteral", "elementList", "arrayElement", + "objectLiteral", "propertyAssignment", "getAccessor", "setAccessor", + "propertyName", "arguments", "argumentList", "argument", "expressionSequence", + "singleExpression", "asExpression", "assignable", "anonymousFunction", + "arrowFunctionDeclaration", "arrowFunctionParameters", "arrowFunctionBody", + "assignmentOperator", "literal", "templateStringLiteral", "templateStringAtom", + "numericLiteral", "bigintLiteral", "getter", "setter", "identifierName", + "identifier", "identifierOrKeyWord", "reservedWord", "keyword", "eos" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, null, null, null, "'['", "']'", "'('", "')'", "'{'", null, "'}'", + "';'", "','", "'='", "'?'", "'?.'", "':'", "'...'", "'.'", "'++'", "'--'", + "'+'", "'-'", "'~'", "'!'", "'*'", "'/'", "'%'", "'**'", "'??'", "'#'", + "'<<'", "'<'", "'>'", "'<='", "'>='", "'=='", "'!='", "'==='", "'!=='", + "'&'", "'^'", "'|'", "'&&'", "'||'", "'*='", "'/='", "'%='", "'+='", + "'-='", "'<<='", "'>>='", "'>>>='", "'&='", "'^='", "'|='", "'**='", + "'??='", "'=>'", "'null'", null, null, null, null, null, null, null, + null, null, null, "'break'", "'do'", "'instanceof'", "'typeof'", "'case'", + "'else'", "'new'", "'var'", "'catch'", "'finally'", "'return'", "'void'", + "'continue'", "'for'", "'switch'", "'while'", "'debugger'", "'function'", + "'this'", "'with'", "'default'", "'if'", "'throw'", "'delete'", "'in'", + "'try'", "'as'", "'from'", "'readonly'", "'async'", "'await'", "'yield'", + "'yield*'", "'class'", "'enum'", "'extends'", "'super'", "'const'", "'export'", + "'import'", "'implements'", "'let'", "'private'", "'public'", "'interface'", + "'package'", "'protected'", "'static'", "'any'", "'number'", "'never'", + "'boolean'", "'string'", "'unique'", "'symbol'", "'undefined'", "'object'", + "'of'", "'keyof'", "'type'", "'constructor'", "'namespace'", "'require'", + "'module'", "'declare'", "'abstract'", "'is'", "'@'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "MultiLineComment", "SingleLineComment", "RegularExpressionLiteral", + "OpenBracket", "CloseBracket", "OpenParen", "CloseParen", "OpenBrace", + "TemplateCloseBrace", "CloseBrace", "SemiColon", "Comma", "Assign", "QuestionMark", + "QuestionMarkDot", "Colon", "Ellipsis", "Dot", "PlusPlus", "MinusMinus", + "Plus", "Minus", "BitNot", "Not", "Multiply", "Divide", "Modulus", "Power", + "NullCoalesce", "Hashtag", "LeftShiftArithmetic", "LessThan", "MoreThan", + "LessThanEquals", "GreaterThanEquals", "Equals_", "NotEquals", "IdentityEquals", + "IdentityNotEquals", "BitAnd", "BitXOr", "BitOr", "And", "Or", "MultiplyAssign", + "DivideAssign", "ModulusAssign", "PlusAssign", "MinusAssign", "LeftShiftArithmeticAssign", + "RightShiftArithmeticAssign", "RightShiftLogicalAssign", "BitAndAssign", + "BitXorAssign", "BitOrAssign", "PowerAssign", "NullishCoalescingAssign", + "ARROW", "NullLiteral", "BooleanLiteral", "DecimalLiteral", "HexIntegerLiteral", + "OctalIntegerLiteral", "OctalIntegerLiteral2", "BinaryIntegerLiteral", + "BigHexIntegerLiteral", "BigOctalIntegerLiteral", "BigBinaryIntegerLiteral", + "BigDecimalIntegerLiteral", "Break", "Do", "Instanceof", "Typeof", "Case", + "Else", "New", "Var", "Catch", "Finally", "Return", "Void", "Continue", + "For", "Switch", "While", "Debugger", "Function_", "This", "With", "Default", + "If", "Throw", "Delete", "In", "Try", "As", "From", "ReadOnly", "Async", + "Await", "Yield", "YieldStar", "Class", "Enum", "Extends", "Super", "Const", + "Export", "Import", "Implements", "Let", "Private", "Public", "Interface", + "Package", "Protected", "Static", "Any", "Number", "Never", "Boolean", + "String", "Unique", "Symbol", "Undefined", "Object", "Of", "KeyOf", "TypeAlias", + "Constructor", "Namespace", "Require", "Module", "Declare", "Abstract", + "Is", "At", "Identifier", "StringLiteral", "BackTick", "WhiteSpaces", + "LineTerminator", "HtmlComment", "CDataComment", "UnexpectedCharacter", + "TemplateStringEscapeAtom", "TemplateStringStartExpression", "TemplateStringAtom" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + 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 "TypeScriptParser.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public TypeScriptParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @SuppressWarnings("CheckReturnValue") + public static class InitializerContext extends ParserRuleContext { + public TerminalNode Assign() { return getToken(TypeScriptParser.Assign, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public InitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitInitializer(this); + } + } + + public final InitializerContext initializer() throws RecognitionException { + InitializerContext _localctx = new InitializerContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_initializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(316); + match(Assign); + setState(317); + singleExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingPatternContext extends ParserRuleContext { + public ArrayLiteralContext arrayLiteral() { + return getRuleContext(ArrayLiteralContext.class,0); + } + public ObjectLiteralContext objectLiteral() { + return getRuleContext(ObjectLiteralContext.class,0); + } + public BindingPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingPattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterBindingPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitBindingPattern(this); + } + } + + public final BindingPatternContext bindingPattern() throws RecognitionException { + BindingPatternContext _localctx = new BindingPatternContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_bindingPattern); + try { + enterOuterAlt(_localctx, 1); + { + setState(321); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OpenBracket: + { + setState(319); + arrayLiteral(); + } + break; + case OpenBrace: + { + setState(320); + objectLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeParametersContext extends ParserRuleContext { + public TerminalNode LessThan() { return getToken(TypeScriptParser.LessThan, 0); } + public TerminalNode MoreThan() { return getToken(TypeScriptParser.MoreThan, 0); } + public TypeParameterListContext typeParameterList() { + return getRuleContext(TypeParameterListContext.class,0); + } + public TypeParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeParameters(this); + } + } + + public final TypeParametersContext typeParameters() throws RecognitionException { + TypeParametersContext _localctx = new TypeParametersContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_typeParameters); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(323); + match(LessThan); + setState(325); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan || ((((_la - 96)) & ~0x3f) == 0 && ((1L << (_la - 96)) & 5016517607467L) != 0)) { + { + setState(324); + typeParameterList(); + } + } + + setState(327); + match(MoreThan); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeParameterListContext extends ParserRuleContext { + public List typeParameter() { + return getRuleContexts(TypeParameterContext.class); + } + public TypeParameterContext typeParameter(int i) { + return getRuleContext(TypeParameterContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public TypeParameterListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeParameterList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeParameterList(this); + } + } + + public final TypeParameterListContext typeParameterList() throws RecognitionException { + TypeParameterListContext _localctx = new TypeParameterListContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_typeParameterList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(329); + typeParameter(); + setState(334); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==Comma) { + { + { + setState(330); + match(Comma); + setState(331); + typeParameter(); + } + } + setState(336); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeParameterContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ConstraintContext constraint() { + return getRuleContext(ConstraintContext.class,0); + } + public TerminalNode Assign() { return getToken(TypeScriptParser.Assign, 0); } + public TypeArgumentContext typeArgument() { + return getRuleContext(TypeArgumentContext.class,0); + } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public TypeParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeParameter(this); + } + } + + public final TypeParameterContext typeParameter() throws RecognitionException { + TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_typeParameter); + int _la; + try { + setState(346); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(337); + identifier(); + setState(339); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Extends) { + { + setState(338); + constraint(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(341); + identifier(); + setState(342); + match(Assign); + setState(343); + typeArgument(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(345); + typeParameters(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstraintContext extends ParserRuleContext { + public TerminalNode Extends() { return getToken(TypeScriptParser.Extends, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public ConstraintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constraint; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterConstraint(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitConstraint(this); + } + } + + public final ConstraintContext constraint() throws RecognitionException { + ConstraintContext _localctx = new ConstraintContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_constraint); + try { + enterOuterAlt(_localctx, 1); + { + setState(348); + match(Extends); + setState(349); + type_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentsContext extends ParserRuleContext { + public TerminalNode LessThan() { return getToken(TypeScriptParser.LessThan, 0); } + public TerminalNode MoreThan() { return getToken(TypeScriptParser.MoreThan, 0); } + public TypeArgumentListContext typeArgumentList() { + return getRuleContext(TypeArgumentListContext.class,0); + } + public TypeArgumentsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArguments; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeArguments(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeArguments(this); + } + } + + public final TypeArgumentsContext typeArguments() throws RecognitionException { + TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_typeArguments); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(351); + match(LessThan); + setState(353); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 4035230767977070928L) != 0) || ((((_la - 73)) & ~0x3f) == 0 && ((1L << (_la - 73)) & 5188111586719465737L) != 0) || _la==Identifier || _la==StringLiteral) { + { + setState(352); + typeArgumentList(); + } + } + + setState(355); + match(MoreThan); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentListContext extends ParserRuleContext { + public List typeArgument() { + return getRuleContexts(TypeArgumentContext.class); + } + public TypeArgumentContext typeArgument(int i) { + return getRuleContext(TypeArgumentContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public TypeArgumentListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArgumentList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeArgumentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeArgumentList(this); + } + } + + public final TypeArgumentListContext typeArgumentList() throws RecognitionException { + TypeArgumentListContext _localctx = new TypeArgumentListContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_typeArgumentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(357); + typeArgument(); + setState(362); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==Comma) { + { + { + setState(358); + match(Comma); + setState(359); + typeArgument(); + } + } + setState(364); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentContext extends ParserRuleContext { + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public TypeArgumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArgument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeArgument(this); + } + } + + public final TypeArgumentContext typeArgument() throws RecognitionException { + TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_typeArgument); + try { + enterOuterAlt(_localctx, 1); + { + setState(365); + type_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class Type_Context extends ParserRuleContext { + public UnionOrIntersectionOrPrimaryTypeContext unionOrIntersectionOrPrimaryType() { + return getRuleContext(UnionOrIntersectionOrPrimaryTypeContext.class,0); + } + public TerminalNode BitOr() { return getToken(TypeScriptParser.BitOr, 0); } + public TerminalNode BitAnd() { return getToken(TypeScriptParser.BitAnd, 0); } + public FunctionTypeContext functionType() { + return getRuleContext(FunctionTypeContext.class,0); + } + public ConstructorTypeContext constructorType() { + return getRuleContext(ConstructorTypeContext.class,0); + } + public TypeGenericContext typeGeneric() { + return getRuleContext(TypeGenericContext.class,0); + } + public Type_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type_; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterType_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitType_(this); + } + } + + public final Type_Context type_() throws RecognitionException { + Type_Context _localctx = new Type_Context(_ctx, getState()); + enterRule(_localctx, 18, RULE_type_); + int _la; + try { + setState(374); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,8,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(368); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BitAnd || _la==BitOr) { + { + setState(367); + _la = _input.LA(1); + if ( !(_la==BitAnd || _la==BitOr) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(370); + unionOrIntersectionOrPrimaryType(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(371); + functionType(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(372); + constructorType(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(373); + typeGeneric(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnionOrIntersectionOrPrimaryTypeContext extends ParserRuleContext { + public UnionOrIntersectionOrPrimaryTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unionOrIntersectionOrPrimaryType; } + + public UnionOrIntersectionOrPrimaryTypeContext() { } + public void copyFrom(UnionOrIntersectionOrPrimaryTypeContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class IntersectionContext extends UnionOrIntersectionOrPrimaryTypeContext { + public List unionOrIntersectionOrPrimaryType() { + return getRuleContexts(UnionOrIntersectionOrPrimaryTypeContext.class); + } + public UnionOrIntersectionOrPrimaryTypeContext unionOrIntersectionOrPrimaryType(int i) { + return getRuleContext(UnionOrIntersectionOrPrimaryTypeContext.class,i); + } + public TerminalNode BitAnd() { return getToken(TypeScriptParser.BitAnd, 0); } + public IntersectionContext(UnionOrIntersectionOrPrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIntersection(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIntersection(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimaryContext extends UnionOrIntersectionOrPrimaryTypeContext { + public PrimaryTypeContext primaryType() { + return getRuleContext(PrimaryTypeContext.class,0); + } + public PrimaryContext(UnionOrIntersectionOrPrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPrimary(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class UnionContext extends UnionOrIntersectionOrPrimaryTypeContext { + public List unionOrIntersectionOrPrimaryType() { + return getRuleContexts(UnionOrIntersectionOrPrimaryTypeContext.class); + } + public UnionOrIntersectionOrPrimaryTypeContext unionOrIntersectionOrPrimaryType(int i) { + return getRuleContext(UnionOrIntersectionOrPrimaryTypeContext.class,i); + } + public TerminalNode BitOr() { return getToken(TypeScriptParser.BitOr, 0); } + public UnionContext(UnionOrIntersectionOrPrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterUnion(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitUnion(this); + } + } + + public final UnionOrIntersectionOrPrimaryTypeContext unionOrIntersectionOrPrimaryType() throws RecognitionException { + return unionOrIntersectionOrPrimaryType(0); + } + + private UnionOrIntersectionOrPrimaryTypeContext unionOrIntersectionOrPrimaryType(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + UnionOrIntersectionOrPrimaryTypeContext _localctx = new UnionOrIntersectionOrPrimaryTypeContext(_ctx, _parentState); + UnionOrIntersectionOrPrimaryTypeContext _prevctx = _localctx; + int _startState = 20; + enterRecursionRule(_localctx, 20, RULE_unionOrIntersectionOrPrimaryType, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + _localctx = new PrimaryContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(377); + primaryType(0); + } + _ctx.stop = _input.LT(-1); + setState(387); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,10,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(385); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,9,_ctx) ) { + case 1: + { + _localctx = new UnionContext(new UnionOrIntersectionOrPrimaryTypeContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_unionOrIntersectionOrPrimaryType); + setState(379); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(380); + match(BitOr); + setState(381); + unionOrIntersectionOrPrimaryType(4); + } + break; + case 2: + { + _localctx = new IntersectionContext(new UnionOrIntersectionOrPrimaryTypeContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_unionOrIntersectionOrPrimaryType); + setState(382); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(383); + match(BitAnd); + setState(384); + unionOrIntersectionOrPrimaryType(3); + } + break; + } + } + } + setState(389); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,10,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimaryTypeContext extends ParserRuleContext { + public PrimaryTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryType; } + + public PrimaryTypeContext() { } + public void copyFrom(PrimaryTypeContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class RedefinitionOfTypeContext extends PrimaryTypeContext { + public TypeReferenceContext typeReference() { + return getRuleContext(TypeReferenceContext.class,0); + } + public TerminalNode Is() { return getToken(TypeScriptParser.Is, 0); } + public PrimaryTypeContext primaryType() { + return getRuleContext(PrimaryTypeContext.class,0); + } + public RedefinitionOfTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterRedefinitionOfType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitRedefinitionOfType(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PredefinedPrimTypeContext extends PrimaryTypeContext { + public PredefinedTypeContext predefinedType() { + return getRuleContext(PredefinedTypeContext.class,0); + } + public PredefinedPrimTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPredefinedPrimType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPredefinedPrimType(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ArrayPrimTypeContext extends PrimaryTypeContext { + public List primaryType() { + return getRuleContexts(PrimaryTypeContext.class); + } + public PrimaryTypeContext primaryType(int i) { + return getRuleContext(PrimaryTypeContext.class,i); + } + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public ArrayPrimTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArrayPrimType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArrayPrimType(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ParenthesizedPrimTypeContext extends PrimaryTypeContext { + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public ParenthesizedPrimTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterParenthesizedPrimType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitParenthesizedPrimType(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ThisPrimTypeContext extends PrimaryTypeContext { + public TerminalNode This() { return getToken(TypeScriptParser.This, 0); } + public ThisPrimTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterThisPrimType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitThisPrimType(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class TuplePrimTypeContext extends PrimaryTypeContext { + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public TupleElementTypesContext tupleElementTypes() { + return getRuleContext(TupleElementTypesContext.class,0); + } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public TuplePrimTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTuplePrimType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTuplePrimType(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class KeyOfTypeContext extends PrimaryTypeContext { + public TerminalNode KeyOf() { return getToken(TypeScriptParser.KeyOf, 0); } + public PrimaryTypeContext primaryType() { + return getRuleContext(PrimaryTypeContext.class,0); + } + public KeyOfTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterKeyOfType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitKeyOfType(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ObjectPrimTypeContext extends PrimaryTypeContext { + public ObjectTypeContext objectType() { + return getRuleContext(ObjectTypeContext.class,0); + } + public ObjectPrimTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterObjectPrimType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitObjectPrimType(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ReferencePrimTypeContext extends PrimaryTypeContext { + public TypeReferenceContext typeReference() { + return getRuleContext(TypeReferenceContext.class,0); + } + public ReferencePrimTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterReferencePrimType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitReferencePrimType(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class QueryPrimTypeContext extends PrimaryTypeContext { + public TypeQueryContext typeQuery() { + return getRuleContext(TypeQueryContext.class,0); + } + public QueryPrimTypeContext(PrimaryTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterQueryPrimType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitQueryPrimType(this); + } + } + + public final PrimaryTypeContext primaryType() throws RecognitionException { + return primaryType(0); + } + + private PrimaryTypeContext primaryType(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + PrimaryTypeContext _localctx = new PrimaryTypeContext(_ctx, _parentState); + PrimaryTypeContext _prevctx = _localctx; + int _startState = 22; + enterRecursionRule(_localctx, 22, RULE_primaryType, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(410); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) { + case 1: + { + _localctx = new ParenthesizedPrimTypeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(391); + match(OpenParen); + setState(392); + type_(); + setState(393); + match(CloseParen); + } + break; + case 2: + { + _localctx = new PredefinedPrimTypeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(395); + predefinedType(); + } + break; + case 3: + { + _localctx = new ReferencePrimTypeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(396); + typeReference(); + } + break; + case 4: + { + _localctx = new ObjectPrimTypeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(397); + objectType(); + } + break; + case 5: + { + _localctx = new TuplePrimTypeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(398); + match(OpenBracket); + setState(399); + tupleElementTypes(); + setState(400); + match(CloseBracket); + } + break; + case 6: + { + _localctx = new QueryPrimTypeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(402); + typeQuery(); + } + break; + case 7: + { + _localctx = new ThisPrimTypeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(403); + match(This); + } + break; + case 8: + { + _localctx = new RedefinitionOfTypeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(404); + typeReference(); + setState(405); + match(Is); + setState(406); + primaryType(2); + } + break; + case 9: + { + _localctx = new KeyOfTypeContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(408); + match(KeyOf); + setState(409); + primaryType(1); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(421); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,13,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ArrayPrimTypeContext(new PrimaryTypeContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_primaryType); + setState(412); + if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); + setState(413); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + setState(414); + match(OpenBracket); + setState(416); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 4035225266123964752L) != 0) || ((((_la - 73)) & ~0x3f) == 0 && ((1L << (_la - 73)) & 5188111586719465729L) != 0) || _la==Identifier || _la==StringLiteral) { + { + setState(415); + primaryType(0); + } + } + + setState(418); + match(CloseBracket); + } + } + } + setState(423); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,13,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PredefinedTypeContext extends ParserRuleContext { + public TerminalNode Any() { return getToken(TypeScriptParser.Any, 0); } + public TerminalNode NullLiteral() { return getToken(TypeScriptParser.NullLiteral, 0); } + public TerminalNode Number() { return getToken(TypeScriptParser.Number, 0); } + public TerminalNode DecimalLiteral() { return getToken(TypeScriptParser.DecimalLiteral, 0); } + public TerminalNode Boolean() { return getToken(TypeScriptParser.Boolean, 0); } + public TerminalNode BooleanLiteral() { return getToken(TypeScriptParser.BooleanLiteral, 0); } + public TerminalNode String() { return getToken(TypeScriptParser.String, 0); } + public TerminalNode StringLiteral() { return getToken(TypeScriptParser.StringLiteral, 0); } + public TerminalNode Symbol() { return getToken(TypeScriptParser.Symbol, 0); } + public TerminalNode Unique() { return getToken(TypeScriptParser.Unique, 0); } + public TerminalNode Never() { return getToken(TypeScriptParser.Never, 0); } + public TerminalNode Undefined() { return getToken(TypeScriptParser.Undefined, 0); } + public TerminalNode Object() { return getToken(TypeScriptParser.Object, 0); } + public TerminalNode Void() { return getToken(TypeScriptParser.Void, 0); } + public PredefinedTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_predefinedType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPredefinedType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPredefinedType(this); + } + } + + public final PredefinedTypeContext predefinedType() throws RecognitionException { + PredefinedTypeContext _localctx = new PredefinedTypeContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_predefinedType); + int _la; + try { + setState(440); + _errHandler.sync(this); + switch (_input.LA(1)) { + case Any: + enterOuterAlt(_localctx, 1); + { + setState(424); + match(Any); + } + break; + case NullLiteral: + enterOuterAlt(_localctx, 2); + { + setState(425); + match(NullLiteral); + } + break; + case Number: + enterOuterAlt(_localctx, 3); + { + setState(426); + match(Number); + } + break; + case DecimalLiteral: + enterOuterAlt(_localctx, 4); + { + setState(427); + match(DecimalLiteral); + } + break; + case Boolean: + enterOuterAlt(_localctx, 5); + { + setState(428); + match(Boolean); + } + break; + case BooleanLiteral: + enterOuterAlt(_localctx, 6); + { + setState(429); + match(BooleanLiteral); + } + break; + case String: + enterOuterAlt(_localctx, 7); + { + setState(430); + match(String); + } + break; + case StringLiteral: + enterOuterAlt(_localctx, 8); + { + setState(431); + match(StringLiteral); + } + break; + case Unique: + case Symbol: + enterOuterAlt(_localctx, 9); + { + setState(433); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Unique) { + { + setState(432); + match(Unique); + } + } + + setState(435); + match(Symbol); + } + break; + case Never: + enterOuterAlt(_localctx, 10); + { + setState(436); + match(Never); + } + break; + case Undefined: + enterOuterAlt(_localctx, 11); + { + setState(437); + match(Undefined); + } + break; + case Object: + enterOuterAlt(_localctx, 12); + { + setState(438); + match(Object); + } + break; + case Void: + enterOuterAlt(_localctx, 13); + { + setState(439); + match(Void); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeReferenceContext extends ParserRuleContext { + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TypeGenericContext typeGeneric() { + return getRuleContext(TypeGenericContext.class,0); + } + public TypeReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeReference(this); + } + } + + public final TypeReferenceContext typeReference() throws RecognitionException { + TypeReferenceContext _localctx = new TypeReferenceContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_typeReference); + try { + enterOuterAlt(_localctx, 1); + { + setState(442); + typeName(); + setState(444); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) { + case 1: + { + setState(443); + typeGeneric(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeGenericContext extends ParserRuleContext { + public TerminalNode LessThan() { return getToken(TypeScriptParser.LessThan, 0); } + public TypeArgumentListContext typeArgumentList() { + return getRuleContext(TypeArgumentListContext.class,0); + } + public TerminalNode MoreThan() { return getToken(TypeScriptParser.MoreThan, 0); } + public TypeGenericContext typeGeneric() { + return getRuleContext(TypeGenericContext.class,0); + } + public TypeGenericContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeGeneric; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeGeneric(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeGeneric(this); + } + } + + public final TypeGenericContext typeGeneric() throws RecognitionException { + TypeGenericContext _localctx = new TypeGenericContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_typeGeneric); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(446); + match(LessThan); + setState(447); + typeArgumentList(); + setState(449); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(448); + typeGeneric(); + } + } + + setState(451); + match(MoreThan); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public NamespaceNameContext namespaceName() { + return getRuleContext(NamespaceNameContext.class,0); + } + public TypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeName(this); + } + } + + public final TypeNameContext typeName() throws RecognitionException { + TypeNameContext _localctx = new TypeNameContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_typeName); + try { + setState(455); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(453); + identifier(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(454); + namespaceName(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ObjectTypeContext extends ParserRuleContext { + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public TypeBodyContext typeBody() { + return getRuleContext(TypeBodyContext.class,0); + } + public ObjectTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_objectType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterObjectType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitObjectType(this); + } + } + + public final ObjectTypeContext objectType() throws RecognitionException { + ObjectTypeContext _localctx = new ObjectTypeContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_objectType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(457); + match(OpenBrace); + setState(459); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -576460748008456112L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -274877907005L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 3263L) != 0)) { + { + setState(458); + typeBody(); + } + } + + setState(461); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeBodyContext extends ParserRuleContext { + public TypeMemberListContext typeMemberList() { + return getRuleContext(TypeMemberListContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public TerminalNode Comma() { return getToken(TypeScriptParser.Comma, 0); } + public TypeBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeBody(this); + } + } + + public final TypeBodyContext typeBody() throws RecognitionException { + TypeBodyContext _localctx = new TypeBodyContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_typeBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(463); + typeMemberList(); + setState(465); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SemiColon || _la==Comma) { + { + setState(464); + _la = _input.LA(1); + if ( !(_la==SemiColon || _la==Comma) ) { + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeMemberListContext extends ParserRuleContext { + public List typeMember() { + return getRuleContexts(TypeMemberContext.class); + } + public TypeMemberContext typeMember(int i) { + return getRuleContext(TypeMemberContext.class,i); + } + public List SemiColon() { return getTokens(TypeScriptParser.SemiColon); } + public TerminalNode SemiColon(int i) { + return getToken(TypeScriptParser.SemiColon, i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public TypeMemberListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeMemberList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeMemberList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeMemberList(this); + } + } + + public final TypeMemberListContext typeMemberList() throws RecognitionException { + TypeMemberListContext _localctx = new TypeMemberListContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_typeMemberList); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(467); + typeMember(); + setState(472); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(468); + _la = _input.LA(1); + if ( !(_la==SemiColon || _la==Comma) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(469); + typeMember(); + } + } + } + setState(474); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeMemberContext extends ParserRuleContext { + public PropertySignaturContext propertySignatur() { + return getRuleContext(PropertySignaturContext.class,0); + } + public CallSignatureContext callSignature() { + return getRuleContext(CallSignatureContext.class,0); + } + public ConstructSignatureContext constructSignature() { + return getRuleContext(ConstructSignatureContext.class,0); + } + public IndexSignatureContext indexSignature() { + return getRuleContext(IndexSignatureContext.class,0); + } + public MethodSignatureContext methodSignature() { + return getRuleContext(MethodSignatureContext.class,0); + } + public TerminalNode ARROW() { return getToken(TypeScriptParser.ARROW, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public TypeMemberContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeMember; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeMember(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeMember(this); + } + } + + public final TypeMemberContext typeMember() throws RecognitionException { + TypeMemberContext _localctx = new TypeMemberContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_typeMember); + int _la; + try { + setState(484); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(475); + propertySignatur(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(476); + callSignature(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(477); + constructSignature(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(478); + indexSignature(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(479); + methodSignature(); + setState(482); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ARROW) { + { + setState(480); + match(ARROW); + setState(481); + type_(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayTypeContext extends ParserRuleContext { + public PrimaryTypeContext primaryType() { + return getRuleContext(PrimaryTypeContext.class,0); + } + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public ArrayTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArrayType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArrayType(this); + } + } + + public final ArrayTypeContext arrayType() throws RecognitionException { + ArrayTypeContext _localctx = new ArrayTypeContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_arrayType); + try { + enterOuterAlt(_localctx, 1); + { + setState(486); + primaryType(0); + setState(487); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + setState(488); + match(OpenBracket); + setState(489); + match(CloseBracket); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TupleTypeContext extends ParserRuleContext { + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public TupleElementTypesContext tupleElementTypes() { + return getRuleContext(TupleElementTypesContext.class,0); + } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public TupleTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tupleType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTupleType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTupleType(this); + } + } + + public final TupleTypeContext tupleType() throws RecognitionException { + TupleTypeContext _localctx = new TupleTypeContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_tupleType); + try { + enterOuterAlt(_localctx, 1); + { + setState(491); + match(OpenBracket); + setState(492); + tupleElementTypes(); + setState(493); + match(CloseBracket); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TupleElementTypesContext extends ParserRuleContext { + public List type_() { + return getRuleContexts(Type_Context.class); + } + public Type_Context type_(int i) { + return getRuleContext(Type_Context.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public TupleElementTypesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tupleElementTypes; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTupleElementTypes(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTupleElementTypes(this); + } + } + + public final TupleElementTypesContext tupleElementTypes() throws RecognitionException { + TupleElementTypesContext _localctx = new TupleElementTypesContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_tupleElementTypes); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(495); + type_(); + setState(500); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,24,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(496); + match(Comma); + setState(497); + type_(); + } + } + } + setState(502); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,24,_ctx); + } + setState(504); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(503); + match(Comma); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FunctionTypeContext extends ParserRuleContext { + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TerminalNode ARROW() { return getToken(TypeScriptParser.ARROW, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public ParameterListContext parameterList() { + return getRuleContext(ParameterListContext.class,0); + } + public FunctionTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_functionType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterFunctionType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitFunctionType(this); + } + } + + public final FunctionTypeContext functionType() throws RecognitionException { + FunctionTypeContext _localctx = new FunctionTypeContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_functionType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(507); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(506); + typeParameters(); + } + } + + setState(509); + match(OpenParen); + setState(511); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1729382256910401808L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(510); + parameterList(); + } + } + + setState(513); + match(CloseParen); + setState(514); + match(ARROW); + setState(515); + type_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorTypeContext extends ParserRuleContext { + public TerminalNode New() { return getToken(TypeScriptParser.New, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TerminalNode ARROW() { return getToken(TypeScriptParser.ARROW, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public ParameterListContext parameterList() { + return getRuleContext(ParameterListContext.class,0); + } + public ConstructorTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructorType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterConstructorType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitConstructorType(this); + } + } + + public final ConstructorTypeContext constructorType() throws RecognitionException { + ConstructorTypeContext _localctx = new ConstructorTypeContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_constructorType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(517); + match(New); + setState(519); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(518); + typeParameters(); + } + } + + setState(521); + match(OpenParen); + setState(523); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1729382256910401808L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(522); + parameterList(); + } + } + + setState(525); + match(CloseParen); + setState(526); + match(ARROW); + setState(527); + type_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeQueryContext extends ParserRuleContext { + public TerminalNode Typeof() { return getToken(TypeScriptParser.Typeof, 0); } + public TypeQueryExpressionContext typeQueryExpression() { + return getRuleContext(TypeQueryExpressionContext.class,0); + } + public TypeQueryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeQuery; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeQuery(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeQuery(this); + } + } + + public final TypeQueryContext typeQuery() throws RecognitionException { + TypeQueryContext _localctx = new TypeQueryContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_typeQuery); + try { + enterOuterAlt(_localctx, 1); + { + setState(529); + match(Typeof); + setState(530); + typeQueryExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeQueryExpressionContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List identifierName() { + return getRuleContexts(IdentifierNameContext.class); + } + public IdentifierNameContext identifierName(int i) { + return getRuleContext(IdentifierNameContext.class,i); + } + public List Dot() { return getTokens(TypeScriptParser.Dot); } + public TerminalNode Dot(int i) { + return getToken(TypeScriptParser.Dot, i); + } + public TypeQueryExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeQueryExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeQueryExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeQueryExpression(this); + } + } + + public final TypeQueryExpressionContext typeQueryExpression() throws RecognitionException { + TypeQueryExpressionContext _localctx = new TypeQueryExpressionContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_typeQueryExpression); + try { + int _alt; + setState(542); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,31,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(532); + identifier(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(536); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(533); + identifierName(); + setState(534); + match(Dot); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(538); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,30,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + setState(540); + identifierName(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertySignaturContext extends ParserRuleContext { + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public TerminalNode ReadOnly() { return getToken(TypeScriptParser.ReadOnly, 0); } + public TerminalNode QuestionMark() { return getToken(TypeScriptParser.QuestionMark, 0); } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public TerminalNode ARROW() { return getToken(TypeScriptParser.ARROW, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public PropertySignaturContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertySignatur; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPropertySignatur(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPropertySignatur(this); + } + } + + public final PropertySignaturContext propertySignatur() throws RecognitionException { + PropertySignaturContext _localctx = new PropertySignaturContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_propertySignatur); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(545); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,32,_ctx) ) { + case 1: + { + setState(544); + match(ReadOnly); + } + break; + } + setState(547); + propertyName(); + setState(549); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==QuestionMark) { + { + setState(548); + match(QuestionMark); + } + } + + setState(552); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(551); + typeAnnotation(); + } + } + + setState(556); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ARROW) { + { + setState(554); + match(ARROW); + setState(555); + type_(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeAnnotationContext extends ParserRuleContext { + public TerminalNode Colon() { return getToken(TypeScriptParser.Colon, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public TypeAnnotationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeAnnotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeAnnotation(this); + } + } + + public final TypeAnnotationContext typeAnnotation() throws RecognitionException { + TypeAnnotationContext _localctx = new TypeAnnotationContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_typeAnnotation); + try { + enterOuterAlt(_localctx, 1); + { + setState(558); + match(Colon); + setState(559); + type_(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CallSignatureContext extends ParserRuleContext { + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public ParameterListContext parameterList() { + return getRuleContext(ParameterListContext.class,0); + } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public CallSignatureContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callSignature; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterCallSignature(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitCallSignature(this); + } + } + + public final CallSignatureContext callSignature() throws RecognitionException { + CallSignatureContext _localctx = new CallSignatureContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_callSignature); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(562); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(561); + typeParameters(); + } + } + + setState(564); + match(OpenParen); + setState(566); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1729382256910401808L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(565); + parameterList(); + } + } + + setState(568); + match(CloseParen); + setState(570); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) { + case 1: + { + setState(569); + typeAnnotation(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ParameterListContext extends ParserRuleContext { + public RestParameterContext restParameter() { + return getRuleContext(RestParameterContext.class,0); + } + public List parameter() { + return getRuleContexts(ParameterContext.class); + } + public ParameterContext parameter(int i) { + return getRuleContext(ParameterContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public ParameterListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_parameterList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitParameterList(this); + } + } + + public final ParameterListContext parameterList() throws RecognitionException { + ParameterListContext _localctx = new ParameterListContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_parameterList); + int _la; + try { + int _alt; + setState(588); + _errHandler.sync(this); + switch (_input.LA(1)) { + case Ellipsis: + enterOuterAlt(_localctx, 1); + { + setState(572); + restParameter(); + } + break; + case OpenBracket: + case OpenBrace: + case NullLiteral: + case BooleanLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case At: + case Identifier: + enterOuterAlt(_localctx, 2); + { + setState(573); + parameter(); + setState(578); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,39,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(574); + match(Comma); + setState(575); + parameter(); + } + } + } + setState(580); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,39,_ctx); + } + setState(583); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,40,_ctx) ) { + case 1: + { + setState(581); + match(Comma); + setState(582); + restParameter(); + } + break; + } + setState(586); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(585); + match(Comma); + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RequiredParameterListContext extends ParserRuleContext { + public List requiredParameter() { + return getRuleContexts(RequiredParameterContext.class); + } + public RequiredParameterContext requiredParameter(int i) { + return getRuleContext(RequiredParameterContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public RequiredParameterListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_requiredParameterList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterRequiredParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitRequiredParameterList(this); + } + } + + public final RequiredParameterListContext requiredParameterList() throws RecognitionException { + RequiredParameterListContext _localctx = new RequiredParameterListContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_requiredParameterList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(590); + requiredParameter(); + setState(595); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==Comma) { + { + { + setState(591); + match(Comma); + setState(592); + requiredParameter(); + } + } + setState(597); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ParameterContext extends ParserRuleContext { + public RequiredParameterContext requiredParameter() { + return getRuleContext(RequiredParameterContext.class,0); + } + public OptionalParameterContext optionalParameter() { + return getRuleContext(OptionalParameterContext.class,0); + } + public ParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_parameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitParameter(this); + } + } + + public final ParameterContext parameter() throws RecognitionException { + ParameterContext _localctx = new ParameterContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_parameter); + try { + setState(600); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,44,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(598); + requiredParameter(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(599); + optionalParameter(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OptionalParameterContext extends ParserRuleContext { + public IdentifierOrPatternContext identifierOrPattern() { + return getRuleContext(IdentifierOrPatternContext.class,0); + } + public DecoratorListContext decoratorList() { + return getRuleContext(DecoratorListContext.class,0); + } + public TerminalNode QuestionMark() { return getToken(TypeScriptParser.QuestionMark, 0); } + public InitializerContext initializer() { + return getRuleContext(InitializerContext.class,0); + } + public AccessibilityModifierContext accessibilityModifier() { + return getRuleContext(AccessibilityModifierContext.class,0); + } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public OptionalParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_optionalParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterOptionalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitOptionalParameter(this); + } + } + + public final OptionalParameterContext optionalParameter() throws RecognitionException { + OptionalParameterContext _localctx = new OptionalParameterContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_optionalParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(603); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==At) { + { + setState(602); + decoratorList(); + } + } + + { + setState(606); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,46,_ctx) ) { + case 1: + { + setState(605); + accessibilityModifier(); + } + break; + } + setState(608); + identifierOrPattern(); + setState(617); + _errHandler.sync(this); + switch (_input.LA(1)) { + case QuestionMark: + { + setState(609); + match(QuestionMark); + setState(611); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(610); + typeAnnotation(); + } + } + + } + break; + case Assign: + case Colon: + { + setState(614); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(613); + typeAnnotation(); + } + } + + setState(616); + initializer(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RestParameterContext extends ParserRuleContext { + public TerminalNode Ellipsis() { return getToken(TypeScriptParser.Ellipsis, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public RestParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_restParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterRestParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitRestParameter(this); + } + } + + public final RestParameterContext restParameter() throws RecognitionException { + RestParameterContext _localctx = new RestParameterContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_restParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(619); + match(Ellipsis); + setState(620); + singleExpression(0); + setState(622); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(621); + typeAnnotation(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RequiredParameterContext extends ParserRuleContext { + public IdentifierOrPatternContext identifierOrPattern() { + return getRuleContext(IdentifierOrPatternContext.class,0); + } + public DecoratorListContext decoratorList() { + return getRuleContext(DecoratorListContext.class,0); + } + public AccessibilityModifierContext accessibilityModifier() { + return getRuleContext(AccessibilityModifierContext.class,0); + } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public RequiredParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_requiredParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterRequiredParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitRequiredParameter(this); + } + } + + public final RequiredParameterContext requiredParameter() throws RecognitionException { + RequiredParameterContext _localctx = new RequiredParameterContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_requiredParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(625); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==At) { + { + setState(624); + decoratorList(); + } + } + + setState(628); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) { + case 1: + { + setState(627); + accessibilityModifier(); + } + break; + } + setState(630); + identifierOrPattern(); + setState(632); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(631); + typeAnnotation(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AccessibilityModifierContext extends ParserRuleContext { + public TerminalNode Public() { return getToken(TypeScriptParser.Public, 0); } + public TerminalNode Private() { return getToken(TypeScriptParser.Private, 0); } + public TerminalNode Protected() { return getToken(TypeScriptParser.Protected, 0); } + public AccessibilityModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_accessibilityModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAccessibilityModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAccessibilityModifier(this); + } + } + + public final AccessibilityModifierContext accessibilityModifier() throws RecognitionException { + AccessibilityModifierContext _localctx = new AccessibilityModifierContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_accessibilityModifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(634); + _la = _input.LA(1); + if ( !(((((_la - 112)) & ~0x3f) == 0 && ((1L << (_la - 112)) & 19L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class IdentifierOrPatternContext extends ParserRuleContext { + public IdentifierNameContext identifierName() { + return getRuleContext(IdentifierNameContext.class,0); + } + public BindingPatternContext bindingPattern() { + return getRuleContext(BindingPatternContext.class,0); + } + public IdentifierOrPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifierOrPattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIdentifierOrPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIdentifierOrPattern(this); + } + } + + public final IdentifierOrPatternContext identifierOrPattern() throws RecognitionException { + IdentifierOrPatternContext _localctx = new IdentifierOrPatternContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_identifierOrPattern); + try { + setState(638); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NullLiteral: + case BooleanLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case Identifier: + enterOuterAlt(_localctx, 1); + { + setState(636); + identifierName(); + } + break; + case OpenBracket: + case OpenBrace: + enterOuterAlt(_localctx, 2); + { + setState(637); + bindingPattern(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructSignatureContext extends ParserRuleContext { + public TerminalNode New() { return getToken(TypeScriptParser.New, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public ParameterListContext parameterList() { + return getRuleContext(ParameterListContext.class,0); + } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public ConstructSignatureContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructSignature; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterConstructSignature(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitConstructSignature(this); + } + } + + public final ConstructSignatureContext constructSignature() throws RecognitionException { + ConstructSignatureContext _localctx = new ConstructSignatureContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_constructSignature); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(640); + match(New); + setState(642); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(641); + typeParameters(); + } + } + + setState(644); + match(OpenParen); + setState(646); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 1729382256910401808L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(645); + parameterList(); + } + } + + setState(648); + match(CloseParen); + setState(650); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(649); + typeAnnotation(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IndexSignatureContext extends ParserRuleContext { + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode Colon() { return getToken(TypeScriptParser.Colon, 0); } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public TerminalNode Number() { return getToken(TypeScriptParser.Number, 0); } + public TerminalNode String() { return getToken(TypeScriptParser.String, 0); } + public IndexSignatureContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_indexSignature; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIndexSignature(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIndexSignature(this); + } + } + + public final IndexSignatureContext indexSignature() throws RecognitionException { + IndexSignatureContext _localctx = new IndexSignatureContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_indexSignature); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(652); + match(OpenBracket); + setState(653); + identifier(); + setState(654); + match(Colon); + setState(655); + _la = _input.LA(1); + if ( !(_la==Number || _la==String) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(656); + match(CloseBracket); + setState(657); + typeAnnotation(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodSignatureContext extends ParserRuleContext { + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public CallSignatureContext callSignature() { + return getRuleContext(CallSignatureContext.class,0); + } + public TerminalNode QuestionMark() { return getToken(TypeScriptParser.QuestionMark, 0); } + public MethodSignatureContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodSignature; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterMethodSignature(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitMethodSignature(this); + } + } + + public final MethodSignatureContext methodSignature() throws RecognitionException { + MethodSignatureContext _localctx = new MethodSignatureContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_methodSignature); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(659); + propertyName(); + setState(661); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==QuestionMark) { + { + setState(660); + match(QuestionMark); + } + } + + setState(663); + callSignature(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeAliasDeclarationContext extends ParserRuleContext { + public TerminalNode TypeAlias() { return getToken(TypeScriptParser.TypeAlias, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode Assign() { return getToken(TypeScriptParser.Assign, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public TerminalNode Export() { return getToken(TypeScriptParser.Export, 0); } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public TypeAliasDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeAliasDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeAliasDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeAliasDeclaration(this); + } + } + + public final TypeAliasDeclarationContext typeAliasDeclaration() throws RecognitionException { + TypeAliasDeclarationContext _localctx = new TypeAliasDeclarationContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_typeAliasDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(666); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Export) { + { + setState(665); + match(Export); + } + } + + setState(668); + match(TypeAlias); + setState(669); + identifier(); + setState(671); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(670); + typeParameters(); + } + } + + setState(673); + match(Assign); + setState(674); + type_(); + setState(675); + eos(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorDeclarationContext extends ParserRuleContext { + public TerminalNode Constructor() { return getToken(TypeScriptParser.Constructor, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public AccessibilityModifierContext accessibilityModifier() { + return getRuleContext(AccessibilityModifierContext.class,0); + } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public ConstructorDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructorDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterConstructorDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitConstructorDeclaration(this); + } + } + + public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { + ConstructorDeclarationContext _localctx = new ConstructorDeclarationContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_constructorDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(678); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 112)) & ~0x3f) == 0 && ((1L << (_la - 112)) & 19L) != 0)) { + { + setState(677); + accessibilityModifier(); + } + } + + setState(680); + match(Constructor); + setState(681); + match(OpenParen); + setState(683); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 131344L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(682); + formalParameterList(); + } + } + + setState(685); + match(CloseParen); + setState(691); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,63,_ctx) ) { + case 1: + { + { + setState(686); + match(OpenBrace); + setState(687); + functionBody(); + setState(688); + match(CloseBrace); + } + } + break; + case 2: + { + setState(690); + match(SemiColon); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceDeclarationContext extends ParserRuleContext { + public TerminalNode Interface() { return getToken(TypeScriptParser.Interface, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ObjectTypeContext objectType() { + return getRuleContext(ObjectTypeContext.class,0); + } + public TerminalNode Export() { return getToken(TypeScriptParser.Export, 0); } + public TerminalNode Declare() { return getToken(TypeScriptParser.Declare, 0); } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public InterfaceExtendsClauseContext interfaceExtendsClause() { + return getRuleContext(InterfaceExtendsClauseContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public InterfaceDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterInterfaceDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitInterfaceDeclaration(this); + } + } + + public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { + InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_interfaceDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(694); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Export) { + { + setState(693); + match(Export); + } + } + + setState(697); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Declare) { + { + setState(696); + match(Declare); + } + } + + setState(699); + match(Interface); + setState(700); + identifier(); + setState(702); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(701); + typeParameters(); + } + } + + setState(705); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Extends) { + { + setState(704); + interfaceExtendsClause(); + } + } + + setState(707); + objectType(); + setState(709); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,68,_ctx) ) { + case 1: + { + setState(708); + match(SemiColon); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceExtendsClauseContext extends ParserRuleContext { + public TerminalNode Extends() { return getToken(TypeScriptParser.Extends, 0); } + public ClassOrInterfaceTypeListContext classOrInterfaceTypeList() { + return getRuleContext(ClassOrInterfaceTypeListContext.class,0); + } + public InterfaceExtendsClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceExtendsClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterInterfaceExtendsClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitInterfaceExtendsClause(this); + } + } + + public final InterfaceExtendsClauseContext interfaceExtendsClause() throws RecognitionException { + InterfaceExtendsClauseContext _localctx = new InterfaceExtendsClauseContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_interfaceExtendsClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(711); + match(Extends); + setState(712); + classOrInterfaceTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassOrInterfaceTypeListContext extends ParserRuleContext { + public List typeReference() { + return getRuleContexts(TypeReferenceContext.class); + } + public TypeReferenceContext typeReference(int i) { + return getRuleContext(TypeReferenceContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public ClassOrInterfaceTypeListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classOrInterfaceTypeList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterClassOrInterfaceTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitClassOrInterfaceTypeList(this); + } + } + + public final ClassOrInterfaceTypeListContext classOrInterfaceTypeList() throws RecognitionException { + ClassOrInterfaceTypeListContext _localctx = new ClassOrInterfaceTypeListContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_classOrInterfaceTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(714); + typeReference(); + setState(719); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==Comma) { + { + { + setState(715); + match(Comma); + setState(716); + typeReference(); + } + } + setState(721); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumDeclarationContext extends ParserRuleContext { + public TerminalNode Enum() { return getToken(TypeScriptParser.Enum, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public TerminalNode Const() { return getToken(TypeScriptParser.Const, 0); } + public EnumBodyContext enumBody() { + return getRuleContext(EnumBodyContext.class,0); + } + public EnumDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterEnumDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitEnumDeclaration(this); + } + } + + public final EnumDeclarationContext enumDeclaration() throws RecognitionException { + EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_enumDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(723); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Const) { + { + setState(722); + match(Const); + } + } + + setState(725); + match(Enum); + setState(726); + identifier(); + setState(727); + match(OpenBrace); + setState(729); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -576460752303423472L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -274877907005L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 3263L) != 0)) { + { + setState(728); + enumBody(); + } + } + + setState(731); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumBodyContext extends ParserRuleContext { + public EnumMemberListContext enumMemberList() { + return getRuleContext(EnumMemberListContext.class,0); + } + public TerminalNode Comma() { return getToken(TypeScriptParser.Comma, 0); } + public EnumBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterEnumBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitEnumBody(this); + } + } + + public final EnumBodyContext enumBody() throws RecognitionException { + EnumBodyContext _localctx = new EnumBodyContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_enumBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(733); + enumMemberList(); + setState(735); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(734); + match(Comma); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumMemberListContext extends ParserRuleContext { + public List enumMember() { + return getRuleContexts(EnumMemberContext.class); + } + public EnumMemberContext enumMember(int i) { + return getRuleContext(EnumMemberContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public EnumMemberListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumMemberList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterEnumMemberList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitEnumMemberList(this); + } + } + + public final EnumMemberListContext enumMemberList() throws RecognitionException { + EnumMemberListContext _localctx = new EnumMemberListContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_enumMemberList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(737); + enumMember(); + setState(742); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,73,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(738); + match(Comma); + setState(739); + enumMember(); + } + } + } + setState(744); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,73,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumMemberContext extends ParserRuleContext { + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public TerminalNode Assign() { return getToken(TypeScriptParser.Assign, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public EnumMemberContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumMember; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterEnumMember(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitEnumMember(this); + } + } + + public final EnumMemberContext enumMember() throws RecognitionException { + EnumMemberContext _localctx = new EnumMemberContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_enumMember); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(745); + propertyName(); + setState(748); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Assign) { + { + setState(746); + match(Assign); + setState(747); + singleExpression(0); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NamespaceDeclarationContext extends ParserRuleContext { + public TerminalNode Namespace() { return getToken(TypeScriptParser.Namespace, 0); } + public NamespaceNameContext namespaceName() { + return getRuleContext(NamespaceNameContext.class,0); + } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public TerminalNode Declare() { return getToken(TypeScriptParser.Declare, 0); } + public StatementListContext statementList() { + return getRuleContext(StatementListContext.class,0); + } + public NamespaceDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_namespaceDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterNamespaceDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitNamespaceDeclaration(this); + } + } + + public final NamespaceDeclarationContext namespaceDeclaration() throws RecognitionException { + NamespaceDeclarationContext _localctx = new NamespaceDeclarationContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_namespaceDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(751); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Declare) { + { + setState(750); + match(Declare); + } + } + + setState(753); + match(Namespace); + setState(754); + namespaceName(); + setState(755); + match(OpenBrace); + setState(757); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,76,_ctx) ) { + case 1: + { + setState(756); + statementList(); + } + break; + } + setState(759); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NamespaceNameContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List Dot() { return getTokens(TypeScriptParser.Dot); } + public TerminalNode Dot(int i) { + return getToken(TypeScriptParser.Dot, i); + } + public NamespaceNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_namespaceName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterNamespaceName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitNamespaceName(this); + } + } + + public final NamespaceNameContext namespaceName() throws RecognitionException { + NamespaceNameContext _localctx = new NamespaceNameContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_namespaceName); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(761); + identifier(); + setState(770); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,78,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(763); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(762); + match(Dot); + } + } + setState(765); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==Dot ); + setState(767); + identifier(); + } + } + } + setState(772); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,78,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportAliasDeclarationContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode Assign() { return getToken(TypeScriptParser.Assign, 0); } + public NamespaceNameContext namespaceName() { + return getRuleContext(NamespaceNameContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public ImportAliasDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importAliasDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImportAliasDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImportAliasDeclaration(this); + } + } + + public final ImportAliasDeclarationContext importAliasDeclaration() throws RecognitionException { + ImportAliasDeclarationContext _localctx = new ImportAliasDeclarationContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_importAliasDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(773); + identifier(); + setState(774); + match(Assign); + setState(775); + namespaceName(); + setState(776); + match(SemiColon); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DecoratorListContext extends ParserRuleContext { + public List decorator() { + return getRuleContexts(DecoratorContext.class); + } + public DecoratorContext decorator(int i) { + return getRuleContext(DecoratorContext.class,i); + } + public DecoratorListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_decoratorList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterDecoratorList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitDecoratorList(this); + } + } + + public final DecoratorListContext decoratorList() throws RecognitionException { + DecoratorListContext _localctx = new DecoratorListContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_decoratorList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(779); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(778); + decorator(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(781); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,79,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DecoratorContext extends ParserRuleContext { + public TerminalNode At() { return getToken(TypeScriptParser.At, 0); } + public DecoratorMemberExpressionContext decoratorMemberExpression() { + return getRuleContext(DecoratorMemberExpressionContext.class,0); + } + public DecoratorCallExpressionContext decoratorCallExpression() { + return getRuleContext(DecoratorCallExpressionContext.class,0); + } + public DecoratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_decorator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterDecorator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitDecorator(this); + } + } + + public final DecoratorContext decorator() throws RecognitionException { + DecoratorContext _localctx = new DecoratorContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_decorator); + try { + enterOuterAlt(_localctx, 1); + { + setState(783); + match(At); + setState(786); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,80,_ctx) ) { + case 1: + { + setState(784); + decoratorMemberExpression(0); + } + break; + case 2: + { + setState(785); + decoratorCallExpression(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DecoratorMemberExpressionContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public DecoratorMemberExpressionContext decoratorMemberExpression() { + return getRuleContext(DecoratorMemberExpressionContext.class,0); + } + public TerminalNode Dot() { return getToken(TypeScriptParser.Dot, 0); } + public IdentifierNameContext identifierName() { + return getRuleContext(IdentifierNameContext.class,0); + } + public DecoratorMemberExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_decoratorMemberExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterDecoratorMemberExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitDecoratorMemberExpression(this); + } + } + + public final DecoratorMemberExpressionContext decoratorMemberExpression() throws RecognitionException { + return decoratorMemberExpression(0); + } + + private DecoratorMemberExpressionContext decoratorMemberExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + DecoratorMemberExpressionContext _localctx = new DecoratorMemberExpressionContext(_ctx, _parentState); + DecoratorMemberExpressionContext _prevctx = _localctx; + int _startState = 110; + enterRecursionRule(_localctx, 110, RULE_decoratorMemberExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(794); + _errHandler.sync(this); + switch (_input.LA(1)) { + case As: + case From: + case Async: + case Yield: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Abstract: + case Identifier: + { + setState(789); + identifier(); + } + break; + case OpenParen: + { + setState(790); + match(OpenParen); + setState(791); + singleExpression(0); + setState(792); + match(CloseParen); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(801); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,82,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new DecoratorMemberExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_decoratorMemberExpression); + setState(796); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(797); + match(Dot); + setState(798); + identifierName(); + } + } + } + setState(803); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,82,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DecoratorCallExpressionContext extends ParserRuleContext { + public DecoratorMemberExpressionContext decoratorMemberExpression() { + return getRuleContext(DecoratorMemberExpressionContext.class,0); + } + public ArgumentsContext arguments() { + return getRuleContext(ArgumentsContext.class,0); + } + public DecoratorCallExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_decoratorCallExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterDecoratorCallExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitDecoratorCallExpression(this); + } + } + + public final DecoratorCallExpressionContext decoratorCallExpression() throws RecognitionException { + DecoratorCallExpressionContext _localctx = new DecoratorCallExpressionContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_decoratorCallExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(804); + decoratorMemberExpression(0); + setState(805); + arguments(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProgramContext extends ParserRuleContext { + public TerminalNode EOF() { return getToken(TypeScriptParser.EOF, 0); } + public SourceElementsContext sourceElements() { + return getRuleContext(SourceElementsContext.class,0); + } + public ProgramContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_program; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterProgram(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitProgram(this); + } + } + + public final ProgramContext program() throws RecognitionException { + ProgramContext _localctx = new ProgramContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_program); + try { + enterOuterAlt(_localctx, 1); + { + setState(808); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,83,_ctx) ) { + case 1: + { + setState(807); + sourceElements(); + } + break; + } + setState(810); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SourceElementContext extends ParserRuleContext { + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public TerminalNode Export() { return getToken(TypeScriptParser.Export, 0); } + public SourceElementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sourceElement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterSourceElement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitSourceElement(this); + } + } + + public final SourceElementContext sourceElement() throws RecognitionException { + SourceElementContext _localctx = new SourceElementContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_sourceElement); + try { + enterOuterAlt(_localctx, 1); + { + setState(813); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,84,_ctx) ) { + case 1: + { + setState(812); + match(Export); + } + break; + } + setState(815); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StatementContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public VariableStatementContext variableStatement() { + return getRuleContext(VariableStatementContext.class,0); + } + public ImportStatementContext importStatement() { + return getRuleContext(ImportStatementContext.class,0); + } + public ExportStatementContext exportStatement() { + return getRuleContext(ExportStatementContext.class,0); + } + public EmptyStatement_Context emptyStatement_() { + return getRuleContext(EmptyStatement_Context.class,0); + } + public AbstractDeclarationContext abstractDeclaration() { + return getRuleContext(AbstractDeclarationContext.class,0); + } + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public FunctionDeclarationContext functionDeclaration() { + return getRuleContext(FunctionDeclarationContext.class,0); + } + public ExpressionStatementContext expressionStatement() { + return getRuleContext(ExpressionStatementContext.class,0); + } + public InterfaceDeclarationContext interfaceDeclaration() { + return getRuleContext(InterfaceDeclarationContext.class,0); + } + public NamespaceDeclarationContext namespaceDeclaration() { + return getRuleContext(NamespaceDeclarationContext.class,0); + } + public IfStatementContext ifStatement() { + return getRuleContext(IfStatementContext.class,0); + } + public IterationStatementContext iterationStatement() { + return getRuleContext(IterationStatementContext.class,0); + } + public ContinueStatementContext continueStatement() { + return getRuleContext(ContinueStatementContext.class,0); + } + public BreakStatementContext breakStatement() { + return getRuleContext(BreakStatementContext.class,0); + } + public ReturnStatementContext returnStatement() { + return getRuleContext(ReturnStatementContext.class,0); + } + public YieldStatementContext yieldStatement() { + return getRuleContext(YieldStatementContext.class,0); + } + public WithStatementContext withStatement() { + return getRuleContext(WithStatementContext.class,0); + } + public LabelledStatementContext labelledStatement() { + return getRuleContext(LabelledStatementContext.class,0); + } + public SwitchStatementContext switchStatement() { + return getRuleContext(SwitchStatementContext.class,0); + } + public ThrowStatementContext throwStatement() { + return getRuleContext(ThrowStatementContext.class,0); + } + public TryStatementContext tryStatement() { + return getRuleContext(TryStatementContext.class,0); + } + public DebuggerStatementContext debuggerStatement() { + return getRuleContext(DebuggerStatementContext.class,0); + } + public ArrowFunctionDeclarationContext arrowFunctionDeclaration() { + return getRuleContext(ArrowFunctionDeclarationContext.class,0); + } + public GeneratorFunctionDeclarationContext generatorFunctionDeclaration() { + return getRuleContext(GeneratorFunctionDeclarationContext.class,0); + } + public TypeAliasDeclarationContext typeAliasDeclaration() { + return getRuleContext(TypeAliasDeclarationContext.class,0); + } + public EnumDeclarationContext enumDeclaration() { + return getRuleContext(EnumDeclarationContext.class,0); + } + public TerminalNode Export() { return getToken(TypeScriptParser.Export, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public StatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitStatement(this); + } + } + + public final StatementContext statement() throws RecognitionException { + StatementContext _localctx = new StatementContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_statement); + try { + setState(846); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,85,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(817); + block(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(818); + variableStatement(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(819); + importStatement(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(820); + exportStatement(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(821); + emptyStatement_(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(822); + abstractDeclaration(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(823); + classDeclaration(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(824); + functionDeclaration(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(825); + expressionStatement(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(826); + interfaceDeclaration(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(827); + namespaceDeclaration(); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(828); + ifStatement(); + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(829); + iterationStatement(); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(830); + continueStatement(); + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(831); + breakStatement(); + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(832); + returnStatement(); + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(833); + yieldStatement(); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(834); + withStatement(); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(835); + labelledStatement(); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(836); + switchStatement(); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(837); + throwStatement(); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(838); + tryStatement(); + } + break; + case 23: + enterOuterAlt(_localctx, 23); + { + setState(839); + debuggerStatement(); + } + break; + case 24: + enterOuterAlt(_localctx, 24); + { + setState(840); + arrowFunctionDeclaration(); + } + break; + case 25: + enterOuterAlt(_localctx, 25); + { + setState(841); + generatorFunctionDeclaration(); + } + break; + case 26: + enterOuterAlt(_localctx, 26); + { + setState(842); + typeAliasDeclaration(); + } + break; + case 27: + enterOuterAlt(_localctx, 27); + { + setState(843); + enumDeclaration(); + } + break; + case 28: + enterOuterAlt(_localctx, 28); + { + setState(844); + match(Export); + setState(845); + statement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BlockContext extends ParserRuleContext { + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public StatementListContext statementList() { + return getRuleContext(StatementListContext.class,0); + } + public BlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_block; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitBlock(this); + } + } + + public final BlockContext block() throws RecognitionException { + BlockContext _localctx = new BlockContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_block); + try { + enterOuterAlt(_localctx, 1); + { + setState(848); + match(OpenBrace); + setState(850); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,86,_ctx) ) { + case 1: + { + setState(849); + statementList(); + } + break; + } + setState(852); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StatementListContext extends ParserRuleContext { + public List statement() { + return getRuleContexts(StatementContext.class); + } + public StatementContext statement(int i) { + return getRuleContext(StatementContext.class,i); + } + public StatementListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statementList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterStatementList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitStatementList(this); + } + } + + public final StatementListContext statementList() throws RecognitionException { + StatementListContext _localctx = new StatementListContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_statementList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(855); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(854); + statement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(857); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,87,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AbstractDeclarationContext extends ParserRuleContext { + public TerminalNode Abstract() { return getToken(TypeScriptParser.Abstract, 0); } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public CallSignatureContext callSignature() { + return getRuleContext(CallSignatureContext.class,0); + } + public VariableStatementContext variableStatement() { + return getRuleContext(VariableStatementContext.class,0); + } + public AbstractDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_abstractDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAbstractDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAbstractDeclaration(this); + } + } + + public final AbstractDeclarationContext abstractDeclaration() throws RecognitionException { + AbstractDeclarationContext _localctx = new AbstractDeclarationContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_abstractDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(859); + match(Abstract); + setState(864); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,88,_ctx) ) { + case 1: + { + setState(860); + identifier(); + setState(861); + callSignature(); + } + break; + case 2: + { + setState(863); + variableStatement(); + } + break; + } + setState(866); + eos(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportStatementContext extends ParserRuleContext { + public TerminalNode Import() { return getToken(TypeScriptParser.Import, 0); } + public ImportFromBlockContext importFromBlock() { + return getRuleContext(ImportFromBlockContext.class,0); + } + public ImportStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImportStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImportStatement(this); + } + } + + public final ImportStatementContext importStatement() throws RecognitionException { + ImportStatementContext _localctx = new ImportStatementContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_importStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(868); + match(Import); + setState(869); + importFromBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportFromBlockContext extends ParserRuleContext { + public ImportFromContext importFrom() { + return getRuleContext(ImportFromContext.class,0); + } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public ImportNamespaceContext importNamespace() { + return getRuleContext(ImportNamespaceContext.class,0); + } + public ImportModuleItemsContext importModuleItems() { + return getRuleContext(ImportModuleItemsContext.class,0); + } + public ImportDefaultContext importDefault() { + return getRuleContext(ImportDefaultContext.class,0); + } + public TerminalNode StringLiteral() { return getToken(TypeScriptParser.StringLiteral, 0); } + public ImportFromBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importFromBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImportFromBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImportFromBlock(this); + } + } + + public final ImportFromBlockContext importFromBlock() throws RecognitionException { + ImportFromBlockContext _localctx = new ImportFromBlockContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_importFromBlock); + try { + setState(883); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OpenBrace: + case Multiply: + case NullLiteral: + case BooleanLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case Identifier: + enterOuterAlt(_localctx, 1); + { + setState(872); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,89,_ctx) ) { + case 1: + { + setState(871); + importDefault(); + } + break; + } + setState(876); + _errHandler.sync(this); + switch (_input.LA(1)) { + case Multiply: + case NullLiteral: + case BooleanLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case Identifier: + { + setState(874); + importNamespace(); + } + break; + case OpenBrace: + { + setState(875); + importModuleItems(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(878); + importFrom(); + setState(879); + eos(); + } + break; + case StringLiteral: + enterOuterAlt(_localctx, 2); + { + setState(881); + match(StringLiteral); + setState(882); + eos(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportModuleItemsContext extends ParserRuleContext { + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public List importAliasName() { + return getRuleContexts(ImportAliasNameContext.class); + } + public ImportAliasNameContext importAliasName(int i) { + return getRuleContext(ImportAliasNameContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public ImportModuleItemsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importModuleItems; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImportModuleItems(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImportModuleItems(this); + } + } + + public final ImportModuleItemsContext importModuleItems() throws RecognitionException { + ImportModuleItemsContext _localctx = new ImportModuleItemsContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_importModuleItems); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(885); + match(OpenBrace); + setState(891); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,92,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(886); + importAliasName(); + setState(887); + match(Comma); + } + } + } + setState(893); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,92,_ctx); + } + setState(898); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 59)) & ~0x3f) == 0 && ((1L << (_la - 59)) & -8796093024253L) != 0) || ((((_la - 123)) & ~0x3f) == 0 && ((1L << (_la - 123)) & 104447L) != 0)) { + { + setState(894); + importAliasName(); + setState(896); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(895); + match(Comma); + } + } + + } + } + + setState(900); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportAliasNameContext extends ParserRuleContext { + public ModuleExportNameContext moduleExportName() { + return getRuleContext(ModuleExportNameContext.class,0); + } + public TerminalNode As() { return getToken(TypeScriptParser.As, 0); } + public ImportedBindingContext importedBinding() { + return getRuleContext(ImportedBindingContext.class,0); + } + public ImportAliasNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importAliasName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImportAliasName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImportAliasName(this); + } + } + + public final ImportAliasNameContext importAliasName() throws RecognitionException { + ImportAliasNameContext _localctx = new ImportAliasNameContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_importAliasName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(902); + moduleExportName(); + setState(905); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==As) { + { + setState(903); + match(As); + setState(904); + importedBinding(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ModuleExportNameContext extends ParserRuleContext { + public IdentifierNameContext identifierName() { + return getRuleContext(IdentifierNameContext.class,0); + } + public TerminalNode StringLiteral() { return getToken(TypeScriptParser.StringLiteral, 0); } + public ModuleExportNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_moduleExportName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterModuleExportName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitModuleExportName(this); + } + } + + public final ModuleExportNameContext moduleExportName() throws RecognitionException { + ModuleExportNameContext _localctx = new ModuleExportNameContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_moduleExportName); + try { + setState(909); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NullLiteral: + case BooleanLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case Identifier: + enterOuterAlt(_localctx, 1); + { + setState(907); + identifierName(); + } + break; + case StringLiteral: + enterOuterAlt(_localctx, 2); + { + setState(908); + match(StringLiteral); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportedBindingContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(TypeScriptParser.Identifier, 0); } + public TerminalNode Yield() { return getToken(TypeScriptParser.Yield, 0); } + public TerminalNode Await() { return getToken(TypeScriptParser.Await, 0); } + public ImportedBindingContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importedBinding; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImportedBinding(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImportedBinding(this); + } + } + + public final ImportedBindingContext importedBinding() throws RecognitionException { + ImportedBindingContext _localctx = new ImportedBindingContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_importedBinding); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(911); + _la = _input.LA(1); + if ( !(((((_la - 100)) & ~0x3f) == 0 && ((1L << (_la - 100)) & 274877906947L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportDefaultContext extends ParserRuleContext { + public AliasNameContext aliasName() { + return getRuleContext(AliasNameContext.class,0); + } + public TerminalNode Comma() { return getToken(TypeScriptParser.Comma, 0); } + public ImportDefaultContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importDefault; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImportDefault(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImportDefault(this); + } + } + + public final ImportDefaultContext importDefault() throws RecognitionException { + ImportDefaultContext _localctx = new ImportDefaultContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_importDefault); + try { + enterOuterAlt(_localctx, 1); + { + setState(913); + aliasName(); + setState(914); + match(Comma); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportNamespaceContext extends ParserRuleContext { + public TerminalNode Multiply() { return getToken(TypeScriptParser.Multiply, 0); } + public List identifierName() { + return getRuleContexts(IdentifierNameContext.class); + } + public IdentifierNameContext identifierName(int i) { + return getRuleContext(IdentifierNameContext.class,i); + } + public TerminalNode As() { return getToken(TypeScriptParser.As, 0); } + public ImportNamespaceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importNamespace; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImportNamespace(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImportNamespace(this); + } + } + + public final ImportNamespaceContext importNamespace() throws RecognitionException { + ImportNamespaceContext _localctx = new ImportNamespaceContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_importNamespace); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(918); + _errHandler.sync(this); + switch (_input.LA(1)) { + case Multiply: + { + setState(916); + match(Multiply); + } + break; + case NullLiteral: + case BooleanLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case Identifier: + { + setState(917); + identifierName(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(922); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==As) { + { + setState(920); + match(As); + setState(921); + identifierName(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportFromContext extends ParserRuleContext { + public TerminalNode From() { return getToken(TypeScriptParser.From, 0); } + public TerminalNode StringLiteral() { return getToken(TypeScriptParser.StringLiteral, 0); } + public ImportFromContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importFrom; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImportFrom(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImportFrom(this); + } + } + + public final ImportFromContext importFrom() throws RecognitionException { + ImportFromContext _localctx = new ImportFromContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_importFrom); + try { + enterOuterAlt(_localctx, 1); + { + setState(924); + match(From); + setState(925); + match(StringLiteral); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AliasNameContext extends ParserRuleContext { + public List identifierName() { + return getRuleContexts(IdentifierNameContext.class); + } + public IdentifierNameContext identifierName(int i) { + return getRuleContext(IdentifierNameContext.class,i); + } + public TerminalNode As() { return getToken(TypeScriptParser.As, 0); } + public AliasNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_aliasName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAliasName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAliasName(this); + } + } + + public final AliasNameContext aliasName() throws RecognitionException { + AliasNameContext _localctx = new AliasNameContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_aliasName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(927); + identifierName(); + setState(930); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==As) { + { + setState(928); + match(As); + setState(929); + identifierName(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExportStatementContext extends ParserRuleContext { + public ExportStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exportStatement; } + + public ExportStatementContext() { } + public void copyFrom(ExportStatementContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ExportDefaultDeclarationContext extends ExportStatementContext { + public TerminalNode Export() { return getToken(TypeScriptParser.Export, 0); } + public TerminalNode Default() { return getToken(TypeScriptParser.Default, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public ExportDefaultDeclarationContext(ExportStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterExportDefaultDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitExportDefaultDeclaration(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ExportDeclarationContext extends ExportStatementContext { + public TerminalNode Export() { return getToken(TypeScriptParser.Export, 0); } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public ExportFromBlockContext exportFromBlock() { + return getRuleContext(ExportFromBlockContext.class,0); + } + public DeclarationContext declaration() { + return getRuleContext(DeclarationContext.class,0); + } + public TerminalNode Default() { return getToken(TypeScriptParser.Default, 0); } + public ExportDeclarationContext(ExportStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterExportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitExportDeclaration(this); + } + } + + public final ExportStatementContext exportStatement() throws RecognitionException { + ExportStatementContext _localctx = new ExportStatementContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_exportStatement); + try { + setState(947); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,102,_ctx) ) { + case 1: + _localctx = new ExportDeclarationContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(932); + match(Export); + setState(934); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,100,_ctx) ) { + case 1: + { + setState(933); + match(Default); + } + break; + } + setState(938); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,101,_ctx) ) { + case 1: + { + setState(936); + exportFromBlock(); + } + break; + case 2: + { + setState(937); + declaration(); + } + break; + } + setState(940); + eos(); + } + break; + case 2: + _localctx = new ExportDefaultDeclarationContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(942); + match(Export); + setState(943); + match(Default); + setState(944); + singleExpression(0); + setState(945); + eos(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExportFromBlockContext extends ParserRuleContext { + public ImportNamespaceContext importNamespace() { + return getRuleContext(ImportNamespaceContext.class,0); + } + public ImportFromContext importFrom() { + return getRuleContext(ImportFromContext.class,0); + } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public ExportModuleItemsContext exportModuleItems() { + return getRuleContext(ExportModuleItemsContext.class,0); + } + public ExportFromBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exportFromBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterExportFromBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitExportFromBlock(this); + } + } + + public final ExportFromBlockContext exportFromBlock() throws RecognitionException { + ExportFromBlockContext _localctx = new ExportFromBlockContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_exportFromBlock); + try { + setState(959); + _errHandler.sync(this); + switch (_input.LA(1)) { + case Multiply: + case NullLiteral: + case BooleanLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case Identifier: + enterOuterAlt(_localctx, 1); + { + setState(949); + importNamespace(); + setState(950); + importFrom(); + setState(951); + eos(); + } + break; + case OpenBrace: + enterOuterAlt(_localctx, 2); + { + setState(953); + exportModuleItems(); + setState(955); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,103,_ctx) ) { + case 1: + { + setState(954); + importFrom(); + } + break; + } + setState(957); + eos(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExportModuleItemsContext extends ParserRuleContext { + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public List exportAliasName() { + return getRuleContexts(ExportAliasNameContext.class); + } + public ExportAliasNameContext exportAliasName(int i) { + return getRuleContext(ExportAliasNameContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public ExportModuleItemsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exportModuleItems; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterExportModuleItems(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitExportModuleItems(this); + } + } + + public final ExportModuleItemsContext exportModuleItems() throws RecognitionException { + ExportModuleItemsContext _localctx = new ExportModuleItemsContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_exportModuleItems); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(961); + match(OpenBrace); + setState(967); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,105,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(962); + exportAliasName(); + setState(963); + match(Comma); + } + } + } + setState(969); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,105,_ctx); + } + setState(974); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 59)) & ~0x3f) == 0 && ((1L << (_la - 59)) & -8796093024253L) != 0) || ((((_la - 123)) & ~0x3f) == 0 && ((1L << (_la - 123)) & 104447L) != 0)) { + { + setState(970); + exportAliasName(); + setState(972); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(971); + match(Comma); + } + } + + } + } + + setState(976); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExportAliasNameContext extends ParserRuleContext { + public List moduleExportName() { + return getRuleContexts(ModuleExportNameContext.class); + } + public ModuleExportNameContext moduleExportName(int i) { + return getRuleContext(ModuleExportNameContext.class,i); + } + public TerminalNode As() { return getToken(TypeScriptParser.As, 0); } + public ExportAliasNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exportAliasName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterExportAliasName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitExportAliasName(this); + } + } + + public final ExportAliasNameContext exportAliasName() throws RecognitionException { + ExportAliasNameContext _localctx = new ExportAliasNameContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_exportAliasName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(978); + moduleExportName(); + setState(981); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==As) { + { + setState(979); + match(As); + setState(980); + moduleExportName(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DeclarationContext extends ParserRuleContext { + public VariableStatementContext variableStatement() { + return getRuleContext(VariableStatementContext.class,0); + } + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public FunctionDeclarationContext functionDeclaration() { + return getRuleContext(FunctionDeclarationContext.class,0); + } + public DeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitDeclaration(this); + } + } + + public final DeclarationContext declaration() throws RecognitionException { + DeclarationContext _localctx = new DeclarationContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_declaration); + try { + setState(986); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,109,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(983); + variableStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(984); + classDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(985); + functionDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableStatementContext extends ParserRuleContext { + public BindingPatternContext bindingPattern() { + return getRuleContext(BindingPatternContext.class,0); + } + public InitializerContext initializer() { + return getRuleContext(InitializerContext.class,0); + } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public VariableDeclarationListContext variableDeclarationList() { + return getRuleContext(VariableDeclarationListContext.class,0); + } + public AccessibilityModifierContext accessibilityModifier() { + return getRuleContext(AccessibilityModifierContext.class,0); + } + public VarModifierContext varModifier() { + return getRuleContext(VarModifierContext.class,0); + } + public TerminalNode ReadOnly() { return getToken(TypeScriptParser.ReadOnly, 0); } + public TerminalNode Declare() { return getToken(TypeScriptParser.Declare, 0); } + public VariableStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterVariableStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitVariableStatement(this); + } + } + + public final VariableStatementContext variableStatement() throws RecognitionException { + VariableStatementContext _localctx = new VariableStatementContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_variableStatement); + int _la; + try { + setState(1017); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,118,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(988); + bindingPattern(); + setState(990); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(989); + typeAnnotation(); + } + } + + setState(992); + initializer(); + setState(994); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,111,_ctx) ) { + case 1: + { + setState(993); + match(SemiColon); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(997); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 112)) & ~0x3f) == 0 && ((1L << (_la - 112)) & 19L) != 0)) { + { + setState(996); + accessibilityModifier(); + } + } + + setState(1000); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 77)) & ~0x3f) == 0 && ((1L << (_la - 77)) & 18253611009L) != 0)) { + { + setState(999); + varModifier(); + } + } + + setState(1003); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ReadOnly) { + { + setState(1002); + match(ReadOnly); + } + } + + setState(1005); + variableDeclarationList(); + setState(1007); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,115,_ctx) ) { + case 1: + { + setState(1006); + match(SemiColon); + } + break; + } + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1009); + match(Declare); + setState(1011); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 77)) & ~0x3f) == 0 && ((1L << (_la - 77)) & 18253611009L) != 0)) { + { + setState(1010); + varModifier(); + } + } + + setState(1013); + variableDeclarationList(); + setState(1015); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,117,_ctx) ) { + case 1: + { + setState(1014); + match(SemiColon); + } + break; + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableDeclarationListContext extends ParserRuleContext { + public List variableDeclaration() { + return getRuleContexts(VariableDeclarationContext.class); + } + public VariableDeclarationContext variableDeclaration(int i) { + return getRuleContext(VariableDeclarationContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public VariableDeclarationListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableDeclarationList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterVariableDeclarationList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitVariableDeclarationList(this); + } + } + + public final VariableDeclarationListContext variableDeclarationList() throws RecognitionException { + VariableDeclarationListContext _localctx = new VariableDeclarationListContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_variableDeclarationList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1019); + variableDeclaration(); + setState(1024); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,119,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1020); + match(Comma); + setState(1021); + variableDeclaration(); + } + } + } + setState(1026); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,119,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableDeclarationContext extends ParserRuleContext { + public IdentifierOrKeyWordContext identifierOrKeyWord() { + return getRuleContext(IdentifierOrKeyWordContext.class,0); + } + public ArrayLiteralContext arrayLiteral() { + return getRuleContext(ArrayLiteralContext.class,0); + } + public ObjectLiteralContext objectLiteral() { + return getRuleContext(ObjectLiteralContext.class,0); + } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode Assign() { return getToken(TypeScriptParser.Assign, 0); } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public VariableDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterVariableDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitVariableDeclaration(this); + } + } + + public final VariableDeclarationContext variableDeclaration() throws RecognitionException { + VariableDeclarationContext _localctx = new VariableDeclarationContext(_ctx, getState()); + enterRule(_localctx, 160, RULE_variableDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(1030); + _errHandler.sync(this); + switch (_input.LA(1)) { + case As: + case From: + case Async: + case Yield: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Abstract: + case Identifier: + { + setState(1027); + identifierOrKeyWord(); + } + break; + case OpenBracket: + { + setState(1028); + arrayLiteral(); + } + break; + case OpenBrace: + { + setState(1029); + objectLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1033); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,121,_ctx) ) { + case 1: + { + setState(1032); + typeAnnotation(); + } + break; + } + setState(1036); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,122,_ctx) ) { + case 1: + { + setState(1035); + singleExpression(0); + } + break; + } + setState(1043); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,124,_ctx) ) { + case 1: + { + setState(1038); + match(Assign); + setState(1040); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) { + case 1: + { + setState(1039); + typeParameters(); + } + break; + } + setState(1042); + singleExpression(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EmptyStatement_Context extends ParserRuleContext { + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public EmptyStatement_Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_emptyStatement_; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterEmptyStatement_(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitEmptyStatement_(this); + } + } + + public final EmptyStatement_Context emptyStatement_() throws RecognitionException { + EmptyStatement_Context _localctx = new EmptyStatement_Context(_ctx, getState()); + enterRule(_localctx, 162, RULE_emptyStatement_); + try { + enterOuterAlt(_localctx, 1); + { + setState(1045); + match(SemiColon); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExpressionStatementContext extends ParserRuleContext { + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public ExpressionStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expressionStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterExpressionStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitExpressionStatement(this); + } + } + + public final ExpressionStatementContext expressionStatement() throws RecognitionException { + ExpressionStatementContext _localctx = new ExpressionStatementContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_expressionStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1047); + if (!(this.notOpenBraceAndNotFunctionAndNotInterface())) throw new FailedPredicateException(this, "this.notOpenBraceAndNotFunctionAndNotInterface()"); + setState(1048); + expressionSequence(); + setState(1050); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,125,_ctx) ) { + case 1: + { + setState(1049); + match(SemiColon); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IfStatementContext extends ParserRuleContext { + public TerminalNode If() { return getToken(TypeScriptParser.If, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public List statement() { + return getRuleContexts(StatementContext.class); + } + public StatementContext statement(int i) { + return getRuleContext(StatementContext.class,i); + } + public TerminalNode Else() { return getToken(TypeScriptParser.Else, 0); } + public IfStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ifStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIfStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIfStatement(this); + } + } + + public final IfStatementContext ifStatement() throws RecognitionException { + IfStatementContext _localctx = new IfStatementContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_ifStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1052); + match(If); + setState(1053); + match(OpenParen); + setState(1054); + expressionSequence(); + setState(1055); + match(CloseParen); + setState(1056); + statement(); + setState(1059); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,126,_ctx) ) { + case 1: + { + setState(1057); + match(Else); + setState(1058); + statement(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IterationStatementContext extends ParserRuleContext { + public IterationStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_iterationStatement; } + + public IterationStatementContext() { } + public void copyFrom(IterationStatementContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ForVarOfStatementContext extends IterationStatementContext { + public TerminalNode For() { return getToken(TypeScriptParser.For, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public VarModifierContext varModifier() { + return getRuleContext(VarModifierContext.class,0); + } + public VariableDeclarationContext variableDeclaration() { + return getRuleContext(VariableDeclarationContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public TerminalNode Await() { return getToken(TypeScriptParser.Await, 0); } + public TerminalNode As() { return getToken(TypeScriptParser.As, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public ForVarOfStatementContext(IterationStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterForVarOfStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitForVarOfStatement(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class DoStatementContext extends IterationStatementContext { + public TerminalNode Do() { return getToken(TypeScriptParser.Do, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public TerminalNode While() { return getToken(TypeScriptParser.While, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public DoStatementContext(IterationStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterDoStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitDoStatement(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ForVarStatementContext extends IterationStatementContext { + public TerminalNode For() { return getToken(TypeScriptParser.For, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public VarModifierContext varModifier() { + return getRuleContext(VarModifierContext.class,0); + } + public VariableDeclarationListContext variableDeclarationList() { + return getRuleContext(VariableDeclarationListContext.class,0); + } + public List SemiColon() { return getTokens(TypeScriptParser.SemiColon); } + public TerminalNode SemiColon(int i) { + return getToken(TypeScriptParser.SemiColon, i); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public List expressionSequence() { + return getRuleContexts(ExpressionSequenceContext.class); + } + public ExpressionSequenceContext expressionSequence(int i) { + return getRuleContext(ExpressionSequenceContext.class,i); + } + public ForVarStatementContext(IterationStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterForVarStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitForVarStatement(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ForVarInStatementContext extends IterationStatementContext { + public TerminalNode For() { return getToken(TypeScriptParser.For, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public VarModifierContext varModifier() { + return getRuleContext(VarModifierContext.class,0); + } + public VariableDeclarationContext variableDeclaration() { + return getRuleContext(VariableDeclarationContext.class,0); + } + public TerminalNode In() { return getToken(TypeScriptParser.In, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public ForVarInStatementContext(IterationStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterForVarInStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitForVarInStatement(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class WhileStatementContext extends IterationStatementContext { + public TerminalNode While() { return getToken(TypeScriptParser.While, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public WhileStatementContext(IterationStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterWhileStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitWhileStatement(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ForStatementContext extends IterationStatementContext { + public TerminalNode For() { return getToken(TypeScriptParser.For, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public List SemiColon() { return getTokens(TypeScriptParser.SemiColon); } + public TerminalNode SemiColon(int i) { + return getToken(TypeScriptParser.SemiColon, i); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public List expressionSequence() { + return getRuleContexts(ExpressionSequenceContext.class); + } + public ExpressionSequenceContext expressionSequence(int i) { + return getRuleContext(ExpressionSequenceContext.class,i); + } + public ForStatementContext(IterationStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitForStatement(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ForInStatementContext extends IterationStatementContext { + public TerminalNode For() { return getToken(TypeScriptParser.For, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode In() { return getToken(TypeScriptParser.In, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public ForInStatementContext(IterationStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterForInStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitForInStatement(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ForOfStatementContext extends IterationStatementContext { + public TerminalNode For() { return getToken(TypeScriptParser.For, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public TerminalNode Await() { return getToken(TypeScriptParser.Await, 0); } + public TerminalNode As() { return getToken(TypeScriptParser.As, 0); } + public Type_Context type_() { + return getRuleContext(Type_Context.class,0); + } + public ForOfStatementContext(IterationStatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterForOfStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitForOfStatement(this); + } + } + + public final IterationStatementContext iterationStatement() throws RecognitionException { + IterationStatementContext _localctx = new IterationStatementContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_iterationStatement); + int _la; + try { + setState(1155); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,136,_ctx) ) { + case 1: + _localctx = new DoStatementContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1061); + match(Do); + setState(1062); + statement(); + setState(1063); + match(While); + setState(1064); + match(OpenParen); + setState(1065); + expressionSequence(); + setState(1066); + match(CloseParen); + setState(1067); + eos(); + } + break; + case 2: + _localctx = new WhileStatementContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1069); + match(While); + setState(1070); + match(OpenParen); + setState(1071); + expressionSequence(); + setState(1072); + match(CloseParen); + setState(1073); + statement(); + } + break; + case 3: + _localctx = new ForStatementContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1075); + match(For); + setState(1076); + match(OpenParen); + setState(1078); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -576460747975425704L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -1L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 7359L) != 0)) { + { + setState(1077); + expressionSequence(); + } + } + + setState(1080); + match(SemiColon); + setState(1082); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -576460747975425704L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -1L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 7359L) != 0)) { + { + setState(1081); + expressionSequence(); + } + } + + setState(1084); + match(SemiColon); + setState(1086); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -576460747975425704L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -1L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 7359L) != 0)) { + { + setState(1085); + expressionSequence(); + } + } + + setState(1088); + match(CloseParen); + setState(1089); + statement(); + } + break; + case 4: + _localctx = new ForVarStatementContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1090); + match(For); + setState(1091); + match(OpenParen); + setState(1092); + varModifier(); + setState(1093); + variableDeclarationList(); + setState(1094); + match(SemiColon); + setState(1096); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -576460747975425704L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -1L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 7359L) != 0)) { + { + setState(1095); + expressionSequence(); + } + } + + setState(1098); + match(SemiColon); + setState(1100); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -576460747975425704L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -1L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 7359L) != 0)) { + { + setState(1099); + expressionSequence(); + } + } + + setState(1102); + match(CloseParen); + setState(1103); + statement(); + } + break; + case 5: + _localctx = new ForInStatementContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(1105); + match(For); + setState(1106); + match(OpenParen); + setState(1107); + singleExpression(0); + setState(1108); + match(In); + setState(1109); + expressionSequence(); + setState(1110); + match(CloseParen); + setState(1111); + statement(); + } + break; + case 6: + _localctx = new ForVarInStatementContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(1113); + match(For); + setState(1114); + match(OpenParen); + setState(1115); + varModifier(); + setState(1116); + variableDeclaration(); + setState(1117); + match(In); + setState(1118); + expressionSequence(); + setState(1119); + match(CloseParen); + setState(1120); + statement(); + } + break; + case 7: + _localctx = new ForOfStatementContext(_localctx); + enterOuterAlt(_localctx, 7); + { + setState(1122); + match(For); + setState(1124); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Await) { + { + setState(1123); + match(Await); + } + } + + setState(1126); + match(OpenParen); + setState(1127); + singleExpression(0); + setState(1128); + identifier(); + setState(1129); + if (!(this.p("of"))) throw new FailedPredicateException(this, "this.p(\"of\")"); + setState(1130); + expressionSequence(); + setState(1133); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==As) { + { + setState(1131); + match(As); + setState(1132); + type_(); + } + } + + setState(1135); + match(CloseParen); + setState(1136); + statement(); + } + break; + case 8: + _localctx = new ForVarOfStatementContext(_localctx); + enterOuterAlt(_localctx, 8); + { + setState(1138); + match(For); + setState(1140); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Await) { + { + setState(1139); + match(Await); + } + } + + setState(1142); + match(OpenParen); + setState(1143); + varModifier(); + setState(1144); + variableDeclaration(); + setState(1145); + identifier(); + setState(1146); + if (!(this.p("of"))) throw new FailedPredicateException(this, "this.p(\"of\")"); + setState(1147); + expressionSequence(); + setState(1150); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==As) { + { + setState(1148); + match(As); + setState(1149); + type_(); + } + } + + setState(1152); + match(CloseParen); + setState(1153); + statement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VarModifierContext extends ParserRuleContext { + public TerminalNode Var() { return getToken(TypeScriptParser.Var, 0); } + public TerminalNode Let() { return getToken(TypeScriptParser.Let, 0); } + public TerminalNode Const() { return getToken(TypeScriptParser.Const, 0); } + public VarModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_varModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterVarModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitVarModifier(this); + } + } + + public final VarModifierContext varModifier() throws RecognitionException { + VarModifierContext _localctx = new VarModifierContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_varModifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1157); + _la = _input.LA(1); + if ( !(((((_la - 77)) & ~0x3f) == 0 && ((1L << (_la - 77)) & 18253611009L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ContinueStatementContext extends ParserRuleContext { + public TerminalNode Continue() { return getToken(TypeScriptParser.Continue, 0); } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ContinueStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_continueStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterContinueStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitContinueStatement(this); + } + } + + public final ContinueStatementContext continueStatement() throws RecognitionException { + ContinueStatementContext _localctx = new ContinueStatementContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_continueStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1159); + match(Continue); + setState(1162); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,137,_ctx) ) { + case 1: + { + setState(1160); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + setState(1161); + identifier(); + } + break; + } + setState(1164); + eos(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BreakStatementContext extends ParserRuleContext { + public TerminalNode Break() { return getToken(TypeScriptParser.Break, 0); } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public BreakStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_breakStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterBreakStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitBreakStatement(this); + } + } + + public final BreakStatementContext breakStatement() throws RecognitionException { + BreakStatementContext _localctx = new BreakStatementContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_breakStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1166); + match(Break); + setState(1169); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,138,_ctx) ) { + case 1: + { + setState(1167); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + setState(1168); + identifier(); + } + break; + } + setState(1171); + eos(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReturnStatementContext extends ParserRuleContext { + public TerminalNode Return() { return getToken(TypeScriptParser.Return, 0); } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public ReturnStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returnStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterReturnStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitReturnStatement(this); + } + } + + public final ReturnStatementContext returnStatement() throws RecognitionException { + ReturnStatementContext _localctx = new ReturnStatementContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_returnStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1173); + match(Return); + setState(1176); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,139,_ctx) ) { + case 1: + { + setState(1174); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + setState(1175); + expressionSequence(); + } + break; + } + setState(1178); + eos(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class YieldStatementContext extends ParserRuleContext { + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public TerminalNode Yield() { return getToken(TypeScriptParser.Yield, 0); } + public TerminalNode YieldStar() { return getToken(TypeScriptParser.YieldStar, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public YieldStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_yieldStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterYieldStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitYieldStatement(this); + } + } + + public final YieldStatementContext yieldStatement() throws RecognitionException { + YieldStatementContext _localctx = new YieldStatementContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_yieldStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1180); + _la = _input.LA(1); + if ( !(_la==Yield || _la==YieldStar) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1183); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,140,_ctx) ) { + case 1: + { + setState(1181); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + setState(1182); + expressionSequence(); + } + break; + } + setState(1185); + eos(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WithStatementContext extends ParserRuleContext { + public TerminalNode With() { return getToken(TypeScriptParser.With, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public WithStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_withStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterWithStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitWithStatement(this); + } + } + + public final WithStatementContext withStatement() throws RecognitionException { + WithStatementContext _localctx = new WithStatementContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_withStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1187); + match(With); + setState(1188); + match(OpenParen); + setState(1189); + expressionSequence(); + setState(1190); + match(CloseParen); + setState(1191); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchStatementContext extends ParserRuleContext { + public TerminalNode Switch() { return getToken(TypeScriptParser.Switch, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public CaseBlockContext caseBlock() { + return getRuleContext(CaseBlockContext.class,0); + } + public SwitchStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterSwitchStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitSwitchStatement(this); + } + } + + public final SwitchStatementContext switchStatement() throws RecognitionException { + SwitchStatementContext _localctx = new SwitchStatementContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_switchStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1193); + match(Switch); + setState(1194); + match(OpenParen); + setState(1195); + expressionSequence(); + setState(1196); + match(CloseParen); + setState(1197); + caseBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CaseBlockContext extends ParserRuleContext { + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public List caseClauses() { + return getRuleContexts(CaseClausesContext.class); + } + public CaseClausesContext caseClauses(int i) { + return getRuleContext(CaseClausesContext.class,i); + } + public DefaultClauseContext defaultClause() { + return getRuleContext(DefaultClauseContext.class,0); + } + public CaseBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_caseBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterCaseBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitCaseBlock(this); + } + } + + public final CaseBlockContext caseBlock() throws RecognitionException { + CaseBlockContext _localctx = new CaseBlockContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_caseBlock); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1199); + match(OpenBrace); + setState(1201); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Case) { + { + setState(1200); + caseClauses(); + } + } + + setState(1207); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Default) { + { + setState(1203); + defaultClause(); + setState(1205); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Case) { + { + setState(1204); + caseClauses(); + } + } + + } + } + + setState(1209); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CaseClausesContext extends ParserRuleContext { + public List caseClause() { + return getRuleContexts(CaseClauseContext.class); + } + public CaseClauseContext caseClause(int i) { + return getRuleContext(CaseClauseContext.class,i); + } + public CaseClausesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_caseClauses; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterCaseClauses(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitCaseClauses(this); + } + } + + public final CaseClausesContext caseClauses() throws RecognitionException { + CaseClausesContext _localctx = new CaseClausesContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_caseClauses); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1212); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1211); + caseClause(); + } + } + setState(1214); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==Case ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CaseClauseContext extends ParserRuleContext { + public TerminalNode Case() { return getToken(TypeScriptParser.Case, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode Colon() { return getToken(TypeScriptParser.Colon, 0); } + public StatementListContext statementList() { + return getRuleContext(StatementListContext.class,0); + } + public CaseClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_caseClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterCaseClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitCaseClause(this); + } + } + + public final CaseClauseContext caseClause() throws RecognitionException { + CaseClauseContext _localctx = new CaseClauseContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_caseClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1216); + match(Case); + setState(1217); + expressionSequence(); + setState(1218); + match(Colon); + setState(1220); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) { + case 1: + { + setState(1219); + statementList(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DefaultClauseContext extends ParserRuleContext { + public TerminalNode Default() { return getToken(TypeScriptParser.Default, 0); } + public TerminalNode Colon() { return getToken(TypeScriptParser.Colon, 0); } + public StatementListContext statementList() { + return getRuleContext(StatementListContext.class,0); + } + public DefaultClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_defaultClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterDefaultClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitDefaultClause(this); + } + } + + public final DefaultClauseContext defaultClause() throws RecognitionException { + DefaultClauseContext _localctx = new DefaultClauseContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_defaultClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1222); + match(Default); + setState(1223); + match(Colon); + setState(1225); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,146,_ctx) ) { + case 1: + { + setState(1224); + statementList(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabelledStatementContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode Colon() { return getToken(TypeScriptParser.Colon, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public LabelledStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labelledStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterLabelledStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitLabelledStatement(this); + } + } + + public final LabelledStatementContext labelledStatement() throws RecognitionException { + LabelledStatementContext _localctx = new LabelledStatementContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_labelledStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1227); + identifier(); + setState(1228); + match(Colon); + setState(1229); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ThrowStatementContext extends ParserRuleContext { + public TerminalNode Throw() { return getToken(TypeScriptParser.Throw, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public ThrowStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_throwStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterThrowStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitThrowStatement(this); + } + } + + public final ThrowStatementContext throwStatement() throws RecognitionException { + ThrowStatementContext _localctx = new ThrowStatementContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_throwStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1231); + match(Throw); + setState(1232); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + setState(1233); + expressionSequence(); + setState(1234); + eos(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TryStatementContext extends ParserRuleContext { + public TerminalNode Try() { return getToken(TypeScriptParser.Try, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public CatchProductionContext catchProduction() { + return getRuleContext(CatchProductionContext.class,0); + } + public FinallyProductionContext finallyProduction() { + return getRuleContext(FinallyProductionContext.class,0); + } + public TryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_tryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTryStatement(this); + } + } + + public final TryStatementContext tryStatement() throws RecognitionException { + TryStatementContext _localctx = new TryStatementContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_tryStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1236); + match(Try); + setState(1237); + block(); + setState(1243); + _errHandler.sync(this); + switch (_input.LA(1)) { + case Catch: + { + setState(1238); + catchProduction(); + setState(1240); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,147,_ctx) ) { + case 1: + { + setState(1239); + finallyProduction(); + } + break; + } + } + break; + case Finally: + { + setState(1242); + finallyProduction(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatchProductionContext extends ParserRuleContext { + public TerminalNode Catch() { return getToken(TypeScriptParser.Catch, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public CatchProductionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catchProduction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterCatchProduction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitCatchProduction(this); + } + } + + public final CatchProductionContext catchProduction() throws RecognitionException { + CatchProductionContext _localctx = new CatchProductionContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_catchProduction); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1245); + match(Catch); + setState(1253); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OpenParen) { + { + setState(1246); + match(OpenParen); + setState(1247); + identifier(); + setState(1249); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(1248); + typeAnnotation(); + } + } + + setState(1251); + match(CloseParen); + } + } + + setState(1255); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FinallyProductionContext extends ParserRuleContext { + public TerminalNode Finally() { return getToken(TypeScriptParser.Finally, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public FinallyProductionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_finallyProduction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterFinallyProduction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitFinallyProduction(this); + } + } + + public final FinallyProductionContext finallyProduction() throws RecognitionException { + FinallyProductionContext _localctx = new FinallyProductionContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_finallyProduction); + try { + enterOuterAlt(_localctx, 1); + { + setState(1257); + match(Finally); + setState(1258); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DebuggerStatementContext extends ParserRuleContext { + public TerminalNode Debugger() { return getToken(TypeScriptParser.Debugger, 0); } + public EosContext eos() { + return getRuleContext(EosContext.class,0); + } + public DebuggerStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_debuggerStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterDebuggerStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitDebuggerStatement(this); + } + } + + public final DebuggerStatementContext debuggerStatement() throws RecognitionException { + DebuggerStatementContext _localctx = new DebuggerStatementContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_debuggerStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1260); + match(Debugger); + setState(1261); + eos(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FunctionDeclarationContext extends ParserRuleContext { + public TerminalNode Function_() { return getToken(TypeScriptParser.Function_, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public CallSignatureContext callSignature() { + return getRuleContext(CallSignatureContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public TerminalNode Async() { return getToken(TypeScriptParser.Async, 0); } + public TerminalNode Multiply() { return getToken(TypeScriptParser.Multiply, 0); } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public FunctionDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_functionDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterFunctionDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitFunctionDeclaration(this); + } + } + + public final FunctionDeclarationContext functionDeclaration() throws RecognitionException { + FunctionDeclarationContext _localctx = new FunctionDeclarationContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_functionDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1264); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Async) { + { + setState(1263); + match(Async); + } + } + + setState(1266); + match(Function_); + setState(1268); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Multiply) { + { + setState(1267); + match(Multiply); + } + } + + setState(1270); + identifier(); + setState(1271); + callSignature(); + setState(1277); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OpenBrace: + { + { + setState(1272); + match(OpenBrace); + setState(1273); + functionBody(); + setState(1274); + match(CloseBrace); + } + } + break; + case SemiColon: + { + setState(1276); + match(SemiColon); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassDeclarationContext extends ParserRuleContext { + public TerminalNode Class() { return getToken(TypeScriptParser.Class, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ClassHeritageContext classHeritage() { + return getRuleContext(ClassHeritageContext.class,0); + } + public ClassTailContext classTail() { + return getRuleContext(ClassTailContext.class,0); + } + public DecoratorListContext decoratorList() { + return getRuleContext(DecoratorListContext.class,0); + } + public TerminalNode Export() { return getToken(TypeScriptParser.Export, 0); } + public TerminalNode Abstract() { return getToken(TypeScriptParser.Abstract, 0); } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public TerminalNode Default() { return getToken(TypeScriptParser.Default, 0); } + public ClassDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterClassDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitClassDeclaration(this); + } + } + + public final ClassDeclarationContext classDeclaration() throws RecognitionException { + ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_classDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1280); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==At) { + { + setState(1279); + decoratorList(); + } + } + + setState(1286); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Export) { + { + setState(1282); + match(Export); + setState(1284); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Default) { + { + setState(1283); + match(Default); + } + } + + } + } + + setState(1289); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Abstract) { + { + setState(1288); + match(Abstract); + } + } + + setState(1291); + match(Class); + setState(1292); + identifier(); + setState(1294); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(1293); + typeParameters(); + } + } + + setState(1296); + classHeritage(); + setState(1297); + classTail(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassHeritageContext extends ParserRuleContext { + public ClassExtendsClauseContext classExtendsClause() { + return getRuleContext(ClassExtendsClauseContext.class,0); + } + public ImplementsClauseContext implementsClause() { + return getRuleContext(ImplementsClauseContext.class,0); + } + public ClassHeritageContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classHeritage; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterClassHeritage(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitClassHeritage(this); + } + } + + public final ClassHeritageContext classHeritage() throws RecognitionException { + ClassHeritageContext _localctx = new ClassHeritageContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_classHeritage); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1300); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Extends) { + { + setState(1299); + classExtendsClause(); + } + } + + setState(1303); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Implements) { + { + setState(1302); + implementsClause(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassTailContext extends ParserRuleContext { + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public List classElement() { + return getRuleContexts(ClassElementContext.class); + } + public ClassElementContext classElement(int i) { + return getRuleContext(ClassElementContext.class,i); + } + public ClassTailContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classTail; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterClassTail(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitClassTail(this); + } + } + + public final ClassTailContext classTail() throws RecognitionException { + ClassTailContext _localctx = new ClassTailContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_classTail); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1305); + match(OpenBrace); + setState(1309); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,161,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1306); + classElement(); + } + } + } + setState(1311); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,161,_ctx); + } + setState(1312); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassExtendsClauseContext extends ParserRuleContext { + public TerminalNode Extends() { return getToken(TypeScriptParser.Extends, 0); } + public TypeReferenceContext typeReference() { + return getRuleContext(TypeReferenceContext.class,0); + } + public ClassExtendsClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classExtendsClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterClassExtendsClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitClassExtendsClause(this); + } + } + + public final ClassExtendsClauseContext classExtendsClause() throws RecognitionException { + ClassExtendsClauseContext _localctx = new ClassExtendsClauseContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_classExtendsClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1314); + match(Extends); + setState(1315); + typeReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImplementsClauseContext extends ParserRuleContext { + public TerminalNode Implements() { return getToken(TypeScriptParser.Implements, 0); } + public ClassOrInterfaceTypeListContext classOrInterfaceTypeList() { + return getRuleContext(ClassOrInterfaceTypeListContext.class,0); + } + public ImplementsClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_implementsClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterImplementsClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitImplementsClause(this); + } + } + + public final ImplementsClauseContext implementsClause() throws RecognitionException { + ImplementsClauseContext _localctx = new ImplementsClauseContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_implementsClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1317); + match(Implements); + setState(1318); + classOrInterfaceTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassElementContext extends ParserRuleContext { + public ConstructorDeclarationContext constructorDeclaration() { + return getRuleContext(ConstructorDeclarationContext.class,0); + } + public PropertyMemberDeclarationContext propertyMemberDeclaration() { + return getRuleContext(PropertyMemberDeclarationContext.class,0); + } + public DecoratorListContext decoratorList() { + return getRuleContext(DecoratorListContext.class,0); + } + public IndexMemberDeclarationContext indexMemberDeclaration() { + return getRuleContext(IndexMemberDeclarationContext.class,0); + } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public ClassElementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classElement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterClassElement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitClassElement(this); + } + } + + public final ClassElementContext classElement() throws RecognitionException { + ClassElementContext _localctx = new ClassElementContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_classElement); + try { + setState(1327); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,163,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1320); + constructorDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1322); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) { + case 1: + { + setState(1321); + decoratorList(); + } + break; + } + setState(1324); + propertyMemberDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1325); + indexMemberDeclaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1326); + statement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyMemberDeclarationContext extends ParserRuleContext { + public PropertyMemberDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyMemberDeclaration; } + + public PropertyMemberDeclarationContext() { } + public void copyFrom(PropertyMemberDeclarationContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PropertyDeclarationExpressionContext extends PropertyMemberDeclarationContext { + public PropertyMemberBaseContext propertyMemberBase() { + return getRuleContext(PropertyMemberBaseContext.class,0); + } + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public TerminalNode QuestionMark() { return getToken(TypeScriptParser.QuestionMark, 0); } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public InitializerContext initializer() { + return getRuleContext(InitializerContext.class,0); + } + public PropertyDeclarationExpressionContext(PropertyMemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPropertyDeclarationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPropertyDeclarationExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MethodDeclarationExpressionContext extends PropertyMemberDeclarationContext { + public PropertyMemberBaseContext propertyMemberBase() { + return getRuleContext(PropertyMemberBaseContext.class,0); + } + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public CallSignatureContext callSignature() { + return getRuleContext(CallSignatureContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public MethodDeclarationExpressionContext(PropertyMemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterMethodDeclarationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitMethodDeclarationExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class GetterSetterDeclarationExpressionContext extends PropertyMemberDeclarationContext { + public PropertyMemberBaseContext propertyMemberBase() { + return getRuleContext(PropertyMemberBaseContext.class,0); + } + public GetAccessorContext getAccessor() { + return getRuleContext(GetAccessorContext.class,0); + } + public SetAccessorContext setAccessor() { + return getRuleContext(SetAccessorContext.class,0); + } + public GetterSetterDeclarationExpressionContext(PropertyMemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGetterSetterDeclarationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGetterSetterDeclarationExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AbstractMemberDeclarationContext extends PropertyMemberDeclarationContext { + public AbstractDeclarationContext abstractDeclaration() { + return getRuleContext(AbstractDeclarationContext.class,0); + } + public AbstractMemberDeclarationContext(PropertyMemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAbstractMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAbstractMemberDeclaration(this); + } + } + + public final PropertyMemberDeclarationContext propertyMemberDeclaration() throws RecognitionException { + PropertyMemberDeclarationContext _localctx = new PropertyMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_propertyMemberDeclaration); + int _la; + try { + setState(1358); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,169,_ctx) ) { + case 1: + _localctx = new PropertyDeclarationExpressionContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1329); + propertyMemberBase(); + setState(1330); + propertyName(); + setState(1332); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==QuestionMark) { + { + setState(1331); + match(QuestionMark); + } + } + + setState(1335); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(1334); + typeAnnotation(); + } + } + + setState(1338); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Assign) { + { + setState(1337); + initializer(); + } + } + + setState(1340); + match(SemiColon); + } + break; + case 2: + _localctx = new MethodDeclarationExpressionContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1342); + propertyMemberBase(); + setState(1343); + propertyName(); + setState(1344); + callSignature(); + setState(1350); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OpenBrace: + { + { + setState(1345); + match(OpenBrace); + setState(1346); + functionBody(); + setState(1347); + match(CloseBrace); + } + } + break; + case SemiColon: + { + setState(1349); + match(SemiColon); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 3: + _localctx = new GetterSetterDeclarationExpressionContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1352); + propertyMemberBase(); + setState(1355); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,168,_ctx) ) { + case 1: + { + setState(1353); + getAccessor(); + } + break; + case 2: + { + setState(1354); + setAccessor(); + } + break; + } + } + break; + case 4: + _localctx = new AbstractMemberDeclarationContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1357); + abstractDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyMemberBaseContext extends ParserRuleContext { + public AccessibilityModifierContext accessibilityModifier() { + return getRuleContext(AccessibilityModifierContext.class,0); + } + public TerminalNode Async() { return getToken(TypeScriptParser.Async, 0); } + public TerminalNode Static() { return getToken(TypeScriptParser.Static, 0); } + public TerminalNode ReadOnly() { return getToken(TypeScriptParser.ReadOnly, 0); } + public PropertyMemberBaseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyMemberBase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPropertyMemberBase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPropertyMemberBase(this); + } + } + + public final PropertyMemberBaseContext propertyMemberBase() throws RecognitionException { + PropertyMemberBaseContext _localctx = new PropertyMemberBaseContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_propertyMemberBase); + try { + enterOuterAlt(_localctx, 1); + { + setState(1361); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) { + case 1: + { + setState(1360); + accessibilityModifier(); + } + break; + } + setState(1364); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { + case 1: + { + setState(1363); + match(Async); + } + break; + } + setState(1367); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,172,_ctx) ) { + case 1: + { + setState(1366); + match(Static); + } + break; + } + setState(1370); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,173,_ctx) ) { + case 1: + { + setState(1369); + match(ReadOnly); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IndexMemberDeclarationContext extends ParserRuleContext { + public IndexSignatureContext indexSignature() { + return getRuleContext(IndexSignatureContext.class,0); + } + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public IndexMemberDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_indexMemberDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIndexMemberDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIndexMemberDeclaration(this); + } + } + + public final IndexMemberDeclarationContext indexMemberDeclaration() throws RecognitionException { + IndexMemberDeclarationContext _localctx = new IndexMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_indexMemberDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(1372); + indexSignature(); + setState(1373); + match(SemiColon); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneratorMethodContext extends ParserRuleContext { + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public TerminalNode Async() { return getToken(TypeScriptParser.Async, 0); } + public TerminalNode Multiply() { return getToken(TypeScriptParser.Multiply, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public GeneratorMethodContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generatorMethod; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGeneratorMethod(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGeneratorMethod(this); + } + } + + public final GeneratorMethodContext generatorMethod() throws RecognitionException { + GeneratorMethodContext _localctx = new GeneratorMethodContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_generatorMethod); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1377); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,174,_ctx) ) { + case 1: + { + setState(1375); + match(Async); + setState(1376); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + } + break; + } + setState(1380); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Multiply) { + { + setState(1379); + match(Multiply); + } + } + + setState(1382); + propertyName(); + setState(1383); + match(OpenParen); + setState(1385); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 131344L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(1384); + formalParameterList(); + } + } + + setState(1387); + match(CloseParen); + setState(1388); + match(OpenBrace); + setState(1389); + functionBody(); + setState(1390); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneratorFunctionDeclarationContext extends ParserRuleContext { + public TerminalNode Function_() { return getToken(TypeScriptParser.Function_, 0); } + public TerminalNode Multiply() { return getToken(TypeScriptParser.Multiply, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public TerminalNode Async() { return getToken(TypeScriptParser.Async, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public GeneratorFunctionDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generatorFunctionDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGeneratorFunctionDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGeneratorFunctionDeclaration(this); + } + } + + public final GeneratorFunctionDeclarationContext generatorFunctionDeclaration() throws RecognitionException { + GeneratorFunctionDeclarationContext _localctx = new GeneratorFunctionDeclarationContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_generatorFunctionDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1393); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Async) { + { + setState(1392); + match(Async); + } + } + + setState(1395); + match(Function_); + setState(1396); + match(Multiply); + setState(1398); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 96)) & ~0x3f) == 0 && ((1L << (_la - 96)) & 5016517607467L) != 0)) { + { + setState(1397); + identifier(); + } + } + + setState(1400); + match(OpenParen); + setState(1402); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 131344L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(1401); + formalParameterList(); + } + } + + setState(1404); + match(CloseParen); + setState(1405); + match(OpenBrace); + setState(1406); + functionBody(); + setState(1407); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneratorBlockContext extends ParserRuleContext { + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public List generatorDefinition() { + return getRuleContexts(GeneratorDefinitionContext.class); + } + public GeneratorDefinitionContext generatorDefinition(int i) { + return getRuleContext(GeneratorDefinitionContext.class,i); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public GeneratorBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generatorBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGeneratorBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGeneratorBlock(this); + } + } + + public final GeneratorBlockContext generatorBlock() throws RecognitionException { + GeneratorBlockContext _localctx = new GeneratorBlockContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_generatorBlock); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1409); + match(OpenBrace); + setState(1410); + generatorDefinition(); + setState(1415); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,180,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1411); + match(Comma); + setState(1412); + generatorDefinition(); + } + } + } + setState(1417); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,180,_ctx); + } + setState(1419); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(1418); + match(Comma); + } + } + + setState(1421); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneratorDefinitionContext extends ParserRuleContext { + public TerminalNode Multiply() { return getToken(TypeScriptParser.Multiply, 0); } + public IteratorDefinitionContext iteratorDefinition() { + return getRuleContext(IteratorDefinitionContext.class,0); + } + public GeneratorDefinitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generatorDefinition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGeneratorDefinition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGeneratorDefinition(this); + } + } + + public final GeneratorDefinitionContext generatorDefinition() throws RecognitionException { + GeneratorDefinitionContext _localctx = new GeneratorDefinitionContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_generatorDefinition); + try { + enterOuterAlt(_localctx, 1); + { + setState(1423); + match(Multiply); + setState(1424); + iteratorDefinition(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IteratorBlockContext extends ParserRuleContext { + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public List iteratorDefinition() { + return getRuleContexts(IteratorDefinitionContext.class); + } + public IteratorDefinitionContext iteratorDefinition(int i) { + return getRuleContext(IteratorDefinitionContext.class,i); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public IteratorBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_iteratorBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIteratorBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIteratorBlock(this); + } + } + + public final IteratorBlockContext iteratorBlock() throws RecognitionException { + IteratorBlockContext _localctx = new IteratorBlockContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_iteratorBlock); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1426); + match(OpenBrace); + setState(1427); + iteratorDefinition(); + setState(1432); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,182,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1428); + match(Comma); + setState(1429); + iteratorDefinition(); + } + } + } + setState(1434); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,182,_ctx); + } + setState(1436); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(1435); + match(Comma); + } + } + + setState(1438); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IteratorDefinitionContext extends ParserRuleContext { + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public IteratorDefinitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_iteratorDefinition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIteratorDefinition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIteratorDefinition(this); + } + } + + public final IteratorDefinitionContext iteratorDefinition() throws RecognitionException { + IteratorDefinitionContext _localctx = new IteratorDefinitionContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_iteratorDefinition); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1440); + match(OpenBracket); + setState(1441); + singleExpression(0); + setState(1442); + match(CloseBracket); + setState(1443); + match(OpenParen); + setState(1445); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 131344L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(1444); + formalParameterList(); + } + } + + setState(1447); + match(CloseParen); + setState(1448); + match(OpenBrace); + setState(1449); + functionBody(); + setState(1450); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassElementNameContext extends ParserRuleContext { + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public PrivateIdentifierContext privateIdentifier() { + return getRuleContext(PrivateIdentifierContext.class,0); + } + public ClassElementNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classElementName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterClassElementName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitClassElementName(this); + } + } + + public final ClassElementNameContext classElementName() throws RecognitionException { + ClassElementNameContext _localctx = new ClassElementNameContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_classElementName); + try { + setState(1454); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OpenBracket: + case NullLiteral: + case BooleanLiteral: + case DecimalLiteral: + case HexIntegerLiteral: + case OctalIntegerLiteral: + case OctalIntegerLiteral2: + case BinaryIntegerLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case Identifier: + case StringLiteral: + enterOuterAlt(_localctx, 1); + { + setState(1452); + propertyName(); + } + break; + case Hashtag: + enterOuterAlt(_localctx, 2); + { + setState(1453); + privateIdentifier(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrivateIdentifierContext extends ParserRuleContext { + public TerminalNode Hashtag() { return getToken(TypeScriptParser.Hashtag, 0); } + public IdentifierNameContext identifierName() { + return getRuleContext(IdentifierNameContext.class,0); + } + public PrivateIdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_privateIdentifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPrivateIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPrivateIdentifier(this); + } + } + + public final PrivateIdentifierContext privateIdentifier() throws RecognitionException { + PrivateIdentifierContext _localctx = new PrivateIdentifierContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_privateIdentifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(1456); + match(Hashtag); + setState(1457); + identifierName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParameterListContext extends ParserRuleContext { + public List formalParameterArg() { + return getRuleContexts(FormalParameterArgContext.class); + } + public FormalParameterArgContext formalParameterArg(int i) { + return getRuleContext(FormalParameterArgContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public LastFormalParameterArgContext lastFormalParameterArg() { + return getRuleContext(LastFormalParameterArgContext.class,0); + } + public ArrayLiteralContext arrayLiteral() { + return getRuleContext(ArrayLiteralContext.class,0); + } + public ObjectLiteralContext objectLiteral() { + return getRuleContext(ObjectLiteralContext.class,0); + } + public TerminalNode Colon() { return getToken(TypeScriptParser.Colon, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public FormalParameterListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_formalParameterList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterFormalParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitFormalParameterList(this); + } + } + + public final FormalParameterListContext formalParameterList() throws RecognitionException { + FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_formalParameterList); + int _la; + try { + int _alt; + setState(1481); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,190,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1459); + formalParameterArg(); + setState(1464); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,186,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1460); + match(Comma); + setState(1461); + formalParameterArg(); + } + } + } + setState(1466); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,186,_ctx); + } + setState(1469); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,187,_ctx) ) { + case 1: + { + setState(1467); + match(Comma); + setState(1468); + lastFormalParameterArg(); + } + break; + } + setState(1472); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(1471); + match(Comma); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1474); + lastFormalParameterArg(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1475); + arrayLiteral(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1476); + objectLiteral(); + setState(1479); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(1477); + match(Colon); + setState(1478); + formalParameterList(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParameterArgContext extends ParserRuleContext { + public AssignableContext assignable() { + return getRuleContext(AssignableContext.class,0); + } + public DecoratorContext decorator() { + return getRuleContext(DecoratorContext.class,0); + } + public AccessibilityModifierContext accessibilityModifier() { + return getRuleContext(AccessibilityModifierContext.class,0); + } + public TerminalNode QuestionMark() { return getToken(TypeScriptParser.QuestionMark, 0); } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public TerminalNode Assign() { return getToken(TypeScriptParser.Assign, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public FormalParameterArgContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_formalParameterArg; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterFormalParameterArg(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitFormalParameterArg(this); + } + } + + public final FormalParameterArgContext formalParameterArg() throws RecognitionException { + FormalParameterArgContext _localctx = new FormalParameterArgContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_formalParameterArg); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1484); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==At) { + { + setState(1483); + decorator(); + } + } + + setState(1487); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,192,_ctx) ) { + case 1: + { + setState(1486); + accessibilityModifier(); + } + break; + } + setState(1489); + assignable(); + setState(1491); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==QuestionMark) { + { + setState(1490); + match(QuestionMark); + } + } + + setState(1494); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(1493); + typeAnnotation(); + } + } + + setState(1498); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Assign) { + { + setState(1496); + match(Assign); + setState(1497); + singleExpression(0); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LastFormalParameterArgContext extends ParserRuleContext { + public TerminalNode Ellipsis() { return getToken(TypeScriptParser.Ellipsis, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public LastFormalParameterArgContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lastFormalParameterArg; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterLastFormalParameterArg(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitLastFormalParameterArg(this); + } + } + + public final LastFormalParameterArgContext lastFormalParameterArg() throws RecognitionException { + LastFormalParameterArgContext _localctx = new LastFormalParameterArgContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_lastFormalParameterArg); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1500); + match(Ellipsis); + setState(1501); + identifier(); + setState(1503); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(1502); + typeAnnotation(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FunctionBodyContext extends ParserRuleContext { + public SourceElementsContext sourceElements() { + return getRuleContext(SourceElementsContext.class,0); + } + public FunctionBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_functionBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterFunctionBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitFunctionBody(this); + } + } + + public final FunctionBodyContext functionBody() throws RecognitionException { + FunctionBodyContext _localctx = new FunctionBodyContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_functionBody); + try { + enterOuterAlt(_localctx, 1); + { + setState(1506); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,197,_ctx) ) { + case 1: + { + setState(1505); + sourceElements(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SourceElementsContext extends ParserRuleContext { + public List sourceElement() { + return getRuleContexts(SourceElementContext.class); + } + public SourceElementContext sourceElement(int i) { + return getRuleContext(SourceElementContext.class,i); + } + public SourceElementsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sourceElements; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterSourceElements(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitSourceElements(this); + } + } + + public final SourceElementsContext sourceElements() throws RecognitionException { + SourceElementsContext _localctx = new SourceElementsContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_sourceElements); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1509); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(1508); + sourceElement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(1511); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,198,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayLiteralContext extends ParserRuleContext { + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public ElementListContext elementList() { + return getRuleContext(ElementListContext.class,0); + } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public ArrayLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArrayLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArrayLiteral(this); + } + } + + public final ArrayLiteralContext arrayLiteral() throws RecognitionException { + ArrayLiteralContext _localctx = new ArrayLiteralContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_arrayLiteral); + try { + enterOuterAlt(_localctx, 1); + { + { + setState(1513); + match(OpenBracket); + setState(1514); + elementList(); + setState(1515); + match(CloseBracket); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementListContext extends ParserRuleContext { + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public List arrayElement() { + return getRuleContexts(ArrayElementContext.class); + } + public ArrayElementContext arrayElement(int i) { + return getRuleContext(ArrayElementContext.class,i); + } + public ElementListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterElementList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitElementList(this); + } + } + + public final ElementListContext elementList() throws RecognitionException { + ElementListContext _localctx = new ElementListContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_elementList); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1520); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,199,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1517); + match(Comma); + } + } + } + setState(1522); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,199,_ctx); + } + setState(1524); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -576460747975294632L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -1L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 7359L) != 0)) { + { + setState(1523); + arrayElement(); + } + } + + setState(1534); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,202,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1527); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1526); + match(Comma); + } + } + setState(1529); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==Comma ); + setState(1531); + arrayElement(); + } + } + } + setState(1536); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,202,_ctx); + } + setState(1540); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==Comma) { + { + { + setState(1537); + match(Comma); + } + } + setState(1542); + _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; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayElementContext extends ParserRuleContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode Ellipsis() { return getToken(TypeScriptParser.Ellipsis, 0); } + public TerminalNode Comma() { return getToken(TypeScriptParser.Comma, 0); } + public ArrayElementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayElement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArrayElement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArrayElement(this); + } + } + + public final ArrayElementContext arrayElement() throws RecognitionException { + ArrayElementContext _localctx = new ArrayElementContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_arrayElement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1544); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Ellipsis) { + { + setState(1543); + match(Ellipsis); + } + } + + setState(1548); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) { + case 1: + { + setState(1546); + singleExpression(0); + } + break; + case 2: + { + setState(1547); + identifier(); + } + break; + } + setState(1551); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,206,_ctx) ) { + case 1: + { + setState(1550); + match(Comma); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ObjectLiteralContext extends ParserRuleContext { + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public List propertyAssignment() { + return getRuleContexts(PropertyAssignmentContext.class); + } + public PropertyAssignmentContext propertyAssignment(int i) { + return getRuleContext(PropertyAssignmentContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public ObjectLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_objectLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterObjectLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitObjectLiteral(this); + } + } + + public final ObjectLiteralContext objectLiteral() throws RecognitionException { + ObjectLiteralContext _localctx = new ObjectLiteralContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_objectLiteral); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1553); + match(OpenBrace); + setState(1565); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,209,_ctx) ) { + case 1: + { + setState(1554); + propertyAssignment(); + setState(1559); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,207,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1555); + match(Comma); + setState(1556); + propertyAssignment(); + } + } + } + setState(1561); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,207,_ctx); + } + setState(1563); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(1562); + match(Comma); + } + } + + } + break; + } + setState(1567); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyAssignmentContext extends ParserRuleContext { + public PropertyAssignmentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyAssignment; } + + public PropertyAssignmentContext() { } + public void copyFrom(PropertyAssignmentContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PropertyExpressionAssignmentContext extends PropertyAssignmentContext { + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode Colon() { return getToken(TypeScriptParser.Colon, 0); } + public TerminalNode Assign() { return getToken(TypeScriptParser.Assign, 0); } + public PropertyExpressionAssignmentContext(PropertyAssignmentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPropertyExpressionAssignment(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPropertyExpressionAssignment(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ComputedPropertyExpressionAssignmentContext extends PropertyAssignmentContext { + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public TerminalNode Colon() { return getToken(TypeScriptParser.Colon, 0); } + public ComputedPropertyExpressionAssignmentContext(PropertyAssignmentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterComputedPropertyExpressionAssignment(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitComputedPropertyExpressionAssignment(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SpreadOperatorContext extends PropertyAssignmentContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode Ellipsis() { return getToken(TypeScriptParser.Ellipsis, 0); } + public SpreadOperatorContext(PropertyAssignmentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterSpreadOperator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitSpreadOperator(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PropertyShorthandContext extends PropertyAssignmentContext { + public IdentifierOrKeyWordContext identifierOrKeyWord() { + return getRuleContext(IdentifierOrKeyWordContext.class,0); + } + public PropertyShorthandContext(PropertyAssignmentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPropertyShorthand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPropertyShorthand(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PropertySetterContext extends PropertyAssignmentContext { + public SetAccessorContext setAccessor() { + return getRuleContext(SetAccessorContext.class,0); + } + public PropertySetterContext(PropertyAssignmentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPropertySetter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPropertySetter(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PropertyGetterContext extends PropertyAssignmentContext { + public GetAccessorContext getAccessor() { + return getRuleContext(GetAccessorContext.class,0); + } + public PropertyGetterContext(PropertyAssignmentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPropertyGetter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPropertyGetter(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class RestParameterInObjectContext extends PropertyAssignmentContext { + public RestParameterContext restParameter() { + return getRuleContext(RestParameterContext.class,0); + } + public RestParameterInObjectContext(PropertyAssignmentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterRestParameterInObject(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitRestParameterInObject(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MethodPropertyContext extends PropertyAssignmentContext { + public GeneratorMethodContext generatorMethod() { + return getRuleContext(GeneratorMethodContext.class,0); + } + public MethodPropertyContext(PropertyAssignmentContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterMethodProperty(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitMethodProperty(this); + } + } + + public final PropertyAssignmentContext propertyAssignment() throws RecognitionException { + PropertyAssignmentContext _localctx = new PropertyAssignmentContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_propertyAssignment); + int _la; + try { + setState(1588); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,211,_ctx) ) { + case 1: + _localctx = new PropertyExpressionAssignmentContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1569); + propertyName(); + setState(1570); + _la = _input.LA(1); + if ( !(_la==Assign || _la==Colon) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1571); + singleExpression(0); + } + break; + case 2: + _localctx = new ComputedPropertyExpressionAssignmentContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1573); + match(OpenBracket); + setState(1574); + singleExpression(0); + setState(1575); + match(CloseBracket); + setState(1576); + match(Colon); + setState(1577); + singleExpression(0); + } + break; + case 3: + _localctx = new PropertyGetterContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1579); + getAccessor(); + } + break; + case 4: + _localctx = new PropertySetterContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1580); + setAccessor(); + } + break; + case 5: + _localctx = new MethodPropertyContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(1581); + generatorMethod(); + } + break; + case 6: + _localctx = new PropertyShorthandContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(1582); + identifierOrKeyWord(); + } + break; + case 7: + _localctx = new SpreadOperatorContext(_localctx); + enterOuterAlt(_localctx, 7); + { + setState(1584); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Ellipsis) { + { + setState(1583); + match(Ellipsis); + } + } + + setState(1586); + singleExpression(0); + } + break; + case 8: + _localctx = new RestParameterInObjectContext(_localctx); + enterOuterAlt(_localctx, 8); + { + setState(1587); + restParameter(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GetAccessorContext extends ParserRuleContext { + public GetterContext getter() { + return getRuleContext(GetterContext.class,0); + } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public GetAccessorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_getAccessor; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGetAccessor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGetAccessor(this); + } + } + + public final GetAccessorContext getAccessor() throws RecognitionException { + GetAccessorContext _localctx = new GetAccessorContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_getAccessor); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1590); + getter(); + setState(1591); + match(OpenParen); + setState(1592); + match(CloseParen); + setState(1594); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(1593); + typeAnnotation(); + } + } + + setState(1596); + match(OpenBrace); + setState(1597); + functionBody(); + setState(1598); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetAccessorContext extends ParserRuleContext { + public SetterContext setter() { + return getRuleContext(SetterContext.class,0); + } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public SetAccessorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setAccessor; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterSetAccessor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitSetAccessor(this); + } + } + + public final SetAccessorContext setAccessor() throws RecognitionException { + SetAccessorContext _localctx = new SetAccessorContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_setAccessor); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1600); + setter(); + setState(1601); + match(OpenParen); + setState(1603); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 131344L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(1602); + formalParameterList(); + } + } + + setState(1605); + match(CloseParen); + setState(1606); + match(OpenBrace); + setState(1607); + functionBody(); + setState(1608); + match(CloseBrace); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyNameContext extends ParserRuleContext { + public IdentifierNameContext identifierName() { + return getRuleContext(IdentifierNameContext.class,0); + } + public TerminalNode StringLiteral() { return getToken(TypeScriptParser.StringLiteral, 0); } + public NumericLiteralContext numericLiteral() { + return getRuleContext(NumericLiteralContext.class,0); + } + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public PropertyNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPropertyName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPropertyName(this); + } + } + + public final PropertyNameContext propertyName() throws RecognitionException { + PropertyNameContext _localctx = new PropertyNameContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_propertyName); + try { + setState(1617); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NullLiteral: + case BooleanLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case Identifier: + enterOuterAlt(_localctx, 1); + { + setState(1610); + identifierName(); + } + break; + case StringLiteral: + enterOuterAlt(_localctx, 2); + { + setState(1611); + match(StringLiteral); + } + break; + case DecimalLiteral: + case HexIntegerLiteral: + case OctalIntegerLiteral: + case OctalIntegerLiteral2: + case BinaryIntegerLiteral: + enterOuterAlt(_localctx, 3); + { + setState(1612); + numericLiteral(); + } + break; + case OpenBracket: + enterOuterAlt(_localctx, 4); + { + setState(1613); + match(OpenBracket); + setState(1614); + singleExpression(0); + setState(1615); + match(CloseBracket); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArgumentsContext extends ParserRuleContext { + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public ArgumentListContext argumentList() { + return getRuleContext(ArgumentListContext.class,0); + } + public TerminalNode Comma() { return getToken(TypeScriptParser.Comma, 0); } + public ArgumentsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arguments; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArguments(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArguments(this); + } + } + + public final ArgumentsContext arguments() throws RecognitionException { + ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState()); + enterRule(_localctx, 266, RULE_arguments); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1619); + match(OpenParen); + setState(1624); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -576460747975294632L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -1L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 7359L) != 0)) { + { + setState(1620); + argumentList(); + setState(1622); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Comma) { + { + setState(1621); + match(Comma); + } + } + + } + } + + setState(1626); + match(CloseParen); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArgumentListContext extends ParserRuleContext { + public List argument() { + return getRuleContexts(ArgumentContext.class); + } + public ArgumentContext argument(int i) { + return getRuleContext(ArgumentContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public ArgumentListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_argumentList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArgumentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArgumentList(this); + } + } + + public final ArgumentListContext argumentList() throws RecognitionException { + ArgumentListContext _localctx = new ArgumentListContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_argumentList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1628); + argument(); + setState(1633); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,217,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1629); + match(Comma); + setState(1630); + argument(); + } + } + } + setState(1635); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,217,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArgumentContext extends ParserRuleContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode Ellipsis() { return getToken(TypeScriptParser.Ellipsis, 0); } + public ArgumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_argument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArgument(this); + } + } + + public final ArgumentContext argument() throws RecognitionException { + ArgumentContext _localctx = new ArgumentContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_argument); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1637); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Ellipsis) { + { + setState(1636); + match(Ellipsis); + } + } + + setState(1641); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,219,_ctx) ) { + case 1: + { + setState(1639); + singleExpression(0); + } + break; + case 2: + { + setState(1640); + identifier(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExpressionSequenceContext extends ParserRuleContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public List Comma() { return getTokens(TypeScriptParser.Comma); } + public TerminalNode Comma(int i) { + return getToken(TypeScriptParser.Comma, i); + } + public ExpressionSequenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expressionSequence; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterExpressionSequence(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitExpressionSequence(this); + } + } + + public final ExpressionSequenceContext expressionSequence() throws RecognitionException { + ExpressionSequenceContext _localctx = new ExpressionSequenceContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_expressionSequence); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1643); + singleExpression(0); + setState(1648); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,220,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1644); + match(Comma); + setState(1645); + singleExpression(0); + } + } + } + setState(1650); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,220,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SingleExpressionContext extends ParserRuleContext { + public SingleExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_singleExpression; } + + public SingleExpressionContext() { } + public void copyFrom(SingleExpressionContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class TemplateStringExpressionContext extends SingleExpressionContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TemplateStringLiteralContext templateStringLiteral() { + return getRuleContext(TemplateStringLiteralContext.class,0); + } + public TemplateStringExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTemplateStringExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTemplateStringExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class GeneratorsExpressionContext extends SingleExpressionContext { + public GeneratorBlockContext generatorBlock() { + return getRuleContext(GeneratorBlockContext.class,0); + } + public GeneratorsExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGeneratorsExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGeneratorsExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PowerExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode Power() { return getToken(TypeScriptParser.Power, 0); } + public PowerExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPowerExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPowerExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class InExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode In() { return getToken(TypeScriptParser.In, 0); } + public InExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterInExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitInExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class GenericTypesContext extends SingleExpressionContext { + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public GenericTypesContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGenericTypes(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGenericTypes(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class OptionalChainExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode QuestionMarkDot() { return getToken(TypeScriptParser.QuestionMarkDot, 0); } + public OptionalChainExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterOptionalChainExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitOptionalChainExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ArgumentsExpressionContext extends SingleExpressionContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public ArgumentsContext arguments() { + return getRuleContext(ArgumentsContext.class,0); + } + public ArgumentsExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArgumentsExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArgumentsExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ThisExpressionContext extends SingleExpressionContext { + public TerminalNode This() { return getToken(TypeScriptParser.This, 0); } + public ThisExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterThisExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitThisExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class TypeofExpressionContext extends SingleExpressionContext { + public TerminalNode Typeof() { return getToken(TypeScriptParser.Typeof, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TypeofExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTypeofExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTypeofExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class GeneratorsFunctionExpressionContext extends SingleExpressionContext { + public GeneratorFunctionDeclarationContext generatorFunctionDeclaration() { + return getRuleContext(GeneratorFunctionDeclarationContext.class,0); + } + public GeneratorsFunctionExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGeneratorsFunctionExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGeneratorsFunctionExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class EqualityExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode Equals_() { return getToken(TypeScriptParser.Equals_, 0); } + public TerminalNode NotEquals() { return getToken(TypeScriptParser.NotEquals, 0); } + public TerminalNode IdentityEquals() { return getToken(TypeScriptParser.IdentityEquals, 0); } + public TerminalNode IdentityNotEquals() { return getToken(TypeScriptParser.IdentityNotEquals, 0); } + public EqualityExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterEqualityExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitEqualityExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BitXOrExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode BitXOr() { return getToken(TypeScriptParser.BitXOr, 0); } + public BitXOrExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterBitXOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitBitXOrExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class CastAsExpressionContext extends SingleExpressionContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode As() { return getToken(TypeScriptParser.As, 0); } + public AsExpressionContext asExpression() { + return getRuleContext(AsExpressionContext.class,0); + } + public CastAsExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterCastAsExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitCastAsExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MultiplicativeExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode Multiply() { return getToken(TypeScriptParser.Multiply, 0); } + public TerminalNode Divide() { return getToken(TypeScriptParser.Divide, 0); } + public TerminalNode Modulus() { return getToken(TypeScriptParser.Modulus, 0); } + public MultiplicativeExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterMultiplicativeExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitMultiplicativeExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BitShiftExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode LeftShiftArithmetic() { return getToken(TypeScriptParser.LeftShiftArithmetic, 0); } + public List MoreThan() { return getTokens(TypeScriptParser.MoreThan); } + public TerminalNode MoreThan(int i) { + return getToken(TypeScriptParser.MoreThan, i); + } + public BitShiftExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterBitShiftExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitBitShiftExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AdditiveExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode Plus() { return getToken(TypeScriptParser.Plus, 0); } + public TerminalNode Minus() { return getToken(TypeScriptParser.Minus, 0); } + public AdditiveExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAdditiveExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAdditiveExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class RelationalExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode LessThan() { return getToken(TypeScriptParser.LessThan, 0); } + public TerminalNode MoreThan() { return getToken(TypeScriptParser.MoreThan, 0); } + public TerminalNode LessThanEquals() { return getToken(TypeScriptParser.LessThanEquals, 0); } + public TerminalNode GreaterThanEquals() { return getToken(TypeScriptParser.GreaterThanEquals, 0); } + public RelationalExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterRelationalExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitRelationalExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BitNotExpressionContext extends SingleExpressionContext { + public TerminalNode BitNot() { return getToken(TypeScriptParser.BitNot, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public BitNotExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterBitNotExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitBitNotExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class NewExpressionContext extends SingleExpressionContext { + public TerminalNode New() { return getToken(TypeScriptParser.New, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public ArgumentsContext arguments() { + return getRuleContext(ArgumentsContext.class,0); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public NewExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterNewExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitNewExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LiteralExpressionContext extends SingleExpressionContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public LiteralExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterLiteralExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitLiteralExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ArrayLiteralExpressionContext extends SingleExpressionContext { + public ArrayLiteralContext arrayLiteral() { + return getRuleContext(ArrayLiteralContext.class,0); + } + public ArrayLiteralExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArrayLiteralExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArrayLiteralExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MemberDotExpressionContext extends SingleExpressionContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode Dot() { return getToken(TypeScriptParser.Dot, 0); } + public IdentifierNameContext identifierName() { + return getRuleContext(IdentifierNameContext.class,0); + } + public TerminalNode Not() { return getToken(TypeScriptParser.Not, 0); } + public TerminalNode Hashtag() { return getToken(TypeScriptParser.Hashtag, 0); } + public TypeGenericContext typeGeneric() { + return getRuleContext(TypeGenericContext.class,0); + } + public TerminalNode QuestionMark() { return getToken(TypeScriptParser.QuestionMark, 0); } + public MemberDotExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterMemberDotExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitMemberDotExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MemberIndexExpressionContext extends SingleExpressionContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public TerminalNode QuestionMarkDot() { return getToken(TypeScriptParser.QuestionMarkDot, 0); } + public MemberIndexExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterMemberIndexExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitMemberIndexExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BitAndExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode BitAnd() { return getToken(TypeScriptParser.BitAnd, 0); } + public BitAndExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterBitAndExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitBitAndExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BitOrExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode BitOr() { return getToken(TypeScriptParser.BitOr, 0); } + public BitOrExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterBitOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitBitOrExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AssignmentOperatorExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public AssignmentOperatorContext assignmentOperator() { + return getRuleContext(AssignmentOperatorContext.class,0); + } + public AssignmentOperatorExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAssignmentOperatorExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAssignmentOperatorExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class VoidExpressionContext extends SingleExpressionContext { + public TerminalNode Void() { return getToken(TypeScriptParser.Void, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public VoidExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterVoidExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitVoidExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class TernaryExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode QuestionMark() { return getToken(TypeScriptParser.QuestionMark, 0); } + public TerminalNode Colon() { return getToken(TypeScriptParser.Colon, 0); } + public TernaryExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTernaryExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTernaryExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LogicalAndExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode And() { return getToken(TypeScriptParser.And, 0); } + public LogicalAndExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterLogicalAndExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitLogicalAndExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PreIncrementExpressionContext extends SingleExpressionContext { + public TerminalNode PlusPlus() { return getToken(TypeScriptParser.PlusPlus, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public PreIncrementExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPreIncrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPreIncrementExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ObjectLiteralExpressionContext extends SingleExpressionContext { + public ObjectLiteralContext objectLiteral() { + return getRuleContext(ObjectLiteralContext.class,0); + } + public ObjectLiteralExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterObjectLiteralExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitObjectLiteralExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LogicalOrExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode Or() { return getToken(TypeScriptParser.Or, 0); } + public LogicalOrExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterLogicalOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitLogicalOrExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class NonNullAssertionExpressionContext extends SingleExpressionContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode Not() { return getToken(TypeScriptParser.Not, 0); } + public NonNullAssertionExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterNonNullAssertionExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitNonNullAssertionExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class NotExpressionContext extends SingleExpressionContext { + public TerminalNode Not() { return getToken(TypeScriptParser.Not, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public NotExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterNotExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitNotExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PreDecreaseExpressionContext extends SingleExpressionContext { + public TerminalNode MinusMinus() { return getToken(TypeScriptParser.MinusMinus, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public PreDecreaseExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPreDecreaseExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPreDecreaseExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AwaitExpressionContext extends SingleExpressionContext { + public TerminalNode Await() { return getToken(TypeScriptParser.Await, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public AwaitExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAwaitExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAwaitExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class FunctionExpressionContext extends SingleExpressionContext { + public AnonymousFunctionContext anonymousFunction() { + return getRuleContext(AnonymousFunctionContext.class,0); + } + public FunctionExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterFunctionExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitFunctionExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class UnaryMinusExpressionContext extends SingleExpressionContext { + public TerminalNode Minus() { return getToken(TypeScriptParser.Minus, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public UnaryMinusExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterUnaryMinusExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitUnaryMinusExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AssignmentExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode Assign() { return getToken(TypeScriptParser.Assign, 0); } + public AssignmentExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAssignmentExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAssignmentExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PostDecreaseExpressionContext extends SingleExpressionContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode MinusMinus() { return getToken(TypeScriptParser.MinusMinus, 0); } + public PostDecreaseExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPostDecreaseExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPostDecreaseExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class InstanceofExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode Instanceof() { return getToken(TypeScriptParser.Instanceof, 0); } + public InstanceofExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterInstanceofExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitInstanceofExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class UnaryPlusExpressionContext extends SingleExpressionContext { + public TerminalNode Plus() { return getToken(TypeScriptParser.Plus, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public UnaryPlusExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterUnaryPlusExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitUnaryPlusExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class DeleteExpressionContext extends SingleExpressionContext { + public TerminalNode Delete() { return getToken(TypeScriptParser.Delete, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public DeleteExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterDeleteExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitDeleteExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class IteratorsExpressionContext extends SingleExpressionContext { + public IteratorBlockContext iteratorBlock() { + return getRuleContext(IteratorBlockContext.class,0); + } + public IteratorsExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIteratorsExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIteratorsExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SuperExpressionContext extends SingleExpressionContext { + public TerminalNode Super() { return getToken(TypeScriptParser.Super, 0); } + public SuperExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterSuperExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitSuperExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ParenthesizedExpressionContext extends SingleExpressionContext { + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public ExpressionSequenceContext expressionSequence() { + return getRuleContext(ExpressionSequenceContext.class,0); + } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public ParenthesizedExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterParenthesizedExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitParenthesizedExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PostIncrementExpressionContext extends SingleExpressionContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode PlusPlus() { return getToken(TypeScriptParser.PlusPlus, 0); } + public PostIncrementExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterPostIncrementExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitPostIncrementExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class YieldExpressionContext extends SingleExpressionContext { + public YieldStatementContext yieldStatement() { + return getRuleContext(YieldStatementContext.class,0); + } + public YieldExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterYieldExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitYieldExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ClassExpressionContext extends SingleExpressionContext { + public TerminalNode Class() { return getToken(TypeScriptParser.Class, 0); } + public ClassHeritageContext classHeritage() { + return getRuleContext(ClassHeritageContext.class,0); + } + public ClassTailContext classTail() { + return getRuleContext(ClassTailContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TypeParametersContext typeParameters() { + return getRuleContext(TypeParametersContext.class,0); + } + public ClassExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterClassExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitClassExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class IdentifierExpressionContext extends SingleExpressionContext { + public IdentifierNameContext identifierName() { + return getRuleContext(IdentifierNameContext.class,0); + } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public IdentifierExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIdentifierExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIdentifierExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class CoalesceExpressionContext extends SingleExpressionContext { + public List singleExpression() { + return getRuleContexts(SingleExpressionContext.class); + } + public SingleExpressionContext singleExpression(int i) { + return getRuleContext(SingleExpressionContext.class,i); + } + public TerminalNode NullCoalesce() { return getToken(TypeScriptParser.NullCoalesce, 0); } + public CoalesceExpressionContext(SingleExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterCoalesceExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitCoalesceExpression(this); + } + } + + public final SingleExpressionContext singleExpression() throws RecognitionException { + return singleExpression(0); + } + + private SingleExpressionContext singleExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + SingleExpressionContext _localctx = new SingleExpressionContext(_ctx, _parentState); + SingleExpressionContext _prevctx = _localctx; + int _startState = 274; + enterRecursionRule(_localctx, 274, RULE_singleExpression, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1716); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,227,_ctx) ) { + case 1: + { + _localctx = new FunctionExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(1652); + anonymousFunction(); + } + break; + case 2: + { + _localctx = new ClassExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1653); + match(Class); + setState(1655); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 96)) & ~0x3f) == 0 && ((1L << (_la - 96)) & 5016517607467L) != 0)) { + { + setState(1654); + identifier(); + } + } + + setState(1658); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(1657); + typeParameters(); + } + } + + setState(1660); + classHeritage(); + setState(1661); + classTail(); + } + break; + case 3: + { + _localctx = new NewExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1663); + match(New); + setState(1664); + singleExpression(0); + setState(1666); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LessThan) { + { + setState(1665); + typeArguments(); + } + } + + setState(1668); + arguments(); + } + break; + case 4: + { + _localctx = new NewExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1670); + match(New); + setState(1671); + singleExpression(0); + setState(1673); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,224,_ctx) ) { + case 1: + { + setState(1672); + typeArguments(); + } + break; + } + } + break; + case 5: + { + _localctx = new DeleteExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1675); + match(Delete); + setState(1676); + singleExpression(42); + } + break; + case 6: + { + _localctx = new VoidExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1677); + match(Void); + setState(1678); + singleExpression(41); + } + break; + case 7: + { + _localctx = new TypeofExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1679); + match(Typeof); + setState(1680); + singleExpression(40); + } + break; + case 8: + { + _localctx = new PreIncrementExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1681); + match(PlusPlus); + setState(1682); + singleExpression(39); + } + break; + case 9: + { + _localctx = new PreDecreaseExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1683); + match(MinusMinus); + setState(1684); + singleExpression(38); + } + break; + case 10: + { + _localctx = new UnaryPlusExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1685); + match(Plus); + setState(1686); + singleExpression(37); + } + break; + case 11: + { + _localctx = new UnaryMinusExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1687); + match(Minus); + setState(1688); + singleExpression(36); + } + break; + case 12: + { + _localctx = new BitNotExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1689); + match(BitNot); + setState(1690); + singleExpression(35); + } + break; + case 13: + { + _localctx = new NotExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1691); + match(Not); + setState(1692); + singleExpression(34); + } + break; + case 14: + { + _localctx = new AwaitExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1693); + match(Await); + setState(1694); + singleExpression(33); + } + break; + case 15: + { + _localctx = new IteratorsExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1695); + iteratorBlock(); + } + break; + case 16: + { + _localctx = new GeneratorsExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1696); + generatorBlock(); + } + break; + case 17: + { + _localctx = new GeneratorsFunctionExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1697); + generatorFunctionDeclaration(); + } + break; + case 18: + { + _localctx = new YieldExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1698); + yieldStatement(); + } + break; + case 19: + { + _localctx = new ThisExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1699); + match(This); + } + break; + case 20: + { + _localctx = new IdentifierExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1700); + identifierName(); + setState(1702); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,225,_ctx) ) { + case 1: + { + setState(1701); + singleExpression(0); + } + break; + } + } + break; + case 21: + { + _localctx = new SuperExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1704); + match(Super); + } + break; + case 22: + { + _localctx = new LiteralExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1705); + literal(); + } + break; + case 23: + { + _localctx = new ArrayLiteralExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1706); + arrayLiteral(); + } + break; + case 24: + { + _localctx = new ObjectLiteralExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1707); + objectLiteral(); + } + break; + case 25: + { + _localctx = new ParenthesizedExpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1708); + match(OpenParen); + setState(1709); + expressionSequence(); + setState(1710); + match(CloseParen); + } + break; + case 26: + { + _localctx = new GenericTypesContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1712); + typeArguments(); + setState(1714); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,226,_ctx) ) { + case 1: + { + setState(1713); + expressionSequence(); + } + break; + } + } + break; + } + _ctx.stop = _input.LT(-1); + setState(1832); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,237,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(1830); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,236,_ctx) ) { + case 1: + { + _localctx = new OptionalChainExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1718); + if (!(precpred(_ctx, 50))) throw new FailedPredicateException(this, "precpred(_ctx, 50)"); + setState(1719); + match(QuestionMarkDot); + setState(1720); + singleExpression(51); + } + break; + case 2: + { + _localctx = new PowerExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1721); + if (!(precpred(_ctx, 32))) throw new FailedPredicateException(this, "precpred(_ctx, 32)"); + setState(1722); + match(Power); + setState(1723); + singleExpression(32); + } + break; + case 3: + { + _localctx = new MultiplicativeExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1724); + if (!(precpred(_ctx, 31))) throw new FailedPredicateException(this, "precpred(_ctx, 31)"); + setState(1725); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 234881024L) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1726); + singleExpression(32); + } + break; + case 4: + { + _localctx = new AdditiveExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1727); + if (!(precpred(_ctx, 30))) throw new FailedPredicateException(this, "precpred(_ctx, 30)"); + setState(1728); + _la = _input.LA(1); + if ( !(_la==Plus || _la==Minus) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1729); + singleExpression(31); + } + break; + case 5: + { + _localctx = new CoalesceExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1730); + if (!(precpred(_ctx, 29))) throw new FailedPredicateException(this, "precpred(_ctx, 29)"); + setState(1731); + match(NullCoalesce); + setState(1732); + singleExpression(30); + } + break; + case 6: + { + _localctx = new BitShiftExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1733); + if (!(precpred(_ctx, 28))) throw new FailedPredicateException(this, "precpred(_ctx, 28)"); + setState(1740); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,228,_ctx) ) { + case 1: + { + setState(1734); + match(LeftShiftArithmetic); + } + break; + case 2: + { + setState(1735); + match(MoreThan); + setState(1736); + match(MoreThan); + } + break; + case 3: + { + setState(1737); + match(MoreThan); + setState(1738); + match(MoreThan); + setState(1739); + match(MoreThan); + } + break; + } + setState(1742); + singleExpression(29); + } + break; + case 7: + { + _localctx = new RelationalExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1743); + if (!(precpred(_ctx, 27))) throw new FailedPredicateException(this, "precpred(_ctx, 27)"); + setState(1744); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 64424509440L) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1745); + singleExpression(28); + } + break; + case 8: + { + _localctx = new InstanceofExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1746); + if (!(precpred(_ctx, 26))) throw new FailedPredicateException(this, "precpred(_ctx, 26)"); + setState(1747); + match(Instanceof); + setState(1748); + singleExpression(27); + } + break; + case 9: + { + _localctx = new InExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1749); + if (!(precpred(_ctx, 25))) throw new FailedPredicateException(this, "precpred(_ctx, 25)"); + setState(1750); + match(In); + setState(1751); + singleExpression(26); + } + break; + case 10: + { + _localctx = new EqualityExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1752); + if (!(precpred(_ctx, 24))) throw new FailedPredicateException(this, "precpred(_ctx, 24)"); + setState(1753); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 1030792151040L) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1754); + singleExpression(25); + } + break; + case 11: + { + _localctx = new BitAndExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1755); + if (!(precpred(_ctx, 23))) throw new FailedPredicateException(this, "precpred(_ctx, 23)"); + setState(1756); + match(BitAnd); + setState(1757); + singleExpression(24); + } + break; + case 12: + { + _localctx = new BitXOrExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1758); + if (!(precpred(_ctx, 22))) throw new FailedPredicateException(this, "precpred(_ctx, 22)"); + setState(1759); + match(BitXOr); + setState(1760); + singleExpression(23); + } + break; + case 13: + { + _localctx = new BitOrExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1761); + if (!(precpred(_ctx, 21))) throw new FailedPredicateException(this, "precpred(_ctx, 21)"); + setState(1762); + match(BitOr); + setState(1763); + singleExpression(22); + } + break; + case 14: + { + _localctx = new LogicalAndExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1764); + if (!(precpred(_ctx, 20))) throw new FailedPredicateException(this, "precpred(_ctx, 20)"); + setState(1765); + match(And); + setState(1766); + singleExpression(21); + } + break; + case 15: + { + _localctx = new LogicalOrExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1767); + if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)"); + setState(1768); + match(Or); + setState(1769); + singleExpression(20); + } + break; + case 16: + { + _localctx = new TernaryExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1770); + if (!(precpred(_ctx, 18))) throw new FailedPredicateException(this, "precpred(_ctx, 18)"); + setState(1771); + match(QuestionMark); + setState(1772); + singleExpression(0); + setState(1773); + match(Colon); + setState(1774); + singleExpression(19); + } + break; + case 17: + { + _localctx = new AssignmentExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1776); + if (!(precpred(_ctx, 17))) throw new FailedPredicateException(this, "precpred(_ctx, 17)"); + setState(1777); + match(Assign); + setState(1778); + singleExpression(18); + } + break; + case 18: + { + _localctx = new AssignmentOperatorExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1779); + if (!(precpred(_ctx, 16))) throw new FailedPredicateException(this, "precpred(_ctx, 16)"); + setState(1780); + assignmentOperator(); + setState(1781); + singleExpression(17); + } + break; + case 19: + { + _localctx = new MemberIndexExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1783); + if (!(precpred(_ctx, 51))) throw new FailedPredicateException(this, "precpred(_ctx, 51)"); + setState(1785); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==QuestionMarkDot) { + { + setState(1784); + match(QuestionMarkDot); + } + } + + setState(1787); + match(OpenBracket); + setState(1788); + expressionSequence(); + setState(1789); + match(CloseBracket); + } + break; + case 20: + { + _localctx = new MemberDotExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1791); + if (!(precpred(_ctx, 49))) throw new FailedPredicateException(this, "precpred(_ctx, 49)"); + setState(1793); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Not) { + { + setState(1792); + match(Not); + } + } + + setState(1795); + match(Dot); + setState(1797); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Hashtag) { + { + setState(1796); + match(Hashtag); + } + } + + setState(1799); + identifierName(); + setState(1801); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,232,_ctx) ) { + case 1: + { + setState(1800); + typeGeneric(); + } + break; + } + } + break; + case 21: + { + _localctx = new MemberDotExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1803); + if (!(precpred(_ctx, 48))) throw new FailedPredicateException(this, "precpred(_ctx, 48)"); + setState(1805); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==QuestionMark) { + { + setState(1804); + match(QuestionMark); + } + } + + setState(1807); + match(Dot); + setState(1809); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Hashtag) { + { + setState(1808); + match(Hashtag); + } + } + + setState(1811); + identifierName(); + setState(1813); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,235,_ctx) ) { + case 1: + { + setState(1812); + typeGeneric(); + } + break; + } + } + break; + case 22: + { + _localctx = new ArgumentsExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1815); + if (!(precpred(_ctx, 45))) throw new FailedPredicateException(this, "precpred(_ctx, 45)"); + setState(1816); + arguments(); + } + break; + case 23: + { + _localctx = new PostIncrementExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1817); + if (!(precpred(_ctx, 44))) throw new FailedPredicateException(this, "precpred(_ctx, 44)"); + setState(1818); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + setState(1819); + match(PlusPlus); + } + break; + case 24: + { + _localctx = new PostDecreaseExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1820); + if (!(precpred(_ctx, 43))) throw new FailedPredicateException(this, "precpred(_ctx, 43)"); + setState(1821); + if (!(this.notLineTerminator())) throw new FailedPredicateException(this, "this.notLineTerminator()"); + setState(1822); + match(MinusMinus); + } + break; + case 25: + { + _localctx = new TemplateStringExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1823); + if (!(precpred(_ctx, 15))) throw new FailedPredicateException(this, "precpred(_ctx, 15)"); + setState(1824); + templateStringLiteral(); + } + break; + case 26: + { + _localctx = new CastAsExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1825); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(1826); + match(As); + setState(1827); + asExpression(); + } + break; + case 27: + { + _localctx = new NonNullAssertionExpressionContext(new SingleExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_singleExpression); + setState(1828); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(1829); + match(Not); + } + break; + } + } + } + setState(1834); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,237,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AsExpressionContext extends ParserRuleContext { + public PredefinedTypeContext predefinedType() { + return getRuleContext(PredefinedTypeContext.class,0); + } + public TerminalNode OpenBracket() { return getToken(TypeScriptParser.OpenBracket, 0); } + public TerminalNode CloseBracket() { return getToken(TypeScriptParser.CloseBracket, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public AsExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_asExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAsExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAsExpression(this); + } + } + + public final AsExpressionContext asExpression() throws RecognitionException { + AsExpressionContext _localctx = new AsExpressionContext(_ctx, getState()); + enterRule(_localctx, 276, RULE_asExpression); + try { + setState(1841); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,239,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1835); + predefinedType(); + setState(1838); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) { + case 1: + { + setState(1836); + match(OpenBracket); + setState(1837); + match(CloseBracket); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1840); + singleExpression(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AssignableContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public KeywordContext keyword() { + return getRuleContext(KeywordContext.class,0); + } + public ArrayLiteralContext arrayLiteral() { + return getRuleContext(ArrayLiteralContext.class,0); + } + public ObjectLiteralContext objectLiteral() { + return getRuleContext(ObjectLiteralContext.class,0); + } + public AssignableContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAssignable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAssignable(this); + } + } + + public final AssignableContext assignable() throws RecognitionException { + AssignableContext _localctx = new AssignableContext(_ctx, getState()); + enterRule(_localctx, 278, RULE_assignable); + try { + setState(1847); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,240,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1843); + identifier(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1844); + keyword(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1845); + arrayLiteral(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1846); + objectLiteral(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnonymousFunctionContext extends ParserRuleContext { + public FunctionDeclarationContext functionDeclaration() { + return getRuleContext(FunctionDeclarationContext.class,0); + } + public TerminalNode Function_() { return getToken(TypeScriptParser.Function_, 0); } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public TerminalNode Async() { return getToken(TypeScriptParser.Async, 0); } + public TerminalNode Multiply() { return getToken(TypeScriptParser.Multiply, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public ArrowFunctionDeclarationContext arrowFunctionDeclaration() { + return getRuleContext(ArrowFunctionDeclarationContext.class,0); + } + public AnonymousFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_anonymousFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAnonymousFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAnonymousFunction(this); + } + } + + public final AnonymousFunctionContext anonymousFunction() throws RecognitionException { + AnonymousFunctionContext _localctx = new AnonymousFunctionContext(_ctx, getState()); + enterRule(_localctx, 280, RULE_anonymousFunction); + int _la; + try { + setState(1870); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1849); + functionDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1851); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Async) { + { + setState(1850); + match(Async); + } + } + + setState(1853); + match(Function_); + setState(1855); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Multiply) { + { + setState(1854); + match(Multiply); + } + } + + setState(1857); + match(OpenParen); + setState(1859); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 131344L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(1858); + formalParameterList(); + } + } + + setState(1861); + match(CloseParen); + setState(1863); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(1862); + typeAnnotation(); + } + } + + setState(1865); + match(OpenBrace); + setState(1866); + functionBody(); + setState(1867); + match(CloseBrace); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1869); + arrowFunctionDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrowFunctionDeclarationContext extends ParserRuleContext { + public ArrowFunctionParametersContext arrowFunctionParameters() { + return getRuleContext(ArrowFunctionParametersContext.class,0); + } + public TerminalNode ARROW() { return getToken(TypeScriptParser.ARROW, 0); } + public ArrowFunctionBodyContext arrowFunctionBody() { + return getRuleContext(ArrowFunctionBodyContext.class,0); + } + public TerminalNode Async() { return getToken(TypeScriptParser.Async, 0); } + public TypeAnnotationContext typeAnnotation() { + return getRuleContext(TypeAnnotationContext.class,0); + } + public ArrowFunctionDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrowFunctionDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArrowFunctionDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArrowFunctionDeclaration(this); + } + } + + public final ArrowFunctionDeclarationContext arrowFunctionDeclaration() throws RecognitionException { + ArrowFunctionDeclarationContext _localctx = new ArrowFunctionDeclarationContext(_ctx, getState()); + enterRule(_localctx, 282, RULE_arrowFunctionDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1873); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { + case 1: + { + setState(1872); + match(Async); + } + break; + } + setState(1875); + arrowFunctionParameters(); + setState(1877); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==Colon) { + { + setState(1876); + typeAnnotation(); + } + } + + setState(1879); + match(ARROW); + setState(1880); + arrowFunctionBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrowFunctionParametersContext extends ParserRuleContext { + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public TerminalNode OpenParen() { return getToken(TypeScriptParser.OpenParen, 0); } + public TerminalNode CloseParen() { return getToken(TypeScriptParser.CloseParen, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public ArrowFunctionParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrowFunctionParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArrowFunctionParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArrowFunctionParameters(this); + } + } + + public final ArrowFunctionParametersContext arrowFunctionParameters() throws RecognitionException { + ArrowFunctionParametersContext _localctx = new ArrowFunctionParametersContext(_ctx, getState()); + enterRule(_localctx, 284, RULE_arrowFunctionParameters); + int _la; + try { + setState(1888); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OpenBracket: + case NullLiteral: + case BooleanLiteral: + case DecimalLiteral: + case HexIntegerLiteral: + case OctalIntegerLiteral: + case OctalIntegerLiteral2: + case BinaryIntegerLiteral: + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Any: + case Number: + case Never: + case Boolean: + case String: + case Unique: + case Symbol: + case Undefined: + case Object: + case Of: + case KeyOf: + case TypeAlias: + case Constructor: + case Namespace: + case Require: + case Module: + case Abstract: + case Identifier: + case StringLiteral: + enterOuterAlt(_localctx, 1); + { + setState(1882); + propertyName(); + } + break; + case OpenParen: + enterOuterAlt(_localctx, 2); + { + setState(1883); + match(OpenParen); + setState(1885); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 131344L) != 0) || ((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4294967297L) != 0) || ((((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 13L) != 0)) { + { + setState(1884); + formalParameterList(); + } + } + + setState(1887); + match(CloseParen); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrowFunctionBodyContext extends ParserRuleContext { + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode OpenBrace() { return getToken(TypeScriptParser.OpenBrace, 0); } + public FunctionBodyContext functionBody() { + return getRuleContext(FunctionBodyContext.class,0); + } + public TerminalNode CloseBrace() { return getToken(TypeScriptParser.CloseBrace, 0); } + public ArrowFunctionBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrowFunctionBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterArrowFunctionBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitArrowFunctionBody(this); + } + } + + public final ArrowFunctionBodyContext arrowFunctionBody() throws RecognitionException { + ArrowFunctionBodyContext _localctx = new ArrowFunctionBodyContext(_ctx, getState()); + enterRule(_localctx, 286, RULE_arrowFunctionBody); + try { + setState(1895); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,250,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1890); + singleExpression(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1891); + match(OpenBrace); + setState(1892); + functionBody(); + setState(1893); + match(CloseBrace); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AssignmentOperatorContext extends ParserRuleContext { + public TerminalNode MultiplyAssign() { return getToken(TypeScriptParser.MultiplyAssign, 0); } + public TerminalNode DivideAssign() { return getToken(TypeScriptParser.DivideAssign, 0); } + public TerminalNode ModulusAssign() { return getToken(TypeScriptParser.ModulusAssign, 0); } + public TerminalNode PlusAssign() { return getToken(TypeScriptParser.PlusAssign, 0); } + public TerminalNode MinusAssign() { return getToken(TypeScriptParser.MinusAssign, 0); } + public TerminalNode LeftShiftArithmeticAssign() { return getToken(TypeScriptParser.LeftShiftArithmeticAssign, 0); } + public TerminalNode RightShiftArithmeticAssign() { return getToken(TypeScriptParser.RightShiftArithmeticAssign, 0); } + public TerminalNode RightShiftLogicalAssign() { return getToken(TypeScriptParser.RightShiftLogicalAssign, 0); } + public TerminalNode BitAndAssign() { return getToken(TypeScriptParser.BitAndAssign, 0); } + public TerminalNode BitXorAssign() { return getToken(TypeScriptParser.BitXorAssign, 0); } + public TerminalNode BitOrAssign() { return getToken(TypeScriptParser.BitOrAssign, 0); } + public TerminalNode PowerAssign() { return getToken(TypeScriptParser.PowerAssign, 0); } + public TerminalNode NullishCoalescingAssign() { return getToken(TypeScriptParser.NullishCoalescingAssign, 0); } + public AssignmentOperatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignmentOperator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterAssignmentOperator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitAssignmentOperator(this); + } + } + + public final AssignmentOperatorContext assignmentOperator() throws RecognitionException { + AssignmentOperatorContext _localctx = new AssignmentOperatorContext(_ctx, getState()); + enterRule(_localctx, 288, RULE_assignmentOperator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1897); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 288195191779622912L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class LiteralContext extends ParserRuleContext { + public TerminalNode NullLiteral() { return getToken(TypeScriptParser.NullLiteral, 0); } + public TerminalNode BooleanLiteral() { return getToken(TypeScriptParser.BooleanLiteral, 0); } + public TerminalNode StringLiteral() { return getToken(TypeScriptParser.StringLiteral, 0); } + public TemplateStringLiteralContext templateStringLiteral() { + return getRuleContext(TemplateStringLiteralContext.class,0); + } + public TerminalNode RegularExpressionLiteral() { return getToken(TypeScriptParser.RegularExpressionLiteral, 0); } + public NumericLiteralContext numericLiteral() { + return getRuleContext(NumericLiteralContext.class,0); + } + public BigintLiteralContext bigintLiteral() { + return getRuleContext(BigintLiteralContext.class,0); + } + public LiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_literal; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitLiteral(this); + } + } + + public final LiteralContext literal() throws RecognitionException { + LiteralContext _localctx = new LiteralContext(_ctx, getState()); + enterRule(_localctx, 290, RULE_literal); + try { + setState(1906); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NullLiteral: + enterOuterAlt(_localctx, 1); + { + setState(1899); + match(NullLiteral); + } + break; + case BooleanLiteral: + enterOuterAlt(_localctx, 2); + { + setState(1900); + match(BooleanLiteral); + } + break; + case StringLiteral: + enterOuterAlt(_localctx, 3); + { + setState(1901); + match(StringLiteral); + } + break; + case BackTick: + enterOuterAlt(_localctx, 4); + { + setState(1902); + templateStringLiteral(); + } + break; + case RegularExpressionLiteral: + enterOuterAlt(_localctx, 5); + { + setState(1903); + match(RegularExpressionLiteral); + } + break; + case DecimalLiteral: + case HexIntegerLiteral: + case OctalIntegerLiteral: + case OctalIntegerLiteral2: + case BinaryIntegerLiteral: + enterOuterAlt(_localctx, 6); + { + setState(1904); + numericLiteral(); + } + break; + case BigHexIntegerLiteral: + case BigOctalIntegerLiteral: + case BigBinaryIntegerLiteral: + case BigDecimalIntegerLiteral: + enterOuterAlt(_localctx, 7); + { + setState(1905); + bigintLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TemplateStringLiteralContext extends ParserRuleContext { + public List BackTick() { return getTokens(TypeScriptParser.BackTick); } + public TerminalNode BackTick(int i) { + return getToken(TypeScriptParser.BackTick, i); + } + public List templateStringAtom() { + return getRuleContexts(TemplateStringAtomContext.class); + } + public TemplateStringAtomContext templateStringAtom(int i) { + return getRuleContext(TemplateStringAtomContext.class,i); + } + public TemplateStringLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_templateStringLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTemplateStringLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTemplateStringLiteral(this); + } + } + + public final TemplateStringLiteralContext templateStringLiteral() throws RecognitionException { + TemplateStringLiteralContext _localctx = new TemplateStringLiteralContext(_ctx, getState()); + enterRule(_localctx, 292, RULE_templateStringLiteral); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1908); + match(BackTick); + setState(1912); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 146)) & ~0x3f) == 0 && ((1L << (_la - 146)) & 7L) != 0)) { + { + { + setState(1909); + templateStringAtom(); + } + } + setState(1914); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1915); + match(BackTick); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TemplateStringAtomContext extends ParserRuleContext { + public TerminalNode TemplateStringAtom() { return getToken(TypeScriptParser.TemplateStringAtom, 0); } + public TerminalNode TemplateStringStartExpression() { return getToken(TypeScriptParser.TemplateStringStartExpression, 0); } + public SingleExpressionContext singleExpression() { + return getRuleContext(SingleExpressionContext.class,0); + } + public TerminalNode TemplateCloseBrace() { return getToken(TypeScriptParser.TemplateCloseBrace, 0); } + public TerminalNode TemplateStringEscapeAtom() { return getToken(TypeScriptParser.TemplateStringEscapeAtom, 0); } + public TemplateStringAtomContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_templateStringAtom; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterTemplateStringAtom(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitTemplateStringAtom(this); + } + } + + public final TemplateStringAtomContext templateStringAtom() throws RecognitionException { + TemplateStringAtomContext _localctx = new TemplateStringAtomContext(_ctx, getState()); + enterRule(_localctx, 294, RULE_templateStringAtom); + try { + setState(1923); + _errHandler.sync(this); + switch (_input.LA(1)) { + case TemplateStringAtom: + enterOuterAlt(_localctx, 1); + { + setState(1917); + match(TemplateStringAtom); + } + break; + case TemplateStringStartExpression: + enterOuterAlt(_localctx, 2); + { + setState(1918); + match(TemplateStringStartExpression); + setState(1919); + singleExpression(0); + setState(1920); + match(TemplateCloseBrace); + } + break; + case TemplateStringEscapeAtom: + enterOuterAlt(_localctx, 3); + { + setState(1922); + match(TemplateStringEscapeAtom); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumericLiteralContext extends ParserRuleContext { + public TerminalNode DecimalLiteral() { return getToken(TypeScriptParser.DecimalLiteral, 0); } + public TerminalNode HexIntegerLiteral() { return getToken(TypeScriptParser.HexIntegerLiteral, 0); } + public TerminalNode OctalIntegerLiteral() { return getToken(TypeScriptParser.OctalIntegerLiteral, 0); } + public TerminalNode OctalIntegerLiteral2() { return getToken(TypeScriptParser.OctalIntegerLiteral2, 0); } + public TerminalNode BinaryIntegerLiteral() { return getToken(TypeScriptParser.BinaryIntegerLiteral, 0); } + public NumericLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterNumericLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitNumericLiteral(this); + } + } + + public final NumericLiteralContext numericLiteral() throws RecognitionException { + NumericLiteralContext _localctx = new NumericLiteralContext(_ctx, getState()); + enterRule(_localctx, 296, RULE_numericLiteral); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1925); + _la = _input.LA(1); + if ( !(((((_la - 61)) & ~0x3f) == 0 && ((1L << (_la - 61)) & 31L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class BigintLiteralContext extends ParserRuleContext { + public TerminalNode BigDecimalIntegerLiteral() { return getToken(TypeScriptParser.BigDecimalIntegerLiteral, 0); } + public TerminalNode BigHexIntegerLiteral() { return getToken(TypeScriptParser.BigHexIntegerLiteral, 0); } + public TerminalNode BigOctalIntegerLiteral() { return getToken(TypeScriptParser.BigOctalIntegerLiteral, 0); } + public TerminalNode BigBinaryIntegerLiteral() { return getToken(TypeScriptParser.BigBinaryIntegerLiteral, 0); } + public BigintLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bigintLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterBigintLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitBigintLiteral(this); + } + } + + public final BigintLiteralContext bigintLiteral() throws RecognitionException { + BigintLiteralContext _localctx = new BigintLiteralContext(_ctx, getState()); + enterRule(_localctx, 298, RULE_bigintLiteral); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1927); + _la = _input.LA(1); + if ( !(((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & 15L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class GetterContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ClassElementNameContext classElementName() { + return getRuleContext(ClassElementNameContext.class,0); + } + public GetterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_getter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterGetter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitGetter(this); + } + } + + public final GetterContext getter() throws RecognitionException { + GetterContext _localctx = new GetterContext(_ctx, getState()); + enterRule(_localctx, 300, RULE_getter); + try { + enterOuterAlt(_localctx, 1); + { + setState(1929); + if (!(this.n("get"))) throw new FailedPredicateException(this, "this.n(\"get\")"); + setState(1930); + identifier(); + setState(1931); + classElementName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetterContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ClassElementNameContext classElementName() { + return getRuleContext(ClassElementNameContext.class,0); + } + public SetterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterSetter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitSetter(this); + } + } + + public final SetterContext setter() throws RecognitionException { + SetterContext _localctx = new SetterContext(_ctx, getState()); + enterRule(_localctx, 302, RULE_setter); + try { + enterOuterAlt(_localctx, 1); + { + setState(1933); + if (!(this.n("set"))) throw new FailedPredicateException(this, "this.n(\"set\")"); + setState(1934); + identifier(); + setState(1935); + classElementName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IdentifierNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ReservedWordContext reservedWord() { + return getRuleContext(ReservedWordContext.class,0); + } + public IdentifierNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifierName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIdentifierName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIdentifierName(this); + } + } + + public final IdentifierNameContext identifierName() throws RecognitionException { + IdentifierNameContext _localctx = new IdentifierNameContext(_ctx, getState()); + enterRule(_localctx, 304, RULE_identifierName); + try { + setState(1939); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,254,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1937); + identifier(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1938); + reservedWord(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IdentifierContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(TypeScriptParser.Identifier, 0); } + public TerminalNode Async() { return getToken(TypeScriptParser.Async, 0); } + public TerminalNode As() { return getToken(TypeScriptParser.As, 0); } + public TerminalNode From() { return getToken(TypeScriptParser.From, 0); } + public TerminalNode Yield() { return getToken(TypeScriptParser.Yield, 0); } + public TerminalNode Of() { return getToken(TypeScriptParser.Of, 0); } + public TerminalNode Any() { return getToken(TypeScriptParser.Any, 0); } + public TerminalNode Number() { return getToken(TypeScriptParser.Number, 0); } + public TerminalNode Boolean() { return getToken(TypeScriptParser.Boolean, 0); } + public TerminalNode String() { return getToken(TypeScriptParser.String, 0); } + public TerminalNode Unique() { return getToken(TypeScriptParser.Unique, 0); } + public TerminalNode Symbol() { return getToken(TypeScriptParser.Symbol, 0); } + public TerminalNode Never() { return getToken(TypeScriptParser.Never, 0); } + public TerminalNode Undefined() { return getToken(TypeScriptParser.Undefined, 0); } + public TerminalNode Object() { return getToken(TypeScriptParser.Object, 0); } + public TerminalNode KeyOf() { return getToken(TypeScriptParser.KeyOf, 0); } + public TerminalNode TypeAlias() { return getToken(TypeScriptParser.TypeAlias, 0); } + public TerminalNode Constructor() { return getToken(TypeScriptParser.Constructor, 0); } + public TerminalNode Namespace() { return getToken(TypeScriptParser.Namespace, 0); } + public TerminalNode Abstract() { return getToken(TypeScriptParser.Abstract, 0); } + public IdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIdentifier(this); + } + } + + public final IdentifierContext identifier() throws RecognitionException { + IdentifierContext _localctx = new IdentifierContext(_ctx, getState()); + enterRule(_localctx, 306, RULE_identifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1941); + _la = _input.LA(1); + if ( !(((((_la - 96)) & ~0x3f) == 0 && ((1L << (_la - 96)) & 5016517607467L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class IdentifierOrKeyWordContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode TypeAlias() { return getToken(TypeScriptParser.TypeAlias, 0); } + public TerminalNode Require() { return getToken(TypeScriptParser.Require, 0); } + public IdentifierOrKeyWordContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifierOrKeyWord; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterIdentifierOrKeyWord(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitIdentifierOrKeyWord(this); + } + } + + public final IdentifierOrKeyWordContext identifierOrKeyWord() throws RecognitionException { + IdentifierOrKeyWordContext _localctx = new IdentifierOrKeyWordContext(_ctx, getState()); + enterRule(_localctx, 308, RULE_identifierOrKeyWord); + try { + setState(1946); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,255,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1943); + identifier(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1944); + match(TypeAlias); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1945); + match(Require); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReservedWordContext extends ParserRuleContext { + public KeywordContext keyword() { + return getRuleContext(KeywordContext.class,0); + } + public TerminalNode NullLiteral() { return getToken(TypeScriptParser.NullLiteral, 0); } + public TerminalNode BooleanLiteral() { return getToken(TypeScriptParser.BooleanLiteral, 0); } + public ReservedWordContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_reservedWord; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterReservedWord(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitReservedWord(this); + } + } + + public final ReservedWordContext reservedWord() throws RecognitionException { + ReservedWordContext _localctx = new ReservedWordContext(_ctx, getState()); + enterRule(_localctx, 310, RULE_reservedWord); + try { + setState(1951); + _errHandler.sync(this); + switch (_input.LA(1)) { + case Break: + case Do: + case Instanceof: + case Typeof: + case Case: + case Else: + case New: + case Var: + case Catch: + case Finally: + case Return: + case Void: + case Continue: + case For: + case Switch: + case While: + case Debugger: + case Function_: + case This: + case With: + case Default: + case If: + case Throw: + case Delete: + case In: + case Try: + case As: + case From: + case ReadOnly: + case Async: + case Await: + case Yield: + case Class: + case Enum: + case Extends: + case Super: + case Const: + case Export: + case Import: + case Implements: + case Let: + case Private: + case Public: + case Interface: + case Package: + case Protected: + case Static: + case Number: + case Boolean: + case String: + case TypeAlias: + case Require: + case Module: + enterOuterAlt(_localctx, 1); + { + setState(1948); + keyword(); + } + break; + case NullLiteral: + enterOuterAlt(_localctx, 2); + { + setState(1949); + match(NullLiteral); + } + break; + case BooleanLiteral: + enterOuterAlt(_localctx, 3); + { + setState(1950); + match(BooleanLiteral); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class KeywordContext extends ParserRuleContext { + public TerminalNode Break() { return getToken(TypeScriptParser.Break, 0); } + public TerminalNode Do() { return getToken(TypeScriptParser.Do, 0); } + public TerminalNode Instanceof() { return getToken(TypeScriptParser.Instanceof, 0); } + public TerminalNode Typeof() { return getToken(TypeScriptParser.Typeof, 0); } + public TerminalNode Case() { return getToken(TypeScriptParser.Case, 0); } + public TerminalNode Else() { return getToken(TypeScriptParser.Else, 0); } + public TerminalNode New() { return getToken(TypeScriptParser.New, 0); } + public TerminalNode Var() { return getToken(TypeScriptParser.Var, 0); } + public TerminalNode Catch() { return getToken(TypeScriptParser.Catch, 0); } + public TerminalNode Finally() { return getToken(TypeScriptParser.Finally, 0); } + public TerminalNode Return() { return getToken(TypeScriptParser.Return, 0); } + public TerminalNode Void() { return getToken(TypeScriptParser.Void, 0); } + public TerminalNode Continue() { return getToken(TypeScriptParser.Continue, 0); } + public TerminalNode For() { return getToken(TypeScriptParser.For, 0); } + public TerminalNode Switch() { return getToken(TypeScriptParser.Switch, 0); } + public TerminalNode While() { return getToken(TypeScriptParser.While, 0); } + public TerminalNode Debugger() { return getToken(TypeScriptParser.Debugger, 0); } + public TerminalNode Function_() { return getToken(TypeScriptParser.Function_, 0); } + public TerminalNode This() { return getToken(TypeScriptParser.This, 0); } + public TerminalNode With() { return getToken(TypeScriptParser.With, 0); } + public TerminalNode Default() { return getToken(TypeScriptParser.Default, 0); } + public TerminalNode If() { return getToken(TypeScriptParser.If, 0); } + public TerminalNode Throw() { return getToken(TypeScriptParser.Throw, 0); } + public TerminalNode Delete() { return getToken(TypeScriptParser.Delete, 0); } + public TerminalNode In() { return getToken(TypeScriptParser.In, 0); } + public TerminalNode Try() { return getToken(TypeScriptParser.Try, 0); } + public TerminalNode Class() { return getToken(TypeScriptParser.Class, 0); } + public TerminalNode Enum() { return getToken(TypeScriptParser.Enum, 0); } + public TerminalNode Extends() { return getToken(TypeScriptParser.Extends, 0); } + public TerminalNode Super() { return getToken(TypeScriptParser.Super, 0); } + public TerminalNode Const() { return getToken(TypeScriptParser.Const, 0); } + public TerminalNode Export() { return getToken(TypeScriptParser.Export, 0); } + public TerminalNode Import() { return getToken(TypeScriptParser.Import, 0); } + public TerminalNode Implements() { return getToken(TypeScriptParser.Implements, 0); } + public TerminalNode Let() { return getToken(TypeScriptParser.Let, 0); } + public TerminalNode Private() { return getToken(TypeScriptParser.Private, 0); } + public TerminalNode Public() { return getToken(TypeScriptParser.Public, 0); } + public TerminalNode Interface() { return getToken(TypeScriptParser.Interface, 0); } + public TerminalNode Package() { return getToken(TypeScriptParser.Package, 0); } + public TerminalNode Protected() { return getToken(TypeScriptParser.Protected, 0); } + public TerminalNode Static() { return getToken(TypeScriptParser.Static, 0); } + public TerminalNode Yield() { return getToken(TypeScriptParser.Yield, 0); } + public TerminalNode Async() { return getToken(TypeScriptParser.Async, 0); } + public TerminalNode Await() { return getToken(TypeScriptParser.Await, 0); } + public TerminalNode ReadOnly() { return getToken(TypeScriptParser.ReadOnly, 0); } + public TerminalNode From() { return getToken(TypeScriptParser.From, 0); } + public TerminalNode As() { return getToken(TypeScriptParser.As, 0); } + public TerminalNode Require() { return getToken(TypeScriptParser.Require, 0); } + public TerminalNode TypeAlias() { return getToken(TypeScriptParser.TypeAlias, 0); } + public TerminalNode String() { return getToken(TypeScriptParser.String, 0); } + public TerminalNode Boolean() { return getToken(TypeScriptParser.Boolean, 0); } + public TerminalNode Number() { return getToken(TypeScriptParser.Number, 0); } + public TerminalNode Module() { return getToken(TypeScriptParser.Module, 0); } + public KeywordContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_keyword; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterKeyword(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitKeyword(this); + } + } + + public final KeywordContext keyword() throws RecognitionException { + KeywordContext _localctx = new KeywordContext(_ctx, getState()); + enterRule(_localctx, 312, RULE_keyword); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1953); + _la = _input.LA(1); + if ( !(((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -4027625446047744001L) != 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; + } + + @SuppressWarnings("CheckReturnValue") + public static class EosContext extends ParserRuleContext { + public TerminalNode SemiColon() { return getToken(TypeScriptParser.SemiColon, 0); } + public TerminalNode EOF() { return getToken(TypeScriptParser.EOF, 0); } + public EosContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_eos; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).enterEos(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof TypeScriptParserListener ) ((TypeScriptParserListener)listener).exitEos(this); + } + } + + public final EosContext eos() throws RecognitionException { + EosContext _localctx = new EosContext(_ctx, getState()); + enterRule(_localctx, 314, RULE_eos); + try { + setState(1959); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,257,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1955); + match(SemiColon); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1956); + match(EOF); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1957); + if (!(this.lineTerminatorAhead())) throw new FailedPredicateException(this, "this.lineTerminatorAhead()"); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1958); + if (!(this.closeBrace())) throw new FailedPredicateException(this, "this.closeBrace()"); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 10: + return unionOrIntersectionOrPrimaryType_sempred((UnionOrIntersectionOrPrimaryTypeContext)_localctx, predIndex); + case 11: + return primaryType_sempred((PrimaryTypeContext)_localctx, predIndex); + case 20: + return arrayType_sempred((ArrayTypeContext)_localctx, predIndex); + case 55: + return decoratorMemberExpression_sempred((DecoratorMemberExpressionContext)_localctx, predIndex); + case 82: + return expressionStatement_sempred((ExpressionStatementContext)_localctx, predIndex); + case 84: + return iterationStatement_sempred((IterationStatementContext)_localctx, predIndex); + case 86: + return continueStatement_sempred((ContinueStatementContext)_localctx, predIndex); + case 87: + return breakStatement_sempred((BreakStatementContext)_localctx, predIndex); + case 88: + return returnStatement_sempred((ReturnStatementContext)_localctx, predIndex); + case 89: + return yieldStatement_sempred((YieldStatementContext)_localctx, predIndex); + case 97: + return throwStatement_sempred((ThrowStatementContext)_localctx, predIndex); + case 112: + return generatorMethod_sempred((GeneratorMethodContext)_localctx, predIndex); + case 137: + return singleExpression_sempred((SingleExpressionContext)_localctx, predIndex); + case 150: + return getter_sempred((GetterContext)_localctx, predIndex); + case 151: + return setter_sempred((SetterContext)_localctx, predIndex); + case 157: + return eos_sempred((EosContext)_localctx, predIndex); + } + return true; + } + private boolean unionOrIntersectionOrPrimaryType_sempred(UnionOrIntersectionOrPrimaryTypeContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 3); + case 1: + return precpred(_ctx, 2); + } + return true; + } + private boolean primaryType_sempred(PrimaryTypeContext _localctx, int predIndex) { + switch (predIndex) { + case 2: + return precpred(_ctx, 6); + case 3: + return this.notLineTerminator(); + } + return true; + } + private boolean arrayType_sempred(ArrayTypeContext _localctx, int predIndex) { + switch (predIndex) { + case 4: + return this.notLineTerminator(); + } + return true; + } + private boolean decoratorMemberExpression_sempred(DecoratorMemberExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 5: + return precpred(_ctx, 2); + } + return true; + } + private boolean expressionStatement_sempred(ExpressionStatementContext _localctx, int predIndex) { + switch (predIndex) { + case 6: + return this.notOpenBraceAndNotFunctionAndNotInterface(); + } + return true; + } + private boolean iterationStatement_sempred(IterationStatementContext _localctx, int predIndex) { + switch (predIndex) { + case 7: + return this.p("of"); + case 8: + return this.p("of"); + } + return true; + } + private boolean continueStatement_sempred(ContinueStatementContext _localctx, int predIndex) { + switch (predIndex) { + case 9: + return this.notLineTerminator(); + } + return true; + } + private boolean breakStatement_sempred(BreakStatementContext _localctx, int predIndex) { + switch (predIndex) { + case 10: + return this.notLineTerminator(); + } + return true; + } + private boolean returnStatement_sempred(ReturnStatementContext _localctx, int predIndex) { + switch (predIndex) { + case 11: + return this.notLineTerminator(); + } + return true; + } + private boolean yieldStatement_sempred(YieldStatementContext _localctx, int predIndex) { + switch (predIndex) { + case 12: + return this.notLineTerminator(); + } + return true; + } + private boolean throwStatement_sempred(ThrowStatementContext _localctx, int predIndex) { + switch (predIndex) { + case 13: + return this.notLineTerminator(); + } + return true; + } + private boolean generatorMethod_sempred(GeneratorMethodContext _localctx, int predIndex) { + switch (predIndex) { + case 14: + return this.notLineTerminator(); + } + return true; + } + private boolean singleExpression_sempred(SingleExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 15: + return precpred(_ctx, 50); + case 16: + return precpred(_ctx, 32); + case 17: + return precpred(_ctx, 31); + case 18: + return precpred(_ctx, 30); + case 19: + return precpred(_ctx, 29); + case 20: + return precpred(_ctx, 28); + case 21: + return precpred(_ctx, 27); + case 22: + return precpred(_ctx, 26); + case 23: + return precpred(_ctx, 25); + case 24: + return precpred(_ctx, 24); + case 25: + return precpred(_ctx, 23); + case 26: + return precpred(_ctx, 22); + case 27: + return precpred(_ctx, 21); + case 28: + return precpred(_ctx, 20); + case 29: + return precpred(_ctx, 19); + case 30: + return precpred(_ctx, 18); + case 31: + return precpred(_ctx, 17); + case 32: + return precpred(_ctx, 16); + case 33: + return precpred(_ctx, 51); + case 34: + return precpred(_ctx, 49); + case 35: + return precpred(_ctx, 48); + case 36: + return precpred(_ctx, 45); + case 37: + return precpred(_ctx, 44); + case 38: + return this.notLineTerminator(); + case 39: + return precpred(_ctx, 43); + case 40: + return this.notLineTerminator(); + case 41: + return precpred(_ctx, 15); + case 42: + return precpred(_ctx, 2); + case 43: + return precpred(_ctx, 1); + } + return true; + } + private boolean getter_sempred(GetterContext _localctx, int predIndex) { + switch (predIndex) { + case 44: + return this.n("get"); + } + return true; + } + private boolean setter_sempred(SetterContext _localctx, int predIndex) { + switch (predIndex) { + case 45: + return this.n("set"); + } + return true; + } + private boolean eos_sempred(EosContext _localctx, int predIndex) { + switch (predIndex) { + case 46: + return this.lineTerminatorAhead(); + case 47: + return this.closeBrace(); + } + return true; + } + + public static final String _serializedATN = + "\u0004\u0001\u0094\u07aa\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001"+ + "\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004"+ + "\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007"+ + "\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b"+ + "\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007"+ + "\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007"+ + "\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007"+ + "\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007"+ + "\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007"+ + "\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007"+ + "\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007"+ + "\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007"+ + "\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007"+ + ",\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u00070\u00021\u0007"+ + "1\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u0007"+ + "6\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007"+ + ";\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007"+ + "@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007"+ + "E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007"+ + "J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007"+ + "O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0002T\u0007"+ + "T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007X\u0002Y\u0007"+ + "Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007]\u0002^\u0007"+ + "^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007b\u0002c\u0007"+ + "c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007g\u0002h\u0007"+ + "h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007l\u0002m\u0007"+ + "m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007q\u0002r\u0007"+ + "r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007v\u0002w\u0007"+ + "w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007{\u0002|\u0007"+ + "|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002\u0080\u0007"+ + "\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002\u0083\u0007"+ + "\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002\u0086\u0007"+ + "\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002\u0089\u0007"+ + "\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b\u0002\u008c\u0007"+ + "\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e\u0002\u008f\u0007"+ + "\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091\u0002\u0092\u0007"+ + "\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094\u0002\u0095\u0007"+ + "\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097\u0002\u0098\u0007"+ + "\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a\u0002\u009b\u0007"+ + "\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d\u0001\u0000\u0001"+ + "\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0003\u0001\u0142\b\u0001\u0001"+ + "\u0002\u0001\u0002\u0003\u0002\u0146\b\u0002\u0001\u0002\u0001\u0002\u0001"+ + "\u0003\u0001\u0003\u0001\u0003\u0005\u0003\u014d\b\u0003\n\u0003\f\u0003"+ + "\u0150\t\u0003\u0001\u0004\u0001\u0004\u0003\u0004\u0154\b\u0004\u0001"+ + "\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0003\u0004\u015b"+ + "\b\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0003"+ + "\u0006\u0162\b\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007\u0001"+ + "\u0007\u0005\u0007\u0169\b\u0007\n\u0007\f\u0007\u016c\t\u0007\u0001\b"+ + "\u0001\b\u0001\t\u0003\t\u0171\b\t\u0001\t\u0001\t\u0001\t\u0001\t\u0003"+ + "\t\u0177\b\t\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001"+ + "\n\u0001\n\u0005\n\u0182\b\n\n\n\f\n\u0185\t\n\u0001\u000b\u0001\u000b"+ + "\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ + "\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ + "\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ + "\u0003\u000b\u019b\b\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ + "\u0003\u000b\u01a1\b\u000b\u0001\u000b\u0005\u000b\u01a4\b\u000b\n\u000b"+ + "\f\u000b\u01a7\t\u000b\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f"+ + "\u0001\f\u0001\f\u0001\f\u0003\f\u01b2\b\f\u0001\f\u0001\f\u0001\f\u0001"+ + "\f\u0001\f\u0003\f\u01b9\b\f\u0001\r\u0001\r\u0003\r\u01bd\b\r\u0001\u000e"+ + "\u0001\u000e\u0001\u000e\u0003\u000e\u01c2\b\u000e\u0001\u000e\u0001\u000e"+ + "\u0001\u000f\u0001\u000f\u0003\u000f\u01c8\b\u000f\u0001\u0010\u0001\u0010"+ + "\u0003\u0010\u01cc\b\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011"+ + "\u0003\u0011\u01d2\b\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0005\u0012"+ + "\u01d7\b\u0012\n\u0012\f\u0012\u01da\t\u0012\u0001\u0013\u0001\u0013\u0001"+ + "\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0003\u0013\u01e3"+ + "\b\u0013\u0003\u0013\u01e5\b\u0013\u0001\u0014\u0001\u0014\u0001\u0014"+ + "\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015"+ + "\u0001\u0016\u0001\u0016\u0001\u0016\u0005\u0016\u01f3\b\u0016\n\u0016"+ + "\f\u0016\u01f6\t\u0016\u0001\u0016\u0003\u0016\u01f9\b\u0016\u0001\u0017"+ + "\u0003\u0017\u01fc\b\u0017\u0001\u0017\u0001\u0017\u0003\u0017\u0200\b"+ + "\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0018\u0001"+ + "\u0018\u0003\u0018\u0208\b\u0018\u0001\u0018\u0001\u0018\u0003\u0018\u020c"+ + "\b\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0019\u0001"+ + "\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0004"+ + "\u001a\u0219\b\u001a\u000b\u001a\f\u001a\u021a\u0001\u001a\u0001\u001a"+ + "\u0003\u001a\u021f\b\u001a\u0001\u001b\u0003\u001b\u0222\b\u001b\u0001"+ + "\u001b\u0001\u001b\u0003\u001b\u0226\b\u001b\u0001\u001b\u0003\u001b\u0229"+ + "\b\u001b\u0001\u001b\u0001\u001b\u0003\u001b\u022d\b\u001b\u0001\u001c"+ + "\u0001\u001c\u0001\u001c\u0001\u001d\u0003\u001d\u0233\b\u001d\u0001\u001d"+ + "\u0001\u001d\u0003\u001d\u0237\b\u001d\u0001\u001d\u0001\u001d\u0003\u001d"+ + "\u023b\b\u001d\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0005\u001e"+ + "\u0241\b\u001e\n\u001e\f\u001e\u0244\t\u001e\u0001\u001e\u0001\u001e\u0003"+ + "\u001e\u0248\b\u001e\u0001\u001e\u0003\u001e\u024b\b\u001e\u0003\u001e"+ + "\u024d\b\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0005\u001f\u0252\b"+ + "\u001f\n\u001f\f\u001f\u0255\t\u001f\u0001 \u0001 \u0003 \u0259\b \u0001"+ + "!\u0003!\u025c\b!\u0001!\u0003!\u025f\b!\u0001!\u0001!\u0001!\u0003!\u0264"+ + "\b!\u0001!\u0003!\u0267\b!\u0001!\u0003!\u026a\b!\u0001\"\u0001\"\u0001"+ + "\"\u0003\"\u026f\b\"\u0001#\u0003#\u0272\b#\u0001#\u0003#\u0275\b#\u0001"+ + "#\u0001#\u0003#\u0279\b#\u0001$\u0001$\u0001%\u0001%\u0003%\u027f\b%\u0001"+ + "&\u0001&\u0003&\u0283\b&\u0001&\u0001&\u0003&\u0287\b&\u0001&\u0001&\u0003"+ + "&\u028b\b&\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001"+ + "(\u0001(\u0003(\u0296\b(\u0001(\u0001(\u0001)\u0003)\u029b\b)\u0001)\u0001"+ + ")\u0001)\u0003)\u02a0\b)\u0001)\u0001)\u0001)\u0001)\u0001*\u0003*\u02a7"+ + "\b*\u0001*\u0001*\u0001*\u0003*\u02ac\b*\u0001*\u0001*\u0001*\u0001*\u0001"+ + "*\u0001*\u0003*\u02b4\b*\u0001+\u0003+\u02b7\b+\u0001+\u0003+\u02ba\b"+ + "+\u0001+\u0001+\u0001+\u0003+\u02bf\b+\u0001+\u0003+\u02c2\b+\u0001+\u0001"+ + "+\u0003+\u02c6\b+\u0001,\u0001,\u0001,\u0001-\u0001-\u0001-\u0005-\u02ce"+ + "\b-\n-\f-\u02d1\t-\u0001.\u0003.\u02d4\b.\u0001.\u0001.\u0001.\u0001."+ + "\u0003.\u02da\b.\u0001.\u0001.\u0001/\u0001/\u0003/\u02e0\b/\u00010\u0001"+ + "0\u00010\u00050\u02e5\b0\n0\f0\u02e8\t0\u00011\u00011\u00011\u00031\u02ed"+ + "\b1\u00012\u00032\u02f0\b2\u00012\u00012\u00012\u00012\u00032\u02f6\b"+ + "2\u00012\u00012\u00013\u00013\u00043\u02fc\b3\u000b3\f3\u02fd\u00013\u0005"+ + "3\u0301\b3\n3\f3\u0304\t3\u00014\u00014\u00014\u00014\u00014\u00015\u0004"+ + "5\u030c\b5\u000b5\f5\u030d\u00016\u00016\u00016\u00036\u0313\b6\u0001"+ + "7\u00017\u00017\u00017\u00017\u00017\u00037\u031b\b7\u00017\u00017\u0001"+ + "7\u00057\u0320\b7\n7\f7\u0323\t7\u00018\u00018\u00018\u00019\u00039\u0329"+ + "\b9\u00019\u00019\u0001:\u0003:\u032e\b:\u0001:\u0001:\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0003;\u034f\b;\u0001<\u0001"+ + "<\u0003<\u0353\b<\u0001<\u0001<\u0001=\u0004=\u0358\b=\u000b=\f=\u0359"+ + "\u0001>\u0001>\u0001>\u0001>\u0001>\u0003>\u0361\b>\u0001>\u0001>\u0001"+ + "?\u0001?\u0001?\u0001@\u0003@\u0369\b@\u0001@\u0001@\u0003@\u036d\b@\u0001"+ + "@\u0001@\u0001@\u0001@\u0001@\u0003@\u0374\b@\u0001A\u0001A\u0001A\u0001"+ + "A\u0005A\u037a\bA\nA\fA\u037d\tA\u0001A\u0001A\u0003A\u0381\bA\u0003A"+ + "\u0383\bA\u0001A\u0001A\u0001B\u0001B\u0001B\u0003B\u038a\bB\u0001C\u0001"+ + "C\u0003C\u038e\bC\u0001D\u0001D\u0001E\u0001E\u0001E\u0001F\u0001F\u0003"+ + "F\u0397\bF\u0001F\u0001F\u0003F\u039b\bF\u0001G\u0001G\u0001G\u0001H\u0001"+ + "H\u0001H\u0003H\u03a3\bH\u0001I\u0001I\u0003I\u03a7\bI\u0001I\u0001I\u0003"+ + "I\u03ab\bI\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0001I\u0003I\u03b4"+ + "\bI\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0003J\u03bc\bJ\u0001J\u0001"+ + "J\u0003J\u03c0\bJ\u0001K\u0001K\u0001K\u0001K\u0005K\u03c6\bK\nK\fK\u03c9"+ + "\tK\u0001K\u0001K\u0003K\u03cd\bK\u0003K\u03cf\bK\u0001K\u0001K\u0001"+ + "L\u0001L\u0001L\u0003L\u03d6\bL\u0001M\u0001M\u0001M\u0003M\u03db\bM\u0001"+ + "N\u0001N\u0003N\u03df\bN\u0001N\u0001N\u0003N\u03e3\bN\u0001N\u0003N\u03e6"+ + "\bN\u0001N\u0003N\u03e9\bN\u0001N\u0003N\u03ec\bN\u0001N\u0001N\u0003"+ + "N\u03f0\bN\u0001N\u0001N\u0003N\u03f4\bN\u0001N\u0001N\u0003N\u03f8\b"+ + "N\u0003N\u03fa\bN\u0001O\u0001O\u0001O\u0005O\u03ff\bO\nO\fO\u0402\tO"+ + "\u0001P\u0001P\u0001P\u0003P\u0407\bP\u0001P\u0003P\u040a\bP\u0001P\u0003"+ + "P\u040d\bP\u0001P\u0001P\u0003P\u0411\bP\u0001P\u0003P\u0414\bP\u0001"+ + "Q\u0001Q\u0001R\u0001R\u0001R\u0003R\u041b\bR\u0001S\u0001S\u0001S\u0001"+ + "S\u0001S\u0001S\u0001S\u0003S\u0424\bS\u0001T\u0001T\u0001T\u0001T\u0001"+ + "T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001"+ + "T\u0001T\u0001T\u0003T\u0437\bT\u0001T\u0001T\u0003T\u043b\bT\u0001T\u0001"+ + "T\u0003T\u043f\bT\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001"+ + "T\u0003T\u0449\bT\u0001T\u0001T\u0003T\u044d\bT\u0001T\u0001T\u0001T\u0001"+ + "T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001"+ + "T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0003T\u0465"+ + "\bT\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0001T\u0003T\u046e\bT\u0001"+ + "T\u0001T\u0001T\u0001T\u0001T\u0003T\u0475\bT\u0001T\u0001T\u0001T\u0001"+ + "T\u0001T\u0001T\u0001T\u0001T\u0003T\u047f\bT\u0001T\u0001T\u0001T\u0003"+ + "T\u0484\bT\u0001U\u0001U\u0001V\u0001V\u0001V\u0003V\u048b\bV\u0001V\u0001"+ + "V\u0001W\u0001W\u0001W\u0003W\u0492\bW\u0001W\u0001W\u0001X\u0001X\u0001"+ + "X\u0003X\u0499\bX\u0001X\u0001X\u0001Y\u0001Y\u0001Y\u0003Y\u04a0\bY\u0001"+ + "Y\u0001Y\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001\\\u0001\\\u0003\\\u04b2\b\\\u0001\\\u0001"+ + "\\\u0003\\\u04b6\b\\\u0003\\\u04b8\b\\\u0001\\\u0001\\\u0001]\u0004]\u04bd"+ + "\b]\u000b]\f]\u04be\u0001^\u0001^\u0001^\u0001^\u0003^\u04c5\b^\u0001"+ + "_\u0001_\u0001_\u0003_\u04ca\b_\u0001`\u0001`\u0001`\u0001`\u0001a\u0001"+ + "a\u0001a\u0001a\u0001a\u0001b\u0001b\u0001b\u0001b\u0003b\u04d9\bb\u0001"+ + "b\u0003b\u04dc\bb\u0001c\u0001c\u0001c\u0001c\u0003c\u04e2\bc\u0001c\u0001"+ + "c\u0003c\u04e6\bc\u0001c\u0001c\u0001d\u0001d\u0001d\u0001e\u0001e\u0001"+ + "e\u0001f\u0003f\u04f1\bf\u0001f\u0001f\u0003f\u04f5\bf\u0001f\u0001f\u0001"+ + "f\u0001f\u0001f\u0001f\u0001f\u0003f\u04fe\bf\u0001g\u0003g\u0501\bg\u0001"+ + "g\u0001g\u0003g\u0505\bg\u0003g\u0507\bg\u0001g\u0003g\u050a\bg\u0001"+ + "g\u0001g\u0001g\u0003g\u050f\bg\u0001g\u0001g\u0001g\u0001h\u0003h\u0515"+ + "\bh\u0001h\u0003h\u0518\bh\u0001i\u0001i\u0005i\u051c\bi\ni\fi\u051f\t"+ + "i\u0001i\u0001i\u0001j\u0001j\u0001j\u0001k\u0001k\u0001k\u0001l\u0001"+ + "l\u0003l\u052b\bl\u0001l\u0001l\u0001l\u0003l\u0530\bl\u0001m\u0001m\u0001"+ + "m\u0003m\u0535\bm\u0001m\u0003m\u0538\bm\u0001m\u0003m\u053b\bm\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0003"+ + "m\u0547\bm\u0001m\u0001m\u0001m\u0003m\u054c\bm\u0001m\u0003m\u054f\b"+ + "m\u0001n\u0003n\u0552\bn\u0001n\u0003n\u0555\bn\u0001n\u0003n\u0558\b"+ + "n\u0001n\u0003n\u055b\bn\u0001o\u0001o\u0001o\u0001p\u0001p\u0003p\u0562"+ + "\bp\u0001p\u0003p\u0565\bp\u0001p\u0001p\u0001p\u0003p\u056a\bp\u0001"+ + "p\u0001p\u0001p\u0001p\u0001p\u0001q\u0003q\u0572\bq\u0001q\u0001q\u0001"+ + "q\u0003q\u0577\bq\u0001q\u0001q\u0003q\u057b\bq\u0001q\u0001q\u0001q\u0001"+ + "q\u0001q\u0001r\u0001r\u0001r\u0001r\u0005r\u0586\br\nr\fr\u0589\tr\u0001"+ + "r\u0003r\u058c\br\u0001r\u0001r\u0001s\u0001s\u0001s\u0001t\u0001t\u0001"+ + "t\u0001t\u0005t\u0597\bt\nt\ft\u059a\tt\u0001t\u0003t\u059d\bt\u0001t"+ + "\u0001t\u0001u\u0001u\u0001u\u0001u\u0001u\u0003u\u05a6\bu\u0001u\u0001"+ + "u\u0001u\u0001u\u0001u\u0001v\u0001v\u0003v\u05af\bv\u0001w\u0001w\u0001"+ + "w\u0001x\u0001x\u0001x\u0005x\u05b7\bx\nx\fx\u05ba\tx\u0001x\u0001x\u0003"+ + "x\u05be\bx\u0001x\u0003x\u05c1\bx\u0001x\u0001x\u0001x\u0001x\u0001x\u0003"+ + "x\u05c8\bx\u0003x\u05ca\bx\u0001y\u0003y\u05cd\by\u0001y\u0003y\u05d0"+ + "\by\u0001y\u0001y\u0003y\u05d4\by\u0001y\u0003y\u05d7\by\u0001y\u0001"+ + "y\u0003y\u05db\by\u0001z\u0001z\u0001z\u0003z\u05e0\bz\u0001{\u0003{\u05e3"+ + "\b{\u0001|\u0004|\u05e6\b|\u000b|\f|\u05e7\u0001}\u0001}\u0001}\u0001"+ + "}\u0001~\u0005~\u05ef\b~\n~\f~\u05f2\t~\u0001~\u0003~\u05f5\b~\u0001~"+ + "\u0004~\u05f8\b~\u000b~\f~\u05f9\u0001~\u0005~\u05fd\b~\n~\f~\u0600\t"+ + "~\u0001~\u0005~\u0603\b~\n~\f~\u0606\t~\u0001\u007f\u0003\u007f\u0609"+ + "\b\u007f\u0001\u007f\u0001\u007f\u0003\u007f\u060d\b\u007f\u0001\u007f"+ + "\u0003\u007f\u0610\b\u007f\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080"+ + "\u0005\u0080\u0616\b\u0080\n\u0080\f\u0080\u0619\t\u0080\u0001\u0080\u0003"+ + "\u0080\u061c\b\u0080\u0003\u0080\u061e\b\u0080\u0001\u0080\u0001\u0080"+ + "\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0081\u0001\u0081\u0001\u0081\u0003\u0081\u0631\b\u0081\u0001\u0081"+ + "\u0001\u0081\u0003\u0081\u0635\b\u0081\u0001\u0082\u0001\u0082\u0001\u0082"+ + "\u0001\u0082\u0003\u0082\u063b\b\u0082\u0001\u0082\u0001\u0082\u0001\u0082"+ + "\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0003\u0083\u0644\b\u0083"+ + "\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0084"+ + "\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084\u0001\u0084"+ + "\u0003\u0084\u0652\b\u0084\u0001\u0085\u0001\u0085\u0001\u0085\u0003\u0085"+ + "\u0657\b\u0085\u0003\u0085\u0659\b\u0085\u0001\u0085\u0001\u0085\u0001"+ + "\u0086\u0001\u0086\u0001\u0086\u0005\u0086\u0660\b\u0086\n\u0086\f\u0086"+ + "\u0663\t\u0086\u0001\u0087\u0003\u0087\u0666\b\u0087\u0001\u0087\u0001"+ + "\u0087\u0003\u0087\u066a\b\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0005"+ + "\u0088\u066f\b\u0088\n\u0088\f\u0088\u0672\t\u0088\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0003\u0089\u0678\b\u0089\u0001\u0089\u0003\u0089"+ + "\u067b\b\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0003\u0089\u0683\b\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0003\u0089\u068a\b\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0003\u0089\u06a7\b\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0003\u0089\u06b3\b\u0089\u0003\u0089\u06b5\b\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0003\u0089\u06cd\b\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0003\u0089\u06fa\b\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0003\u0089\u0702\b\u0089\u0001\u0089\u0001"+ + "\u0089\u0003\u0089\u0706\b\u0089\u0001\u0089\u0001\u0089\u0003\u0089\u070a"+ + "\b\u0089\u0001\u0089\u0001\u0089\u0003\u0089\u070e\b\u0089\u0001\u0089"+ + "\u0001\u0089\u0003\u0089\u0712\b\u0089\u0001\u0089\u0001\u0089\u0003\u0089"+ + "\u0716\b\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0005\u0089\u0727\b\u0089"+ + "\n\u0089\f\u0089\u072a\t\u0089\u0001\u008a\u0001\u008a\u0001\u008a\u0003"+ + "\u008a\u072f\b\u008a\u0001\u008a\u0003\u008a\u0732\b\u008a\u0001\u008b"+ + "\u0001\u008b\u0001\u008b\u0001\u008b\u0003\u008b\u0738\b\u008b\u0001\u008c"+ + "\u0001\u008c\u0003\u008c\u073c\b\u008c\u0001\u008c\u0001\u008c\u0003\u008c"+ + "\u0740\b\u008c\u0001\u008c\u0001\u008c\u0003\u008c\u0744\b\u008c\u0001"+ + "\u008c\u0001\u008c\u0003\u008c\u0748\b\u008c\u0001\u008c\u0001\u008c\u0001"+ + "\u008c\u0001\u008c\u0001\u008c\u0003\u008c\u074f\b\u008c\u0001\u008d\u0003"+ + "\u008d\u0752\b\u008d\u0001\u008d\u0001\u008d\u0003\u008d\u0756\b\u008d"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0003\u008e\u075e\b\u008e\u0001\u008e\u0003\u008e\u0761\b\u008e\u0001"+ + "\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0003\u008f\u0768"+ + "\b\u008f\u0001\u0090\u0001\u0090\u0001\u0091\u0001\u0091\u0001\u0091\u0001"+ + "\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0003\u0091\u0773\b\u0091\u0001"+ + "\u0092\u0001\u0092\u0005\u0092\u0777\b\u0092\n\u0092\f\u0092\u077a\t\u0092"+ + "\u0001\u0092\u0001\u0092\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093"+ + "\u0001\u0093\u0001\u0093\u0003\u0093\u0784\b\u0093\u0001\u0094\u0001\u0094"+ + "\u0001\u0095\u0001\u0095\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096"+ + "\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0098\u0001\u0098"+ + "\u0003\u0098\u0794\b\u0098\u0001\u0099\u0001\u0099\u0001\u009a\u0001\u009a"+ + "\u0001\u009a\u0003\u009a\u079b\b\u009a\u0001\u009b\u0001\u009b\u0001\u009b"+ + "\u0003\u009b\u07a0\b\u009b\u0001\u009c\u0001\u009c\u0001\u009d\u0001\u009d"+ + "\u0001\u009d\u0001\u009d\u0003\u009d\u07a8\b\u009d\u0001\u009d\u0000\u0004"+ + "\u0014\u0016n\u0112\u009e\u0000\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012"+ + "\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\"+ + "^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090"+ + "\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8"+ + "\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0"+ + "\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8"+ + "\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0"+ + "\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108"+ + "\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120"+ + "\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138"+ + "\u013a\u0000\u0011\u0002\u0000((**\u0001\u0000\u000b\f\u0002\u0000pqt"+ + "t\u0002\u0000wwzz\u0002\u0000de\u008a\u008a\u0003\u0000MMkkoo\u0001\u0000"+ + "ef\u0002\u0000\r\r\u0010\u0010\u0001\u0000\u0019\u001b\u0001\u0000\u0015"+ + "\u0016\u0001\u0000 #\u0001\u0000$\'\u0001\u0000-9\u0001\u0000=A\u0001"+ + "\u0000BE\u0006\u0000`acceev\u0083\u0087\u0087\u008a\u008a\u0006\u0000"+ + "Feguwwyz\u0081\u0081\u0084\u0085\u0896\u0000\u013c\u0001\u0000\u0000\u0000"+ + "\u0002\u0141\u0001\u0000\u0000\u0000\u0004\u0143\u0001\u0000\u0000\u0000"+ + "\u0006\u0149\u0001\u0000\u0000\u0000\b\u015a\u0001\u0000\u0000\u0000\n"+ + "\u015c\u0001\u0000\u0000\u0000\f\u015f\u0001\u0000\u0000\u0000\u000e\u0165"+ + "\u0001\u0000\u0000\u0000\u0010\u016d\u0001\u0000\u0000\u0000\u0012\u0176"+ + "\u0001\u0000\u0000\u0000\u0014\u0178\u0001\u0000\u0000\u0000\u0016\u019a"+ + "\u0001\u0000\u0000\u0000\u0018\u01b8\u0001\u0000\u0000\u0000\u001a\u01ba"+ + "\u0001\u0000\u0000\u0000\u001c\u01be\u0001\u0000\u0000\u0000\u001e\u01c7"+ + "\u0001\u0000\u0000\u0000 \u01c9\u0001\u0000\u0000\u0000\"\u01cf\u0001"+ + "\u0000\u0000\u0000$\u01d3\u0001\u0000\u0000\u0000&\u01e4\u0001\u0000\u0000"+ + "\u0000(\u01e6\u0001\u0000\u0000\u0000*\u01eb\u0001\u0000\u0000\u0000,"+ + "\u01ef\u0001\u0000\u0000\u0000.\u01fb\u0001\u0000\u0000\u00000\u0205\u0001"+ + "\u0000\u0000\u00002\u0211\u0001\u0000\u0000\u00004\u021e\u0001\u0000\u0000"+ + "\u00006\u0221\u0001\u0000\u0000\u00008\u022e\u0001\u0000\u0000\u0000:"+ + "\u0232\u0001\u0000\u0000\u0000<\u024c\u0001\u0000\u0000\u0000>\u024e\u0001"+ + "\u0000\u0000\u0000@\u0258\u0001\u0000\u0000\u0000B\u025b\u0001\u0000\u0000"+ + "\u0000D\u026b\u0001\u0000\u0000\u0000F\u0271\u0001\u0000\u0000\u0000H"+ + "\u027a\u0001\u0000\u0000\u0000J\u027e\u0001\u0000\u0000\u0000L\u0280\u0001"+ + "\u0000\u0000\u0000N\u028c\u0001\u0000\u0000\u0000P\u0293\u0001\u0000\u0000"+ + "\u0000R\u029a\u0001\u0000\u0000\u0000T\u02a6\u0001\u0000\u0000\u0000V"+ + "\u02b6\u0001\u0000\u0000\u0000X\u02c7\u0001\u0000\u0000\u0000Z\u02ca\u0001"+ + "\u0000\u0000\u0000\\\u02d3\u0001\u0000\u0000\u0000^\u02dd\u0001\u0000"+ + "\u0000\u0000`\u02e1\u0001\u0000\u0000\u0000b\u02e9\u0001\u0000\u0000\u0000"+ + "d\u02ef\u0001\u0000\u0000\u0000f\u02f9\u0001\u0000\u0000\u0000h\u0305"+ + "\u0001\u0000\u0000\u0000j\u030b\u0001\u0000\u0000\u0000l\u030f\u0001\u0000"+ + "\u0000\u0000n\u031a\u0001\u0000\u0000\u0000p\u0324\u0001\u0000\u0000\u0000"+ + "r\u0328\u0001\u0000\u0000\u0000t\u032d\u0001\u0000\u0000\u0000v\u034e"+ + "\u0001\u0000\u0000\u0000x\u0350\u0001\u0000\u0000\u0000z\u0357\u0001\u0000"+ + "\u0000\u0000|\u035b\u0001\u0000\u0000\u0000~\u0364\u0001\u0000\u0000\u0000"+ + "\u0080\u0373\u0001\u0000\u0000\u0000\u0082\u0375\u0001\u0000\u0000\u0000"+ + "\u0084\u0386\u0001\u0000\u0000\u0000\u0086\u038d\u0001\u0000\u0000\u0000"+ + "\u0088\u038f\u0001\u0000\u0000\u0000\u008a\u0391\u0001\u0000\u0000\u0000"+ + "\u008c\u0396\u0001\u0000\u0000\u0000\u008e\u039c\u0001\u0000\u0000\u0000"+ + "\u0090\u039f\u0001\u0000\u0000\u0000\u0092\u03b3\u0001\u0000\u0000\u0000"+ + "\u0094\u03bf\u0001\u0000\u0000\u0000\u0096\u03c1\u0001\u0000\u0000\u0000"+ + "\u0098\u03d2\u0001\u0000\u0000\u0000\u009a\u03da\u0001\u0000\u0000\u0000"+ + "\u009c\u03f9\u0001\u0000\u0000\u0000\u009e\u03fb\u0001\u0000\u0000\u0000"+ + "\u00a0\u0406\u0001\u0000\u0000\u0000\u00a2\u0415\u0001\u0000\u0000\u0000"+ + "\u00a4\u0417\u0001\u0000\u0000\u0000\u00a6\u041c\u0001\u0000\u0000\u0000"+ + "\u00a8\u0483\u0001\u0000\u0000\u0000\u00aa\u0485\u0001\u0000\u0000\u0000"+ + "\u00ac\u0487\u0001\u0000\u0000\u0000\u00ae\u048e\u0001\u0000\u0000\u0000"+ + "\u00b0\u0495\u0001\u0000\u0000\u0000\u00b2\u049c\u0001\u0000\u0000\u0000"+ + "\u00b4\u04a3\u0001\u0000\u0000\u0000\u00b6\u04a9\u0001\u0000\u0000\u0000"+ + "\u00b8\u04af\u0001\u0000\u0000\u0000\u00ba\u04bc\u0001\u0000\u0000\u0000"+ + "\u00bc\u04c0\u0001\u0000\u0000\u0000\u00be\u04c6\u0001\u0000\u0000\u0000"+ + "\u00c0\u04cb\u0001\u0000\u0000\u0000\u00c2\u04cf\u0001\u0000\u0000\u0000"+ + "\u00c4\u04d4\u0001\u0000\u0000\u0000\u00c6\u04dd\u0001\u0000\u0000\u0000"+ + "\u00c8\u04e9\u0001\u0000\u0000\u0000\u00ca\u04ec\u0001\u0000\u0000\u0000"+ + "\u00cc\u04f0\u0001\u0000\u0000\u0000\u00ce\u0500\u0001\u0000\u0000\u0000"+ + "\u00d0\u0514\u0001\u0000\u0000\u0000\u00d2\u0519\u0001\u0000\u0000\u0000"+ + "\u00d4\u0522\u0001\u0000\u0000\u0000\u00d6\u0525\u0001\u0000\u0000\u0000"+ + "\u00d8\u052f\u0001\u0000\u0000\u0000\u00da\u054e\u0001\u0000\u0000\u0000"+ + "\u00dc\u0551\u0001\u0000\u0000\u0000\u00de\u055c\u0001\u0000\u0000\u0000"+ + "\u00e0\u0561\u0001\u0000\u0000\u0000\u00e2\u0571\u0001\u0000\u0000\u0000"+ + "\u00e4\u0581\u0001\u0000\u0000\u0000\u00e6\u058f\u0001\u0000\u0000\u0000"+ + "\u00e8\u0592\u0001\u0000\u0000\u0000\u00ea\u05a0\u0001\u0000\u0000\u0000"+ + "\u00ec\u05ae\u0001\u0000\u0000\u0000\u00ee\u05b0\u0001\u0000\u0000\u0000"+ + "\u00f0\u05c9\u0001\u0000\u0000\u0000\u00f2\u05cc\u0001\u0000\u0000\u0000"+ + "\u00f4\u05dc\u0001\u0000\u0000\u0000\u00f6\u05e2\u0001\u0000\u0000\u0000"+ + "\u00f8\u05e5\u0001\u0000\u0000\u0000\u00fa\u05e9\u0001\u0000\u0000\u0000"+ + "\u00fc\u05f0\u0001\u0000\u0000\u0000\u00fe\u0608\u0001\u0000\u0000\u0000"+ + "\u0100\u0611\u0001\u0000\u0000\u0000\u0102\u0634\u0001\u0000\u0000\u0000"+ + "\u0104\u0636\u0001\u0000\u0000\u0000\u0106\u0640\u0001\u0000\u0000\u0000"+ + "\u0108\u0651\u0001\u0000\u0000\u0000\u010a\u0653\u0001\u0000\u0000\u0000"+ + "\u010c\u065c\u0001\u0000\u0000\u0000\u010e\u0665\u0001\u0000\u0000\u0000"+ + "\u0110\u066b\u0001\u0000\u0000\u0000\u0112\u06b4\u0001\u0000\u0000\u0000"+ + "\u0114\u0731\u0001\u0000\u0000\u0000\u0116\u0737\u0001\u0000\u0000\u0000"+ + "\u0118\u074e\u0001\u0000\u0000\u0000\u011a\u0751\u0001\u0000\u0000\u0000"+ + "\u011c\u0760\u0001\u0000\u0000\u0000\u011e\u0767\u0001\u0000\u0000\u0000"+ + "\u0120\u0769\u0001\u0000\u0000\u0000\u0122\u0772\u0001\u0000\u0000\u0000"+ + "\u0124\u0774\u0001\u0000\u0000\u0000\u0126\u0783\u0001\u0000\u0000\u0000"+ + "\u0128\u0785\u0001\u0000\u0000\u0000\u012a\u0787\u0001\u0000\u0000\u0000"+ + "\u012c\u0789\u0001\u0000\u0000\u0000\u012e\u078d\u0001\u0000\u0000\u0000"+ + "\u0130\u0793\u0001\u0000\u0000\u0000\u0132\u0795\u0001\u0000\u0000\u0000"+ + "\u0134\u079a\u0001\u0000\u0000\u0000\u0136\u079f\u0001\u0000\u0000\u0000"+ + "\u0138\u07a1\u0001\u0000\u0000\u0000\u013a\u07a7\u0001\u0000\u0000\u0000"+ + "\u013c\u013d\u0005\r\u0000\u0000\u013d\u013e\u0003\u0112\u0089\u0000\u013e"+ + "\u0001\u0001\u0000\u0000\u0000\u013f\u0142\u0003\u00fa}\u0000\u0140\u0142"+ + "\u0003\u0100\u0080\u0000\u0141\u013f\u0001\u0000\u0000\u0000\u0141\u0140"+ + "\u0001\u0000\u0000\u0000\u0142\u0003\u0001\u0000\u0000\u0000\u0143\u0145"+ + "\u0005 \u0000\u0000\u0144\u0146\u0003\u0006\u0003\u0000\u0145\u0144\u0001"+ + "\u0000\u0000\u0000\u0145\u0146\u0001\u0000\u0000\u0000\u0146\u0147\u0001"+ + "\u0000\u0000\u0000\u0147\u0148\u0005!\u0000\u0000\u0148\u0005\u0001\u0000"+ + "\u0000\u0000\u0149\u014e\u0003\b\u0004\u0000\u014a\u014b\u0005\f\u0000"+ + "\u0000\u014b\u014d\u0003\b\u0004\u0000\u014c\u014a\u0001\u0000\u0000\u0000"+ + "\u014d\u0150\u0001\u0000\u0000\u0000\u014e\u014c\u0001\u0000\u0000\u0000"+ + "\u014e\u014f\u0001\u0000\u0000\u0000\u014f\u0007\u0001\u0000\u0000\u0000"+ + "\u0150\u014e\u0001\u0000\u0000\u0000\u0151\u0153\u0003\u0132\u0099\u0000"+ + "\u0152\u0154\u0003\n\u0005\u0000\u0153\u0152\u0001\u0000\u0000\u0000\u0153"+ + "\u0154\u0001\u0000\u0000\u0000\u0154\u015b\u0001\u0000\u0000\u0000\u0155"+ + "\u0156\u0003\u0132\u0099\u0000\u0156\u0157\u0005\r\u0000\u0000\u0157\u0158"+ + "\u0003\u0010\b\u0000\u0158\u015b\u0001\u0000\u0000\u0000\u0159\u015b\u0003"+ + "\u0004\u0002\u0000\u015a\u0151\u0001\u0000\u0000\u0000\u015a\u0155\u0001"+ + "\u0000\u0000\u0000\u015a\u0159\u0001\u0000\u0000\u0000\u015b\t\u0001\u0000"+ + "\u0000\u0000\u015c\u015d\u0005i\u0000\u0000\u015d\u015e\u0003\u0012\t"+ + "\u0000\u015e\u000b\u0001\u0000\u0000\u0000\u015f\u0161\u0005 \u0000\u0000"+ + "\u0160\u0162\u0003\u000e\u0007\u0000\u0161\u0160\u0001\u0000\u0000\u0000"+ + "\u0161\u0162\u0001\u0000\u0000\u0000\u0162\u0163\u0001\u0000\u0000\u0000"+ + "\u0163\u0164\u0005!\u0000\u0000\u0164\r\u0001\u0000\u0000\u0000\u0165"+ + "\u016a\u0003\u0010\b\u0000\u0166\u0167\u0005\f\u0000\u0000\u0167\u0169"+ + "\u0003\u0010\b\u0000\u0168\u0166\u0001\u0000\u0000\u0000\u0169\u016c\u0001"+ + "\u0000\u0000\u0000\u016a\u0168\u0001\u0000\u0000\u0000\u016a\u016b\u0001"+ + "\u0000\u0000\u0000\u016b\u000f\u0001\u0000\u0000\u0000\u016c\u016a\u0001"+ + "\u0000\u0000\u0000\u016d\u016e\u0003\u0012\t\u0000\u016e\u0011\u0001\u0000"+ + "\u0000\u0000\u016f\u0171\u0007\u0000\u0000\u0000\u0170\u016f\u0001\u0000"+ + "\u0000\u0000\u0170\u0171\u0001\u0000\u0000\u0000\u0171\u0172\u0001\u0000"+ + "\u0000\u0000\u0172\u0177\u0003\u0014\n\u0000\u0173\u0177\u0003.\u0017"+ + "\u0000\u0174\u0177\u00030\u0018\u0000\u0175\u0177\u0003\u001c\u000e\u0000"+ + "\u0176\u0170\u0001\u0000\u0000\u0000\u0176\u0173\u0001\u0000\u0000\u0000"+ + "\u0176\u0174\u0001\u0000\u0000\u0000\u0176\u0175\u0001\u0000\u0000\u0000"+ + "\u0177\u0013\u0001\u0000\u0000\u0000\u0178\u0179\u0006\n\uffff\uffff\u0000"+ + "\u0179\u017a\u0003\u0016\u000b\u0000\u017a\u0183\u0001\u0000\u0000\u0000"+ + "\u017b\u017c\n\u0003\u0000\u0000\u017c\u017d\u0005*\u0000\u0000\u017d"+ + "\u0182\u0003\u0014\n\u0004\u017e\u017f\n\u0002\u0000\u0000\u017f\u0180"+ + "\u0005(\u0000\u0000\u0180\u0182\u0003\u0014\n\u0003\u0181\u017b\u0001"+ + "\u0000\u0000\u0000\u0181\u017e\u0001\u0000\u0000\u0000\u0182\u0185\u0001"+ + "\u0000\u0000\u0000\u0183\u0181\u0001\u0000\u0000\u0000\u0183\u0184\u0001"+ + "\u0000\u0000\u0000\u0184\u0015\u0001\u0000\u0000\u0000\u0185\u0183\u0001"+ + "\u0000\u0000\u0000\u0186\u0187\u0006\u000b\uffff\uffff\u0000\u0187\u0188"+ + "\u0005\u0006\u0000\u0000\u0188\u0189\u0003\u0012\t\u0000\u0189\u018a\u0005"+ + "\u0007\u0000\u0000\u018a\u019b\u0001\u0000\u0000\u0000\u018b\u019b\u0003"+ + "\u0018\f\u0000\u018c\u019b\u0003\u001a\r\u0000\u018d\u019b\u0003 \u0010"+ + "\u0000\u018e\u018f\u0005\u0004\u0000\u0000\u018f\u0190\u0003,\u0016\u0000"+ + "\u0190\u0191\u0005\u0005\u0000\u0000\u0191\u019b\u0001\u0000\u0000\u0000"+ + "\u0192\u019b\u00032\u0019\u0000\u0193\u019b\u0005X\u0000\u0000\u0194\u0195"+ + "\u0003\u001a\r\u0000\u0195\u0196\u0005\u0088\u0000\u0000\u0196\u0197\u0003"+ + "\u0016\u000b\u0002\u0197\u019b\u0001\u0000\u0000\u0000\u0198\u0199\u0005"+ + "\u0080\u0000\u0000\u0199\u019b\u0003\u0016\u000b\u0001\u019a\u0186\u0001"+ + "\u0000\u0000\u0000\u019a\u018b\u0001\u0000\u0000\u0000\u019a\u018c\u0001"+ + "\u0000\u0000\u0000\u019a\u018d\u0001\u0000\u0000\u0000\u019a\u018e\u0001"+ + "\u0000\u0000\u0000\u019a\u0192\u0001\u0000\u0000\u0000\u019a\u0193\u0001"+ + "\u0000\u0000\u0000\u019a\u0194\u0001\u0000\u0000\u0000\u019a\u0198\u0001"+ + "\u0000\u0000\u0000\u019b\u01a5\u0001\u0000\u0000\u0000\u019c\u019d\n\u0006"+ + "\u0000\u0000\u019d\u019e\u0004\u000b\u0003\u0000\u019e\u01a0\u0005\u0004"+ + "\u0000\u0000\u019f\u01a1\u0003\u0016\u000b\u0000\u01a0\u019f\u0001\u0000"+ + "\u0000\u0000\u01a0\u01a1\u0001\u0000\u0000\u0000\u01a1\u01a2\u0001\u0000"+ + "\u0000\u0000\u01a2\u01a4\u0005\u0005\u0000\u0000\u01a3\u019c\u0001\u0000"+ + "\u0000\u0000\u01a4\u01a7\u0001\u0000\u0000\u0000\u01a5\u01a3\u0001\u0000"+ + "\u0000\u0000\u01a5\u01a6\u0001\u0000\u0000\u0000\u01a6\u0017\u0001\u0000"+ + "\u0000\u0000\u01a7\u01a5\u0001\u0000\u0000\u0000\u01a8\u01b9\u0005v\u0000"+ + "\u0000\u01a9\u01b9\u0005;\u0000\u0000\u01aa\u01b9\u0005w\u0000\u0000\u01ab"+ + "\u01b9\u0005=\u0000\u0000\u01ac\u01b9\u0005y\u0000\u0000\u01ad\u01b9\u0005"+ + "<\u0000\u0000\u01ae\u01b9\u0005z\u0000\u0000\u01af\u01b9\u0005\u008b\u0000"+ + "\u0000\u01b0\u01b2\u0005{\u0000\u0000\u01b1\u01b0\u0001\u0000\u0000\u0000"+ + "\u01b1\u01b2\u0001\u0000\u0000\u0000\u01b2\u01b3\u0001\u0000\u0000\u0000"+ + "\u01b3\u01b9\u0005|\u0000\u0000\u01b4\u01b9\u0005x\u0000\u0000\u01b5\u01b9"+ + "\u0005}\u0000\u0000\u01b6\u01b9\u0005~\u0000\u0000\u01b7\u01b9\u0005Q"+ + "\u0000\u0000\u01b8\u01a8\u0001\u0000\u0000\u0000\u01b8\u01a9\u0001\u0000"+ + "\u0000\u0000\u01b8\u01aa\u0001\u0000\u0000\u0000\u01b8\u01ab\u0001\u0000"+ + "\u0000\u0000\u01b8\u01ac\u0001\u0000\u0000\u0000\u01b8\u01ad\u0001\u0000"+ + "\u0000\u0000\u01b8\u01ae\u0001\u0000\u0000\u0000\u01b8\u01af\u0001\u0000"+ + "\u0000\u0000\u01b8\u01b1\u0001\u0000\u0000\u0000\u01b8\u01b4\u0001\u0000"+ + "\u0000\u0000\u01b8\u01b5\u0001\u0000\u0000\u0000\u01b8\u01b6\u0001\u0000"+ + "\u0000\u0000\u01b8\u01b7\u0001\u0000\u0000\u0000\u01b9\u0019\u0001\u0000"+ + "\u0000\u0000\u01ba\u01bc\u0003\u001e\u000f\u0000\u01bb\u01bd\u0003\u001c"+ + "\u000e\u0000\u01bc\u01bb\u0001\u0000\u0000\u0000\u01bc\u01bd\u0001\u0000"+ + "\u0000\u0000\u01bd\u001b\u0001\u0000\u0000\u0000\u01be\u01bf\u0005 \u0000"+ + "\u0000\u01bf\u01c1\u0003\u000e\u0007\u0000\u01c0\u01c2\u0003\u001c\u000e"+ + "\u0000\u01c1\u01c0\u0001\u0000\u0000\u0000\u01c1\u01c2\u0001\u0000\u0000"+ + "\u0000\u01c2\u01c3\u0001\u0000\u0000\u0000\u01c3\u01c4\u0005!\u0000\u0000"+ + "\u01c4\u001d\u0001\u0000\u0000\u0000\u01c5\u01c8\u0003\u0132\u0099\u0000"+ + "\u01c6\u01c8\u0003f3\u0000\u01c7\u01c5\u0001\u0000\u0000\u0000\u01c7\u01c6"+ + "\u0001\u0000\u0000\u0000\u01c8\u001f\u0001\u0000\u0000\u0000\u01c9\u01cb"+ + "\u0005\b\u0000\u0000\u01ca\u01cc\u0003\"\u0011\u0000\u01cb\u01ca\u0001"+ + "\u0000\u0000\u0000\u01cb\u01cc\u0001\u0000\u0000\u0000\u01cc\u01cd\u0001"+ + "\u0000\u0000\u0000\u01cd\u01ce\u0005\n\u0000\u0000\u01ce!\u0001\u0000"+ + "\u0000\u0000\u01cf\u01d1\u0003$\u0012\u0000\u01d0\u01d2\u0007\u0001\u0000"+ + "\u0000\u01d1\u01d0\u0001\u0000\u0000\u0000\u01d1\u01d2\u0001\u0000\u0000"+ + "\u0000\u01d2#\u0001\u0000\u0000\u0000\u01d3\u01d8\u0003&\u0013\u0000\u01d4"+ + "\u01d5\u0007\u0001\u0000\u0000\u01d5\u01d7\u0003&\u0013\u0000\u01d6\u01d4"+ + "\u0001\u0000\u0000\u0000\u01d7\u01da\u0001\u0000\u0000\u0000\u01d8\u01d6"+ + "\u0001\u0000\u0000\u0000\u01d8\u01d9\u0001\u0000\u0000\u0000\u01d9%\u0001"+ + "\u0000\u0000\u0000\u01da\u01d8\u0001\u0000\u0000\u0000\u01db\u01e5\u0003"+ + "6\u001b\u0000\u01dc\u01e5\u0003:\u001d\u0000\u01dd\u01e5\u0003L&\u0000"+ + "\u01de\u01e5\u0003N\'\u0000\u01df\u01e2\u0003P(\u0000\u01e0\u01e1\u0005"+ + ":\u0000\u0000\u01e1\u01e3\u0003\u0012\t\u0000\u01e2\u01e0\u0001\u0000"+ + "\u0000\u0000\u01e2\u01e3\u0001\u0000\u0000\u0000\u01e3\u01e5\u0001\u0000"+ + "\u0000\u0000\u01e4\u01db\u0001\u0000\u0000\u0000\u01e4\u01dc\u0001\u0000"+ + "\u0000\u0000\u01e4\u01dd\u0001\u0000\u0000\u0000\u01e4\u01de\u0001\u0000"+ + "\u0000\u0000\u01e4\u01df\u0001\u0000\u0000\u0000\u01e5\'\u0001\u0000\u0000"+ + "\u0000\u01e6\u01e7\u0003\u0016\u000b\u0000\u01e7\u01e8\u0004\u0014\u0004"+ + "\u0000\u01e8\u01e9\u0005\u0004\u0000\u0000\u01e9\u01ea\u0005\u0005\u0000"+ + "\u0000\u01ea)\u0001\u0000\u0000\u0000\u01eb\u01ec\u0005\u0004\u0000\u0000"+ + "\u01ec\u01ed\u0003,\u0016\u0000\u01ed\u01ee\u0005\u0005\u0000\u0000\u01ee"+ + "+\u0001\u0000\u0000\u0000\u01ef\u01f4\u0003\u0012\t\u0000\u01f0\u01f1"+ + "\u0005\f\u0000\u0000\u01f1\u01f3\u0003\u0012\t\u0000\u01f2\u01f0\u0001"+ + "\u0000\u0000\u0000\u01f3\u01f6\u0001\u0000\u0000\u0000\u01f4\u01f2\u0001"+ + "\u0000\u0000\u0000\u01f4\u01f5\u0001\u0000\u0000\u0000\u01f5\u01f8\u0001"+ + "\u0000\u0000\u0000\u01f6\u01f4\u0001\u0000\u0000\u0000\u01f7\u01f9\u0005"+ + "\f\u0000\u0000\u01f8\u01f7\u0001\u0000\u0000\u0000\u01f8\u01f9\u0001\u0000"+ + "\u0000\u0000\u01f9-\u0001\u0000\u0000\u0000\u01fa\u01fc\u0003\u0004\u0002"+ + "\u0000\u01fb\u01fa\u0001\u0000\u0000\u0000\u01fb\u01fc\u0001\u0000\u0000"+ + "\u0000\u01fc\u01fd\u0001\u0000\u0000\u0000\u01fd\u01ff\u0005\u0006\u0000"+ + "\u0000\u01fe\u0200\u0003<\u001e\u0000\u01ff\u01fe\u0001\u0000\u0000\u0000"+ + "\u01ff\u0200\u0001\u0000\u0000\u0000\u0200\u0201\u0001\u0000\u0000\u0000"+ + "\u0201\u0202\u0005\u0007\u0000\u0000\u0202\u0203\u0005:\u0000\u0000\u0203"+ + "\u0204\u0003\u0012\t\u0000\u0204/\u0001\u0000\u0000\u0000\u0205\u0207"+ + "\u0005L\u0000\u0000\u0206\u0208\u0003\u0004\u0002\u0000\u0207\u0206\u0001"+ + "\u0000\u0000\u0000\u0207\u0208\u0001\u0000\u0000\u0000\u0208\u0209\u0001"+ + "\u0000\u0000\u0000\u0209\u020b\u0005\u0006\u0000\u0000\u020a\u020c\u0003"+ + "<\u001e\u0000\u020b\u020a\u0001\u0000\u0000\u0000\u020b\u020c\u0001\u0000"+ + "\u0000\u0000\u020c\u020d\u0001\u0000\u0000\u0000\u020d\u020e\u0005\u0007"+ + "\u0000\u0000\u020e\u020f\u0005:\u0000\u0000\u020f\u0210\u0003\u0012\t"+ + "\u0000\u02101\u0001\u0000\u0000\u0000\u0211\u0212\u0005I\u0000\u0000\u0212"+ + "\u0213\u00034\u001a\u0000\u02133\u0001\u0000\u0000\u0000\u0214\u021f\u0003"+ + "\u0132\u0099\u0000\u0215\u0216\u0003\u0130\u0098\u0000\u0216\u0217\u0005"+ + "\u0012\u0000\u0000\u0217\u0219\u0001\u0000\u0000\u0000\u0218\u0215\u0001"+ + "\u0000\u0000\u0000\u0219\u021a\u0001\u0000\u0000\u0000\u021a\u0218\u0001"+ + "\u0000\u0000\u0000\u021a\u021b\u0001\u0000\u0000\u0000\u021b\u021c\u0001"+ + "\u0000\u0000\u0000\u021c\u021d\u0003\u0130\u0098\u0000\u021d\u021f\u0001"+ + "\u0000\u0000\u0000\u021e\u0214\u0001\u0000\u0000\u0000\u021e\u0218\u0001"+ + "\u0000\u0000\u0000\u021f5\u0001\u0000\u0000\u0000\u0220\u0222\u0005b\u0000"+ + "\u0000\u0221\u0220\u0001\u0000\u0000\u0000\u0221\u0222\u0001\u0000\u0000"+ + "\u0000\u0222\u0223\u0001\u0000\u0000\u0000\u0223\u0225\u0003\u0108\u0084"+ + "\u0000\u0224\u0226\u0005\u000e\u0000\u0000\u0225\u0224\u0001\u0000\u0000"+ + "\u0000\u0225\u0226\u0001\u0000\u0000\u0000\u0226\u0228\u0001\u0000\u0000"+ + "\u0000\u0227\u0229\u00038\u001c\u0000\u0228\u0227\u0001\u0000\u0000\u0000"+ + "\u0228\u0229\u0001\u0000\u0000\u0000\u0229\u022c\u0001\u0000\u0000\u0000"+ + "\u022a\u022b\u0005:\u0000\u0000\u022b\u022d\u0003\u0012\t\u0000\u022c"+ + "\u022a\u0001\u0000\u0000\u0000\u022c\u022d\u0001\u0000\u0000\u0000\u022d"+ + "7\u0001\u0000\u0000\u0000\u022e\u022f\u0005\u0010\u0000\u0000\u022f\u0230"+ + "\u0003\u0012\t\u0000\u02309\u0001\u0000\u0000\u0000\u0231\u0233\u0003"+ + "\u0004\u0002\u0000\u0232\u0231\u0001\u0000\u0000\u0000\u0232\u0233\u0001"+ + "\u0000\u0000\u0000\u0233\u0234\u0001\u0000\u0000\u0000\u0234\u0236\u0005"+ + "\u0006\u0000\u0000\u0235\u0237\u0003<\u001e\u0000\u0236\u0235\u0001\u0000"+ + "\u0000\u0000\u0236\u0237\u0001\u0000\u0000\u0000\u0237\u0238\u0001\u0000"+ + "\u0000\u0000\u0238\u023a\u0005\u0007\u0000\u0000\u0239\u023b\u00038\u001c"+ + "\u0000\u023a\u0239\u0001\u0000\u0000\u0000\u023a\u023b\u0001\u0000\u0000"+ + "\u0000\u023b;\u0001\u0000\u0000\u0000\u023c\u024d\u0003D\"\u0000\u023d"+ + "\u0242\u0003@ \u0000\u023e\u023f\u0005\f\u0000\u0000\u023f\u0241\u0003"+ + "@ \u0000\u0240\u023e\u0001\u0000\u0000\u0000\u0241\u0244\u0001\u0000\u0000"+ + "\u0000\u0242\u0240\u0001\u0000\u0000\u0000\u0242\u0243\u0001\u0000\u0000"+ + "\u0000\u0243\u0247\u0001\u0000\u0000\u0000\u0244\u0242\u0001\u0000\u0000"+ + "\u0000\u0245\u0246\u0005\f\u0000\u0000\u0246\u0248\u0003D\"\u0000\u0247"+ + "\u0245\u0001\u0000\u0000\u0000\u0247\u0248\u0001\u0000\u0000\u0000\u0248"+ + "\u024a\u0001\u0000\u0000\u0000\u0249\u024b\u0005\f\u0000\u0000\u024a\u0249"+ + "\u0001\u0000\u0000\u0000\u024a\u024b\u0001\u0000\u0000\u0000\u024b\u024d"+ + "\u0001\u0000\u0000\u0000\u024c\u023c\u0001\u0000\u0000\u0000\u024c\u023d"+ + "\u0001\u0000\u0000\u0000\u024d=\u0001\u0000\u0000\u0000\u024e\u0253\u0003"+ + "F#\u0000\u024f\u0250\u0005\f\u0000\u0000\u0250\u0252\u0003F#\u0000\u0251"+ + "\u024f\u0001\u0000\u0000\u0000\u0252\u0255\u0001\u0000\u0000\u0000\u0253"+ + "\u0251\u0001\u0000\u0000\u0000\u0253\u0254\u0001\u0000\u0000\u0000\u0254"+ + "?\u0001\u0000\u0000\u0000\u0255\u0253\u0001\u0000\u0000\u0000\u0256\u0259"+ + "\u0003F#\u0000\u0257\u0259\u0003B!\u0000\u0258\u0256\u0001\u0000\u0000"+ + "\u0000\u0258\u0257\u0001\u0000\u0000\u0000\u0259A\u0001\u0000\u0000\u0000"+ + "\u025a\u025c\u0003j5\u0000\u025b\u025a\u0001\u0000\u0000\u0000\u025b\u025c"+ + "\u0001\u0000\u0000\u0000\u025c\u025e\u0001\u0000\u0000\u0000\u025d\u025f"+ + "\u0003H$\u0000\u025e\u025d\u0001\u0000\u0000\u0000\u025e\u025f\u0001\u0000"+ + "\u0000\u0000\u025f\u0260\u0001\u0000\u0000\u0000\u0260\u0269\u0003J%\u0000"+ + "\u0261\u0263\u0005\u000e\u0000\u0000\u0262\u0264\u00038\u001c\u0000\u0263"+ + "\u0262\u0001\u0000\u0000\u0000\u0263\u0264\u0001\u0000\u0000\u0000\u0264"+ + "\u026a\u0001\u0000\u0000\u0000\u0265\u0267\u00038\u001c\u0000\u0266\u0265"+ + "\u0001\u0000\u0000\u0000\u0266\u0267\u0001\u0000\u0000\u0000\u0267\u0268"+ + "\u0001\u0000\u0000\u0000\u0268\u026a\u0003\u0000\u0000\u0000\u0269\u0261"+ + "\u0001\u0000\u0000\u0000\u0269\u0266\u0001\u0000\u0000\u0000\u026aC\u0001"+ + "\u0000\u0000\u0000\u026b\u026c\u0005\u0011\u0000\u0000\u026c\u026e\u0003"+ + "\u0112\u0089\u0000\u026d\u026f\u00038\u001c\u0000\u026e\u026d\u0001\u0000"+ + "\u0000\u0000\u026e\u026f\u0001\u0000\u0000\u0000\u026fE\u0001\u0000\u0000"+ + "\u0000\u0270\u0272\u0003j5\u0000\u0271\u0270\u0001\u0000\u0000\u0000\u0271"+ + "\u0272\u0001\u0000\u0000\u0000\u0272\u0274\u0001\u0000\u0000\u0000\u0273"+ + "\u0275\u0003H$\u0000\u0274\u0273\u0001\u0000\u0000\u0000\u0274\u0275\u0001"+ + "\u0000\u0000\u0000\u0275\u0276\u0001\u0000\u0000\u0000\u0276\u0278\u0003"+ + "J%\u0000\u0277\u0279\u00038\u001c\u0000\u0278\u0277\u0001\u0000\u0000"+ + "\u0000\u0278\u0279\u0001\u0000\u0000\u0000\u0279G\u0001\u0000\u0000\u0000"+ + "\u027a\u027b\u0007\u0002\u0000\u0000\u027bI\u0001\u0000\u0000\u0000\u027c"+ + "\u027f\u0003\u0130\u0098\u0000\u027d\u027f\u0003\u0002\u0001\u0000\u027e"+ + "\u027c\u0001\u0000\u0000\u0000\u027e\u027d\u0001\u0000\u0000\u0000\u027f"+ + "K\u0001\u0000\u0000\u0000\u0280\u0282\u0005L\u0000\u0000\u0281\u0283\u0003"+ + "\u0004\u0002\u0000\u0282\u0281\u0001\u0000\u0000\u0000\u0282\u0283\u0001"+ + "\u0000\u0000\u0000\u0283\u0284\u0001\u0000\u0000\u0000\u0284\u0286\u0005"+ + "\u0006\u0000\u0000\u0285\u0287\u0003<\u001e\u0000\u0286\u0285\u0001\u0000"+ + "\u0000\u0000\u0286\u0287\u0001\u0000\u0000\u0000\u0287\u0288\u0001\u0000"+ + "\u0000\u0000\u0288\u028a\u0005\u0007\u0000\u0000\u0289\u028b\u00038\u001c"+ + "\u0000\u028a\u0289\u0001\u0000\u0000\u0000\u028a\u028b\u0001\u0000\u0000"+ + "\u0000\u028bM\u0001\u0000\u0000\u0000\u028c\u028d\u0005\u0004\u0000\u0000"+ + "\u028d\u028e\u0003\u0132\u0099\u0000\u028e\u028f\u0005\u0010\u0000\u0000"+ + "\u028f\u0290\u0007\u0003\u0000\u0000\u0290\u0291\u0005\u0005\u0000\u0000"+ + "\u0291\u0292\u00038\u001c\u0000\u0292O\u0001\u0000\u0000\u0000\u0293\u0295"+ + "\u0003\u0108\u0084\u0000\u0294\u0296\u0005\u000e\u0000\u0000\u0295\u0294"+ + "\u0001\u0000\u0000\u0000\u0295\u0296\u0001\u0000\u0000\u0000\u0296\u0297"+ + "\u0001\u0000\u0000\u0000\u0297\u0298\u0003:\u001d\u0000\u0298Q\u0001\u0000"+ + "\u0000\u0000\u0299\u029b\u0005l\u0000\u0000\u029a\u0299\u0001\u0000\u0000"+ + "\u0000\u029a\u029b\u0001\u0000\u0000\u0000\u029b\u029c\u0001\u0000\u0000"+ + "\u0000\u029c\u029d\u0005\u0081\u0000\u0000\u029d\u029f\u0003\u0132\u0099"+ + "\u0000\u029e\u02a0\u0003\u0004\u0002\u0000\u029f\u029e\u0001\u0000\u0000"+ + "\u0000\u029f\u02a0\u0001\u0000\u0000\u0000\u02a0\u02a1\u0001\u0000\u0000"+ + "\u0000\u02a1\u02a2\u0005\r\u0000\u0000\u02a2\u02a3\u0003\u0012\t\u0000"+ + "\u02a3\u02a4\u0003\u013a\u009d\u0000\u02a4S\u0001\u0000\u0000\u0000\u02a5"+ + "\u02a7\u0003H$\u0000\u02a6\u02a5\u0001\u0000\u0000\u0000\u02a6\u02a7\u0001"+ + "\u0000\u0000\u0000\u02a7\u02a8\u0001\u0000\u0000\u0000\u02a8\u02a9\u0005"+ + "\u0082\u0000\u0000\u02a9\u02ab\u0005\u0006\u0000\u0000\u02aa\u02ac\u0003"+ + "\u00f0x\u0000\u02ab\u02aa\u0001\u0000\u0000\u0000\u02ab\u02ac\u0001\u0000"+ + "\u0000\u0000\u02ac\u02ad\u0001\u0000\u0000\u0000\u02ad\u02b3\u0005\u0007"+ + "\u0000\u0000\u02ae\u02af\u0005\b\u0000\u0000\u02af\u02b0\u0003\u00f6{"+ + "\u0000\u02b0\u02b1\u0005\n\u0000\u0000\u02b1\u02b4\u0001\u0000\u0000\u0000"+ + "\u02b2\u02b4\u0005\u000b\u0000\u0000\u02b3\u02ae\u0001\u0000\u0000\u0000"+ + "\u02b3\u02b2\u0001\u0000\u0000\u0000\u02b3\u02b4\u0001\u0000\u0000\u0000"+ + "\u02b4U\u0001\u0000\u0000\u0000\u02b5\u02b7\u0005l\u0000\u0000\u02b6\u02b5"+ + "\u0001\u0000\u0000\u0000\u02b6\u02b7\u0001\u0000\u0000\u0000\u02b7\u02b9"+ + "\u0001\u0000\u0000\u0000\u02b8\u02ba\u0005\u0086\u0000\u0000\u02b9\u02b8"+ + "\u0001\u0000\u0000\u0000\u02b9\u02ba\u0001\u0000\u0000\u0000\u02ba\u02bb"+ + "\u0001\u0000\u0000\u0000\u02bb\u02bc\u0005r\u0000\u0000\u02bc\u02be\u0003"+ + "\u0132\u0099\u0000\u02bd\u02bf\u0003\u0004\u0002\u0000\u02be\u02bd\u0001"+ + "\u0000\u0000\u0000\u02be\u02bf\u0001\u0000\u0000\u0000\u02bf\u02c1\u0001"+ + "\u0000\u0000\u0000\u02c0\u02c2\u0003X,\u0000\u02c1\u02c0\u0001\u0000\u0000"+ + "\u0000\u02c1\u02c2\u0001\u0000\u0000\u0000\u02c2\u02c3\u0001\u0000\u0000"+ + "\u0000\u02c3\u02c5\u0003 \u0010\u0000\u02c4\u02c6\u0005\u000b\u0000\u0000"+ + "\u02c5\u02c4\u0001\u0000\u0000\u0000\u02c5\u02c6\u0001\u0000\u0000\u0000"+ + "\u02c6W\u0001\u0000\u0000\u0000\u02c7\u02c8\u0005i\u0000\u0000\u02c8\u02c9"+ + "\u0003Z-\u0000\u02c9Y\u0001\u0000\u0000\u0000\u02ca\u02cf\u0003\u001a"+ + "\r\u0000\u02cb\u02cc\u0005\f\u0000\u0000\u02cc\u02ce\u0003\u001a\r\u0000"+ + "\u02cd\u02cb\u0001\u0000\u0000\u0000\u02ce\u02d1\u0001\u0000\u0000\u0000"+ + "\u02cf\u02cd\u0001\u0000\u0000\u0000\u02cf\u02d0\u0001\u0000\u0000\u0000"+ + "\u02d0[\u0001\u0000\u0000\u0000\u02d1\u02cf\u0001\u0000\u0000\u0000\u02d2"+ + "\u02d4\u0005k\u0000\u0000\u02d3\u02d2\u0001\u0000\u0000\u0000\u02d3\u02d4"+ + "\u0001\u0000\u0000\u0000\u02d4\u02d5\u0001\u0000\u0000\u0000\u02d5\u02d6"+ + "\u0005h\u0000\u0000\u02d6\u02d7\u0003\u0132\u0099\u0000\u02d7\u02d9\u0005"+ + "\b\u0000\u0000\u02d8\u02da\u0003^/\u0000\u02d9\u02d8\u0001\u0000\u0000"+ + "\u0000\u02d9\u02da\u0001\u0000\u0000\u0000\u02da\u02db\u0001\u0000\u0000"+ + "\u0000\u02db\u02dc\u0005\n\u0000\u0000\u02dc]\u0001\u0000\u0000\u0000"+ + "\u02dd\u02df\u0003`0\u0000\u02de\u02e0\u0005\f\u0000\u0000\u02df\u02de"+ + "\u0001\u0000\u0000\u0000\u02df\u02e0\u0001\u0000\u0000\u0000\u02e0_\u0001"+ + "\u0000\u0000\u0000\u02e1\u02e6\u0003b1\u0000\u02e2\u02e3\u0005\f\u0000"+ + "\u0000\u02e3\u02e5\u0003b1\u0000\u02e4\u02e2\u0001\u0000\u0000\u0000\u02e5"+ + "\u02e8\u0001\u0000\u0000\u0000\u02e6\u02e4\u0001\u0000\u0000\u0000\u02e6"+ + "\u02e7\u0001\u0000\u0000\u0000\u02e7a\u0001\u0000\u0000\u0000\u02e8\u02e6"+ + "\u0001\u0000\u0000\u0000\u02e9\u02ec\u0003\u0108\u0084\u0000\u02ea\u02eb"+ + "\u0005\r\u0000\u0000\u02eb\u02ed\u0003\u0112\u0089\u0000\u02ec\u02ea\u0001"+ + "\u0000\u0000\u0000\u02ec\u02ed\u0001\u0000\u0000\u0000\u02edc\u0001\u0000"+ + "\u0000\u0000\u02ee\u02f0\u0005\u0086\u0000\u0000\u02ef\u02ee\u0001\u0000"+ + "\u0000\u0000\u02ef\u02f0\u0001\u0000\u0000\u0000\u02f0\u02f1\u0001\u0000"+ + "\u0000\u0000\u02f1\u02f2\u0005\u0083\u0000\u0000\u02f2\u02f3\u0003f3\u0000"+ + "\u02f3\u02f5\u0005\b\u0000\u0000\u02f4\u02f6\u0003z=\u0000\u02f5\u02f4"+ + "\u0001\u0000\u0000\u0000\u02f5\u02f6\u0001\u0000\u0000\u0000\u02f6\u02f7"+ + "\u0001\u0000\u0000\u0000\u02f7\u02f8\u0005\n\u0000\u0000\u02f8e\u0001"+ + "\u0000\u0000\u0000\u02f9\u0302\u0003\u0132\u0099\u0000\u02fa\u02fc\u0005"+ + "\u0012\u0000\u0000\u02fb\u02fa\u0001\u0000\u0000\u0000\u02fc\u02fd\u0001"+ + "\u0000\u0000\u0000\u02fd\u02fb\u0001\u0000\u0000\u0000\u02fd\u02fe\u0001"+ + "\u0000\u0000\u0000\u02fe\u02ff\u0001\u0000\u0000\u0000\u02ff\u0301\u0003"+ + "\u0132\u0099\u0000\u0300\u02fb\u0001\u0000\u0000\u0000\u0301\u0304\u0001"+ + "\u0000\u0000\u0000\u0302\u0300\u0001\u0000\u0000\u0000\u0302\u0303\u0001"+ + "\u0000\u0000\u0000\u0303g\u0001\u0000\u0000\u0000\u0304\u0302\u0001\u0000"+ + "\u0000\u0000\u0305\u0306\u0003\u0132\u0099\u0000\u0306\u0307\u0005\r\u0000"+ + "\u0000\u0307\u0308\u0003f3\u0000\u0308\u0309\u0005\u000b\u0000\u0000\u0309"+ + "i\u0001\u0000\u0000\u0000\u030a\u030c\u0003l6\u0000\u030b\u030a\u0001"+ + "\u0000\u0000\u0000\u030c\u030d\u0001\u0000\u0000\u0000\u030d\u030b\u0001"+ + "\u0000\u0000\u0000\u030d\u030e\u0001\u0000\u0000\u0000\u030ek\u0001\u0000"+ + "\u0000\u0000\u030f\u0312\u0005\u0089\u0000\u0000\u0310\u0313\u0003n7\u0000"+ + "\u0311\u0313\u0003p8\u0000\u0312\u0310\u0001\u0000\u0000\u0000\u0312\u0311"+ + "\u0001\u0000\u0000\u0000\u0313m\u0001\u0000\u0000\u0000\u0314\u0315\u0006"+ + "7\uffff\uffff\u0000\u0315\u031b\u0003\u0132\u0099\u0000\u0316\u0317\u0005"+ + "\u0006\u0000\u0000\u0317\u0318\u0003\u0112\u0089\u0000\u0318\u0319\u0005"+ + "\u0007\u0000\u0000\u0319\u031b\u0001\u0000\u0000\u0000\u031a\u0314\u0001"+ + "\u0000\u0000\u0000\u031a\u0316\u0001\u0000\u0000\u0000\u031b\u0321\u0001"+ + "\u0000\u0000\u0000\u031c\u031d\n\u0002\u0000\u0000\u031d\u031e\u0005\u0012"+ + "\u0000\u0000\u031e\u0320\u0003\u0130\u0098\u0000\u031f\u031c\u0001\u0000"+ + "\u0000\u0000\u0320\u0323\u0001\u0000\u0000\u0000\u0321\u031f\u0001\u0000"+ + "\u0000\u0000\u0321\u0322\u0001\u0000\u0000\u0000\u0322o\u0001\u0000\u0000"+ + "\u0000\u0323\u0321\u0001\u0000\u0000\u0000\u0324\u0325\u0003n7\u0000\u0325"+ + "\u0326\u0003\u010a\u0085\u0000\u0326q\u0001\u0000\u0000\u0000\u0327\u0329"+ + "\u0003\u00f8|\u0000\u0328\u0327\u0001\u0000\u0000\u0000\u0328\u0329\u0001"+ + "\u0000\u0000\u0000\u0329\u032a\u0001\u0000\u0000\u0000\u032a\u032b\u0005"+ + "\u0000\u0000\u0001\u032bs\u0001\u0000\u0000\u0000\u032c\u032e\u0005l\u0000"+ + "\u0000\u032d\u032c\u0001\u0000\u0000\u0000\u032d\u032e\u0001\u0000\u0000"+ + "\u0000\u032e\u032f\u0001\u0000\u0000\u0000\u032f\u0330\u0003v;\u0000\u0330"+ + "u\u0001\u0000\u0000\u0000\u0331\u034f\u0003x<\u0000\u0332\u034f\u0003"+ + "\u009cN\u0000\u0333\u034f\u0003~?\u0000\u0334\u034f\u0003\u0092I\u0000"+ + "\u0335\u034f\u0003\u00a2Q\u0000\u0336\u034f\u0003|>\u0000\u0337\u034f"+ + "\u0003\u00ceg\u0000\u0338\u034f\u0003\u00ccf\u0000\u0339\u034f\u0003\u00a4"+ + "R\u0000\u033a\u034f\u0003V+\u0000\u033b\u034f\u0003d2\u0000\u033c\u034f"+ + "\u0003\u00a6S\u0000\u033d\u034f\u0003\u00a8T\u0000\u033e\u034f\u0003\u00ac"+ + "V\u0000\u033f\u034f\u0003\u00aeW\u0000\u0340\u034f\u0003\u00b0X\u0000"+ + "\u0341\u034f\u0003\u00b2Y\u0000\u0342\u034f\u0003\u00b4Z\u0000\u0343\u034f"+ + "\u0003\u00c0`\u0000\u0344\u034f\u0003\u00b6[\u0000\u0345\u034f\u0003\u00c2"+ + "a\u0000\u0346\u034f\u0003\u00c4b\u0000\u0347\u034f\u0003\u00cae\u0000"+ + "\u0348\u034f\u0003\u011a\u008d\u0000\u0349\u034f\u0003\u00e2q\u0000\u034a"+ + "\u034f\u0003R)\u0000\u034b\u034f\u0003\\.\u0000\u034c\u034d\u0005l\u0000"+ + "\u0000\u034d\u034f\u0003v;\u0000\u034e\u0331\u0001\u0000\u0000\u0000\u034e"+ + "\u0332\u0001\u0000\u0000\u0000\u034e\u0333\u0001\u0000\u0000\u0000\u034e"+ + "\u0334\u0001\u0000\u0000\u0000\u034e\u0335\u0001\u0000\u0000\u0000\u034e"+ + "\u0336\u0001\u0000\u0000\u0000\u034e\u0337\u0001\u0000\u0000\u0000\u034e"+ + "\u0338\u0001\u0000\u0000\u0000\u034e\u0339\u0001\u0000\u0000\u0000\u034e"+ + "\u033a\u0001\u0000\u0000\u0000\u034e\u033b\u0001\u0000\u0000\u0000\u034e"+ + "\u033c\u0001\u0000\u0000\u0000\u034e\u033d\u0001\u0000\u0000\u0000\u034e"+ + "\u033e\u0001\u0000\u0000\u0000\u034e\u033f\u0001\u0000\u0000\u0000\u034e"+ + "\u0340\u0001\u0000\u0000\u0000\u034e\u0341\u0001\u0000\u0000\u0000\u034e"+ + "\u0342\u0001\u0000\u0000\u0000\u034e\u0343\u0001\u0000\u0000\u0000\u034e"+ + "\u0344\u0001\u0000\u0000\u0000\u034e\u0345\u0001\u0000\u0000\u0000\u034e"+ + "\u0346\u0001\u0000\u0000\u0000\u034e\u0347\u0001\u0000\u0000\u0000\u034e"+ + "\u0348\u0001\u0000\u0000\u0000\u034e\u0349\u0001\u0000\u0000\u0000\u034e"+ + "\u034a\u0001\u0000\u0000\u0000\u034e\u034b\u0001\u0000\u0000\u0000\u034e"+ + "\u034c\u0001\u0000\u0000\u0000\u034fw\u0001\u0000\u0000\u0000\u0350\u0352"+ + "\u0005\b\u0000\u0000\u0351\u0353\u0003z=\u0000\u0352\u0351\u0001\u0000"+ + "\u0000\u0000\u0352\u0353\u0001\u0000\u0000\u0000\u0353\u0354\u0001\u0000"+ + "\u0000\u0000\u0354\u0355\u0005\n\u0000\u0000\u0355y\u0001\u0000\u0000"+ + "\u0000\u0356\u0358\u0003v;\u0000\u0357\u0356\u0001\u0000\u0000\u0000\u0358"+ + "\u0359\u0001\u0000\u0000\u0000\u0359\u0357\u0001\u0000\u0000\u0000\u0359"+ + "\u035a\u0001\u0000\u0000\u0000\u035a{\u0001\u0000\u0000\u0000\u035b\u0360"+ + "\u0005\u0087\u0000\u0000\u035c\u035d\u0003\u0132\u0099\u0000\u035d\u035e"+ + "\u0003:\u001d\u0000\u035e\u0361\u0001\u0000\u0000\u0000\u035f\u0361\u0003"+ + "\u009cN\u0000\u0360\u035c\u0001\u0000\u0000\u0000\u0360\u035f\u0001\u0000"+ + "\u0000\u0000\u0361\u0362\u0001\u0000\u0000\u0000\u0362\u0363\u0003\u013a"+ + "\u009d\u0000\u0363}\u0001\u0000\u0000\u0000\u0364\u0365\u0005m\u0000\u0000"+ + "\u0365\u0366\u0003\u0080@\u0000\u0366\u007f\u0001\u0000\u0000\u0000\u0367"+ + "\u0369\u0003\u008aE\u0000\u0368\u0367\u0001\u0000\u0000\u0000\u0368\u0369"+ + "\u0001\u0000\u0000\u0000\u0369\u036c\u0001\u0000\u0000\u0000\u036a\u036d"+ + "\u0003\u008cF\u0000\u036b\u036d\u0003\u0082A\u0000\u036c\u036a\u0001\u0000"+ + "\u0000\u0000\u036c\u036b\u0001\u0000\u0000\u0000\u036d\u036e\u0001\u0000"+ + "\u0000\u0000\u036e\u036f\u0003\u008eG\u0000\u036f\u0370\u0003\u013a\u009d"+ + "\u0000\u0370\u0374\u0001\u0000\u0000\u0000\u0371\u0372\u0005\u008b\u0000"+ + "\u0000\u0372\u0374\u0003\u013a\u009d\u0000\u0373\u0368\u0001\u0000\u0000"+ + "\u0000\u0373\u0371\u0001\u0000\u0000\u0000\u0374\u0081\u0001\u0000\u0000"+ + "\u0000\u0375\u037b\u0005\b\u0000\u0000\u0376\u0377\u0003\u0084B\u0000"+ + "\u0377\u0378\u0005\f\u0000\u0000\u0378\u037a\u0001\u0000\u0000\u0000\u0379"+ + "\u0376\u0001\u0000\u0000\u0000\u037a\u037d\u0001\u0000\u0000\u0000\u037b"+ + "\u0379\u0001\u0000\u0000\u0000\u037b\u037c\u0001\u0000\u0000\u0000\u037c"+ + "\u0382\u0001\u0000\u0000\u0000\u037d\u037b\u0001\u0000\u0000\u0000\u037e"+ + "\u0380\u0003\u0084B\u0000\u037f\u0381\u0005\f\u0000\u0000\u0380\u037f"+ + "\u0001\u0000\u0000\u0000\u0380\u0381\u0001\u0000\u0000\u0000\u0381\u0383"+ + "\u0001\u0000\u0000\u0000\u0382\u037e\u0001\u0000\u0000\u0000\u0382\u0383"+ + "\u0001\u0000\u0000\u0000\u0383\u0384\u0001\u0000\u0000\u0000\u0384\u0385"+ + "\u0005\n\u0000\u0000\u0385\u0083\u0001\u0000\u0000\u0000\u0386\u0389\u0003"+ + "\u0086C\u0000\u0387\u0388\u0005`\u0000\u0000\u0388\u038a\u0003\u0088D"+ + "\u0000\u0389\u0387\u0001\u0000\u0000\u0000\u0389\u038a\u0001\u0000\u0000"+ + "\u0000\u038a\u0085\u0001\u0000\u0000\u0000\u038b\u038e\u0003\u0130\u0098"+ + "\u0000\u038c\u038e\u0005\u008b\u0000\u0000\u038d\u038b\u0001\u0000\u0000"+ + "\u0000\u038d\u038c\u0001\u0000\u0000\u0000\u038e\u0087\u0001\u0000\u0000"+ + "\u0000\u038f\u0390\u0007\u0004\u0000\u0000\u0390\u0089\u0001\u0000\u0000"+ + "\u0000\u0391\u0392\u0003\u0090H\u0000\u0392\u0393\u0005\f\u0000\u0000"+ + "\u0393\u008b\u0001\u0000\u0000\u0000\u0394\u0397\u0005\u0019\u0000\u0000"+ + "\u0395\u0397\u0003\u0130\u0098\u0000\u0396\u0394\u0001\u0000\u0000\u0000"+ + "\u0396\u0395\u0001\u0000\u0000\u0000\u0397\u039a\u0001\u0000\u0000\u0000"+ + "\u0398\u0399\u0005`\u0000\u0000\u0399\u039b\u0003\u0130\u0098\u0000\u039a"+ + "\u0398\u0001\u0000\u0000\u0000\u039a\u039b\u0001\u0000\u0000\u0000\u039b"+ + "\u008d\u0001\u0000\u0000\u0000\u039c\u039d\u0005a\u0000\u0000\u039d\u039e"+ + "\u0005\u008b\u0000\u0000\u039e\u008f\u0001\u0000\u0000\u0000\u039f\u03a2"+ + "\u0003\u0130\u0098\u0000\u03a0\u03a1\u0005`\u0000\u0000\u03a1\u03a3\u0003"+ + "\u0130\u0098\u0000\u03a2\u03a0\u0001\u0000\u0000\u0000\u03a2\u03a3\u0001"+ + "\u0000\u0000\u0000\u03a3\u0091\u0001\u0000\u0000\u0000\u03a4\u03a6\u0005"+ + "l\u0000\u0000\u03a5\u03a7\u0005Z\u0000\u0000\u03a6\u03a5\u0001\u0000\u0000"+ + "\u0000\u03a6\u03a7\u0001\u0000\u0000\u0000\u03a7\u03aa\u0001\u0000\u0000"+ + "\u0000\u03a8\u03ab\u0003\u0094J\u0000\u03a9\u03ab\u0003\u009aM\u0000\u03aa"+ + "\u03a8\u0001\u0000\u0000\u0000\u03aa\u03a9\u0001\u0000\u0000\u0000\u03ab"+ + "\u03ac\u0001\u0000\u0000\u0000\u03ac\u03ad\u0003\u013a\u009d\u0000\u03ad"+ + "\u03b4\u0001\u0000\u0000\u0000\u03ae\u03af\u0005l\u0000\u0000\u03af\u03b0"+ + "\u0005Z\u0000\u0000\u03b0\u03b1\u0003\u0112\u0089\u0000\u03b1\u03b2\u0003"+ + "\u013a\u009d\u0000\u03b2\u03b4\u0001\u0000\u0000\u0000\u03b3\u03a4\u0001"+ + "\u0000\u0000\u0000\u03b3\u03ae\u0001\u0000\u0000\u0000\u03b4\u0093\u0001"+ + "\u0000\u0000\u0000\u03b5\u03b6\u0003\u008cF\u0000\u03b6\u03b7\u0003\u008e"+ + "G\u0000\u03b7\u03b8\u0003\u013a\u009d\u0000\u03b8\u03c0\u0001\u0000\u0000"+ + "\u0000\u03b9\u03bb\u0003\u0096K\u0000\u03ba\u03bc\u0003\u008eG\u0000\u03bb"+ + "\u03ba\u0001\u0000\u0000\u0000\u03bb\u03bc\u0001\u0000\u0000\u0000\u03bc"+ + "\u03bd\u0001\u0000\u0000\u0000\u03bd\u03be\u0003\u013a\u009d\u0000\u03be"+ + "\u03c0\u0001\u0000\u0000\u0000\u03bf\u03b5\u0001\u0000\u0000\u0000\u03bf"+ + "\u03b9\u0001\u0000\u0000\u0000\u03c0\u0095\u0001\u0000\u0000\u0000\u03c1"+ + "\u03c7\u0005\b\u0000\u0000\u03c2\u03c3\u0003\u0098L\u0000\u03c3\u03c4"+ + "\u0005\f\u0000\u0000\u03c4\u03c6\u0001\u0000\u0000\u0000\u03c5\u03c2\u0001"+ + "\u0000\u0000\u0000\u03c6\u03c9\u0001\u0000\u0000\u0000\u03c7\u03c5\u0001"+ + "\u0000\u0000\u0000\u03c7\u03c8\u0001\u0000\u0000\u0000\u03c8\u03ce\u0001"+ + "\u0000\u0000\u0000\u03c9\u03c7\u0001\u0000\u0000\u0000\u03ca\u03cc\u0003"+ + "\u0098L\u0000\u03cb\u03cd\u0005\f\u0000\u0000\u03cc\u03cb\u0001\u0000"+ + "\u0000\u0000\u03cc\u03cd\u0001\u0000\u0000\u0000\u03cd\u03cf\u0001\u0000"+ + "\u0000\u0000\u03ce\u03ca\u0001\u0000\u0000\u0000\u03ce\u03cf\u0001\u0000"+ + "\u0000\u0000\u03cf\u03d0\u0001\u0000\u0000\u0000\u03d0\u03d1\u0005\n\u0000"+ + "\u0000\u03d1\u0097\u0001\u0000\u0000\u0000\u03d2\u03d5\u0003\u0086C\u0000"+ + "\u03d3\u03d4\u0005`\u0000\u0000\u03d4\u03d6\u0003\u0086C\u0000\u03d5\u03d3"+ + "\u0001\u0000\u0000\u0000\u03d5\u03d6\u0001\u0000\u0000\u0000\u03d6\u0099"+ + "\u0001\u0000\u0000\u0000\u03d7\u03db\u0003\u009cN\u0000\u03d8\u03db\u0003"+ + "\u00ceg\u0000\u03d9\u03db\u0003\u00ccf\u0000\u03da\u03d7\u0001\u0000\u0000"+ + "\u0000\u03da\u03d8\u0001\u0000\u0000\u0000\u03da\u03d9\u0001\u0000\u0000"+ + "\u0000\u03db\u009b\u0001\u0000\u0000\u0000\u03dc\u03de\u0003\u0002\u0001"+ + "\u0000\u03dd\u03df\u00038\u001c\u0000\u03de\u03dd\u0001\u0000\u0000\u0000"+ + "\u03de\u03df\u0001\u0000\u0000\u0000\u03df\u03e0\u0001\u0000\u0000\u0000"+ + "\u03e0\u03e2\u0003\u0000\u0000\u0000\u03e1\u03e3\u0005\u000b\u0000\u0000"+ + "\u03e2\u03e1\u0001\u0000\u0000\u0000\u03e2\u03e3\u0001\u0000\u0000\u0000"+ + "\u03e3\u03fa\u0001\u0000\u0000\u0000\u03e4\u03e6\u0003H$\u0000\u03e5\u03e4"+ + "\u0001\u0000\u0000\u0000\u03e5\u03e6\u0001\u0000\u0000\u0000\u03e6\u03e8"+ + "\u0001\u0000\u0000\u0000\u03e7\u03e9\u0003\u00aaU\u0000\u03e8\u03e7\u0001"+ + "\u0000\u0000\u0000\u03e8\u03e9\u0001\u0000\u0000\u0000\u03e9\u03eb\u0001"+ + "\u0000\u0000\u0000\u03ea\u03ec\u0005b\u0000\u0000\u03eb\u03ea\u0001\u0000"+ + "\u0000\u0000\u03eb\u03ec\u0001\u0000\u0000\u0000\u03ec\u03ed\u0001\u0000"+ + "\u0000\u0000\u03ed\u03ef\u0003\u009eO\u0000\u03ee\u03f0\u0005\u000b\u0000"+ + "\u0000\u03ef\u03ee\u0001\u0000\u0000\u0000\u03ef\u03f0\u0001\u0000\u0000"+ + "\u0000\u03f0\u03fa\u0001\u0000\u0000\u0000\u03f1\u03f3\u0005\u0086\u0000"+ + "\u0000\u03f2\u03f4\u0003\u00aaU\u0000\u03f3\u03f2\u0001\u0000\u0000\u0000"+ + "\u03f3\u03f4\u0001\u0000\u0000\u0000\u03f4\u03f5\u0001\u0000\u0000\u0000"+ + "\u03f5\u03f7\u0003\u009eO\u0000\u03f6\u03f8\u0005\u000b\u0000\u0000\u03f7"+ + "\u03f6\u0001\u0000\u0000\u0000\u03f7\u03f8\u0001\u0000\u0000\u0000\u03f8"+ + "\u03fa\u0001\u0000\u0000\u0000\u03f9\u03dc\u0001\u0000\u0000\u0000\u03f9"+ + "\u03e5\u0001\u0000\u0000\u0000\u03f9\u03f1\u0001\u0000\u0000\u0000\u03fa"+ + "\u009d\u0001\u0000\u0000\u0000\u03fb\u0400\u0003\u00a0P\u0000\u03fc\u03fd"+ + "\u0005\f\u0000\u0000\u03fd\u03ff\u0003\u00a0P\u0000\u03fe\u03fc\u0001"+ + "\u0000\u0000\u0000\u03ff\u0402\u0001\u0000\u0000\u0000\u0400\u03fe\u0001"+ + "\u0000\u0000\u0000\u0400\u0401\u0001\u0000\u0000\u0000\u0401\u009f\u0001"+ + "\u0000\u0000\u0000\u0402\u0400\u0001\u0000\u0000\u0000\u0403\u0407\u0003"+ + "\u0134\u009a\u0000\u0404\u0407\u0003\u00fa}\u0000\u0405\u0407\u0003\u0100"+ + "\u0080\u0000\u0406\u0403\u0001\u0000\u0000\u0000\u0406\u0404\u0001\u0000"+ + "\u0000\u0000\u0406\u0405\u0001\u0000\u0000\u0000\u0407\u0409\u0001\u0000"+ + "\u0000\u0000\u0408\u040a\u00038\u001c\u0000\u0409\u0408\u0001\u0000\u0000"+ + "\u0000\u0409\u040a\u0001\u0000\u0000\u0000\u040a\u040c\u0001\u0000\u0000"+ + "\u0000\u040b\u040d\u0003\u0112\u0089\u0000\u040c\u040b\u0001\u0000\u0000"+ + "\u0000\u040c\u040d\u0001\u0000\u0000\u0000\u040d\u0413\u0001\u0000\u0000"+ + "\u0000\u040e\u0410\u0005\r\u0000\u0000\u040f\u0411\u0003\u0004\u0002\u0000"+ + "\u0410\u040f\u0001\u0000\u0000\u0000\u0410\u0411\u0001\u0000\u0000\u0000"+ + "\u0411\u0412\u0001\u0000\u0000\u0000\u0412\u0414\u0003\u0112\u0089\u0000"+ + "\u0413\u040e\u0001\u0000\u0000\u0000\u0413\u0414\u0001\u0000\u0000\u0000"+ + "\u0414\u00a1\u0001\u0000\u0000\u0000\u0415\u0416\u0005\u000b\u0000\u0000"+ + "\u0416\u00a3\u0001\u0000\u0000\u0000\u0417\u0418\u0004R\u0006\u0000\u0418"+ + "\u041a\u0003\u0110\u0088\u0000\u0419\u041b\u0005\u000b\u0000\u0000\u041a"+ + "\u0419\u0001\u0000\u0000\u0000\u041a\u041b\u0001\u0000\u0000\u0000\u041b"+ + "\u00a5\u0001\u0000\u0000\u0000\u041c\u041d\u0005[\u0000\u0000\u041d\u041e"+ + "\u0005\u0006\u0000\u0000\u041e\u041f\u0003\u0110\u0088\u0000\u041f\u0420"+ + "\u0005\u0007\u0000\u0000\u0420\u0423\u0003v;\u0000\u0421\u0422\u0005K"+ + "\u0000\u0000\u0422\u0424\u0003v;\u0000\u0423\u0421\u0001\u0000\u0000\u0000"+ + "\u0423\u0424\u0001\u0000\u0000\u0000\u0424\u00a7\u0001\u0000\u0000\u0000"+ + "\u0425\u0426\u0005G\u0000\u0000\u0426\u0427\u0003v;\u0000\u0427\u0428"+ + "\u0005U\u0000\u0000\u0428\u0429\u0005\u0006\u0000\u0000\u0429\u042a\u0003"+ + "\u0110\u0088\u0000\u042a\u042b\u0005\u0007\u0000\u0000\u042b\u042c\u0003"+ + "\u013a\u009d\u0000\u042c\u0484\u0001\u0000\u0000\u0000\u042d\u042e\u0005"+ + "U\u0000\u0000\u042e\u042f\u0005\u0006\u0000\u0000\u042f\u0430\u0003\u0110"+ + "\u0088\u0000\u0430\u0431\u0005\u0007\u0000\u0000\u0431\u0432\u0003v;\u0000"+ + "\u0432\u0484\u0001\u0000\u0000\u0000\u0433\u0434\u0005S\u0000\u0000\u0434"+ + "\u0436\u0005\u0006\u0000\u0000\u0435\u0437\u0003\u0110\u0088\u0000\u0436"+ + "\u0435\u0001\u0000\u0000\u0000\u0436\u0437\u0001\u0000\u0000\u0000\u0437"+ + "\u0438\u0001\u0000\u0000\u0000\u0438\u043a\u0005\u000b\u0000\u0000\u0439"+ + "\u043b\u0003\u0110\u0088\u0000\u043a\u0439\u0001\u0000\u0000\u0000\u043a"+ + "\u043b\u0001\u0000\u0000\u0000\u043b\u043c\u0001\u0000\u0000\u0000\u043c"+ + "\u043e\u0005\u000b\u0000\u0000\u043d\u043f\u0003\u0110\u0088\u0000\u043e"+ + "\u043d\u0001\u0000\u0000\u0000\u043e\u043f\u0001\u0000\u0000\u0000\u043f"+ + "\u0440\u0001\u0000\u0000\u0000\u0440\u0441\u0005\u0007\u0000\u0000\u0441"+ + "\u0484\u0003v;\u0000\u0442\u0443\u0005S\u0000\u0000\u0443\u0444\u0005"+ + "\u0006\u0000\u0000\u0444\u0445\u0003\u00aaU\u0000\u0445\u0446\u0003\u009e"+ + "O\u0000\u0446\u0448\u0005\u000b\u0000\u0000\u0447\u0449\u0003\u0110\u0088"+ + "\u0000\u0448\u0447\u0001\u0000\u0000\u0000\u0448\u0449\u0001\u0000\u0000"+ + "\u0000\u0449\u044a\u0001\u0000\u0000\u0000\u044a\u044c\u0005\u000b\u0000"+ + "\u0000\u044b\u044d\u0003\u0110\u0088\u0000\u044c\u044b\u0001\u0000\u0000"+ + "\u0000\u044c\u044d\u0001\u0000\u0000\u0000\u044d\u044e\u0001\u0000\u0000"+ + "\u0000\u044e\u044f\u0005\u0007\u0000\u0000\u044f\u0450\u0003v;\u0000\u0450"+ + "\u0484\u0001\u0000\u0000\u0000\u0451\u0452\u0005S\u0000\u0000\u0452\u0453"+ + "\u0005\u0006\u0000\u0000\u0453\u0454\u0003\u0112\u0089\u0000\u0454\u0455"+ + "\u0005^\u0000\u0000\u0455\u0456\u0003\u0110\u0088\u0000\u0456\u0457\u0005"+ + "\u0007\u0000\u0000\u0457\u0458\u0003v;\u0000\u0458\u0484\u0001\u0000\u0000"+ + "\u0000\u0459\u045a\u0005S\u0000\u0000\u045a\u045b\u0005\u0006\u0000\u0000"+ + "\u045b\u045c\u0003\u00aaU\u0000\u045c\u045d\u0003\u00a0P\u0000\u045d\u045e"+ + "\u0005^\u0000\u0000\u045e\u045f\u0003\u0110\u0088\u0000\u045f\u0460\u0005"+ + "\u0007\u0000\u0000\u0460\u0461\u0003v;\u0000\u0461\u0484\u0001\u0000\u0000"+ + "\u0000\u0462\u0464\u0005S\u0000\u0000\u0463\u0465\u0005d\u0000\u0000\u0464"+ + "\u0463\u0001\u0000\u0000\u0000\u0464\u0465\u0001\u0000\u0000\u0000\u0465"+ + "\u0466\u0001\u0000\u0000\u0000\u0466\u0467\u0005\u0006\u0000\u0000\u0467"+ + "\u0468\u0003\u0112\u0089\u0000\u0468\u0469\u0003\u0132\u0099\u0000\u0469"+ + "\u046a\u0004T\u0007\u0000\u046a\u046d\u0003\u0110\u0088\u0000\u046b\u046c"+ + "\u0005`\u0000\u0000\u046c\u046e\u0003\u0012\t\u0000\u046d\u046b\u0001"+ + "\u0000\u0000\u0000\u046d\u046e\u0001\u0000\u0000\u0000\u046e\u046f\u0001"+ + "\u0000\u0000\u0000\u046f\u0470\u0005\u0007\u0000\u0000\u0470\u0471\u0003"+ + "v;\u0000\u0471\u0484\u0001\u0000\u0000\u0000\u0472\u0474\u0005S\u0000"+ + "\u0000\u0473\u0475\u0005d\u0000\u0000\u0474\u0473\u0001\u0000\u0000\u0000"+ + "\u0474\u0475\u0001\u0000\u0000\u0000\u0475\u0476\u0001\u0000\u0000\u0000"+ + "\u0476\u0477\u0005\u0006\u0000\u0000\u0477\u0478\u0003\u00aaU\u0000\u0478"+ + "\u0479\u0003\u00a0P\u0000\u0479\u047a\u0003\u0132\u0099\u0000\u047a\u047b"+ + "\u0004T\b\u0000\u047b\u047e\u0003\u0110\u0088\u0000\u047c\u047d\u0005"+ + "`\u0000\u0000\u047d\u047f\u0003\u0012\t\u0000\u047e\u047c\u0001\u0000"+ + "\u0000\u0000\u047e\u047f\u0001\u0000\u0000\u0000\u047f\u0480\u0001\u0000"+ + "\u0000\u0000\u0480\u0481\u0005\u0007\u0000\u0000\u0481\u0482\u0003v;\u0000"+ + "\u0482\u0484\u0001\u0000\u0000\u0000\u0483\u0425\u0001\u0000\u0000\u0000"+ + "\u0483\u042d\u0001\u0000\u0000\u0000\u0483\u0433\u0001\u0000\u0000\u0000"+ + "\u0483\u0442\u0001\u0000\u0000\u0000\u0483\u0451\u0001\u0000\u0000\u0000"+ + "\u0483\u0459\u0001\u0000\u0000\u0000\u0483\u0462\u0001\u0000\u0000\u0000"+ + "\u0483\u0472\u0001\u0000\u0000\u0000\u0484\u00a9\u0001\u0000\u0000\u0000"+ + "\u0485\u0486\u0007\u0005\u0000\u0000\u0486\u00ab\u0001\u0000\u0000\u0000"+ + "\u0487\u048a\u0005R\u0000\u0000\u0488\u0489\u0004V\t\u0000\u0489\u048b"+ + "\u0003\u0132\u0099\u0000\u048a\u0488\u0001\u0000\u0000\u0000\u048a\u048b"+ + "\u0001\u0000\u0000\u0000\u048b\u048c\u0001\u0000\u0000\u0000\u048c\u048d"+ + "\u0003\u013a\u009d\u0000\u048d\u00ad\u0001\u0000\u0000\u0000\u048e\u0491"+ + "\u0005F\u0000\u0000\u048f\u0490\u0004W\n\u0000\u0490\u0492\u0003\u0132"+ + "\u0099\u0000\u0491\u048f\u0001\u0000\u0000\u0000\u0491\u0492\u0001\u0000"+ + "\u0000\u0000\u0492\u0493\u0001\u0000\u0000\u0000\u0493\u0494\u0003\u013a"+ + "\u009d\u0000\u0494\u00af\u0001\u0000\u0000\u0000\u0495\u0498\u0005P\u0000"+ + "\u0000\u0496\u0497\u0004X\u000b\u0000\u0497\u0499\u0003\u0110\u0088\u0000"+ + "\u0498\u0496\u0001\u0000\u0000\u0000\u0498\u0499\u0001\u0000\u0000\u0000"+ + "\u0499\u049a\u0001\u0000\u0000\u0000\u049a\u049b\u0003\u013a\u009d\u0000"+ + "\u049b\u00b1\u0001\u0000\u0000\u0000\u049c\u049f\u0007\u0006\u0000\u0000"+ + "\u049d\u049e\u0004Y\f\u0000\u049e\u04a0\u0003\u0110\u0088\u0000\u049f"+ + "\u049d\u0001\u0000\u0000\u0000\u049f\u04a0\u0001\u0000\u0000\u0000\u04a0"+ + "\u04a1\u0001\u0000\u0000\u0000\u04a1\u04a2\u0003\u013a\u009d\u0000\u04a2"+ + "\u00b3\u0001\u0000\u0000\u0000\u04a3\u04a4\u0005Y\u0000\u0000\u04a4\u04a5"+ + "\u0005\u0006\u0000\u0000\u04a5\u04a6\u0003\u0110\u0088\u0000\u04a6\u04a7"+ + "\u0005\u0007\u0000\u0000\u04a7\u04a8\u0003v;\u0000\u04a8\u00b5\u0001\u0000"+ + "\u0000\u0000\u04a9\u04aa\u0005T\u0000\u0000\u04aa\u04ab\u0005\u0006\u0000"+ + "\u0000\u04ab\u04ac\u0003\u0110\u0088\u0000\u04ac\u04ad\u0005\u0007\u0000"+ + "\u0000\u04ad\u04ae\u0003\u00b8\\\u0000\u04ae\u00b7\u0001\u0000\u0000\u0000"+ + "\u04af\u04b1\u0005\b\u0000\u0000\u04b0\u04b2\u0003\u00ba]\u0000\u04b1"+ + "\u04b0\u0001\u0000\u0000\u0000\u04b1\u04b2\u0001\u0000\u0000\u0000\u04b2"+ + "\u04b7\u0001\u0000\u0000\u0000\u04b3\u04b5\u0003\u00be_\u0000\u04b4\u04b6"+ + "\u0003\u00ba]\u0000\u04b5\u04b4\u0001\u0000\u0000\u0000\u04b5\u04b6\u0001"+ + "\u0000\u0000\u0000\u04b6\u04b8\u0001\u0000\u0000\u0000\u04b7\u04b3\u0001"+ + "\u0000\u0000\u0000\u04b7\u04b8\u0001\u0000\u0000\u0000\u04b8\u04b9\u0001"+ + "\u0000\u0000\u0000\u04b9\u04ba\u0005\n\u0000\u0000\u04ba\u00b9\u0001\u0000"+ + "\u0000\u0000\u04bb\u04bd\u0003\u00bc^\u0000\u04bc\u04bb\u0001\u0000\u0000"+ + "\u0000\u04bd\u04be\u0001\u0000\u0000\u0000\u04be\u04bc\u0001\u0000\u0000"+ + "\u0000\u04be\u04bf\u0001\u0000\u0000\u0000\u04bf\u00bb\u0001\u0000\u0000"+ + "\u0000\u04c0\u04c1\u0005J\u0000\u0000\u04c1\u04c2\u0003\u0110\u0088\u0000"+ + "\u04c2\u04c4\u0005\u0010\u0000\u0000\u04c3\u04c5\u0003z=\u0000\u04c4\u04c3"+ + "\u0001\u0000\u0000\u0000\u04c4\u04c5\u0001\u0000\u0000\u0000\u04c5\u00bd"+ + "\u0001\u0000\u0000\u0000\u04c6\u04c7\u0005Z\u0000\u0000\u04c7\u04c9\u0005"+ + "\u0010\u0000\u0000\u04c8\u04ca\u0003z=\u0000\u04c9\u04c8\u0001\u0000\u0000"+ + "\u0000\u04c9\u04ca\u0001\u0000\u0000\u0000\u04ca\u00bf\u0001\u0000\u0000"+ + "\u0000\u04cb\u04cc\u0003\u0132\u0099\u0000\u04cc\u04cd\u0005\u0010\u0000"+ + "\u0000\u04cd\u04ce\u0003v;\u0000\u04ce\u00c1\u0001\u0000\u0000\u0000\u04cf"+ + "\u04d0\u0005\\\u0000\u0000\u04d0\u04d1\u0004a\r\u0000\u04d1\u04d2\u0003"+ + "\u0110\u0088\u0000\u04d2\u04d3\u0003\u013a\u009d\u0000\u04d3\u00c3\u0001"+ + "\u0000\u0000\u0000\u04d4\u04d5\u0005_\u0000\u0000\u04d5\u04db\u0003x<"+ + "\u0000\u04d6\u04d8\u0003\u00c6c\u0000\u04d7\u04d9\u0003\u00c8d\u0000\u04d8"+ + "\u04d7\u0001\u0000\u0000\u0000\u04d8\u04d9\u0001\u0000\u0000\u0000\u04d9"+ + "\u04dc\u0001\u0000\u0000\u0000\u04da\u04dc\u0003\u00c8d\u0000\u04db\u04d6"+ + "\u0001\u0000\u0000\u0000\u04db\u04da\u0001\u0000\u0000\u0000\u04dc\u00c5"+ + "\u0001\u0000\u0000\u0000\u04dd\u04e5\u0005N\u0000\u0000\u04de\u04df\u0005"+ + "\u0006\u0000\u0000\u04df\u04e1\u0003\u0132\u0099\u0000\u04e0\u04e2\u0003"+ + "8\u001c\u0000\u04e1\u04e0\u0001\u0000\u0000\u0000\u04e1\u04e2\u0001\u0000"+ + "\u0000\u0000\u04e2\u04e3\u0001\u0000\u0000\u0000\u04e3\u04e4\u0005\u0007"+ + "\u0000\u0000\u04e4\u04e6\u0001\u0000\u0000\u0000\u04e5\u04de\u0001\u0000"+ + "\u0000\u0000\u04e5\u04e6\u0001\u0000\u0000\u0000\u04e6\u04e7\u0001\u0000"+ + "\u0000\u0000\u04e7\u04e8\u0003x<\u0000\u04e8\u00c7\u0001\u0000\u0000\u0000"+ + "\u04e9\u04ea\u0005O\u0000\u0000\u04ea\u04eb\u0003x<\u0000\u04eb\u00c9"+ + "\u0001\u0000\u0000\u0000\u04ec\u04ed\u0005V\u0000\u0000\u04ed\u04ee\u0003"+ + "\u013a\u009d\u0000\u04ee\u00cb\u0001\u0000\u0000\u0000\u04ef\u04f1\u0005"+ + "c\u0000\u0000\u04f0\u04ef\u0001\u0000\u0000\u0000\u04f0\u04f1\u0001\u0000"+ + "\u0000\u0000\u04f1\u04f2\u0001\u0000\u0000\u0000\u04f2\u04f4\u0005W\u0000"+ + "\u0000\u04f3\u04f5\u0005\u0019\u0000\u0000\u04f4\u04f3\u0001\u0000\u0000"+ + "\u0000\u04f4\u04f5\u0001\u0000\u0000\u0000\u04f5\u04f6\u0001\u0000\u0000"+ + "\u0000\u04f6\u04f7\u0003\u0132\u0099\u0000\u04f7\u04fd\u0003:\u001d\u0000"+ + "\u04f8\u04f9\u0005\b\u0000\u0000\u04f9\u04fa\u0003\u00f6{\u0000\u04fa"+ + "\u04fb\u0005\n\u0000\u0000\u04fb\u04fe\u0001\u0000\u0000\u0000\u04fc\u04fe"+ + "\u0005\u000b\u0000\u0000\u04fd\u04f8\u0001\u0000\u0000\u0000\u04fd\u04fc"+ + "\u0001\u0000\u0000\u0000\u04fe\u00cd\u0001\u0000\u0000\u0000\u04ff\u0501"+ + "\u0003j5\u0000\u0500\u04ff\u0001\u0000\u0000\u0000\u0500\u0501\u0001\u0000"+ + "\u0000\u0000\u0501\u0506\u0001\u0000\u0000\u0000\u0502\u0504\u0005l\u0000"+ + "\u0000\u0503\u0505\u0005Z\u0000\u0000\u0504\u0503\u0001\u0000\u0000\u0000"+ + "\u0504\u0505\u0001\u0000\u0000\u0000\u0505\u0507\u0001\u0000\u0000\u0000"+ + "\u0506\u0502\u0001\u0000\u0000\u0000\u0506\u0507\u0001\u0000\u0000\u0000"+ + "\u0507\u0509\u0001\u0000\u0000\u0000\u0508\u050a\u0005\u0087\u0000\u0000"+ + "\u0509\u0508\u0001\u0000\u0000\u0000\u0509\u050a\u0001\u0000\u0000\u0000"+ + "\u050a\u050b\u0001\u0000\u0000\u0000\u050b\u050c\u0005g\u0000\u0000\u050c"+ + "\u050e\u0003\u0132\u0099\u0000\u050d\u050f\u0003\u0004\u0002\u0000\u050e"+ + "\u050d\u0001\u0000\u0000\u0000\u050e\u050f\u0001\u0000\u0000\u0000\u050f"+ + "\u0510\u0001\u0000\u0000\u0000\u0510\u0511\u0003\u00d0h\u0000\u0511\u0512"+ + "\u0003\u00d2i\u0000\u0512\u00cf\u0001\u0000\u0000\u0000\u0513\u0515\u0003"+ + "\u00d4j\u0000\u0514\u0513\u0001\u0000\u0000\u0000\u0514\u0515\u0001\u0000"+ + "\u0000\u0000\u0515\u0517\u0001\u0000\u0000\u0000\u0516\u0518\u0003\u00d6"+ + "k\u0000\u0517\u0516\u0001\u0000\u0000\u0000\u0517\u0518\u0001\u0000\u0000"+ + "\u0000\u0518\u00d1\u0001\u0000\u0000\u0000\u0519\u051d\u0005\b\u0000\u0000"+ + "\u051a\u051c\u0003\u00d8l\u0000\u051b\u051a\u0001\u0000\u0000\u0000\u051c"+ + "\u051f\u0001\u0000\u0000\u0000\u051d\u051b\u0001\u0000\u0000\u0000\u051d"+ + "\u051e\u0001\u0000\u0000\u0000\u051e\u0520\u0001\u0000\u0000\u0000\u051f"+ + "\u051d\u0001\u0000\u0000\u0000\u0520\u0521\u0005\n\u0000\u0000\u0521\u00d3"+ + "\u0001\u0000\u0000\u0000\u0522\u0523\u0005i\u0000\u0000\u0523\u0524\u0003"+ + "\u001a\r\u0000\u0524\u00d5\u0001\u0000\u0000\u0000\u0525\u0526\u0005n"+ + "\u0000\u0000\u0526\u0527\u0003Z-\u0000\u0527\u00d7\u0001\u0000\u0000\u0000"+ + "\u0528\u0530\u0003T*\u0000\u0529\u052b\u0003j5\u0000\u052a\u0529\u0001"+ + "\u0000\u0000\u0000\u052a\u052b\u0001\u0000\u0000\u0000\u052b\u052c\u0001"+ + "\u0000\u0000\u0000\u052c\u0530\u0003\u00dam\u0000\u052d\u0530\u0003\u00de"+ + "o\u0000\u052e\u0530\u0003v;\u0000\u052f\u0528\u0001\u0000\u0000\u0000"+ + "\u052f\u052a\u0001\u0000\u0000\u0000\u052f\u052d\u0001\u0000\u0000\u0000"+ + "\u052f\u052e\u0001\u0000\u0000\u0000\u0530\u00d9\u0001\u0000\u0000\u0000"+ + "\u0531\u0532\u0003\u00dcn\u0000\u0532\u0534\u0003\u0108\u0084\u0000\u0533"+ + "\u0535\u0005\u000e\u0000\u0000\u0534\u0533\u0001\u0000\u0000\u0000\u0534"+ + "\u0535\u0001\u0000\u0000\u0000\u0535\u0537\u0001\u0000\u0000\u0000\u0536"+ + "\u0538\u00038\u001c\u0000\u0537\u0536\u0001\u0000\u0000\u0000\u0537\u0538"+ + "\u0001\u0000\u0000\u0000\u0538\u053a\u0001\u0000\u0000\u0000\u0539\u053b"+ + "\u0003\u0000\u0000\u0000\u053a\u0539\u0001\u0000\u0000\u0000\u053a\u053b"+ + "\u0001\u0000\u0000\u0000\u053b\u053c\u0001\u0000\u0000\u0000\u053c\u053d"+ + "\u0005\u000b\u0000\u0000\u053d\u054f\u0001\u0000\u0000\u0000\u053e\u053f"+ + "\u0003\u00dcn\u0000\u053f\u0540\u0003\u0108\u0084\u0000\u0540\u0546\u0003"+ + ":\u001d\u0000\u0541\u0542\u0005\b\u0000\u0000\u0542\u0543\u0003\u00f6"+ + "{\u0000\u0543\u0544\u0005\n\u0000\u0000\u0544\u0547\u0001\u0000\u0000"+ + "\u0000\u0545\u0547\u0005\u000b\u0000\u0000\u0546\u0541\u0001\u0000\u0000"+ + "\u0000\u0546\u0545\u0001\u0000\u0000\u0000\u0547\u054f\u0001\u0000\u0000"+ + "\u0000\u0548\u054b\u0003\u00dcn\u0000\u0549\u054c\u0003\u0104\u0082\u0000"+ + "\u054a\u054c\u0003\u0106\u0083\u0000\u054b\u0549\u0001\u0000\u0000\u0000"+ + "\u054b\u054a\u0001\u0000\u0000\u0000\u054c\u054f\u0001\u0000\u0000\u0000"+ + "\u054d\u054f\u0003|>\u0000\u054e\u0531\u0001\u0000\u0000\u0000\u054e\u053e"+ + "\u0001\u0000\u0000\u0000\u054e\u0548\u0001\u0000\u0000\u0000\u054e\u054d"+ + "\u0001\u0000\u0000\u0000\u054f\u00db\u0001\u0000\u0000\u0000\u0550\u0552"+ + "\u0003H$\u0000\u0551\u0550\u0001\u0000\u0000\u0000\u0551\u0552\u0001\u0000"+ + "\u0000\u0000\u0552\u0554\u0001\u0000\u0000\u0000\u0553\u0555\u0005c\u0000"+ + "\u0000\u0554\u0553\u0001\u0000\u0000\u0000\u0554\u0555\u0001\u0000\u0000"+ + "\u0000\u0555\u0557\u0001\u0000\u0000\u0000\u0556\u0558\u0005u\u0000\u0000"+ + "\u0557\u0556\u0001\u0000\u0000\u0000\u0557\u0558\u0001\u0000\u0000\u0000"+ + "\u0558\u055a\u0001\u0000\u0000\u0000\u0559\u055b\u0005b\u0000\u0000\u055a"+ + "\u0559\u0001\u0000\u0000\u0000\u055a\u055b\u0001\u0000\u0000\u0000\u055b"+ + "\u00dd\u0001\u0000\u0000\u0000\u055c\u055d\u0003N\'\u0000\u055d\u055e"+ + "\u0005\u000b\u0000\u0000\u055e\u00df\u0001\u0000\u0000\u0000\u055f\u0560"+ + "\u0005c\u0000\u0000\u0560\u0562\u0004p\u000e\u0000\u0561\u055f\u0001\u0000"+ + "\u0000\u0000\u0561\u0562\u0001\u0000\u0000\u0000\u0562\u0564\u0001\u0000"+ + "\u0000\u0000\u0563\u0565\u0005\u0019\u0000\u0000\u0564\u0563\u0001\u0000"+ + "\u0000\u0000\u0564\u0565\u0001\u0000\u0000\u0000\u0565\u0566\u0001\u0000"+ + "\u0000\u0000\u0566\u0567\u0003\u0108\u0084\u0000\u0567\u0569\u0005\u0006"+ + "\u0000\u0000\u0568\u056a\u0003\u00f0x\u0000\u0569\u0568\u0001\u0000\u0000"+ + "\u0000\u0569\u056a\u0001\u0000\u0000\u0000\u056a\u056b\u0001\u0000\u0000"+ + "\u0000\u056b\u056c\u0005\u0007\u0000\u0000\u056c\u056d\u0005\b\u0000\u0000"+ + "\u056d\u056e\u0003\u00f6{\u0000\u056e\u056f\u0005\n\u0000\u0000\u056f"+ + "\u00e1\u0001\u0000\u0000\u0000\u0570\u0572\u0005c\u0000\u0000\u0571\u0570"+ + "\u0001\u0000\u0000\u0000\u0571\u0572\u0001\u0000\u0000\u0000\u0572\u0573"+ + "\u0001\u0000\u0000\u0000\u0573\u0574\u0005W\u0000\u0000\u0574\u0576\u0005"+ + "\u0019\u0000\u0000\u0575\u0577\u0003\u0132\u0099\u0000\u0576\u0575\u0001"+ + "\u0000\u0000\u0000\u0576\u0577\u0001\u0000\u0000\u0000\u0577\u0578\u0001"+ + "\u0000\u0000\u0000\u0578\u057a\u0005\u0006\u0000\u0000\u0579\u057b\u0003"+ + "\u00f0x\u0000\u057a\u0579\u0001\u0000\u0000\u0000\u057a\u057b\u0001\u0000"+ + "\u0000\u0000\u057b\u057c\u0001\u0000\u0000\u0000\u057c\u057d\u0005\u0007"+ + "\u0000\u0000\u057d\u057e\u0005\b\u0000\u0000\u057e\u057f\u0003\u00f6{"+ + "\u0000\u057f\u0580\u0005\n\u0000\u0000\u0580\u00e3\u0001\u0000\u0000\u0000"+ + "\u0581\u0582\u0005\b\u0000\u0000\u0582\u0587\u0003\u00e6s\u0000\u0583"+ + "\u0584\u0005\f\u0000\u0000\u0584\u0586\u0003\u00e6s\u0000\u0585\u0583"+ + "\u0001\u0000\u0000\u0000\u0586\u0589\u0001\u0000\u0000\u0000\u0587\u0585"+ + "\u0001\u0000\u0000\u0000\u0587\u0588\u0001\u0000\u0000\u0000\u0588\u058b"+ + "\u0001\u0000\u0000\u0000\u0589\u0587\u0001\u0000\u0000\u0000\u058a\u058c"+ + "\u0005\f\u0000\u0000\u058b\u058a\u0001\u0000\u0000\u0000\u058b\u058c\u0001"+ + "\u0000\u0000\u0000\u058c\u058d\u0001\u0000\u0000\u0000\u058d\u058e\u0005"+ + "\n\u0000\u0000\u058e\u00e5\u0001\u0000\u0000\u0000\u058f\u0590\u0005\u0019"+ + "\u0000\u0000\u0590\u0591\u0003\u00eau\u0000\u0591\u00e7\u0001\u0000\u0000"+ + "\u0000\u0592\u0593\u0005\b\u0000\u0000\u0593\u0598\u0003\u00eau\u0000"+ + "\u0594\u0595\u0005\f\u0000\u0000\u0595\u0597\u0003\u00eau\u0000\u0596"+ + "\u0594\u0001\u0000\u0000\u0000\u0597\u059a\u0001\u0000\u0000\u0000\u0598"+ + "\u0596\u0001\u0000\u0000\u0000\u0598\u0599\u0001\u0000\u0000\u0000\u0599"+ + "\u059c\u0001\u0000\u0000\u0000\u059a\u0598\u0001\u0000\u0000\u0000\u059b"+ + "\u059d\u0005\f\u0000\u0000\u059c\u059b\u0001\u0000\u0000\u0000\u059c\u059d"+ + "\u0001\u0000\u0000\u0000\u059d\u059e\u0001\u0000\u0000\u0000\u059e\u059f"+ + "\u0005\n\u0000\u0000\u059f\u00e9\u0001\u0000\u0000\u0000\u05a0\u05a1\u0005"+ + "\u0004\u0000\u0000\u05a1\u05a2\u0003\u0112\u0089\u0000\u05a2\u05a3\u0005"+ + "\u0005\u0000\u0000\u05a3\u05a5\u0005\u0006\u0000\u0000\u05a4\u05a6\u0003"+ + "\u00f0x\u0000\u05a5\u05a4\u0001\u0000\u0000\u0000\u05a5\u05a6\u0001\u0000"+ + "\u0000\u0000\u05a6\u05a7\u0001\u0000\u0000\u0000\u05a7\u05a8\u0005\u0007"+ + "\u0000\u0000\u05a8\u05a9\u0005\b\u0000\u0000\u05a9\u05aa\u0003\u00f6{"+ + "\u0000\u05aa\u05ab\u0005\n\u0000\u0000\u05ab\u00eb\u0001\u0000\u0000\u0000"+ + "\u05ac\u05af\u0003\u0108\u0084\u0000\u05ad\u05af\u0003\u00eew\u0000\u05ae"+ + "\u05ac\u0001\u0000\u0000\u0000\u05ae\u05ad\u0001\u0000\u0000\u0000\u05af"+ + "\u00ed\u0001\u0000\u0000\u0000\u05b0\u05b1\u0005\u001e\u0000\u0000\u05b1"+ + "\u05b2\u0003\u0130\u0098\u0000\u05b2\u00ef\u0001\u0000\u0000\u0000\u05b3"+ + "\u05b8\u0003\u00f2y\u0000\u05b4\u05b5\u0005\f\u0000\u0000\u05b5\u05b7"+ + "\u0003\u00f2y\u0000\u05b6\u05b4\u0001\u0000\u0000\u0000\u05b7\u05ba\u0001"+ + "\u0000\u0000\u0000\u05b8\u05b6\u0001\u0000\u0000\u0000\u05b8\u05b9\u0001"+ + "\u0000\u0000\u0000\u05b9\u05bd\u0001\u0000\u0000\u0000\u05ba\u05b8\u0001"+ + "\u0000\u0000\u0000\u05bb\u05bc\u0005\f\u0000\u0000\u05bc\u05be\u0003\u00f4"+ + "z\u0000\u05bd\u05bb\u0001\u0000\u0000\u0000\u05bd\u05be\u0001\u0000\u0000"+ + "\u0000\u05be\u05c0\u0001\u0000\u0000\u0000\u05bf\u05c1\u0005\f\u0000\u0000"+ + "\u05c0\u05bf\u0001\u0000\u0000\u0000\u05c0\u05c1\u0001\u0000\u0000\u0000"+ + "\u05c1\u05ca\u0001\u0000\u0000\u0000\u05c2\u05ca\u0003\u00f4z\u0000\u05c3"+ + "\u05ca\u0003\u00fa}\u0000\u05c4\u05c7\u0003\u0100\u0080\u0000\u05c5\u05c6"+ + "\u0005\u0010\u0000\u0000\u05c6\u05c8\u0003\u00f0x\u0000\u05c7\u05c5\u0001"+ + "\u0000\u0000\u0000\u05c7\u05c8\u0001\u0000\u0000\u0000\u05c8\u05ca\u0001"+ + "\u0000\u0000\u0000\u05c9\u05b3\u0001\u0000\u0000\u0000\u05c9\u05c2\u0001"+ + "\u0000\u0000\u0000\u05c9\u05c3\u0001\u0000\u0000\u0000\u05c9\u05c4\u0001"+ + "\u0000\u0000\u0000\u05ca\u00f1\u0001\u0000\u0000\u0000\u05cb\u05cd\u0003"+ + "l6\u0000\u05cc\u05cb\u0001\u0000\u0000\u0000\u05cc\u05cd\u0001\u0000\u0000"+ + "\u0000\u05cd\u05cf\u0001\u0000\u0000\u0000\u05ce\u05d0\u0003H$\u0000\u05cf"+ + "\u05ce\u0001\u0000\u0000\u0000\u05cf\u05d0\u0001\u0000\u0000\u0000\u05d0"+ + "\u05d1\u0001\u0000\u0000\u0000\u05d1\u05d3\u0003\u0116\u008b\u0000\u05d2"+ + "\u05d4\u0005\u000e\u0000\u0000\u05d3\u05d2\u0001\u0000\u0000\u0000\u05d3"+ + "\u05d4\u0001\u0000\u0000\u0000\u05d4\u05d6\u0001\u0000\u0000\u0000\u05d5"+ + "\u05d7\u00038\u001c\u0000\u05d6\u05d5\u0001\u0000\u0000\u0000\u05d6\u05d7"+ + "\u0001\u0000\u0000\u0000\u05d7\u05da\u0001\u0000\u0000\u0000\u05d8\u05d9"+ + "\u0005\r\u0000\u0000\u05d9\u05db\u0003\u0112\u0089\u0000\u05da\u05d8\u0001"+ + "\u0000\u0000\u0000\u05da\u05db\u0001\u0000\u0000\u0000\u05db\u00f3\u0001"+ + "\u0000\u0000\u0000\u05dc\u05dd\u0005\u0011\u0000\u0000\u05dd\u05df\u0003"+ + "\u0132\u0099\u0000\u05de\u05e0\u00038\u001c\u0000\u05df\u05de\u0001\u0000"+ + "\u0000\u0000\u05df\u05e0\u0001\u0000\u0000\u0000\u05e0\u00f5\u0001\u0000"+ + "\u0000\u0000\u05e1\u05e3\u0003\u00f8|\u0000\u05e2\u05e1\u0001\u0000\u0000"+ + "\u0000\u05e2\u05e3\u0001\u0000\u0000\u0000\u05e3\u00f7\u0001\u0000\u0000"+ + "\u0000\u05e4\u05e6\u0003t:\u0000\u05e5\u05e4\u0001\u0000\u0000\u0000\u05e6"+ + "\u05e7\u0001\u0000\u0000\u0000\u05e7\u05e5\u0001\u0000\u0000\u0000\u05e7"+ + "\u05e8\u0001\u0000\u0000\u0000\u05e8\u00f9\u0001\u0000\u0000\u0000\u05e9"+ + "\u05ea\u0005\u0004\u0000\u0000\u05ea\u05eb\u0003\u00fc~\u0000\u05eb\u05ec"+ + "\u0005\u0005\u0000\u0000\u05ec\u00fb\u0001\u0000\u0000\u0000\u05ed\u05ef"+ + "\u0005\f\u0000\u0000\u05ee\u05ed\u0001\u0000\u0000\u0000\u05ef\u05f2\u0001"+ + "\u0000\u0000\u0000\u05f0\u05ee\u0001\u0000\u0000\u0000\u05f0\u05f1\u0001"+ + "\u0000\u0000\u0000\u05f1\u05f4\u0001\u0000\u0000\u0000\u05f2\u05f0\u0001"+ + "\u0000\u0000\u0000\u05f3\u05f5\u0003\u00fe\u007f\u0000\u05f4\u05f3\u0001"+ + "\u0000\u0000\u0000\u05f4\u05f5\u0001\u0000\u0000\u0000\u05f5\u05fe\u0001"+ + "\u0000\u0000\u0000\u05f6\u05f8\u0005\f\u0000\u0000\u05f7\u05f6\u0001\u0000"+ + "\u0000\u0000\u05f8\u05f9\u0001\u0000\u0000\u0000\u05f9\u05f7\u0001\u0000"+ + "\u0000\u0000\u05f9\u05fa\u0001\u0000\u0000\u0000\u05fa\u05fb\u0001\u0000"+ + "\u0000\u0000\u05fb\u05fd\u0003\u00fe\u007f\u0000\u05fc\u05f7\u0001\u0000"+ + "\u0000\u0000\u05fd\u0600\u0001\u0000\u0000\u0000\u05fe\u05fc\u0001\u0000"+ + "\u0000\u0000\u05fe\u05ff\u0001\u0000\u0000\u0000\u05ff\u0604\u0001\u0000"+ + "\u0000\u0000\u0600\u05fe\u0001\u0000\u0000\u0000\u0601\u0603\u0005\f\u0000"+ + "\u0000\u0602\u0601\u0001\u0000\u0000\u0000\u0603\u0606\u0001\u0000\u0000"+ + "\u0000\u0604\u0602\u0001\u0000\u0000\u0000\u0604\u0605\u0001\u0000\u0000"+ + "\u0000\u0605\u00fd\u0001\u0000\u0000\u0000\u0606\u0604\u0001\u0000\u0000"+ + "\u0000\u0607\u0609\u0005\u0011\u0000\u0000\u0608\u0607\u0001\u0000\u0000"+ + "\u0000\u0608\u0609\u0001\u0000\u0000\u0000\u0609\u060c\u0001\u0000\u0000"+ + "\u0000\u060a\u060d\u0003\u0112\u0089\u0000\u060b\u060d\u0003\u0132\u0099"+ + "\u0000\u060c\u060a\u0001\u0000\u0000\u0000\u060c\u060b\u0001\u0000\u0000"+ + "\u0000\u060d\u060f\u0001\u0000\u0000\u0000\u060e\u0610\u0005\f\u0000\u0000"+ + "\u060f\u060e\u0001\u0000\u0000\u0000\u060f\u0610\u0001\u0000\u0000\u0000"+ + "\u0610\u00ff\u0001\u0000\u0000\u0000\u0611\u061d\u0005\b\u0000\u0000\u0612"+ + "\u0617\u0003\u0102\u0081\u0000\u0613\u0614\u0005\f\u0000\u0000\u0614\u0616"+ + "\u0003\u0102\u0081\u0000\u0615\u0613\u0001\u0000\u0000\u0000\u0616\u0619"+ + "\u0001\u0000\u0000\u0000\u0617\u0615\u0001\u0000\u0000\u0000\u0617\u0618"+ + "\u0001\u0000\u0000\u0000\u0618\u061b\u0001\u0000\u0000\u0000\u0619\u0617"+ + "\u0001\u0000\u0000\u0000\u061a\u061c\u0005\f\u0000\u0000\u061b\u061a\u0001"+ + "\u0000\u0000\u0000\u061b\u061c\u0001\u0000\u0000\u0000\u061c\u061e\u0001"+ + "\u0000\u0000\u0000\u061d\u0612\u0001\u0000\u0000\u0000\u061d\u061e\u0001"+ + "\u0000\u0000\u0000\u061e\u061f\u0001\u0000\u0000\u0000\u061f\u0620\u0005"+ + "\n\u0000\u0000\u0620\u0101\u0001\u0000\u0000\u0000\u0621\u0622\u0003\u0108"+ + "\u0084\u0000\u0622\u0623\u0007\u0007\u0000\u0000\u0623\u0624\u0003\u0112"+ + "\u0089\u0000\u0624\u0635\u0001\u0000\u0000\u0000\u0625\u0626\u0005\u0004"+ + "\u0000\u0000\u0626\u0627\u0003\u0112\u0089\u0000\u0627\u0628\u0005\u0005"+ + "\u0000\u0000\u0628\u0629\u0005\u0010\u0000\u0000\u0629\u062a\u0003\u0112"+ + "\u0089\u0000\u062a\u0635\u0001\u0000\u0000\u0000\u062b\u0635\u0003\u0104"+ + "\u0082\u0000\u062c\u0635\u0003\u0106\u0083\u0000\u062d\u0635\u0003\u00e0"+ + "p\u0000\u062e\u0635\u0003\u0134\u009a\u0000\u062f\u0631\u0005\u0011\u0000"+ + "\u0000\u0630\u062f\u0001\u0000\u0000\u0000\u0630\u0631\u0001\u0000\u0000"+ + "\u0000\u0631\u0632\u0001\u0000\u0000\u0000\u0632\u0635\u0003\u0112\u0089"+ + "\u0000\u0633\u0635\u0003D\"\u0000\u0634\u0621\u0001\u0000\u0000\u0000"+ + "\u0634\u0625\u0001\u0000\u0000\u0000\u0634\u062b\u0001\u0000\u0000\u0000"+ + "\u0634\u062c\u0001\u0000\u0000\u0000\u0634\u062d\u0001\u0000\u0000\u0000"+ + "\u0634\u062e\u0001\u0000\u0000\u0000\u0634\u0630\u0001\u0000\u0000\u0000"+ + "\u0634\u0633\u0001\u0000\u0000\u0000\u0635\u0103\u0001\u0000\u0000\u0000"+ + "\u0636\u0637\u0003\u012c\u0096\u0000\u0637\u0638\u0005\u0006\u0000\u0000"+ + "\u0638\u063a\u0005\u0007\u0000\u0000\u0639\u063b\u00038\u001c\u0000\u063a"+ + "\u0639\u0001\u0000\u0000\u0000\u063a\u063b\u0001\u0000\u0000\u0000\u063b"+ + "\u063c\u0001\u0000\u0000\u0000\u063c\u063d\u0005\b\u0000\u0000\u063d\u063e"+ + "\u0003\u00f6{\u0000\u063e\u063f\u0005\n\u0000\u0000\u063f\u0105\u0001"+ + "\u0000\u0000\u0000\u0640\u0641\u0003\u012e\u0097\u0000\u0641\u0643\u0005"+ + "\u0006\u0000\u0000\u0642\u0644\u0003\u00f0x\u0000\u0643\u0642\u0001\u0000"+ + "\u0000\u0000\u0643\u0644\u0001\u0000\u0000\u0000\u0644\u0645\u0001\u0000"+ + "\u0000\u0000\u0645\u0646\u0005\u0007\u0000\u0000\u0646\u0647\u0005\b\u0000"+ + "\u0000\u0647\u0648\u0003\u00f6{\u0000\u0648\u0649\u0005\n\u0000\u0000"+ + "\u0649\u0107\u0001\u0000\u0000\u0000\u064a\u0652\u0003\u0130\u0098\u0000"+ + "\u064b\u0652\u0005\u008b\u0000\u0000\u064c\u0652\u0003\u0128\u0094\u0000"+ + "\u064d\u064e\u0005\u0004\u0000\u0000\u064e\u064f\u0003\u0112\u0089\u0000"+ + "\u064f\u0650\u0005\u0005\u0000\u0000\u0650\u0652\u0001\u0000\u0000\u0000"+ + "\u0651\u064a\u0001\u0000\u0000\u0000\u0651\u064b\u0001\u0000\u0000\u0000"+ + "\u0651\u064c\u0001\u0000\u0000\u0000\u0651\u064d\u0001\u0000\u0000\u0000"+ + "\u0652\u0109\u0001\u0000\u0000\u0000\u0653\u0658\u0005\u0006\u0000\u0000"+ + "\u0654\u0656\u0003\u010c\u0086\u0000\u0655\u0657\u0005\f\u0000\u0000\u0656"+ + "\u0655\u0001\u0000\u0000\u0000\u0656\u0657\u0001\u0000\u0000\u0000\u0657"+ + "\u0659\u0001\u0000\u0000\u0000\u0658\u0654\u0001\u0000\u0000\u0000\u0658"+ + "\u0659\u0001\u0000\u0000\u0000\u0659\u065a\u0001\u0000\u0000\u0000\u065a"+ + "\u065b\u0005\u0007\u0000\u0000\u065b\u010b\u0001\u0000\u0000\u0000\u065c"+ + "\u0661\u0003\u010e\u0087\u0000\u065d\u065e\u0005\f\u0000\u0000\u065e\u0660"+ + "\u0003\u010e\u0087\u0000\u065f\u065d\u0001\u0000\u0000\u0000\u0660\u0663"+ + "\u0001\u0000\u0000\u0000\u0661\u065f\u0001\u0000\u0000\u0000\u0661\u0662"+ + "\u0001\u0000\u0000\u0000\u0662\u010d\u0001\u0000\u0000\u0000\u0663\u0661"+ + "\u0001\u0000\u0000\u0000\u0664\u0666\u0005\u0011\u0000\u0000\u0665\u0664"+ + "\u0001\u0000\u0000\u0000\u0665\u0666\u0001\u0000\u0000\u0000\u0666\u0669"+ + "\u0001\u0000\u0000\u0000\u0667\u066a\u0003\u0112\u0089\u0000\u0668\u066a"+ + "\u0003\u0132\u0099\u0000\u0669\u0667\u0001\u0000\u0000\u0000\u0669\u0668"+ + "\u0001\u0000\u0000\u0000\u066a\u010f\u0001\u0000\u0000\u0000\u066b\u0670"+ + "\u0003\u0112\u0089\u0000\u066c\u066d\u0005\f\u0000\u0000\u066d\u066f\u0003"+ + "\u0112\u0089\u0000\u066e\u066c\u0001\u0000\u0000\u0000\u066f\u0672\u0001"+ + "\u0000\u0000\u0000\u0670\u066e\u0001\u0000\u0000\u0000\u0670\u0671\u0001"+ + "\u0000\u0000\u0000\u0671\u0111\u0001\u0000\u0000\u0000\u0672\u0670\u0001"+ + "\u0000\u0000\u0000\u0673\u0674\u0006\u0089\uffff\uffff\u0000\u0674\u06b5"+ + "\u0003\u0118\u008c\u0000\u0675\u0677\u0005g\u0000\u0000\u0676\u0678\u0003"+ + "\u0132\u0099\u0000\u0677\u0676\u0001\u0000\u0000\u0000\u0677\u0678\u0001"+ + "\u0000\u0000\u0000\u0678\u067a\u0001\u0000\u0000\u0000\u0679\u067b\u0003"+ + "\u0004\u0002\u0000\u067a\u0679\u0001\u0000\u0000\u0000\u067a\u067b\u0001"+ + "\u0000\u0000\u0000\u067b\u067c\u0001\u0000\u0000\u0000\u067c\u067d\u0003"+ + "\u00d0h\u0000\u067d\u067e\u0003\u00d2i\u0000\u067e\u06b5\u0001\u0000\u0000"+ + "\u0000\u067f\u0680\u0005L\u0000\u0000\u0680\u0682\u0003\u0112\u0089\u0000"+ + "\u0681\u0683\u0003\f\u0006\u0000\u0682\u0681\u0001\u0000\u0000\u0000\u0682"+ + "\u0683\u0001\u0000\u0000\u0000\u0683\u0684\u0001\u0000\u0000\u0000\u0684"+ + "\u0685\u0003\u010a\u0085\u0000\u0685\u06b5\u0001\u0000\u0000\u0000\u0686"+ + "\u0687\u0005L\u0000\u0000\u0687\u0689\u0003\u0112\u0089\u0000\u0688\u068a"+ + "\u0003\f\u0006\u0000\u0689\u0688\u0001\u0000\u0000\u0000\u0689\u068a\u0001"+ + "\u0000\u0000\u0000\u068a\u06b5\u0001\u0000\u0000\u0000\u068b\u068c\u0005"+ + "]\u0000\u0000\u068c\u06b5\u0003\u0112\u0089*\u068d\u068e\u0005Q\u0000"+ + "\u0000\u068e\u06b5\u0003\u0112\u0089)\u068f\u0690\u0005I\u0000\u0000\u0690"+ + "\u06b5\u0003\u0112\u0089(\u0691\u0692\u0005\u0013\u0000\u0000\u0692\u06b5"+ + "\u0003\u0112\u0089\'\u0693\u0694\u0005\u0014\u0000\u0000\u0694\u06b5\u0003"+ + "\u0112\u0089&\u0695\u0696\u0005\u0015\u0000\u0000\u0696\u06b5\u0003\u0112"+ + "\u0089%\u0697\u0698\u0005\u0016\u0000\u0000\u0698\u06b5\u0003\u0112\u0089"+ + "$\u0699\u069a\u0005\u0017\u0000\u0000\u069a\u06b5\u0003\u0112\u0089#\u069b"+ + "\u069c\u0005\u0018\u0000\u0000\u069c\u06b5\u0003\u0112\u0089\"\u069d\u069e"+ + "\u0005d\u0000\u0000\u069e\u06b5\u0003\u0112\u0089!\u069f\u06b5\u0003\u00e8"+ + "t\u0000\u06a0\u06b5\u0003\u00e4r\u0000\u06a1\u06b5\u0003\u00e2q\u0000"+ + "\u06a2\u06b5\u0003\u00b2Y\u0000\u06a3\u06b5\u0005X\u0000\u0000\u06a4\u06a6"+ + "\u0003\u0130\u0098\u0000\u06a5\u06a7\u0003\u0112\u0089\u0000\u06a6\u06a5"+ + "\u0001\u0000\u0000\u0000\u06a6\u06a7\u0001\u0000\u0000\u0000\u06a7\u06b5"+ + "\u0001\u0000\u0000\u0000\u06a8\u06b5\u0005j\u0000\u0000\u06a9\u06b5\u0003"+ + "\u0122\u0091\u0000\u06aa\u06b5\u0003\u00fa}\u0000\u06ab\u06b5\u0003\u0100"+ + "\u0080\u0000\u06ac\u06ad\u0005\u0006\u0000\u0000\u06ad\u06ae\u0003\u0110"+ + "\u0088\u0000\u06ae\u06af\u0005\u0007\u0000\u0000\u06af\u06b5\u0001\u0000"+ + "\u0000\u0000\u06b0\u06b2\u0003\f\u0006\u0000\u06b1\u06b3\u0003\u0110\u0088"+ + "\u0000\u06b2\u06b1\u0001\u0000\u0000\u0000\u06b2\u06b3\u0001\u0000\u0000"+ + "\u0000\u06b3\u06b5\u0001\u0000\u0000\u0000\u06b4\u0673\u0001\u0000\u0000"+ + "\u0000\u06b4\u0675\u0001\u0000\u0000\u0000\u06b4\u067f\u0001\u0000\u0000"+ + "\u0000\u06b4\u0686\u0001\u0000\u0000\u0000\u06b4\u068b\u0001\u0000\u0000"+ + "\u0000\u06b4\u068d\u0001\u0000\u0000\u0000\u06b4\u068f\u0001\u0000\u0000"+ + "\u0000\u06b4\u0691\u0001\u0000\u0000\u0000\u06b4\u0693\u0001\u0000\u0000"+ + "\u0000\u06b4\u0695\u0001\u0000\u0000\u0000\u06b4\u0697\u0001\u0000\u0000"+ + "\u0000\u06b4\u0699\u0001\u0000\u0000\u0000\u06b4\u069b\u0001\u0000\u0000"+ + "\u0000\u06b4\u069d\u0001\u0000\u0000\u0000\u06b4\u069f\u0001\u0000\u0000"+ + "\u0000\u06b4\u06a0\u0001\u0000\u0000\u0000\u06b4\u06a1\u0001\u0000\u0000"+ + "\u0000\u06b4\u06a2\u0001\u0000\u0000\u0000\u06b4\u06a3\u0001\u0000\u0000"+ + "\u0000\u06b4\u06a4\u0001\u0000\u0000\u0000\u06b4\u06a8\u0001\u0000\u0000"+ + "\u0000\u06b4\u06a9\u0001\u0000\u0000\u0000\u06b4\u06aa\u0001\u0000\u0000"+ + "\u0000\u06b4\u06ab\u0001\u0000\u0000\u0000\u06b4\u06ac\u0001\u0000\u0000"+ + "\u0000\u06b4\u06b0\u0001\u0000\u0000\u0000\u06b5\u0728\u0001\u0000\u0000"+ + "\u0000\u06b6\u06b7\n2\u0000\u0000\u06b7\u06b8\u0005\u000f\u0000\u0000"+ + "\u06b8\u0727\u0003\u0112\u00893\u06b9\u06ba\n \u0000\u0000\u06ba\u06bb"+ + "\u0005\u001c\u0000\u0000\u06bb\u0727\u0003\u0112\u0089 \u06bc\u06bd\n"+ + "\u001f\u0000\u0000\u06bd\u06be\u0007\b\u0000\u0000\u06be\u0727\u0003\u0112"+ + "\u0089 \u06bf\u06c0\n\u001e\u0000\u0000\u06c0\u06c1\u0007\t\u0000\u0000"+ + "\u06c1\u0727\u0003\u0112\u0089\u001f\u06c2\u06c3\n\u001d\u0000\u0000\u06c3"+ + "\u06c4\u0005\u001d\u0000\u0000\u06c4\u0727\u0003\u0112\u0089\u001e\u06c5"+ + "\u06cc\n\u001c\u0000\u0000\u06c6\u06cd\u0005\u001f\u0000\u0000\u06c7\u06c8"+ + "\u0005!\u0000\u0000\u06c8\u06cd\u0005!\u0000\u0000\u06c9\u06ca\u0005!"+ + "\u0000\u0000\u06ca\u06cb\u0005!\u0000\u0000\u06cb\u06cd\u0005!\u0000\u0000"+ + "\u06cc\u06c6\u0001\u0000\u0000\u0000\u06cc\u06c7\u0001\u0000\u0000\u0000"+ + "\u06cc\u06c9\u0001\u0000\u0000\u0000\u06cd\u06ce\u0001\u0000\u0000\u0000"+ + "\u06ce\u0727\u0003\u0112\u0089\u001d\u06cf\u06d0\n\u001b\u0000\u0000\u06d0"+ + "\u06d1\u0007\n\u0000\u0000\u06d1\u0727\u0003\u0112\u0089\u001c\u06d2\u06d3"+ + "\n\u001a\u0000\u0000\u06d3\u06d4\u0005H\u0000\u0000\u06d4\u0727\u0003"+ + "\u0112\u0089\u001b\u06d5\u06d6\n\u0019\u0000\u0000\u06d6\u06d7\u0005^"+ + "\u0000\u0000\u06d7\u0727\u0003\u0112\u0089\u001a\u06d8\u06d9\n\u0018\u0000"+ + "\u0000\u06d9\u06da\u0007\u000b\u0000\u0000\u06da\u0727\u0003\u0112\u0089"+ + "\u0019\u06db\u06dc\n\u0017\u0000\u0000\u06dc\u06dd\u0005(\u0000\u0000"+ + "\u06dd\u0727\u0003\u0112\u0089\u0018\u06de\u06df\n\u0016\u0000\u0000\u06df"+ + "\u06e0\u0005)\u0000\u0000\u06e0\u0727\u0003\u0112\u0089\u0017\u06e1\u06e2"+ + "\n\u0015\u0000\u0000\u06e2\u06e3\u0005*\u0000\u0000\u06e3\u0727\u0003"+ + "\u0112\u0089\u0016\u06e4\u06e5\n\u0014\u0000\u0000\u06e5\u06e6\u0005+"+ + "\u0000\u0000\u06e6\u0727\u0003\u0112\u0089\u0015\u06e7\u06e8\n\u0013\u0000"+ + "\u0000\u06e8\u06e9\u0005,\u0000\u0000\u06e9\u0727\u0003\u0112\u0089\u0014"+ + "\u06ea\u06eb\n\u0012\u0000\u0000\u06eb\u06ec\u0005\u000e\u0000\u0000\u06ec"+ + "\u06ed\u0003\u0112\u0089\u0000\u06ed\u06ee\u0005\u0010\u0000\u0000\u06ee"+ + "\u06ef\u0003\u0112\u0089\u0013\u06ef\u0727\u0001\u0000\u0000\u0000\u06f0"+ + "\u06f1\n\u0011\u0000\u0000\u06f1\u06f2\u0005\r\u0000\u0000\u06f2\u0727"+ + "\u0003\u0112\u0089\u0012\u06f3\u06f4\n\u0010\u0000\u0000\u06f4\u06f5\u0003"+ + "\u0120\u0090\u0000\u06f5\u06f6\u0003\u0112\u0089\u0011\u06f6\u0727\u0001"+ + "\u0000\u0000\u0000\u06f7\u06f9\n3\u0000\u0000\u06f8\u06fa\u0005\u000f"+ + "\u0000\u0000\u06f9\u06f8\u0001\u0000\u0000\u0000\u06f9\u06fa\u0001\u0000"+ + "\u0000\u0000\u06fa\u06fb\u0001\u0000\u0000\u0000\u06fb\u06fc\u0005\u0004"+ + "\u0000\u0000\u06fc\u06fd\u0003\u0110\u0088\u0000\u06fd\u06fe\u0005\u0005"+ + "\u0000\u0000\u06fe\u0727\u0001\u0000\u0000\u0000\u06ff\u0701\n1\u0000"+ + "\u0000\u0700\u0702\u0005\u0018\u0000\u0000\u0701\u0700\u0001\u0000\u0000"+ + "\u0000\u0701\u0702\u0001\u0000\u0000\u0000\u0702\u0703\u0001\u0000\u0000"+ + "\u0000\u0703\u0705\u0005\u0012\u0000\u0000\u0704\u0706\u0005\u001e\u0000"+ + "\u0000\u0705\u0704\u0001\u0000\u0000\u0000\u0705\u0706\u0001\u0000\u0000"+ + "\u0000\u0706\u0707\u0001\u0000\u0000\u0000\u0707\u0709\u0003\u0130\u0098"+ + "\u0000\u0708\u070a\u0003\u001c\u000e\u0000\u0709\u0708\u0001\u0000\u0000"+ + "\u0000\u0709\u070a\u0001\u0000\u0000\u0000\u070a\u0727\u0001\u0000\u0000"+ + "\u0000\u070b\u070d\n0\u0000\u0000\u070c\u070e\u0005\u000e\u0000\u0000"+ + "\u070d\u070c\u0001\u0000\u0000\u0000\u070d\u070e\u0001\u0000\u0000\u0000"+ + "\u070e\u070f\u0001\u0000\u0000\u0000\u070f\u0711\u0005\u0012\u0000\u0000"+ + "\u0710\u0712\u0005\u001e\u0000\u0000\u0711\u0710\u0001\u0000\u0000\u0000"+ + "\u0711\u0712\u0001\u0000\u0000\u0000\u0712\u0713\u0001\u0000\u0000\u0000"+ + "\u0713\u0715\u0003\u0130\u0098\u0000\u0714\u0716\u0003\u001c\u000e\u0000"+ + "\u0715\u0714\u0001\u0000\u0000\u0000\u0715\u0716\u0001\u0000\u0000\u0000"+ + "\u0716\u0727\u0001\u0000\u0000\u0000\u0717\u0718\n-\u0000\u0000\u0718"+ + "\u0727\u0003\u010a\u0085\u0000\u0719\u071a\n,\u0000\u0000\u071a\u071b"+ + "\u0004\u0089&\u0000\u071b\u0727\u0005\u0013\u0000\u0000\u071c\u071d\n"+ + "+\u0000\u0000\u071d\u071e\u0004\u0089(\u0000\u071e\u0727\u0005\u0014\u0000"+ + "\u0000\u071f\u0720\n\u000f\u0000\u0000\u0720\u0727\u0003\u0124\u0092\u0000"+ + "\u0721\u0722\n\u0002\u0000\u0000\u0722\u0723\u0005`\u0000\u0000\u0723"+ + "\u0727\u0003\u0114\u008a\u0000\u0724\u0725\n\u0001\u0000\u0000\u0725\u0727"+ + "\u0005\u0018\u0000\u0000\u0726\u06b6\u0001\u0000\u0000\u0000\u0726\u06b9"+ + "\u0001\u0000\u0000\u0000\u0726\u06bc\u0001\u0000\u0000\u0000\u0726\u06bf"+ + "\u0001\u0000\u0000\u0000\u0726\u06c2\u0001\u0000\u0000\u0000\u0726\u06c5"+ + "\u0001\u0000\u0000\u0000\u0726\u06cf\u0001\u0000\u0000\u0000\u0726\u06d2"+ + "\u0001\u0000\u0000\u0000\u0726\u06d5\u0001\u0000\u0000\u0000\u0726\u06d8"+ + "\u0001\u0000\u0000\u0000\u0726\u06db\u0001\u0000\u0000\u0000\u0726\u06de"+ + "\u0001\u0000\u0000\u0000\u0726\u06e1\u0001\u0000\u0000\u0000\u0726\u06e4"+ + "\u0001\u0000\u0000\u0000\u0726\u06e7\u0001\u0000\u0000\u0000\u0726\u06ea"+ + "\u0001\u0000\u0000\u0000\u0726\u06f0\u0001\u0000\u0000\u0000\u0726\u06f3"+ + "\u0001\u0000\u0000\u0000\u0726\u06f7\u0001\u0000\u0000\u0000\u0726\u06ff"+ + "\u0001\u0000\u0000\u0000\u0726\u070b\u0001\u0000\u0000\u0000\u0726\u0717"+ + "\u0001\u0000\u0000\u0000\u0726\u0719\u0001\u0000\u0000\u0000\u0726\u071c"+ + "\u0001\u0000\u0000\u0000\u0726\u071f\u0001\u0000\u0000\u0000\u0726\u0721"+ + "\u0001\u0000\u0000\u0000\u0726\u0724\u0001\u0000\u0000\u0000\u0727\u072a"+ + "\u0001\u0000\u0000\u0000\u0728\u0726\u0001\u0000\u0000\u0000\u0728\u0729"+ + "\u0001\u0000\u0000\u0000\u0729\u0113\u0001\u0000\u0000\u0000\u072a\u0728"+ + "\u0001\u0000\u0000\u0000\u072b\u072e\u0003\u0018\f\u0000\u072c\u072d\u0005"+ + "\u0004\u0000\u0000\u072d\u072f\u0005\u0005\u0000\u0000\u072e\u072c\u0001"+ + "\u0000\u0000\u0000\u072e\u072f\u0001\u0000\u0000\u0000\u072f\u0732\u0001"+ + "\u0000\u0000\u0000\u0730\u0732\u0003\u0112\u0089\u0000\u0731\u072b\u0001"+ + "\u0000\u0000\u0000\u0731\u0730\u0001\u0000\u0000\u0000\u0732\u0115\u0001"+ + "\u0000\u0000\u0000\u0733\u0738\u0003\u0132\u0099\u0000\u0734\u0738\u0003"+ + "\u0138\u009c\u0000\u0735\u0738\u0003\u00fa}\u0000\u0736\u0738\u0003\u0100"+ + "\u0080\u0000\u0737\u0733\u0001\u0000\u0000\u0000\u0737\u0734\u0001\u0000"+ + "\u0000\u0000\u0737\u0735\u0001\u0000\u0000\u0000\u0737\u0736\u0001\u0000"+ + "\u0000\u0000\u0738\u0117\u0001\u0000\u0000\u0000\u0739\u074f\u0003\u00cc"+ + "f\u0000\u073a\u073c\u0005c\u0000\u0000\u073b\u073a\u0001\u0000\u0000\u0000"+ + "\u073b\u073c\u0001\u0000\u0000\u0000\u073c\u073d\u0001\u0000\u0000\u0000"+ + "\u073d\u073f\u0005W\u0000\u0000\u073e\u0740\u0005\u0019\u0000\u0000\u073f"+ + "\u073e\u0001\u0000\u0000\u0000\u073f\u0740\u0001\u0000\u0000\u0000\u0740"+ + "\u0741\u0001\u0000\u0000\u0000\u0741\u0743\u0005\u0006\u0000\u0000\u0742"+ + "\u0744\u0003\u00f0x\u0000\u0743\u0742\u0001\u0000\u0000\u0000\u0743\u0744"+ + "\u0001\u0000\u0000\u0000\u0744\u0745\u0001\u0000\u0000\u0000\u0745\u0747"+ + "\u0005\u0007\u0000\u0000\u0746\u0748\u00038\u001c\u0000\u0747\u0746\u0001"+ + "\u0000\u0000\u0000\u0747\u0748\u0001\u0000\u0000\u0000\u0748\u0749\u0001"+ + "\u0000\u0000\u0000\u0749\u074a\u0005\b\u0000\u0000\u074a\u074b\u0003\u00f6"+ + "{\u0000\u074b\u074c\u0005\n\u0000\u0000\u074c\u074f\u0001\u0000\u0000"+ + "\u0000\u074d\u074f\u0003\u011a\u008d\u0000\u074e\u0739\u0001\u0000\u0000"+ + "\u0000\u074e\u073b\u0001\u0000\u0000\u0000\u074e\u074d\u0001\u0000\u0000"+ + "\u0000\u074f\u0119\u0001\u0000\u0000\u0000\u0750\u0752\u0005c\u0000\u0000"+ + "\u0751\u0750\u0001\u0000\u0000\u0000\u0751\u0752\u0001\u0000\u0000\u0000"+ + "\u0752\u0753\u0001\u0000\u0000\u0000\u0753\u0755\u0003\u011c\u008e\u0000"+ + "\u0754\u0756\u00038\u001c\u0000\u0755\u0754\u0001\u0000\u0000\u0000\u0755"+ + "\u0756\u0001\u0000\u0000\u0000\u0756\u0757\u0001\u0000\u0000\u0000\u0757"+ + "\u0758\u0005:\u0000\u0000\u0758\u0759\u0003\u011e\u008f\u0000\u0759\u011b"+ + "\u0001\u0000\u0000\u0000\u075a\u0761\u0003\u0108\u0084\u0000\u075b\u075d"+ + "\u0005\u0006\u0000\u0000\u075c\u075e\u0003\u00f0x\u0000\u075d\u075c\u0001"+ + "\u0000\u0000\u0000\u075d\u075e\u0001\u0000\u0000\u0000\u075e\u075f\u0001"+ + "\u0000\u0000\u0000\u075f\u0761\u0005\u0007\u0000\u0000\u0760\u075a\u0001"+ + "\u0000\u0000\u0000\u0760\u075b\u0001\u0000\u0000\u0000\u0761\u011d\u0001"+ + "\u0000\u0000\u0000\u0762\u0768\u0003\u0112\u0089\u0000\u0763\u0764\u0005"+ + "\b\u0000\u0000\u0764\u0765\u0003\u00f6{\u0000\u0765\u0766\u0005\n\u0000"+ + "\u0000\u0766\u0768\u0001\u0000\u0000\u0000\u0767\u0762\u0001\u0000\u0000"+ + "\u0000\u0767\u0763\u0001\u0000\u0000\u0000\u0768\u011f\u0001\u0000\u0000"+ + "\u0000\u0769\u076a\u0007\f\u0000\u0000\u076a\u0121\u0001\u0000\u0000\u0000"+ + "\u076b\u0773\u0005;\u0000\u0000\u076c\u0773\u0005<\u0000\u0000\u076d\u0773"+ + "\u0005\u008b\u0000\u0000\u076e\u0773\u0003\u0124\u0092\u0000\u076f\u0773"+ + "\u0005\u0003\u0000\u0000\u0770\u0773\u0003\u0128\u0094\u0000\u0771\u0773"+ + "\u0003\u012a\u0095\u0000\u0772\u076b\u0001\u0000\u0000\u0000\u0772\u076c"+ + "\u0001\u0000\u0000\u0000\u0772\u076d\u0001\u0000\u0000\u0000\u0772\u076e"+ + "\u0001\u0000\u0000\u0000\u0772\u076f\u0001\u0000\u0000\u0000\u0772\u0770"+ + "\u0001\u0000\u0000\u0000\u0772\u0771\u0001\u0000\u0000\u0000\u0773\u0123"+ + "\u0001\u0000\u0000\u0000\u0774\u0778\u0005\u008c\u0000\u0000\u0775\u0777"+ + "\u0003\u0126\u0093\u0000\u0776\u0775\u0001\u0000\u0000\u0000\u0777\u077a"+ + "\u0001\u0000\u0000\u0000\u0778\u0776\u0001\u0000\u0000\u0000\u0778\u0779"+ + "\u0001\u0000\u0000\u0000\u0779\u077b\u0001\u0000\u0000\u0000\u077a\u0778"+ + "\u0001\u0000\u0000\u0000\u077b\u077c\u0005\u008c\u0000\u0000\u077c\u0125"+ + "\u0001\u0000\u0000\u0000\u077d\u0784\u0005\u0094\u0000\u0000\u077e\u077f"+ + "\u0005\u0093\u0000\u0000\u077f\u0780\u0003\u0112\u0089\u0000\u0780\u0781"+ + "\u0005\t\u0000\u0000\u0781\u0784\u0001\u0000\u0000\u0000\u0782\u0784\u0005"+ + "\u0092\u0000\u0000\u0783\u077d\u0001\u0000\u0000\u0000\u0783\u077e\u0001"+ + "\u0000\u0000\u0000\u0783\u0782\u0001\u0000\u0000\u0000\u0784\u0127\u0001"+ + "\u0000\u0000\u0000\u0785\u0786\u0007\r\u0000\u0000\u0786\u0129\u0001\u0000"+ + "\u0000\u0000\u0787\u0788\u0007\u000e\u0000\u0000\u0788\u012b\u0001\u0000"+ + "\u0000\u0000\u0789\u078a\u0004\u0096,\u0000\u078a\u078b\u0003\u0132\u0099"+ + "\u0000\u078b\u078c\u0003\u00ecv\u0000\u078c\u012d\u0001\u0000\u0000\u0000"+ + "\u078d\u078e\u0004\u0097-\u0000\u078e\u078f\u0003\u0132\u0099\u0000\u078f"+ + "\u0790\u0003\u00ecv\u0000\u0790\u012f\u0001\u0000\u0000\u0000\u0791\u0794"+ + "\u0003\u0132\u0099\u0000\u0792\u0794\u0003\u0136\u009b\u0000\u0793\u0791"+ + "\u0001\u0000\u0000\u0000\u0793\u0792\u0001\u0000\u0000\u0000\u0794\u0131"+ + "\u0001\u0000\u0000\u0000\u0795\u0796\u0007\u000f\u0000\u0000\u0796\u0133"+ + "\u0001\u0000\u0000\u0000\u0797\u079b\u0003\u0132\u0099\u0000\u0798\u079b"+ + "\u0005\u0081\u0000\u0000\u0799\u079b\u0005\u0084\u0000\u0000\u079a\u0797"+ + "\u0001\u0000\u0000\u0000\u079a\u0798\u0001\u0000\u0000\u0000\u079a\u0799"+ + "\u0001\u0000\u0000\u0000\u079b\u0135\u0001\u0000\u0000\u0000\u079c\u07a0"+ + "\u0003\u0138\u009c\u0000\u079d\u07a0\u0005;\u0000\u0000\u079e\u07a0\u0005"+ + "<\u0000\u0000\u079f\u079c\u0001\u0000\u0000\u0000\u079f\u079d\u0001\u0000"+ + "\u0000\u0000\u079f\u079e\u0001\u0000\u0000\u0000\u07a0\u0137\u0001\u0000"+ + "\u0000\u0000\u07a1\u07a2\u0007\u0010\u0000\u0000\u07a2\u0139\u0001\u0000"+ + "\u0000\u0000\u07a3\u07a8\u0005\u000b\u0000\u0000\u07a4\u07a8\u0005\u0000"+ + "\u0000\u0001\u07a5\u07a8\u0004\u009d.\u0000\u07a6\u07a8\u0004\u009d/\u0000"+ + "\u07a7\u07a3\u0001\u0000\u0000\u0000\u07a7\u07a4\u0001\u0000\u0000\u0000"+ + "\u07a7\u07a5\u0001\u0000\u0000\u0000\u07a7\u07a6\u0001\u0000\u0000\u0000"+ + "\u07a8\u013b\u0001\u0000\u0000\u0000\u0102\u0141\u0145\u014e\u0153\u015a"+ + "\u0161\u016a\u0170\u0176\u0181\u0183\u019a\u01a0\u01a5\u01b1\u01b8\u01bc"+ + "\u01c1\u01c7\u01cb\u01d1\u01d8\u01e2\u01e4\u01f4\u01f8\u01fb\u01ff\u0207"+ + "\u020b\u021a\u021e\u0221\u0225\u0228\u022c\u0232\u0236\u023a\u0242\u0247"+ + "\u024a\u024c\u0253\u0258\u025b\u025e\u0263\u0266\u0269\u026e\u0271\u0274"+ + "\u0278\u027e\u0282\u0286\u028a\u0295\u029a\u029f\u02a6\u02ab\u02b3\u02b6"+ + "\u02b9\u02be\u02c1\u02c5\u02cf\u02d3\u02d9\u02df\u02e6\u02ec\u02ef\u02f5"+ + "\u02fd\u0302\u030d\u0312\u031a\u0321\u0328\u032d\u034e\u0352\u0359\u0360"+ + "\u0368\u036c\u0373\u037b\u0380\u0382\u0389\u038d\u0396\u039a\u03a2\u03a6"+ + "\u03aa\u03b3\u03bb\u03bf\u03c7\u03cc\u03ce\u03d5\u03da\u03de\u03e2\u03e5"+ + "\u03e8\u03eb\u03ef\u03f3\u03f7\u03f9\u0400\u0406\u0409\u040c\u0410\u0413"+ + "\u041a\u0423\u0436\u043a\u043e\u0448\u044c\u0464\u046d\u0474\u047e\u0483"+ + "\u048a\u0491\u0498\u049f\u04b1\u04b5\u04b7\u04be\u04c4\u04c9\u04d8\u04db"+ + "\u04e1\u04e5\u04f0\u04f4\u04fd\u0500\u0504\u0506\u0509\u050e\u0514\u0517"+ + "\u051d\u052a\u052f\u0534\u0537\u053a\u0546\u054b\u054e\u0551\u0554\u0557"+ + "\u055a\u0561\u0564\u0569\u0571\u0576\u057a\u0587\u058b\u0598\u059c\u05a5"+ + "\u05ae\u05b8\u05bd\u05c0\u05c7\u05c9\u05cc\u05cf\u05d3\u05d6\u05da\u05df"+ + "\u05e2\u05e7\u05f0\u05f4\u05f9\u05fe\u0604\u0608\u060c\u060f\u0617\u061b"+ + "\u061d\u0630\u0634\u063a\u0643\u0651\u0656\u0658\u0661\u0665\u0669\u0670"+ + "\u0677\u067a\u0682\u0689\u06a6\u06b2\u06b4\u06cc\u06f9\u0701\u0705\u0709"+ + "\u070d\u0711\u0715\u0726\u0728\u072e\u0731\u0737\u073b\u073f\u0743\u0747"+ + "\u074e\u0751\u0755\u075d\u0760\u0767\u0772\u0778\u0783\u0793\u079a\u079f"+ + "\u07a7"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParser.tokens b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParser.tokens new file mode 100644 index 0000000000000000000000000000000000000000..18922f93f3cb35e681bcb1da9ecd8b11a0b1f90f --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParser.tokens @@ -0,0 +1,271 @@ +MultiLineComment=1 +SingleLineComment=2 +RegularExpressionLiteral=3 +OpenBracket=4 +CloseBracket=5 +OpenParen=6 +CloseParen=7 +OpenBrace=8 +TemplateCloseBrace=9 +CloseBrace=10 +SemiColon=11 +Comma=12 +Assign=13 +QuestionMark=14 +QuestionMarkDot=15 +Colon=16 +Ellipsis=17 +Dot=18 +PlusPlus=19 +MinusMinus=20 +Plus=21 +Minus=22 +BitNot=23 +Not=24 +Multiply=25 +Divide=26 +Modulus=27 +Power=28 +NullCoalesce=29 +Hashtag=30 +LeftShiftArithmetic=31 +LessThan=32 +MoreThan=33 +LessThanEquals=34 +GreaterThanEquals=35 +Equals_=36 +NotEquals=37 +IdentityEquals=38 +IdentityNotEquals=39 +BitAnd=40 +BitXOr=41 +BitOr=42 +And=43 +Or=44 +MultiplyAssign=45 +DivideAssign=46 +ModulusAssign=47 +PlusAssign=48 +MinusAssign=49 +LeftShiftArithmeticAssign=50 +RightShiftArithmeticAssign=51 +RightShiftLogicalAssign=52 +BitAndAssign=53 +BitXorAssign=54 +BitOrAssign=55 +PowerAssign=56 +NullishCoalescingAssign=57 +ARROW=58 +NullLiteral=59 +BooleanLiteral=60 +DecimalLiteral=61 +HexIntegerLiteral=62 +OctalIntegerLiteral=63 +OctalIntegerLiteral2=64 +BinaryIntegerLiteral=65 +BigHexIntegerLiteral=66 +BigOctalIntegerLiteral=67 +BigBinaryIntegerLiteral=68 +BigDecimalIntegerLiteral=69 +Break=70 +Do=71 +Instanceof=72 +Typeof=73 +Case=74 +Else=75 +New=76 +Var=77 +Catch=78 +Finally=79 +Return=80 +Void=81 +Continue=82 +For=83 +Switch=84 +While=85 +Debugger=86 +Function_=87 +This=88 +With=89 +Default=90 +If=91 +Throw=92 +Delete=93 +In=94 +Try=95 +As=96 +From=97 +ReadOnly=98 +Async=99 +Await=100 +Yield=101 +YieldStar=102 +Class=103 +Enum=104 +Extends=105 +Super=106 +Const=107 +Export=108 +Import=109 +Implements=110 +Let=111 +Private=112 +Public=113 +Interface=114 +Package=115 +Protected=116 +Static=117 +Any=118 +Number=119 +Never=120 +Boolean=121 +String=122 +Unique=123 +Symbol=124 +Undefined=125 +Object=126 +Of=127 +KeyOf=128 +TypeAlias=129 +Constructor=130 +Namespace=131 +Require=132 +Module=133 +Declare=134 +Abstract=135 +Is=136 +At=137 +Identifier=138 +StringLiteral=139 +BackTick=140 +WhiteSpaces=141 +LineTerminator=142 +HtmlComment=143 +CDataComment=144 +UnexpectedCharacter=145 +TemplateStringEscapeAtom=146 +TemplateStringStartExpression=147 +TemplateStringAtom=148 +'['=4 +']'=5 +'('=6 +')'=7 +'{'=8 +'}'=10 +';'=11 +','=12 +'='=13 +'?'=14 +'?.'=15 +':'=16 +'...'=17 +'.'=18 +'++'=19 +'--'=20 +'+'=21 +'-'=22 +'~'=23 +'!'=24 +'*'=25 +'/'=26 +'%'=27 +'**'=28 +'??'=29 +'#'=30 +'<<'=31 +'<'=32 +'>'=33 +'<='=34 +'>='=35 +'=='=36 +'!='=37 +'==='=38 +'!=='=39 +'&'=40 +'^'=41 +'|'=42 +'&&'=43 +'||'=44 +'*='=45 +'/='=46 +'%='=47 +'+='=48 +'-='=49 +'<<='=50 +'>>='=51 +'>>>='=52 +'&='=53 +'^='=54 +'|='=55 +'**='=56 +'??='=57 +'=>'=58 +'null'=59 +'break'=70 +'do'=71 +'instanceof'=72 +'typeof'=73 +'case'=74 +'else'=75 +'new'=76 +'var'=77 +'catch'=78 +'finally'=79 +'return'=80 +'void'=81 +'continue'=82 +'for'=83 +'switch'=84 +'while'=85 +'debugger'=86 +'function'=87 +'this'=88 +'with'=89 +'default'=90 +'if'=91 +'throw'=92 +'delete'=93 +'in'=94 +'try'=95 +'as'=96 +'from'=97 +'readonly'=98 +'async'=99 +'await'=100 +'yield'=101 +'yield*'=102 +'class'=103 +'enum'=104 +'extends'=105 +'super'=106 +'const'=107 +'export'=108 +'import'=109 +'implements'=110 +'let'=111 +'private'=112 +'public'=113 +'interface'=114 +'package'=115 +'protected'=116 +'static'=117 +'any'=118 +'number'=119 +'never'=120 +'boolean'=121 +'string'=122 +'unique'=123 +'symbol'=124 +'undefined'=125 +'object'=126 +'of'=127 +'keyof'=128 +'type'=129 +'constructor'=130 +'namespace'=131 +'require'=132 +'module'=133 +'declare'=134 +'abstract'=135 +'is'=136 +'@'=137 diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserBase.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserBase.java new file mode 100644 index 0000000000000000000000000000000000000000..d665ed589af97ee21f5d1042006e62a5bbecafdd --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserBase.java @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr; + +import org.antlr.v4.runtime.*; + +/** + * All parser methods that used in grammar (p, prev, notLineTerminator, etc.) + * should start with lower case char similar to parser rules. + */ +public abstract class TypeScriptParserBase extends Parser +{ + public TypeScriptParserBase(TokenStream input) { + super(input); + } + + /** + * Short form for prev(String str) + */ + protected boolean p(String str) { + return prev(str); + } + + /** + * Whether the previous token value equals to @param str + */ + protected boolean prev(String str) { + return _input.LT(-1).getText().equals(str); + } + + /** + * Short form for next(String str) + */ + protected boolean n(String str) { + return next(str); + } + + /** + * Whether the next token value equals to @param str + */ + protected boolean next(String str) { + return _input.LT(1).getText().equals(str); + } + + protected boolean notLineTerminator() { + return !here(TypeScriptParser.LineTerminator); + } + + protected boolean notOpenBraceAndNotFunctionAndNotInterface() { + int nextTokenType = _input.LT(1).getType(); + return nextTokenType != TypeScriptParser.OpenBrace && nextTokenType != TypeScriptParser.Function_ + && nextTokenType != TypeScriptParser.Interface; + } + + protected boolean closeBrace() { + return _input.LT(1).getType() == TypeScriptParser.CloseBrace; + } + + /** + * Returns {@code true} iff on the current index of the parser's + * token stream a token of the given {@code type} exists on the + * {@code HIDDEN} channel. + * + * @param type + * the type of the token on the {@code HIDDEN} channel + * to check. + * + * @return {@code true} iff on the current index of the parser's + * token stream a token of the given {@code type} exists on the + * {@code HIDDEN} channel. + */ + private boolean here(final int type) { + + // Get the token ahead of the current index. + int possibleIndexEosToken = this.getCurrentToken().getTokenIndex() - 1; + Token ahead = _input.get(possibleIndexEosToken); + + // Check if the token resides on the HIDDEN channel and if it's of the + // provided type. + return (ahead.getChannel() == Lexer.HIDDEN) && (ahead.getType() == type); + } + + /** + * Returns {@code true} iff on the current index of the parser's + * token stream a token exists on the {@code HIDDEN} channel which + * either is a line terminator, or is a multi line comment that + * contains a line terminator. + * + * @return {@code true} iff on the current index of the parser's + * token stream a token exists on the {@code HIDDEN} channel which + * either is a line terminator, or is a multi line comment that + * contains a line terminator. + */ + protected boolean lineTerminatorAhead() { + + // Get the token ahead of the current index. + int possibleIndexEosToken = this.getCurrentToken().getTokenIndex() - 1; + Token ahead = _input.get(possibleIndexEosToken); + + if (ahead.getChannel() != Lexer.HIDDEN) { + // We're only interested in tokens on the HIDDEN channel. + return false; + } + + if (ahead.getType() == TypeScriptParser.LineTerminator) { + // There is definitely a line terminator ahead. + return true; + } + + if (ahead.getType() == TypeScriptParser.WhiteSpaces) { + // Get the token ahead of the current whitespaces. + possibleIndexEosToken = this.getCurrentToken().getTokenIndex() - 2; + ahead = _input.get(possibleIndexEosToken); + } + + // Get the token's text and type. + String text = ahead.getText(); + int type = ahead.getType(); + + // Check if the token is, or contains a line terminator. + return (type == TypeScriptParser.MultiLineComment && (text.contains("\r") || text.contains("\n"))) || + (type == TypeScriptParser.LineTerminator); + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserBaseListener.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserBaseListener.java new file mode 100644 index 0000000000000000000000000000000000000000..05f14bf4590e932cd93fa4a0a9b46c2c65ace91c --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserBaseListener.java @@ -0,0 +1,2899 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr;// Generated from TypeScriptParser.g4 by ANTLR 4.13.2 + +import antlr.TypeScriptParser; +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link TypeScriptParserListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +@SuppressWarnings("CheckReturnValue") +public class TypeScriptParserBaseListener implements TypeScriptParserListener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInitializer(TypeScriptParser.InitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInitializer(TypeScriptParser.InitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingPattern(TypeScriptParser.BindingPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingPattern(TypeScriptParser.BindingPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeParameters(TypeScriptParser.TypeParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeParameters(TypeScriptParser.TypeParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeParameterList(TypeScriptParser.TypeParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeParameterList(TypeScriptParser.TypeParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeParameter(TypeScriptParser.TypeParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeParameter(TypeScriptParser.TypeParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstraint(TypeScriptParser.ConstraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstraint(TypeScriptParser.ConstraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeArguments(TypeScriptParser.TypeArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeArguments(TypeScriptParser.TypeArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeArgumentList(TypeScriptParser.TypeArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeArgumentList(TypeScriptParser.TypeArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeArgument(TypeScriptParser.TypeArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeArgument(TypeScriptParser.TypeArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType_(TypeScriptParser.Type_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType_(TypeScriptParser.Type_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntersection(TypeScriptParser.IntersectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntersection(TypeScriptParser.IntersectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimary(TypeScriptParser.PrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimary(TypeScriptParser.PrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnion(TypeScriptParser.UnionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnion(TypeScriptParser.UnionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRedefinitionOfType(TypeScriptParser.RedefinitionOfTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRedefinitionOfType(TypeScriptParser.RedefinitionOfTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredefinedPrimType(TypeScriptParser.PredefinedPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredefinedPrimType(TypeScriptParser.PredefinedPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayPrimType(TypeScriptParser.ArrayPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayPrimType(TypeScriptParser.ArrayPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParenthesizedPrimType(TypeScriptParser.ParenthesizedPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParenthesizedPrimType(TypeScriptParser.ParenthesizedPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterThisPrimType(TypeScriptParser.ThisPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitThisPrimType(TypeScriptParser.ThisPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTuplePrimType(TypeScriptParser.TuplePrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTuplePrimType(TypeScriptParser.TuplePrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterKeyOfType(TypeScriptParser.KeyOfTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitKeyOfType(TypeScriptParser.KeyOfTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObjectPrimType(TypeScriptParser.ObjectPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObjectPrimType(TypeScriptParser.ObjectPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReferencePrimType(TypeScriptParser.ReferencePrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReferencePrimType(TypeScriptParser.ReferencePrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQueryPrimType(TypeScriptParser.QueryPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQueryPrimType(TypeScriptParser.QueryPrimTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredefinedType(TypeScriptParser.PredefinedTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredefinedType(TypeScriptParser.PredefinedTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeReference(TypeScriptParser.TypeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeReference(TypeScriptParser.TypeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeGeneric(TypeScriptParser.TypeGenericContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeGeneric(TypeScriptParser.TypeGenericContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeName(TypeScriptParser.TypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeName(TypeScriptParser.TypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObjectType(TypeScriptParser.ObjectTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObjectType(TypeScriptParser.ObjectTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeBody(TypeScriptParser.TypeBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeBody(TypeScriptParser.TypeBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeMemberList(TypeScriptParser.TypeMemberListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeMemberList(TypeScriptParser.TypeMemberListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeMember(TypeScriptParser.TypeMemberContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeMember(TypeScriptParser.TypeMemberContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayType(TypeScriptParser.ArrayTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayType(TypeScriptParser.ArrayTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTupleType(TypeScriptParser.TupleTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTupleType(TypeScriptParser.TupleTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTupleElementTypes(TypeScriptParser.TupleElementTypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTupleElementTypes(TypeScriptParser.TupleElementTypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunctionType(TypeScriptParser.FunctionTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunctionType(TypeScriptParser.FunctionTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructorType(TypeScriptParser.ConstructorTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructorType(TypeScriptParser.ConstructorTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeQuery(TypeScriptParser.TypeQueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeQuery(TypeScriptParser.TypeQueryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeQueryExpression(TypeScriptParser.TypeQueryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeQueryExpression(TypeScriptParser.TypeQueryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertySignatur(TypeScriptParser.PropertySignaturContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertySignatur(TypeScriptParser.PropertySignaturContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeAnnotation(TypeScriptParser.TypeAnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeAnnotation(TypeScriptParser.TypeAnnotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCallSignature(TypeScriptParser.CallSignatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCallSignature(TypeScriptParser.CallSignatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParameterList(TypeScriptParser.ParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParameterList(TypeScriptParser.ParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRequiredParameterList(TypeScriptParser.RequiredParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRequiredParameterList(TypeScriptParser.RequiredParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParameter(TypeScriptParser.ParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParameter(TypeScriptParser.ParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOptionalParameter(TypeScriptParser.OptionalParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOptionalParameter(TypeScriptParser.OptionalParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRestParameter(TypeScriptParser.RestParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRestParameter(TypeScriptParser.RestParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRequiredParameter(TypeScriptParser.RequiredParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRequiredParameter(TypeScriptParser.RequiredParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAccessibilityModifier(TypeScriptParser.AccessibilityModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAccessibilityModifier(TypeScriptParser.AccessibilityModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIdentifierOrPattern(TypeScriptParser.IdentifierOrPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifierOrPattern(TypeScriptParser.IdentifierOrPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructSignature(TypeScriptParser.ConstructSignatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructSignature(TypeScriptParser.ConstructSignatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIndexSignature(TypeScriptParser.IndexSignatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIndexSignature(TypeScriptParser.IndexSignatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodSignature(TypeScriptParser.MethodSignatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodSignature(TypeScriptParser.MethodSignatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeAliasDeclaration(TypeScriptParser.TypeAliasDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeAliasDeclaration(TypeScriptParser.TypeAliasDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructorDeclaration(TypeScriptParser.ConstructorDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructorDeclaration(TypeScriptParser.ConstructorDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceDeclaration(TypeScriptParser.InterfaceDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceDeclaration(TypeScriptParser.InterfaceDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceExtendsClause(TypeScriptParser.InterfaceExtendsClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceExtendsClause(TypeScriptParser.InterfaceExtendsClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassOrInterfaceTypeList(TypeScriptParser.ClassOrInterfaceTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassOrInterfaceTypeList(TypeScriptParser.ClassOrInterfaceTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumDeclaration(TypeScriptParser.EnumDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumDeclaration(TypeScriptParser.EnumDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumBody(TypeScriptParser.EnumBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumBody(TypeScriptParser.EnumBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumMemberList(TypeScriptParser.EnumMemberListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumMemberList(TypeScriptParser.EnumMemberListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnumMember(TypeScriptParser.EnumMemberContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumMember(TypeScriptParser.EnumMemberContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamespaceDeclaration(TypeScriptParser.NamespaceDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamespaceDeclaration(TypeScriptParser.NamespaceDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamespaceName(TypeScriptParser.NamespaceNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamespaceName(TypeScriptParser.NamespaceNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportAliasDeclaration(TypeScriptParser.ImportAliasDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportAliasDeclaration(TypeScriptParser.ImportAliasDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDecoratorList(TypeScriptParser.DecoratorListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDecoratorList(TypeScriptParser.DecoratorListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDecorator(TypeScriptParser.DecoratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDecorator(TypeScriptParser.DecoratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDecoratorMemberExpression(TypeScriptParser.DecoratorMemberExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDecoratorMemberExpression(TypeScriptParser.DecoratorMemberExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDecoratorCallExpression(TypeScriptParser.DecoratorCallExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDecoratorCallExpression(TypeScriptParser.DecoratorCallExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProgram(TypeScriptParser.ProgramContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProgram(TypeScriptParser.ProgramContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSourceElement(TypeScriptParser.SourceElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSourceElement(TypeScriptParser.SourceElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatement(TypeScriptParser.StatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatement(TypeScriptParser.StatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBlock(TypeScriptParser.BlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBlock(TypeScriptParser.BlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatementList(TypeScriptParser.StatementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatementList(TypeScriptParser.StatementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAbstractDeclaration(TypeScriptParser.AbstractDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAbstractDeclaration(TypeScriptParser.AbstractDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportStatement(TypeScriptParser.ImportStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportStatement(TypeScriptParser.ImportStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportFromBlock(TypeScriptParser.ImportFromBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportFromBlock(TypeScriptParser.ImportFromBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportModuleItems(TypeScriptParser.ImportModuleItemsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportModuleItems(TypeScriptParser.ImportModuleItemsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportAliasName(TypeScriptParser.ImportAliasNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportAliasName(TypeScriptParser.ImportAliasNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterModuleExportName(TypeScriptParser.ModuleExportNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitModuleExportName(TypeScriptParser.ModuleExportNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportedBinding(TypeScriptParser.ImportedBindingContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportedBinding(TypeScriptParser.ImportedBindingContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportDefault(TypeScriptParser.ImportDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportDefault(TypeScriptParser.ImportDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportNamespace(TypeScriptParser.ImportNamespaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportNamespace(TypeScriptParser.ImportNamespaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImportFrom(TypeScriptParser.ImportFromContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImportFrom(TypeScriptParser.ImportFromContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAliasName(TypeScriptParser.AliasNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAliasName(TypeScriptParser.AliasNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExportDeclaration(TypeScriptParser.ExportDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExportDeclaration(TypeScriptParser.ExportDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExportDefaultDeclaration(TypeScriptParser.ExportDefaultDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExportDefaultDeclaration(TypeScriptParser.ExportDefaultDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExportFromBlock(TypeScriptParser.ExportFromBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExportFromBlock(TypeScriptParser.ExportFromBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExportModuleItems(TypeScriptParser.ExportModuleItemsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExportModuleItems(TypeScriptParser.ExportModuleItemsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExportAliasName(TypeScriptParser.ExportAliasNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExportAliasName(TypeScriptParser.ExportAliasNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeclaration(TypeScriptParser.DeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeclaration(TypeScriptParser.DeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableStatement(TypeScriptParser.VariableStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableStatement(TypeScriptParser.VariableStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableDeclarationList(TypeScriptParser.VariableDeclarationListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableDeclarationList(TypeScriptParser.VariableDeclarationListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableDeclaration(TypeScriptParser.VariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableDeclaration(TypeScriptParser.VariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEmptyStatement_(TypeScriptParser.EmptyStatement_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmptyStatement_(TypeScriptParser.EmptyStatement_Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpressionStatement(TypeScriptParser.ExpressionStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpressionStatement(TypeScriptParser.ExpressionStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIfStatement(TypeScriptParser.IfStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIfStatement(TypeScriptParser.IfStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDoStatement(TypeScriptParser.DoStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDoStatement(TypeScriptParser.DoStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhileStatement(TypeScriptParser.WhileStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhileStatement(TypeScriptParser.WhileStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForStatement(TypeScriptParser.ForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForStatement(TypeScriptParser.ForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForVarStatement(TypeScriptParser.ForVarStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForVarStatement(TypeScriptParser.ForVarStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForInStatement(TypeScriptParser.ForInStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForInStatement(TypeScriptParser.ForInStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForVarInStatement(TypeScriptParser.ForVarInStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForVarInStatement(TypeScriptParser.ForVarInStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForOfStatement(TypeScriptParser.ForOfStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForOfStatement(TypeScriptParser.ForOfStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForVarOfStatement(TypeScriptParser.ForVarOfStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForVarOfStatement(TypeScriptParser.ForVarOfStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVarModifier(TypeScriptParser.VarModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVarModifier(TypeScriptParser.VarModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterContinueStatement(TypeScriptParser.ContinueStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitContinueStatement(TypeScriptParser.ContinueStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBreakStatement(TypeScriptParser.BreakStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBreakStatement(TypeScriptParser.BreakStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturnStatement(TypeScriptParser.ReturnStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturnStatement(TypeScriptParser.ReturnStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterYieldStatement(TypeScriptParser.YieldStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitYieldStatement(TypeScriptParser.YieldStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWithStatement(TypeScriptParser.WithStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWithStatement(TypeScriptParser.WithStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchStatement(TypeScriptParser.SwitchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchStatement(TypeScriptParser.SwitchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCaseBlock(TypeScriptParser.CaseBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCaseBlock(TypeScriptParser.CaseBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCaseClauses(TypeScriptParser.CaseClausesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCaseClauses(TypeScriptParser.CaseClausesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCaseClause(TypeScriptParser.CaseClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCaseClause(TypeScriptParser.CaseClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDefaultClause(TypeScriptParser.DefaultClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDefaultClause(TypeScriptParser.DefaultClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelledStatement(TypeScriptParser.LabelledStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelledStatement(TypeScriptParser.LabelledStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterThrowStatement(TypeScriptParser.ThrowStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitThrowStatement(TypeScriptParser.ThrowStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTryStatement(TypeScriptParser.TryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTryStatement(TypeScriptParser.TryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatchProduction(TypeScriptParser.CatchProductionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatchProduction(TypeScriptParser.CatchProductionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFinallyProduction(TypeScriptParser.FinallyProductionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFinallyProduction(TypeScriptParser.FinallyProductionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDebuggerStatement(TypeScriptParser.DebuggerStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDebuggerStatement(TypeScriptParser.DebuggerStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunctionDeclaration(TypeScriptParser.FunctionDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunctionDeclaration(TypeScriptParser.FunctionDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassDeclaration(TypeScriptParser.ClassDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassDeclaration(TypeScriptParser.ClassDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassHeritage(TypeScriptParser.ClassHeritageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassHeritage(TypeScriptParser.ClassHeritageContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassTail(TypeScriptParser.ClassTailContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassTail(TypeScriptParser.ClassTailContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassExtendsClause(TypeScriptParser.ClassExtendsClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassExtendsClause(TypeScriptParser.ClassExtendsClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImplementsClause(TypeScriptParser.ImplementsClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImplementsClause(TypeScriptParser.ImplementsClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassElement(TypeScriptParser.ClassElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassElement(TypeScriptParser.ClassElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyDeclarationExpression(TypeScriptParser.PropertyDeclarationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyDeclarationExpression(TypeScriptParser.PropertyDeclarationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodDeclarationExpression(TypeScriptParser.MethodDeclarationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodDeclarationExpression(TypeScriptParser.MethodDeclarationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGetterSetterDeclarationExpression(TypeScriptParser.GetterSetterDeclarationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGetterSetterDeclarationExpression(TypeScriptParser.GetterSetterDeclarationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAbstractMemberDeclaration(TypeScriptParser.AbstractMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAbstractMemberDeclaration(TypeScriptParser.AbstractMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyMemberBase(TypeScriptParser.PropertyMemberBaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyMemberBase(TypeScriptParser.PropertyMemberBaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIndexMemberDeclaration(TypeScriptParser.IndexMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIndexMemberDeclaration(TypeScriptParser.IndexMemberDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneratorMethod(TypeScriptParser.GeneratorMethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneratorMethod(TypeScriptParser.GeneratorMethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneratorFunctionDeclaration(TypeScriptParser.GeneratorFunctionDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneratorFunctionDeclaration(TypeScriptParser.GeneratorFunctionDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneratorBlock(TypeScriptParser.GeneratorBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneratorBlock(TypeScriptParser.GeneratorBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneratorDefinition(TypeScriptParser.GeneratorDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneratorDefinition(TypeScriptParser.GeneratorDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIteratorBlock(TypeScriptParser.IteratorBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIteratorBlock(TypeScriptParser.IteratorBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIteratorDefinition(TypeScriptParser.IteratorDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIteratorDefinition(TypeScriptParser.IteratorDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassElementName(TypeScriptParser.ClassElementNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassElementName(TypeScriptParser.ClassElementNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrivateIdentifier(TypeScriptParser.PrivateIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrivateIdentifier(TypeScriptParser.PrivateIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFormalParameterList(TypeScriptParser.FormalParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFormalParameterList(TypeScriptParser.FormalParameterListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFormalParameterArg(TypeScriptParser.FormalParameterArgContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFormalParameterArg(TypeScriptParser.FormalParameterArgContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLastFormalParameterArg(TypeScriptParser.LastFormalParameterArgContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLastFormalParameterArg(TypeScriptParser.LastFormalParameterArgContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunctionBody(TypeScriptParser.FunctionBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunctionBody(TypeScriptParser.FunctionBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSourceElements(TypeScriptParser.SourceElementsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSourceElements(TypeScriptParser.SourceElementsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayLiteral(TypeScriptParser.ArrayLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayLiteral(TypeScriptParser.ArrayLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementList(TypeScriptParser.ElementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementList(TypeScriptParser.ElementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayElement(TypeScriptParser.ArrayElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayElement(TypeScriptParser.ArrayElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObjectLiteral(TypeScriptParser.ObjectLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObjectLiteral(TypeScriptParser.ObjectLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyExpressionAssignment(TypeScriptParser.PropertyExpressionAssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyExpressionAssignment(TypeScriptParser.PropertyExpressionAssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterComputedPropertyExpressionAssignment(TypeScriptParser.ComputedPropertyExpressionAssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitComputedPropertyExpressionAssignment(TypeScriptParser.ComputedPropertyExpressionAssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyGetter(TypeScriptParser.PropertyGetterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyGetter(TypeScriptParser.PropertyGetterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertySetter(TypeScriptParser.PropertySetterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertySetter(TypeScriptParser.PropertySetterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodProperty(TypeScriptParser.MethodPropertyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodProperty(TypeScriptParser.MethodPropertyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyShorthand(TypeScriptParser.PropertyShorthandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyShorthand(TypeScriptParser.PropertyShorthandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSpreadOperator(TypeScriptParser.SpreadOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSpreadOperator(TypeScriptParser.SpreadOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRestParameterInObject(TypeScriptParser.RestParameterInObjectContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRestParameterInObject(TypeScriptParser.RestParameterInObjectContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGetAccessor(TypeScriptParser.GetAccessorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGetAccessor(TypeScriptParser.GetAccessorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetAccessor(TypeScriptParser.SetAccessorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetAccessor(TypeScriptParser.SetAccessorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyName(TypeScriptParser.PropertyNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyName(TypeScriptParser.PropertyNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArguments(TypeScriptParser.ArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArguments(TypeScriptParser.ArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArgumentList(TypeScriptParser.ArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArgumentList(TypeScriptParser.ArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArgument(TypeScriptParser.ArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArgument(TypeScriptParser.ArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpressionSequence(TypeScriptParser.ExpressionSequenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpressionSequence(TypeScriptParser.ExpressionSequenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTemplateStringExpression(TypeScriptParser.TemplateStringExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTemplateStringExpression(TypeScriptParser.TemplateStringExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneratorsExpression(TypeScriptParser.GeneratorsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneratorsExpression(TypeScriptParser.GeneratorsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPowerExpression(TypeScriptParser.PowerExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPowerExpression(TypeScriptParser.PowerExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInExpression(TypeScriptParser.InExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInExpression(TypeScriptParser.InExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGenericTypes(TypeScriptParser.GenericTypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGenericTypes(TypeScriptParser.GenericTypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOptionalChainExpression(TypeScriptParser.OptionalChainExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOptionalChainExpression(TypeScriptParser.OptionalChainExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArgumentsExpression(TypeScriptParser.ArgumentsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArgumentsExpression(TypeScriptParser.ArgumentsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterThisExpression(TypeScriptParser.ThisExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitThisExpression(TypeScriptParser.ThisExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeofExpression(TypeScriptParser.TypeofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeofExpression(TypeScriptParser.TypeofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneratorsFunctionExpression(TypeScriptParser.GeneratorsFunctionExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneratorsFunctionExpression(TypeScriptParser.GeneratorsFunctionExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEqualityExpression(TypeScriptParser.EqualityExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEqualityExpression(TypeScriptParser.EqualityExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBitXOrExpression(TypeScriptParser.BitXOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBitXOrExpression(TypeScriptParser.BitXOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCastAsExpression(TypeScriptParser.CastAsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCastAsExpression(TypeScriptParser.CastAsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMultiplicativeExpression(TypeScriptParser.MultiplicativeExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMultiplicativeExpression(TypeScriptParser.MultiplicativeExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBitShiftExpression(TypeScriptParser.BitShiftExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBitShiftExpression(TypeScriptParser.BitShiftExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAdditiveExpression(TypeScriptParser.AdditiveExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAdditiveExpression(TypeScriptParser.AdditiveExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelationalExpression(TypeScriptParser.RelationalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelationalExpression(TypeScriptParser.RelationalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBitNotExpression(TypeScriptParser.BitNotExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBitNotExpression(TypeScriptParser.BitNotExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNewExpression(TypeScriptParser.NewExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNewExpression(TypeScriptParser.NewExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLiteralExpression(TypeScriptParser.LiteralExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLiteralExpression(TypeScriptParser.LiteralExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayLiteralExpression(TypeScriptParser.ArrayLiteralExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayLiteralExpression(TypeScriptParser.ArrayLiteralExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMemberDotExpression(TypeScriptParser.MemberDotExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMemberDotExpression(TypeScriptParser.MemberDotExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMemberIndexExpression(TypeScriptParser.MemberIndexExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMemberIndexExpression(TypeScriptParser.MemberIndexExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBitAndExpression(TypeScriptParser.BitAndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBitAndExpression(TypeScriptParser.BitAndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBitOrExpression(TypeScriptParser.BitOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBitOrExpression(TypeScriptParser.BitOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignmentOperatorExpression(TypeScriptParser.AssignmentOperatorExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignmentOperatorExpression(TypeScriptParser.AssignmentOperatorExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVoidExpression(TypeScriptParser.VoidExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVoidExpression(TypeScriptParser.VoidExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTernaryExpression(TypeScriptParser.TernaryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTernaryExpression(TypeScriptParser.TernaryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLogicalAndExpression(TypeScriptParser.LogicalAndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLogicalAndExpression(TypeScriptParser.LogicalAndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPreIncrementExpression(TypeScriptParser.PreIncrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPreIncrementExpression(TypeScriptParser.PreIncrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObjectLiteralExpression(TypeScriptParser.ObjectLiteralExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObjectLiteralExpression(TypeScriptParser.ObjectLiteralExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLogicalOrExpression(TypeScriptParser.LogicalOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLogicalOrExpression(TypeScriptParser.LogicalOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNonNullAssertionExpression(TypeScriptParser.NonNullAssertionExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNonNullAssertionExpression(TypeScriptParser.NonNullAssertionExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNotExpression(TypeScriptParser.NotExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNotExpression(TypeScriptParser.NotExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPreDecreaseExpression(TypeScriptParser.PreDecreaseExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPreDecreaseExpression(TypeScriptParser.PreDecreaseExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAwaitExpression(TypeScriptParser.AwaitExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAwaitExpression(TypeScriptParser.AwaitExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFunctionExpression(TypeScriptParser.FunctionExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFunctionExpression(TypeScriptParser.FunctionExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnaryMinusExpression(TypeScriptParser.UnaryMinusExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnaryMinusExpression(TypeScriptParser.UnaryMinusExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignmentExpression(TypeScriptParser.AssignmentExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignmentExpression(TypeScriptParser.AssignmentExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPostDecreaseExpression(TypeScriptParser.PostDecreaseExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPostDecreaseExpression(TypeScriptParser.PostDecreaseExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInstanceofExpression(TypeScriptParser.InstanceofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInstanceofExpression(TypeScriptParser.InstanceofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnaryPlusExpression(TypeScriptParser.UnaryPlusExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnaryPlusExpression(TypeScriptParser.UnaryPlusExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeleteExpression(TypeScriptParser.DeleteExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeleteExpression(TypeScriptParser.DeleteExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIteratorsExpression(TypeScriptParser.IteratorsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIteratorsExpression(TypeScriptParser.IteratorsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSuperExpression(TypeScriptParser.SuperExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSuperExpression(TypeScriptParser.SuperExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParenthesizedExpression(TypeScriptParser.ParenthesizedExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParenthesizedExpression(TypeScriptParser.ParenthesizedExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPostIncrementExpression(TypeScriptParser.PostIncrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPostIncrementExpression(TypeScriptParser.PostIncrementExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterYieldExpression(TypeScriptParser.YieldExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitYieldExpression(TypeScriptParser.YieldExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassExpression(TypeScriptParser.ClassExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassExpression(TypeScriptParser.ClassExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIdentifierExpression(TypeScriptParser.IdentifierExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifierExpression(TypeScriptParser.IdentifierExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCoalesceExpression(TypeScriptParser.CoalesceExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCoalesceExpression(TypeScriptParser.CoalesceExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAsExpression(TypeScriptParser.AsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAsExpression(TypeScriptParser.AsExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignable(TypeScriptParser.AssignableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignable(TypeScriptParser.AssignableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnonymousFunction(TypeScriptParser.AnonymousFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnonymousFunction(TypeScriptParser.AnonymousFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrowFunctionDeclaration(TypeScriptParser.ArrowFunctionDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrowFunctionDeclaration(TypeScriptParser.ArrowFunctionDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrowFunctionParameters(TypeScriptParser.ArrowFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrowFunctionParameters(TypeScriptParser.ArrowFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrowFunctionBody(TypeScriptParser.ArrowFunctionBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrowFunctionBody(TypeScriptParser.ArrowFunctionBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignmentOperator(TypeScriptParser.AssignmentOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignmentOperator(TypeScriptParser.AssignmentOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLiteral(TypeScriptParser.LiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLiteral(TypeScriptParser.LiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTemplateStringLiteral(TypeScriptParser.TemplateStringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTemplateStringLiteral(TypeScriptParser.TemplateStringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTemplateStringAtom(TypeScriptParser.TemplateStringAtomContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTemplateStringAtom(TypeScriptParser.TemplateStringAtomContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericLiteral(TypeScriptParser.NumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericLiteral(TypeScriptParser.NumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBigintLiteral(TypeScriptParser.BigintLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBigintLiteral(TypeScriptParser.BigintLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGetter(TypeScriptParser.GetterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGetter(TypeScriptParser.GetterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetter(TypeScriptParser.SetterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetter(TypeScriptParser.SetterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIdentifierName(TypeScriptParser.IdentifierNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifierName(TypeScriptParser.IdentifierNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIdentifier(TypeScriptParser.IdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifier(TypeScriptParser.IdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIdentifierOrKeyWord(TypeScriptParser.IdentifierOrKeyWordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifierOrKeyWord(TypeScriptParser.IdentifierOrKeyWordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReservedWord(TypeScriptParser.ReservedWordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReservedWord(TypeScriptParser.ReservedWordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterKeyword(TypeScriptParser.KeywordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitKeyword(TypeScriptParser.KeywordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEos(TypeScriptParser.EosContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEos(TypeScriptParser.EosContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitTerminal(TerminalNode node) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserBaseVisitor.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserBaseVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..37ae5582e66721418b20385a3d4b229c0722d28b --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserBaseVisitor.java @@ -0,0 +1,1688 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr;// Generated from TypeScriptParser.g4 by ANTLR 4.13.2 +import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; + +/** + * This class provides an empty implementation of {@link TypeScriptParserVisitor}, + * which can be extended to create a visitor which only needs to handle a subset + * of the available methods. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +@SuppressWarnings("CheckReturnValue") +public class TypeScriptParserBaseVisitor extends AbstractParseTreeVisitor implements TypeScriptParserVisitor { + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInitializer(TypeScriptParser.InitializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBindingPattern(TypeScriptParser.BindingPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeParameters(TypeScriptParser.TypeParametersContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeParameterList(TypeScriptParser.TypeParameterListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeParameter(TypeScriptParser.TypeParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstraint(TypeScriptParser.ConstraintContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeArguments(TypeScriptParser.TypeArgumentsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeArgumentList(TypeScriptParser.TypeArgumentListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeArgument(TypeScriptParser.TypeArgumentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType_(TypeScriptParser.Type_Context ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIntersection(TypeScriptParser.IntersectionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimary(TypeScriptParser.PrimaryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnion(TypeScriptParser.UnionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRedefinitionOfType(TypeScriptParser.RedefinitionOfTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPredefinedPrimType(TypeScriptParser.PredefinedPrimTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrayPrimType(TypeScriptParser.ArrayPrimTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParenthesizedPrimType(TypeScriptParser.ParenthesizedPrimTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitThisPrimType(TypeScriptParser.ThisPrimTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTuplePrimType(TypeScriptParser.TuplePrimTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitKeyOfType(TypeScriptParser.KeyOfTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitObjectPrimType(TypeScriptParser.ObjectPrimTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReferencePrimType(TypeScriptParser.ReferencePrimTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQueryPrimType(TypeScriptParser.QueryPrimTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPredefinedType(TypeScriptParser.PredefinedTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeReference(TypeScriptParser.TypeReferenceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeGeneric(TypeScriptParser.TypeGenericContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeName(TypeScriptParser.TypeNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitObjectType(TypeScriptParser.ObjectTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeBody(TypeScriptParser.TypeBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeMemberList(TypeScriptParser.TypeMemberListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeMember(TypeScriptParser.TypeMemberContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrayType(TypeScriptParser.ArrayTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTupleType(TypeScriptParser.TupleTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTupleElementTypes(TypeScriptParser.TupleElementTypesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunctionType(TypeScriptParser.FunctionTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstructorType(TypeScriptParser.ConstructorTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeQuery(TypeScriptParser.TypeQueryContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeQueryExpression(TypeScriptParser.TypeQueryExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPropertySignatur(TypeScriptParser.PropertySignaturContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeAnnotation(TypeScriptParser.TypeAnnotationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCallSignature(TypeScriptParser.CallSignatureContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParameterList(TypeScriptParser.ParameterListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRequiredParameterList(TypeScriptParser.RequiredParameterListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParameter(TypeScriptParser.ParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOptionalParameter(TypeScriptParser.OptionalParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRestParameter(TypeScriptParser.RestParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRequiredParameter(TypeScriptParser.RequiredParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAccessibilityModifier(TypeScriptParser.AccessibilityModifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdentifierOrPattern(TypeScriptParser.IdentifierOrPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstructSignature(TypeScriptParser.ConstructSignatureContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIndexSignature(TypeScriptParser.IndexSignatureContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodSignature(TypeScriptParser.MethodSignatureContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeAliasDeclaration(TypeScriptParser.TypeAliasDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstructorDeclaration(TypeScriptParser.ConstructorDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfaceDeclaration(TypeScriptParser.InterfaceDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfaceExtendsClause(TypeScriptParser.InterfaceExtendsClauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassOrInterfaceTypeList(TypeScriptParser.ClassOrInterfaceTypeListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnumDeclaration(TypeScriptParser.EnumDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnumBody(TypeScriptParser.EnumBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnumMemberList(TypeScriptParser.EnumMemberListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnumMember(TypeScriptParser.EnumMemberContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNamespaceDeclaration(TypeScriptParser.NamespaceDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNamespaceName(TypeScriptParser.NamespaceNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportAliasDeclaration(TypeScriptParser.ImportAliasDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDecoratorList(TypeScriptParser.DecoratorListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDecorator(TypeScriptParser.DecoratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDecoratorMemberExpression(TypeScriptParser.DecoratorMemberExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDecoratorCallExpression(TypeScriptParser.DecoratorCallExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitProgram(TypeScriptParser.ProgramContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSourceElement(TypeScriptParser.SourceElementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStatement(TypeScriptParser.StatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBlock(TypeScriptParser.BlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStatementList(TypeScriptParser.StatementListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAbstractDeclaration(TypeScriptParser.AbstractDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportStatement(TypeScriptParser.ImportStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportFromBlock(TypeScriptParser.ImportFromBlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportModuleItems(TypeScriptParser.ImportModuleItemsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportAliasName(TypeScriptParser.ImportAliasNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitModuleExportName(TypeScriptParser.ModuleExportNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportedBinding(TypeScriptParser.ImportedBindingContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportDefault(TypeScriptParser.ImportDefaultContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportNamespace(TypeScriptParser.ImportNamespaceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportFrom(TypeScriptParser.ImportFromContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAliasName(TypeScriptParser.AliasNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExportDeclaration(TypeScriptParser.ExportDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExportDefaultDeclaration(TypeScriptParser.ExportDefaultDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExportFromBlock(TypeScriptParser.ExportFromBlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExportModuleItems(TypeScriptParser.ExportModuleItemsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExportAliasName(TypeScriptParser.ExportAliasNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDeclaration(TypeScriptParser.DeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariableStatement(TypeScriptParser.VariableStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariableDeclarationList(TypeScriptParser.VariableDeclarationListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariableDeclaration(TypeScriptParser.VariableDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEmptyStatement_(TypeScriptParser.EmptyStatement_Context ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpressionStatement(TypeScriptParser.ExpressionStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIfStatement(TypeScriptParser.IfStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDoStatement(TypeScriptParser.DoStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWhileStatement(TypeScriptParser.WhileStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForStatement(TypeScriptParser.ForStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForVarStatement(TypeScriptParser.ForVarStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForInStatement(TypeScriptParser.ForInStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForVarInStatement(TypeScriptParser.ForVarInStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForOfStatement(TypeScriptParser.ForOfStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForVarOfStatement(TypeScriptParser.ForVarOfStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVarModifier(TypeScriptParser.VarModifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitContinueStatement(TypeScriptParser.ContinueStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBreakStatement(TypeScriptParser.BreakStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReturnStatement(TypeScriptParser.ReturnStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitYieldStatement(TypeScriptParser.YieldStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWithStatement(TypeScriptParser.WithStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchStatement(TypeScriptParser.SwitchStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCaseBlock(TypeScriptParser.CaseBlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCaseClauses(TypeScriptParser.CaseClausesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCaseClause(TypeScriptParser.CaseClauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDefaultClause(TypeScriptParser.DefaultClauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLabelledStatement(TypeScriptParser.LabelledStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitThrowStatement(TypeScriptParser.ThrowStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTryStatement(TypeScriptParser.TryStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCatchProduction(TypeScriptParser.CatchProductionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFinallyProduction(TypeScriptParser.FinallyProductionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDebuggerStatement(TypeScriptParser.DebuggerStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunctionDeclaration(TypeScriptParser.FunctionDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassDeclaration(TypeScriptParser.ClassDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassHeritage(TypeScriptParser.ClassHeritageContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassTail(TypeScriptParser.ClassTailContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassExtendsClause(TypeScriptParser.ClassExtendsClauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImplementsClause(TypeScriptParser.ImplementsClauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassElement(TypeScriptParser.ClassElementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPropertyDeclarationExpression(TypeScriptParser.PropertyDeclarationExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodDeclarationExpression(TypeScriptParser.MethodDeclarationExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGetterSetterDeclarationExpression(TypeScriptParser.GetterSetterDeclarationExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAbstractMemberDeclaration(TypeScriptParser.AbstractMemberDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPropertyMemberBase(TypeScriptParser.PropertyMemberBaseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIndexMemberDeclaration(TypeScriptParser.IndexMemberDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGeneratorMethod(TypeScriptParser.GeneratorMethodContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGeneratorFunctionDeclaration(TypeScriptParser.GeneratorFunctionDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGeneratorBlock(TypeScriptParser.GeneratorBlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGeneratorDefinition(TypeScriptParser.GeneratorDefinitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIteratorBlock(TypeScriptParser.IteratorBlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIteratorDefinition(TypeScriptParser.IteratorDefinitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassElementName(TypeScriptParser.ClassElementNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrivateIdentifier(TypeScriptParser.PrivateIdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFormalParameterList(TypeScriptParser.FormalParameterListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFormalParameterArg(TypeScriptParser.FormalParameterArgContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLastFormalParameterArg(TypeScriptParser.LastFormalParameterArgContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunctionBody(TypeScriptParser.FunctionBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSourceElements(TypeScriptParser.SourceElementsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrayLiteral(TypeScriptParser.ArrayLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitElementList(TypeScriptParser.ElementListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrayElement(TypeScriptParser.ArrayElementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitObjectLiteral(TypeScriptParser.ObjectLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPropertyExpressionAssignment(TypeScriptParser.PropertyExpressionAssignmentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitComputedPropertyExpressionAssignment(TypeScriptParser.ComputedPropertyExpressionAssignmentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPropertyGetter(TypeScriptParser.PropertyGetterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPropertySetter(TypeScriptParser.PropertySetterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodProperty(TypeScriptParser.MethodPropertyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPropertyShorthand(TypeScriptParser.PropertyShorthandContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSpreadOperator(TypeScriptParser.SpreadOperatorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRestParameterInObject(TypeScriptParser.RestParameterInObjectContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGetAccessor(TypeScriptParser.GetAccessorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSetAccessor(TypeScriptParser.SetAccessorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPropertyName(TypeScriptParser.PropertyNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArguments(TypeScriptParser.ArgumentsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArgumentList(TypeScriptParser.ArgumentListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArgument(TypeScriptParser.ArgumentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpressionSequence(TypeScriptParser.ExpressionSequenceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTemplateStringExpression(TypeScriptParser.TemplateStringExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGeneratorsExpression(TypeScriptParser.GeneratorsExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPowerExpression(TypeScriptParser.PowerExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInExpression(TypeScriptParser.InExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGenericTypes(TypeScriptParser.GenericTypesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOptionalChainExpression(TypeScriptParser.OptionalChainExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArgumentsExpression(TypeScriptParser.ArgumentsExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitThisExpression(TypeScriptParser.ThisExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeofExpression(TypeScriptParser.TypeofExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGeneratorsFunctionExpression(TypeScriptParser.GeneratorsFunctionExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEqualityExpression(TypeScriptParser.EqualityExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBitXOrExpression(TypeScriptParser.BitXOrExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCastAsExpression(TypeScriptParser.CastAsExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMultiplicativeExpression(TypeScriptParser.MultiplicativeExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBitShiftExpression(TypeScriptParser.BitShiftExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAdditiveExpression(TypeScriptParser.AdditiveExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRelationalExpression(TypeScriptParser.RelationalExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBitNotExpression(TypeScriptParser.BitNotExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNewExpression(TypeScriptParser.NewExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLiteralExpression(TypeScriptParser.LiteralExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrayLiteralExpression(TypeScriptParser.ArrayLiteralExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMemberDotExpression(TypeScriptParser.MemberDotExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMemberIndexExpression(TypeScriptParser.MemberIndexExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBitAndExpression(TypeScriptParser.BitAndExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBitOrExpression(TypeScriptParser.BitOrExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAssignmentOperatorExpression(TypeScriptParser.AssignmentOperatorExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVoidExpression(TypeScriptParser.VoidExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTernaryExpression(TypeScriptParser.TernaryExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLogicalAndExpression(TypeScriptParser.LogicalAndExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPreIncrementExpression(TypeScriptParser.PreIncrementExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitObjectLiteralExpression(TypeScriptParser.ObjectLiteralExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLogicalOrExpression(TypeScriptParser.LogicalOrExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNonNullAssertionExpression(TypeScriptParser.NonNullAssertionExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNotExpression(TypeScriptParser.NotExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPreDecreaseExpression(TypeScriptParser.PreDecreaseExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAwaitExpression(TypeScriptParser.AwaitExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFunctionExpression(TypeScriptParser.FunctionExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnaryMinusExpression(TypeScriptParser.UnaryMinusExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAssignmentExpression(TypeScriptParser.AssignmentExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPostDecreaseExpression(TypeScriptParser.PostDecreaseExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInstanceofExpression(TypeScriptParser.InstanceofExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnaryPlusExpression(TypeScriptParser.UnaryPlusExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDeleteExpression(TypeScriptParser.DeleteExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIteratorsExpression(TypeScriptParser.IteratorsExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSuperExpression(TypeScriptParser.SuperExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParenthesizedExpression(TypeScriptParser.ParenthesizedExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPostIncrementExpression(TypeScriptParser.PostIncrementExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitYieldExpression(TypeScriptParser.YieldExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassExpression(TypeScriptParser.ClassExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdentifierExpression(TypeScriptParser.IdentifierExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCoalesceExpression(TypeScriptParser.CoalesceExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAsExpression(TypeScriptParser.AsExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAssignable(TypeScriptParser.AssignableContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnonymousFunction(TypeScriptParser.AnonymousFunctionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrowFunctionDeclaration(TypeScriptParser.ArrowFunctionDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrowFunctionParameters(TypeScriptParser.ArrowFunctionParametersContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrowFunctionBody(TypeScriptParser.ArrowFunctionBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAssignmentOperator(TypeScriptParser.AssignmentOperatorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLiteral(TypeScriptParser.LiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTemplateStringLiteral(TypeScriptParser.TemplateStringLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTemplateStringAtom(TypeScriptParser.TemplateStringAtomContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNumericLiteral(TypeScriptParser.NumericLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBigintLiteral(TypeScriptParser.BigintLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGetter(TypeScriptParser.GetterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSetter(TypeScriptParser.SetterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdentifierName(TypeScriptParser.IdentifierNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdentifier(TypeScriptParser.IdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdentifierOrKeyWord(TypeScriptParser.IdentifierOrKeyWordContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReservedWord(TypeScriptParser.ReservedWordContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitKeyword(TypeScriptParser.KeywordContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEos(TypeScriptParser.EosContext ctx) { return visitChildren(ctx); } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserListener.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserListener.java new file mode 100644 index 0000000000000000000000000000000000000000..eeea2eee1b6108be3403b9cf13309ff3261ebd65 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserListener.java @@ -0,0 +1,2566 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr;// Generated from TypeScriptParser.g4 by ANTLR 4.13.2 +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link TypeScriptParser}. + */ +public interface TypeScriptParserListener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link TypeScriptParser#initializer}. + * @param ctx the parse tree + */ + void enterInitializer(TypeScriptParser.InitializerContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#initializer}. + * @param ctx the parse tree + */ + void exitInitializer(TypeScriptParser.InitializerContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#bindingPattern}. + * @param ctx the parse tree + */ + void enterBindingPattern(TypeScriptParser.BindingPatternContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#bindingPattern}. + * @param ctx the parse tree + */ + void exitBindingPattern(TypeScriptParser.BindingPatternContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeParameters}. + * @param ctx the parse tree + */ + void enterTypeParameters(TypeScriptParser.TypeParametersContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeParameters}. + * @param ctx the parse tree + */ + void exitTypeParameters(TypeScriptParser.TypeParametersContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeParameterList}. + * @param ctx the parse tree + */ + void enterTypeParameterList(TypeScriptParser.TypeParameterListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeParameterList}. + * @param ctx the parse tree + */ + void exitTypeParameterList(TypeScriptParser.TypeParameterListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeParameter}. + * @param ctx the parse tree + */ + void enterTypeParameter(TypeScriptParser.TypeParameterContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeParameter}. + * @param ctx the parse tree + */ + void exitTypeParameter(TypeScriptParser.TypeParameterContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#constraint}. + * @param ctx the parse tree + */ + void enterConstraint(TypeScriptParser.ConstraintContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#constraint}. + * @param ctx the parse tree + */ + void exitConstraint(TypeScriptParser.ConstraintContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeArguments}. + * @param ctx the parse tree + */ + void enterTypeArguments(TypeScriptParser.TypeArgumentsContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeArguments}. + * @param ctx the parse tree + */ + void exitTypeArguments(TypeScriptParser.TypeArgumentsContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeArgumentList}. + * @param ctx the parse tree + */ + void enterTypeArgumentList(TypeScriptParser.TypeArgumentListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeArgumentList}. + * @param ctx the parse tree + */ + void exitTypeArgumentList(TypeScriptParser.TypeArgumentListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeArgument}. + * @param ctx the parse tree + */ + void enterTypeArgument(TypeScriptParser.TypeArgumentContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeArgument}. + * @param ctx the parse tree + */ + void exitTypeArgument(TypeScriptParser.TypeArgumentContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#type_}. + * @param ctx the parse tree + */ + void enterType_(TypeScriptParser.Type_Context ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#type_}. + * @param ctx the parse tree + */ + void exitType_(TypeScriptParser.Type_Context ctx); + /** + * Enter a parse tree produced by the {@code Intersection} + * labeled alternative in {@link TypeScriptParser#unionOrIntersectionOrPrimaryType}. + * @param ctx the parse tree + */ + void enterIntersection(TypeScriptParser.IntersectionContext ctx); + /** + * Exit a parse tree produced by the {@code Intersection} + * labeled alternative in {@link TypeScriptParser#unionOrIntersectionOrPrimaryType}. + * @param ctx the parse tree + */ + void exitIntersection(TypeScriptParser.IntersectionContext ctx); + /** + * Enter a parse tree produced by the {@code Primary} + * labeled alternative in {@link TypeScriptParser#unionOrIntersectionOrPrimaryType}. + * @param ctx the parse tree + */ + void enterPrimary(TypeScriptParser.PrimaryContext ctx); + /** + * Exit a parse tree produced by the {@code Primary} + * labeled alternative in {@link TypeScriptParser#unionOrIntersectionOrPrimaryType}. + * @param ctx the parse tree + */ + void exitPrimary(TypeScriptParser.PrimaryContext ctx); + /** + * Enter a parse tree produced by the {@code Union} + * labeled alternative in {@link TypeScriptParser#unionOrIntersectionOrPrimaryType}. + * @param ctx the parse tree + */ + void enterUnion(TypeScriptParser.UnionContext ctx); + /** + * Exit a parse tree produced by the {@code Union} + * labeled alternative in {@link TypeScriptParser#unionOrIntersectionOrPrimaryType}. + * @param ctx the parse tree + */ + void exitUnion(TypeScriptParser.UnionContext ctx); + /** + * Enter a parse tree produced by the {@code RedefinitionOfType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterRedefinitionOfType(TypeScriptParser.RedefinitionOfTypeContext ctx); + /** + * Exit a parse tree produced by the {@code RedefinitionOfType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitRedefinitionOfType(TypeScriptParser.RedefinitionOfTypeContext ctx); + /** + * Enter a parse tree produced by the {@code PredefinedPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterPredefinedPrimType(TypeScriptParser.PredefinedPrimTypeContext ctx); + /** + * Exit a parse tree produced by the {@code PredefinedPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitPredefinedPrimType(TypeScriptParser.PredefinedPrimTypeContext ctx); + /** + * Enter a parse tree produced by the {@code ArrayPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterArrayPrimType(TypeScriptParser.ArrayPrimTypeContext ctx); + /** + * Exit a parse tree produced by the {@code ArrayPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitArrayPrimType(TypeScriptParser.ArrayPrimTypeContext ctx); + /** + * Enter a parse tree produced by the {@code ParenthesizedPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterParenthesizedPrimType(TypeScriptParser.ParenthesizedPrimTypeContext ctx); + /** + * Exit a parse tree produced by the {@code ParenthesizedPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitParenthesizedPrimType(TypeScriptParser.ParenthesizedPrimTypeContext ctx); + /** + * Enter a parse tree produced by the {@code ThisPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterThisPrimType(TypeScriptParser.ThisPrimTypeContext ctx); + /** + * Exit a parse tree produced by the {@code ThisPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitThisPrimType(TypeScriptParser.ThisPrimTypeContext ctx); + /** + * Enter a parse tree produced by the {@code TuplePrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterTuplePrimType(TypeScriptParser.TuplePrimTypeContext ctx); + /** + * Exit a parse tree produced by the {@code TuplePrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitTuplePrimType(TypeScriptParser.TuplePrimTypeContext ctx); + /** + * Enter a parse tree produced by the {@code KeyOfType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterKeyOfType(TypeScriptParser.KeyOfTypeContext ctx); + /** + * Exit a parse tree produced by the {@code KeyOfType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitKeyOfType(TypeScriptParser.KeyOfTypeContext ctx); + /** + * Enter a parse tree produced by the {@code ObjectPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterObjectPrimType(TypeScriptParser.ObjectPrimTypeContext ctx); + /** + * Exit a parse tree produced by the {@code ObjectPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitObjectPrimType(TypeScriptParser.ObjectPrimTypeContext ctx); + /** + * Enter a parse tree produced by the {@code ReferencePrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterReferencePrimType(TypeScriptParser.ReferencePrimTypeContext ctx); + /** + * Exit a parse tree produced by the {@code ReferencePrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitReferencePrimType(TypeScriptParser.ReferencePrimTypeContext ctx); + /** + * Enter a parse tree produced by the {@code QueryPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void enterQueryPrimType(TypeScriptParser.QueryPrimTypeContext ctx); + /** + * Exit a parse tree produced by the {@code QueryPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + */ + void exitQueryPrimType(TypeScriptParser.QueryPrimTypeContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#predefinedType}. + * @param ctx the parse tree + */ + void enterPredefinedType(TypeScriptParser.PredefinedTypeContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#predefinedType}. + * @param ctx the parse tree + */ + void exitPredefinedType(TypeScriptParser.PredefinedTypeContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeReference}. + * @param ctx the parse tree + */ + void enterTypeReference(TypeScriptParser.TypeReferenceContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeReference}. + * @param ctx the parse tree + */ + void exitTypeReference(TypeScriptParser.TypeReferenceContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeGeneric}. + * @param ctx the parse tree + */ + void enterTypeGeneric(TypeScriptParser.TypeGenericContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeGeneric}. + * @param ctx the parse tree + */ + void exitTypeGeneric(TypeScriptParser.TypeGenericContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeName}. + * @param ctx the parse tree + */ + void enterTypeName(TypeScriptParser.TypeNameContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeName}. + * @param ctx the parse tree + */ + void exitTypeName(TypeScriptParser.TypeNameContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#objectType}. + * @param ctx the parse tree + */ + void enterObjectType(TypeScriptParser.ObjectTypeContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#objectType}. + * @param ctx the parse tree + */ + void exitObjectType(TypeScriptParser.ObjectTypeContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeBody}. + * @param ctx the parse tree + */ + void enterTypeBody(TypeScriptParser.TypeBodyContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeBody}. + * @param ctx the parse tree + */ + void exitTypeBody(TypeScriptParser.TypeBodyContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeMemberList}. + * @param ctx the parse tree + */ + void enterTypeMemberList(TypeScriptParser.TypeMemberListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeMemberList}. + * @param ctx the parse tree + */ + void exitTypeMemberList(TypeScriptParser.TypeMemberListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeMember}. + * @param ctx the parse tree + */ + void enterTypeMember(TypeScriptParser.TypeMemberContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeMember}. + * @param ctx the parse tree + */ + void exitTypeMember(TypeScriptParser.TypeMemberContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#arrayType}. + * @param ctx the parse tree + */ + void enterArrayType(TypeScriptParser.ArrayTypeContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#arrayType}. + * @param ctx the parse tree + */ + void exitArrayType(TypeScriptParser.ArrayTypeContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#tupleType}. + * @param ctx the parse tree + */ + void enterTupleType(TypeScriptParser.TupleTypeContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#tupleType}. + * @param ctx the parse tree + */ + void exitTupleType(TypeScriptParser.TupleTypeContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#tupleElementTypes}. + * @param ctx the parse tree + */ + void enterTupleElementTypes(TypeScriptParser.TupleElementTypesContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#tupleElementTypes}. + * @param ctx the parse tree + */ + void exitTupleElementTypes(TypeScriptParser.TupleElementTypesContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#functionType}. + * @param ctx the parse tree + */ + void enterFunctionType(TypeScriptParser.FunctionTypeContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#functionType}. + * @param ctx the parse tree + */ + void exitFunctionType(TypeScriptParser.FunctionTypeContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#constructorType}. + * @param ctx the parse tree + */ + void enterConstructorType(TypeScriptParser.ConstructorTypeContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#constructorType}. + * @param ctx the parse tree + */ + void exitConstructorType(TypeScriptParser.ConstructorTypeContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeQuery}. + * @param ctx the parse tree + */ + void enterTypeQuery(TypeScriptParser.TypeQueryContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeQuery}. + * @param ctx the parse tree + */ + void exitTypeQuery(TypeScriptParser.TypeQueryContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeQueryExpression}. + * @param ctx the parse tree + */ + void enterTypeQueryExpression(TypeScriptParser.TypeQueryExpressionContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeQueryExpression}. + * @param ctx the parse tree + */ + void exitTypeQueryExpression(TypeScriptParser.TypeQueryExpressionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#propertySignatur}. + * @param ctx the parse tree + */ + void enterPropertySignatur(TypeScriptParser.PropertySignaturContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#propertySignatur}. + * @param ctx the parse tree + */ + void exitPropertySignatur(TypeScriptParser.PropertySignaturContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeAnnotation}. + * @param ctx the parse tree + */ + void enterTypeAnnotation(TypeScriptParser.TypeAnnotationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeAnnotation}. + * @param ctx the parse tree + */ + void exitTypeAnnotation(TypeScriptParser.TypeAnnotationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#callSignature}. + * @param ctx the parse tree + */ + void enterCallSignature(TypeScriptParser.CallSignatureContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#callSignature}. + * @param ctx the parse tree + */ + void exitCallSignature(TypeScriptParser.CallSignatureContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#parameterList}. + * @param ctx the parse tree + */ + void enterParameterList(TypeScriptParser.ParameterListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#parameterList}. + * @param ctx the parse tree + */ + void exitParameterList(TypeScriptParser.ParameterListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#requiredParameterList}. + * @param ctx the parse tree + */ + void enterRequiredParameterList(TypeScriptParser.RequiredParameterListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#requiredParameterList}. + * @param ctx the parse tree + */ + void exitRequiredParameterList(TypeScriptParser.RequiredParameterListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#parameter}. + * @param ctx the parse tree + */ + void enterParameter(TypeScriptParser.ParameterContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#parameter}. + * @param ctx the parse tree + */ + void exitParameter(TypeScriptParser.ParameterContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#optionalParameter}. + * @param ctx the parse tree + */ + void enterOptionalParameter(TypeScriptParser.OptionalParameterContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#optionalParameter}. + * @param ctx the parse tree + */ + void exitOptionalParameter(TypeScriptParser.OptionalParameterContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#restParameter}. + * @param ctx the parse tree + */ + void enterRestParameter(TypeScriptParser.RestParameterContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#restParameter}. + * @param ctx the parse tree + */ + void exitRestParameter(TypeScriptParser.RestParameterContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#requiredParameter}. + * @param ctx the parse tree + */ + void enterRequiredParameter(TypeScriptParser.RequiredParameterContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#requiredParameter}. + * @param ctx the parse tree + */ + void exitRequiredParameter(TypeScriptParser.RequiredParameterContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#accessibilityModifier}. + * @param ctx the parse tree + */ + void enterAccessibilityModifier(TypeScriptParser.AccessibilityModifierContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#accessibilityModifier}. + * @param ctx the parse tree + */ + void exitAccessibilityModifier(TypeScriptParser.AccessibilityModifierContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#identifierOrPattern}. + * @param ctx the parse tree + */ + void enterIdentifierOrPattern(TypeScriptParser.IdentifierOrPatternContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#identifierOrPattern}. + * @param ctx the parse tree + */ + void exitIdentifierOrPattern(TypeScriptParser.IdentifierOrPatternContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#constructSignature}. + * @param ctx the parse tree + */ + void enterConstructSignature(TypeScriptParser.ConstructSignatureContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#constructSignature}. + * @param ctx the parse tree + */ + void exitConstructSignature(TypeScriptParser.ConstructSignatureContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#indexSignature}. + * @param ctx the parse tree + */ + void enterIndexSignature(TypeScriptParser.IndexSignatureContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#indexSignature}. + * @param ctx the parse tree + */ + void exitIndexSignature(TypeScriptParser.IndexSignatureContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#methodSignature}. + * @param ctx the parse tree + */ + void enterMethodSignature(TypeScriptParser.MethodSignatureContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#methodSignature}. + * @param ctx the parse tree + */ + void exitMethodSignature(TypeScriptParser.MethodSignatureContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#typeAliasDeclaration}. + * @param ctx the parse tree + */ + void enterTypeAliasDeclaration(TypeScriptParser.TypeAliasDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#typeAliasDeclaration}. + * @param ctx the parse tree + */ + void exitTypeAliasDeclaration(TypeScriptParser.TypeAliasDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#constructorDeclaration}. + * @param ctx the parse tree + */ + void enterConstructorDeclaration(TypeScriptParser.ConstructorDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#constructorDeclaration}. + * @param ctx the parse tree + */ + void exitConstructorDeclaration(TypeScriptParser.ConstructorDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#interfaceDeclaration}. + * @param ctx the parse tree + */ + void enterInterfaceDeclaration(TypeScriptParser.InterfaceDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#interfaceDeclaration}. + * @param ctx the parse tree + */ + void exitInterfaceDeclaration(TypeScriptParser.InterfaceDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#interfaceExtendsClause}. + * @param ctx the parse tree + */ + void enterInterfaceExtendsClause(TypeScriptParser.InterfaceExtendsClauseContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#interfaceExtendsClause}. + * @param ctx the parse tree + */ + void exitInterfaceExtendsClause(TypeScriptParser.InterfaceExtendsClauseContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#classOrInterfaceTypeList}. + * @param ctx the parse tree + */ + void enterClassOrInterfaceTypeList(TypeScriptParser.ClassOrInterfaceTypeListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#classOrInterfaceTypeList}. + * @param ctx the parse tree + */ + void exitClassOrInterfaceTypeList(TypeScriptParser.ClassOrInterfaceTypeListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#enumDeclaration}. + * @param ctx the parse tree + */ + void enterEnumDeclaration(TypeScriptParser.EnumDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#enumDeclaration}. + * @param ctx the parse tree + */ + void exitEnumDeclaration(TypeScriptParser.EnumDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#enumBody}. + * @param ctx the parse tree + */ + void enterEnumBody(TypeScriptParser.EnumBodyContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#enumBody}. + * @param ctx the parse tree + */ + void exitEnumBody(TypeScriptParser.EnumBodyContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#enumMemberList}. + * @param ctx the parse tree + */ + void enterEnumMemberList(TypeScriptParser.EnumMemberListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#enumMemberList}. + * @param ctx the parse tree + */ + void exitEnumMemberList(TypeScriptParser.EnumMemberListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#enumMember}. + * @param ctx the parse tree + */ + void enterEnumMember(TypeScriptParser.EnumMemberContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#enumMember}. + * @param ctx the parse tree + */ + void exitEnumMember(TypeScriptParser.EnumMemberContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#namespaceDeclaration}. + * @param ctx the parse tree + */ + void enterNamespaceDeclaration(TypeScriptParser.NamespaceDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#namespaceDeclaration}. + * @param ctx the parse tree + */ + void exitNamespaceDeclaration(TypeScriptParser.NamespaceDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#namespaceName}. + * @param ctx the parse tree + */ + void enterNamespaceName(TypeScriptParser.NamespaceNameContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#namespaceName}. + * @param ctx the parse tree + */ + void exitNamespaceName(TypeScriptParser.NamespaceNameContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#importAliasDeclaration}. + * @param ctx the parse tree + */ + void enterImportAliasDeclaration(TypeScriptParser.ImportAliasDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#importAliasDeclaration}. + * @param ctx the parse tree + */ + void exitImportAliasDeclaration(TypeScriptParser.ImportAliasDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#decoratorList}. + * @param ctx the parse tree + */ + void enterDecoratorList(TypeScriptParser.DecoratorListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#decoratorList}. + * @param ctx the parse tree + */ + void exitDecoratorList(TypeScriptParser.DecoratorListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#decorator}. + * @param ctx the parse tree + */ + void enterDecorator(TypeScriptParser.DecoratorContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#decorator}. + * @param ctx the parse tree + */ + void exitDecorator(TypeScriptParser.DecoratorContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#decoratorMemberExpression}. + * @param ctx the parse tree + */ + void enterDecoratorMemberExpression(TypeScriptParser.DecoratorMemberExpressionContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#decoratorMemberExpression}. + * @param ctx the parse tree + */ + void exitDecoratorMemberExpression(TypeScriptParser.DecoratorMemberExpressionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#decoratorCallExpression}. + * @param ctx the parse tree + */ + void enterDecoratorCallExpression(TypeScriptParser.DecoratorCallExpressionContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#decoratorCallExpression}. + * @param ctx the parse tree + */ + void exitDecoratorCallExpression(TypeScriptParser.DecoratorCallExpressionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#program}. + * @param ctx the parse tree + */ + void enterProgram(TypeScriptParser.ProgramContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#program}. + * @param ctx the parse tree + */ + void exitProgram(TypeScriptParser.ProgramContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#sourceElement}. + * @param ctx the parse tree + */ + void enterSourceElement(TypeScriptParser.SourceElementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#sourceElement}. + * @param ctx the parse tree + */ + void exitSourceElement(TypeScriptParser.SourceElementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#statement}. + * @param ctx the parse tree + */ + void enterStatement(TypeScriptParser.StatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#statement}. + * @param ctx the parse tree + */ + void exitStatement(TypeScriptParser.StatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#block}. + * @param ctx the parse tree + */ + void enterBlock(TypeScriptParser.BlockContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#block}. + * @param ctx the parse tree + */ + void exitBlock(TypeScriptParser.BlockContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#statementList}. + * @param ctx the parse tree + */ + void enterStatementList(TypeScriptParser.StatementListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#statementList}. + * @param ctx the parse tree + */ + void exitStatementList(TypeScriptParser.StatementListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#abstractDeclaration}. + * @param ctx the parse tree + */ + void enterAbstractDeclaration(TypeScriptParser.AbstractDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#abstractDeclaration}. + * @param ctx the parse tree + */ + void exitAbstractDeclaration(TypeScriptParser.AbstractDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#importStatement}. + * @param ctx the parse tree + */ + void enterImportStatement(TypeScriptParser.ImportStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#importStatement}. + * @param ctx the parse tree + */ + void exitImportStatement(TypeScriptParser.ImportStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#importFromBlock}. + * @param ctx the parse tree + */ + void enterImportFromBlock(TypeScriptParser.ImportFromBlockContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#importFromBlock}. + * @param ctx the parse tree + */ + void exitImportFromBlock(TypeScriptParser.ImportFromBlockContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#importModuleItems}. + * @param ctx the parse tree + */ + void enterImportModuleItems(TypeScriptParser.ImportModuleItemsContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#importModuleItems}. + * @param ctx the parse tree + */ + void exitImportModuleItems(TypeScriptParser.ImportModuleItemsContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#importAliasName}. + * @param ctx the parse tree + */ + void enterImportAliasName(TypeScriptParser.ImportAliasNameContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#importAliasName}. + * @param ctx the parse tree + */ + void exitImportAliasName(TypeScriptParser.ImportAliasNameContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#moduleExportName}. + * @param ctx the parse tree + */ + void enterModuleExportName(TypeScriptParser.ModuleExportNameContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#moduleExportName}. + * @param ctx the parse tree + */ + void exitModuleExportName(TypeScriptParser.ModuleExportNameContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#importedBinding}. + * @param ctx the parse tree + */ + void enterImportedBinding(TypeScriptParser.ImportedBindingContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#importedBinding}. + * @param ctx the parse tree + */ + void exitImportedBinding(TypeScriptParser.ImportedBindingContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#importDefault}. + * @param ctx the parse tree + */ + void enterImportDefault(TypeScriptParser.ImportDefaultContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#importDefault}. + * @param ctx the parse tree + */ + void exitImportDefault(TypeScriptParser.ImportDefaultContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#importNamespace}. + * @param ctx the parse tree + */ + void enterImportNamespace(TypeScriptParser.ImportNamespaceContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#importNamespace}. + * @param ctx the parse tree + */ + void exitImportNamespace(TypeScriptParser.ImportNamespaceContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#importFrom}. + * @param ctx the parse tree + */ + void enterImportFrom(TypeScriptParser.ImportFromContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#importFrom}. + * @param ctx the parse tree + */ + void exitImportFrom(TypeScriptParser.ImportFromContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#aliasName}. + * @param ctx the parse tree + */ + void enterAliasName(TypeScriptParser.AliasNameContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#aliasName}. + * @param ctx the parse tree + */ + void exitAliasName(TypeScriptParser.AliasNameContext ctx); + /** + * Enter a parse tree produced by the {@code ExportDeclaration} + * labeled alternative in {@link TypeScriptParser#exportStatement}. + * @param ctx the parse tree + */ + void enterExportDeclaration(TypeScriptParser.ExportDeclarationContext ctx); + /** + * Exit a parse tree produced by the {@code ExportDeclaration} + * labeled alternative in {@link TypeScriptParser#exportStatement}. + * @param ctx the parse tree + */ + void exitExportDeclaration(TypeScriptParser.ExportDeclarationContext ctx); + /** + * Enter a parse tree produced by the {@code ExportDefaultDeclaration} + * labeled alternative in {@link TypeScriptParser#exportStatement}. + * @param ctx the parse tree + */ + void enterExportDefaultDeclaration(TypeScriptParser.ExportDefaultDeclarationContext ctx); + /** + * Exit a parse tree produced by the {@code ExportDefaultDeclaration} + * labeled alternative in {@link TypeScriptParser#exportStatement}. + * @param ctx the parse tree + */ + void exitExportDefaultDeclaration(TypeScriptParser.ExportDefaultDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#exportFromBlock}. + * @param ctx the parse tree + */ + void enterExportFromBlock(TypeScriptParser.ExportFromBlockContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#exportFromBlock}. + * @param ctx the parse tree + */ + void exitExportFromBlock(TypeScriptParser.ExportFromBlockContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#exportModuleItems}. + * @param ctx the parse tree + */ + void enterExportModuleItems(TypeScriptParser.ExportModuleItemsContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#exportModuleItems}. + * @param ctx the parse tree + */ + void exitExportModuleItems(TypeScriptParser.ExportModuleItemsContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#exportAliasName}. + * @param ctx the parse tree + */ + void enterExportAliasName(TypeScriptParser.ExportAliasNameContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#exportAliasName}. + * @param ctx the parse tree + */ + void exitExportAliasName(TypeScriptParser.ExportAliasNameContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#declaration}. + * @param ctx the parse tree + */ + void enterDeclaration(TypeScriptParser.DeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#declaration}. + * @param ctx the parse tree + */ + void exitDeclaration(TypeScriptParser.DeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#variableStatement}. + * @param ctx the parse tree + */ + void enterVariableStatement(TypeScriptParser.VariableStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#variableStatement}. + * @param ctx the parse tree + */ + void exitVariableStatement(TypeScriptParser.VariableStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#variableDeclarationList}. + * @param ctx the parse tree + */ + void enterVariableDeclarationList(TypeScriptParser.VariableDeclarationListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#variableDeclarationList}. + * @param ctx the parse tree + */ + void exitVariableDeclarationList(TypeScriptParser.VariableDeclarationListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#variableDeclaration}. + * @param ctx the parse tree + */ + void enterVariableDeclaration(TypeScriptParser.VariableDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#variableDeclaration}. + * @param ctx the parse tree + */ + void exitVariableDeclaration(TypeScriptParser.VariableDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#emptyStatement_}. + * @param ctx the parse tree + */ + void enterEmptyStatement_(TypeScriptParser.EmptyStatement_Context ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#emptyStatement_}. + * @param ctx the parse tree + */ + void exitEmptyStatement_(TypeScriptParser.EmptyStatement_Context ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#expressionStatement}. + * @param ctx the parse tree + */ + void enterExpressionStatement(TypeScriptParser.ExpressionStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#expressionStatement}. + * @param ctx the parse tree + */ + void exitExpressionStatement(TypeScriptParser.ExpressionStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#ifStatement}. + * @param ctx the parse tree + */ + void enterIfStatement(TypeScriptParser.IfStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#ifStatement}. + * @param ctx the parse tree + */ + void exitIfStatement(TypeScriptParser.IfStatementContext ctx); + /** + * Enter a parse tree produced by the {@code DoStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void enterDoStatement(TypeScriptParser.DoStatementContext ctx); + /** + * Exit a parse tree produced by the {@code DoStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void exitDoStatement(TypeScriptParser.DoStatementContext ctx); + /** + * Enter a parse tree produced by the {@code WhileStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void enterWhileStatement(TypeScriptParser.WhileStatementContext ctx); + /** + * Exit a parse tree produced by the {@code WhileStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void exitWhileStatement(TypeScriptParser.WhileStatementContext ctx); + /** + * Enter a parse tree produced by the {@code ForStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void enterForStatement(TypeScriptParser.ForStatementContext ctx); + /** + * Exit a parse tree produced by the {@code ForStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void exitForStatement(TypeScriptParser.ForStatementContext ctx); + /** + * Enter a parse tree produced by the {@code ForVarStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void enterForVarStatement(TypeScriptParser.ForVarStatementContext ctx); + /** + * Exit a parse tree produced by the {@code ForVarStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void exitForVarStatement(TypeScriptParser.ForVarStatementContext ctx); + /** + * Enter a parse tree produced by the {@code ForInStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void enterForInStatement(TypeScriptParser.ForInStatementContext ctx); + /** + * Exit a parse tree produced by the {@code ForInStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void exitForInStatement(TypeScriptParser.ForInStatementContext ctx); + /** + * Enter a parse tree produced by the {@code ForVarInStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void enterForVarInStatement(TypeScriptParser.ForVarInStatementContext ctx); + /** + * Exit a parse tree produced by the {@code ForVarInStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void exitForVarInStatement(TypeScriptParser.ForVarInStatementContext ctx); + /** + * Enter a parse tree produced by the {@code ForOfStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void enterForOfStatement(TypeScriptParser.ForOfStatementContext ctx); + /** + * Exit a parse tree produced by the {@code ForOfStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void exitForOfStatement(TypeScriptParser.ForOfStatementContext ctx); + /** + * Enter a parse tree produced by the {@code ForVarOfStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void enterForVarOfStatement(TypeScriptParser.ForVarOfStatementContext ctx); + /** + * Exit a parse tree produced by the {@code ForVarOfStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + */ + void exitForVarOfStatement(TypeScriptParser.ForVarOfStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#varModifier}. + * @param ctx the parse tree + */ + void enterVarModifier(TypeScriptParser.VarModifierContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#varModifier}. + * @param ctx the parse tree + */ + void exitVarModifier(TypeScriptParser.VarModifierContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#continueStatement}. + * @param ctx the parse tree + */ + void enterContinueStatement(TypeScriptParser.ContinueStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#continueStatement}. + * @param ctx the parse tree + */ + void exitContinueStatement(TypeScriptParser.ContinueStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#breakStatement}. + * @param ctx the parse tree + */ + void enterBreakStatement(TypeScriptParser.BreakStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#breakStatement}. + * @param ctx the parse tree + */ + void exitBreakStatement(TypeScriptParser.BreakStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#returnStatement}. + * @param ctx the parse tree + */ + void enterReturnStatement(TypeScriptParser.ReturnStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#returnStatement}. + * @param ctx the parse tree + */ + void exitReturnStatement(TypeScriptParser.ReturnStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#yieldStatement}. + * @param ctx the parse tree + */ + void enterYieldStatement(TypeScriptParser.YieldStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#yieldStatement}. + * @param ctx the parse tree + */ + void exitYieldStatement(TypeScriptParser.YieldStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#withStatement}. + * @param ctx the parse tree + */ + void enterWithStatement(TypeScriptParser.WithStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#withStatement}. + * @param ctx the parse tree + */ + void exitWithStatement(TypeScriptParser.WithStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#switchStatement}. + * @param ctx the parse tree + */ + void enterSwitchStatement(TypeScriptParser.SwitchStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#switchStatement}. + * @param ctx the parse tree + */ + void exitSwitchStatement(TypeScriptParser.SwitchStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#caseBlock}. + * @param ctx the parse tree + */ + void enterCaseBlock(TypeScriptParser.CaseBlockContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#caseBlock}. + * @param ctx the parse tree + */ + void exitCaseBlock(TypeScriptParser.CaseBlockContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#caseClauses}. + * @param ctx the parse tree + */ + void enterCaseClauses(TypeScriptParser.CaseClausesContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#caseClauses}. + * @param ctx the parse tree + */ + void exitCaseClauses(TypeScriptParser.CaseClausesContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#caseClause}. + * @param ctx the parse tree + */ + void enterCaseClause(TypeScriptParser.CaseClauseContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#caseClause}. + * @param ctx the parse tree + */ + void exitCaseClause(TypeScriptParser.CaseClauseContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#defaultClause}. + * @param ctx the parse tree + */ + void enterDefaultClause(TypeScriptParser.DefaultClauseContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#defaultClause}. + * @param ctx the parse tree + */ + void exitDefaultClause(TypeScriptParser.DefaultClauseContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#labelledStatement}. + * @param ctx the parse tree + */ + void enterLabelledStatement(TypeScriptParser.LabelledStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#labelledStatement}. + * @param ctx the parse tree + */ + void exitLabelledStatement(TypeScriptParser.LabelledStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#throwStatement}. + * @param ctx the parse tree + */ + void enterThrowStatement(TypeScriptParser.ThrowStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#throwStatement}. + * @param ctx the parse tree + */ + void exitThrowStatement(TypeScriptParser.ThrowStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#tryStatement}. + * @param ctx the parse tree + */ + void enterTryStatement(TypeScriptParser.TryStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#tryStatement}. + * @param ctx the parse tree + */ + void exitTryStatement(TypeScriptParser.TryStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#catchProduction}. + * @param ctx the parse tree + */ + void enterCatchProduction(TypeScriptParser.CatchProductionContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#catchProduction}. + * @param ctx the parse tree + */ + void exitCatchProduction(TypeScriptParser.CatchProductionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#finallyProduction}. + * @param ctx the parse tree + */ + void enterFinallyProduction(TypeScriptParser.FinallyProductionContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#finallyProduction}. + * @param ctx the parse tree + */ + void exitFinallyProduction(TypeScriptParser.FinallyProductionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#debuggerStatement}. + * @param ctx the parse tree + */ + void enterDebuggerStatement(TypeScriptParser.DebuggerStatementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#debuggerStatement}. + * @param ctx the parse tree + */ + void exitDebuggerStatement(TypeScriptParser.DebuggerStatementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#functionDeclaration}. + * @param ctx the parse tree + */ + void enterFunctionDeclaration(TypeScriptParser.FunctionDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#functionDeclaration}. + * @param ctx the parse tree + */ + void exitFunctionDeclaration(TypeScriptParser.FunctionDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#classDeclaration}. + * @param ctx the parse tree + */ + void enterClassDeclaration(TypeScriptParser.ClassDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#classDeclaration}. + * @param ctx the parse tree + */ + void exitClassDeclaration(TypeScriptParser.ClassDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#classHeritage}. + * @param ctx the parse tree + */ + void enterClassHeritage(TypeScriptParser.ClassHeritageContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#classHeritage}. + * @param ctx the parse tree + */ + void exitClassHeritage(TypeScriptParser.ClassHeritageContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#classTail}. + * @param ctx the parse tree + */ + void enterClassTail(TypeScriptParser.ClassTailContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#classTail}. + * @param ctx the parse tree + */ + void exitClassTail(TypeScriptParser.ClassTailContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#classExtendsClause}. + * @param ctx the parse tree + */ + void enterClassExtendsClause(TypeScriptParser.ClassExtendsClauseContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#classExtendsClause}. + * @param ctx the parse tree + */ + void exitClassExtendsClause(TypeScriptParser.ClassExtendsClauseContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#implementsClause}. + * @param ctx the parse tree + */ + void enterImplementsClause(TypeScriptParser.ImplementsClauseContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#implementsClause}. + * @param ctx the parse tree + */ + void exitImplementsClause(TypeScriptParser.ImplementsClauseContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#classElement}. + * @param ctx the parse tree + */ + void enterClassElement(TypeScriptParser.ClassElementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#classElement}. + * @param ctx the parse tree + */ + void exitClassElement(TypeScriptParser.ClassElementContext ctx); + /** + * Enter a parse tree produced by the {@code PropertyDeclarationExpression} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + */ + void enterPropertyDeclarationExpression(TypeScriptParser.PropertyDeclarationExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code PropertyDeclarationExpression} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + */ + void exitPropertyDeclarationExpression(TypeScriptParser.PropertyDeclarationExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code MethodDeclarationExpression} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + */ + void enterMethodDeclarationExpression(TypeScriptParser.MethodDeclarationExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code MethodDeclarationExpression} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + */ + void exitMethodDeclarationExpression(TypeScriptParser.MethodDeclarationExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code GetterSetterDeclarationExpression} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + */ + void enterGetterSetterDeclarationExpression(TypeScriptParser.GetterSetterDeclarationExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code GetterSetterDeclarationExpression} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + */ + void exitGetterSetterDeclarationExpression(TypeScriptParser.GetterSetterDeclarationExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code AbstractMemberDeclaration} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + */ + void enterAbstractMemberDeclaration(TypeScriptParser.AbstractMemberDeclarationContext ctx); + /** + * Exit a parse tree produced by the {@code AbstractMemberDeclaration} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + */ + void exitAbstractMemberDeclaration(TypeScriptParser.AbstractMemberDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#propertyMemberBase}. + * @param ctx the parse tree + */ + void enterPropertyMemberBase(TypeScriptParser.PropertyMemberBaseContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#propertyMemberBase}. + * @param ctx the parse tree + */ + void exitPropertyMemberBase(TypeScriptParser.PropertyMemberBaseContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#indexMemberDeclaration}. + * @param ctx the parse tree + */ + void enterIndexMemberDeclaration(TypeScriptParser.IndexMemberDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#indexMemberDeclaration}. + * @param ctx the parse tree + */ + void exitIndexMemberDeclaration(TypeScriptParser.IndexMemberDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#generatorMethod}. + * @param ctx the parse tree + */ + void enterGeneratorMethod(TypeScriptParser.GeneratorMethodContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#generatorMethod}. + * @param ctx the parse tree + */ + void exitGeneratorMethod(TypeScriptParser.GeneratorMethodContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#generatorFunctionDeclaration}. + * @param ctx the parse tree + */ + void enterGeneratorFunctionDeclaration(TypeScriptParser.GeneratorFunctionDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#generatorFunctionDeclaration}. + * @param ctx the parse tree + */ + void exitGeneratorFunctionDeclaration(TypeScriptParser.GeneratorFunctionDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#generatorBlock}. + * @param ctx the parse tree + */ + void enterGeneratorBlock(TypeScriptParser.GeneratorBlockContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#generatorBlock}. + * @param ctx the parse tree + */ + void exitGeneratorBlock(TypeScriptParser.GeneratorBlockContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#generatorDefinition}. + * @param ctx the parse tree + */ + void enterGeneratorDefinition(TypeScriptParser.GeneratorDefinitionContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#generatorDefinition}. + * @param ctx the parse tree + */ + void exitGeneratorDefinition(TypeScriptParser.GeneratorDefinitionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#iteratorBlock}. + * @param ctx the parse tree + */ + void enterIteratorBlock(TypeScriptParser.IteratorBlockContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#iteratorBlock}. + * @param ctx the parse tree + */ + void exitIteratorBlock(TypeScriptParser.IteratorBlockContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#iteratorDefinition}. + * @param ctx the parse tree + */ + void enterIteratorDefinition(TypeScriptParser.IteratorDefinitionContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#iteratorDefinition}. + * @param ctx the parse tree + */ + void exitIteratorDefinition(TypeScriptParser.IteratorDefinitionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#classElementName}. + * @param ctx the parse tree + */ + void enterClassElementName(TypeScriptParser.ClassElementNameContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#classElementName}. + * @param ctx the parse tree + */ + void exitClassElementName(TypeScriptParser.ClassElementNameContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#privateIdentifier}. + * @param ctx the parse tree + */ + void enterPrivateIdentifier(TypeScriptParser.PrivateIdentifierContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#privateIdentifier}. + * @param ctx the parse tree + */ + void exitPrivateIdentifier(TypeScriptParser.PrivateIdentifierContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#formalParameterList}. + * @param ctx the parse tree + */ + void enterFormalParameterList(TypeScriptParser.FormalParameterListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#formalParameterList}. + * @param ctx the parse tree + */ + void exitFormalParameterList(TypeScriptParser.FormalParameterListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#formalParameterArg}. + * @param ctx the parse tree + */ + void enterFormalParameterArg(TypeScriptParser.FormalParameterArgContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#formalParameterArg}. + * @param ctx the parse tree + */ + void exitFormalParameterArg(TypeScriptParser.FormalParameterArgContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#lastFormalParameterArg}. + * @param ctx the parse tree + */ + void enterLastFormalParameterArg(TypeScriptParser.LastFormalParameterArgContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#lastFormalParameterArg}. + * @param ctx the parse tree + */ + void exitLastFormalParameterArg(TypeScriptParser.LastFormalParameterArgContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#functionBody}. + * @param ctx the parse tree + */ + void enterFunctionBody(TypeScriptParser.FunctionBodyContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#functionBody}. + * @param ctx the parse tree + */ + void exitFunctionBody(TypeScriptParser.FunctionBodyContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#sourceElements}. + * @param ctx the parse tree + */ + void enterSourceElements(TypeScriptParser.SourceElementsContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#sourceElements}. + * @param ctx the parse tree + */ + void exitSourceElements(TypeScriptParser.SourceElementsContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#arrayLiteral}. + * @param ctx the parse tree + */ + void enterArrayLiteral(TypeScriptParser.ArrayLiteralContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#arrayLiteral}. + * @param ctx the parse tree + */ + void exitArrayLiteral(TypeScriptParser.ArrayLiteralContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#elementList}. + * @param ctx the parse tree + */ + void enterElementList(TypeScriptParser.ElementListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#elementList}. + * @param ctx the parse tree + */ + void exitElementList(TypeScriptParser.ElementListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#arrayElement}. + * @param ctx the parse tree + */ + void enterArrayElement(TypeScriptParser.ArrayElementContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#arrayElement}. + * @param ctx the parse tree + */ + void exitArrayElement(TypeScriptParser.ArrayElementContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#objectLiteral}. + * @param ctx the parse tree + */ + void enterObjectLiteral(TypeScriptParser.ObjectLiteralContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#objectLiteral}. + * @param ctx the parse tree + */ + void exitObjectLiteral(TypeScriptParser.ObjectLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code PropertyExpressionAssignment} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void enterPropertyExpressionAssignment(TypeScriptParser.PropertyExpressionAssignmentContext ctx); + /** + * Exit a parse tree produced by the {@code PropertyExpressionAssignment} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void exitPropertyExpressionAssignment(TypeScriptParser.PropertyExpressionAssignmentContext ctx); + /** + * Enter a parse tree produced by the {@code ComputedPropertyExpressionAssignment} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void enterComputedPropertyExpressionAssignment(TypeScriptParser.ComputedPropertyExpressionAssignmentContext ctx); + /** + * Exit a parse tree produced by the {@code ComputedPropertyExpressionAssignment} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void exitComputedPropertyExpressionAssignment(TypeScriptParser.ComputedPropertyExpressionAssignmentContext ctx); + /** + * Enter a parse tree produced by the {@code PropertyGetter} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void enterPropertyGetter(TypeScriptParser.PropertyGetterContext ctx); + /** + * Exit a parse tree produced by the {@code PropertyGetter} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void exitPropertyGetter(TypeScriptParser.PropertyGetterContext ctx); + /** + * Enter a parse tree produced by the {@code PropertySetter} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void enterPropertySetter(TypeScriptParser.PropertySetterContext ctx); + /** + * Exit a parse tree produced by the {@code PropertySetter} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void exitPropertySetter(TypeScriptParser.PropertySetterContext ctx); + /** + * Enter a parse tree produced by the {@code MethodProperty} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void enterMethodProperty(TypeScriptParser.MethodPropertyContext ctx); + /** + * Exit a parse tree produced by the {@code MethodProperty} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void exitMethodProperty(TypeScriptParser.MethodPropertyContext ctx); + /** + * Enter a parse tree produced by the {@code PropertyShorthand} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void enterPropertyShorthand(TypeScriptParser.PropertyShorthandContext ctx); + /** + * Exit a parse tree produced by the {@code PropertyShorthand} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void exitPropertyShorthand(TypeScriptParser.PropertyShorthandContext ctx); + /** + * Enter a parse tree produced by the {@code SpreadOperator} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void enterSpreadOperator(TypeScriptParser.SpreadOperatorContext ctx); + /** + * Exit a parse tree produced by the {@code SpreadOperator} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void exitSpreadOperator(TypeScriptParser.SpreadOperatorContext ctx); + /** + * Enter a parse tree produced by the {@code RestParameterInObject} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void enterRestParameterInObject(TypeScriptParser.RestParameterInObjectContext ctx); + /** + * Exit a parse tree produced by the {@code RestParameterInObject} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + */ + void exitRestParameterInObject(TypeScriptParser.RestParameterInObjectContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#getAccessor}. + * @param ctx the parse tree + */ + void enterGetAccessor(TypeScriptParser.GetAccessorContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#getAccessor}. + * @param ctx the parse tree + */ + void exitGetAccessor(TypeScriptParser.GetAccessorContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#setAccessor}. + * @param ctx the parse tree + */ + void enterSetAccessor(TypeScriptParser.SetAccessorContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#setAccessor}. + * @param ctx the parse tree + */ + void exitSetAccessor(TypeScriptParser.SetAccessorContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#propertyName}. + * @param ctx the parse tree + */ + void enterPropertyName(TypeScriptParser.PropertyNameContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#propertyName}. + * @param ctx the parse tree + */ + void exitPropertyName(TypeScriptParser.PropertyNameContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#arguments}. + * @param ctx the parse tree + */ + void enterArguments(TypeScriptParser.ArgumentsContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#arguments}. + * @param ctx the parse tree + */ + void exitArguments(TypeScriptParser.ArgumentsContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#argumentList}. + * @param ctx the parse tree + */ + void enterArgumentList(TypeScriptParser.ArgumentListContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#argumentList}. + * @param ctx the parse tree + */ + void exitArgumentList(TypeScriptParser.ArgumentListContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#argument}. + * @param ctx the parse tree + */ + void enterArgument(TypeScriptParser.ArgumentContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#argument}. + * @param ctx the parse tree + */ + void exitArgument(TypeScriptParser.ArgumentContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#expressionSequence}. + * @param ctx the parse tree + */ + void enterExpressionSequence(TypeScriptParser.ExpressionSequenceContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#expressionSequence}. + * @param ctx the parse tree + */ + void exitExpressionSequence(TypeScriptParser.ExpressionSequenceContext ctx); + /** + * Enter a parse tree produced by the {@code TemplateStringExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterTemplateStringExpression(TypeScriptParser.TemplateStringExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code TemplateStringExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitTemplateStringExpression(TypeScriptParser.TemplateStringExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code GeneratorsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterGeneratorsExpression(TypeScriptParser.GeneratorsExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code GeneratorsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitGeneratorsExpression(TypeScriptParser.GeneratorsExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code PowerExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterPowerExpression(TypeScriptParser.PowerExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code PowerExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitPowerExpression(TypeScriptParser.PowerExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code InExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterInExpression(TypeScriptParser.InExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code InExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitInExpression(TypeScriptParser.InExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code GenericTypes} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterGenericTypes(TypeScriptParser.GenericTypesContext ctx); + /** + * Exit a parse tree produced by the {@code GenericTypes} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitGenericTypes(TypeScriptParser.GenericTypesContext ctx); + /** + * Enter a parse tree produced by the {@code OptionalChainExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterOptionalChainExpression(TypeScriptParser.OptionalChainExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code OptionalChainExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitOptionalChainExpression(TypeScriptParser.OptionalChainExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code ArgumentsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterArgumentsExpression(TypeScriptParser.ArgumentsExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code ArgumentsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitArgumentsExpression(TypeScriptParser.ArgumentsExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code ThisExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterThisExpression(TypeScriptParser.ThisExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code ThisExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitThisExpression(TypeScriptParser.ThisExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code TypeofExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterTypeofExpression(TypeScriptParser.TypeofExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code TypeofExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitTypeofExpression(TypeScriptParser.TypeofExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code GeneratorsFunctionExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterGeneratorsFunctionExpression(TypeScriptParser.GeneratorsFunctionExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code GeneratorsFunctionExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitGeneratorsFunctionExpression(TypeScriptParser.GeneratorsFunctionExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code EqualityExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterEqualityExpression(TypeScriptParser.EqualityExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code EqualityExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitEqualityExpression(TypeScriptParser.EqualityExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code BitXOrExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterBitXOrExpression(TypeScriptParser.BitXOrExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code BitXOrExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitBitXOrExpression(TypeScriptParser.BitXOrExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code CastAsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterCastAsExpression(TypeScriptParser.CastAsExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code CastAsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitCastAsExpression(TypeScriptParser.CastAsExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code MultiplicativeExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterMultiplicativeExpression(TypeScriptParser.MultiplicativeExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code MultiplicativeExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitMultiplicativeExpression(TypeScriptParser.MultiplicativeExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code BitShiftExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterBitShiftExpression(TypeScriptParser.BitShiftExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code BitShiftExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitBitShiftExpression(TypeScriptParser.BitShiftExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code AdditiveExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterAdditiveExpression(TypeScriptParser.AdditiveExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code AdditiveExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitAdditiveExpression(TypeScriptParser.AdditiveExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code RelationalExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterRelationalExpression(TypeScriptParser.RelationalExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code RelationalExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitRelationalExpression(TypeScriptParser.RelationalExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code BitNotExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterBitNotExpression(TypeScriptParser.BitNotExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code BitNotExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitBitNotExpression(TypeScriptParser.BitNotExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code NewExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterNewExpression(TypeScriptParser.NewExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code NewExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitNewExpression(TypeScriptParser.NewExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code LiteralExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterLiteralExpression(TypeScriptParser.LiteralExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code LiteralExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitLiteralExpression(TypeScriptParser.LiteralExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code ArrayLiteralExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterArrayLiteralExpression(TypeScriptParser.ArrayLiteralExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code ArrayLiteralExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitArrayLiteralExpression(TypeScriptParser.ArrayLiteralExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code MemberDotExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterMemberDotExpression(TypeScriptParser.MemberDotExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code MemberDotExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitMemberDotExpression(TypeScriptParser.MemberDotExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code MemberIndexExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterMemberIndexExpression(TypeScriptParser.MemberIndexExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code MemberIndexExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitMemberIndexExpression(TypeScriptParser.MemberIndexExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code BitAndExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterBitAndExpression(TypeScriptParser.BitAndExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code BitAndExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitBitAndExpression(TypeScriptParser.BitAndExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code BitOrExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterBitOrExpression(TypeScriptParser.BitOrExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code BitOrExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitBitOrExpression(TypeScriptParser.BitOrExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code AssignmentOperatorExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterAssignmentOperatorExpression(TypeScriptParser.AssignmentOperatorExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code AssignmentOperatorExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitAssignmentOperatorExpression(TypeScriptParser.AssignmentOperatorExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code VoidExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterVoidExpression(TypeScriptParser.VoidExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code VoidExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitVoidExpression(TypeScriptParser.VoidExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code TernaryExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterTernaryExpression(TypeScriptParser.TernaryExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code TernaryExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitTernaryExpression(TypeScriptParser.TernaryExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code LogicalAndExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterLogicalAndExpression(TypeScriptParser.LogicalAndExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code LogicalAndExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitLogicalAndExpression(TypeScriptParser.LogicalAndExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code PreIncrementExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterPreIncrementExpression(TypeScriptParser.PreIncrementExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code PreIncrementExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitPreIncrementExpression(TypeScriptParser.PreIncrementExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code ObjectLiteralExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterObjectLiteralExpression(TypeScriptParser.ObjectLiteralExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code ObjectLiteralExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitObjectLiteralExpression(TypeScriptParser.ObjectLiteralExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code LogicalOrExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterLogicalOrExpression(TypeScriptParser.LogicalOrExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code LogicalOrExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitLogicalOrExpression(TypeScriptParser.LogicalOrExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code NonNullAssertionExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterNonNullAssertionExpression(TypeScriptParser.NonNullAssertionExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code NonNullAssertionExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitNonNullAssertionExpression(TypeScriptParser.NonNullAssertionExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code NotExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterNotExpression(TypeScriptParser.NotExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code NotExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitNotExpression(TypeScriptParser.NotExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code PreDecreaseExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterPreDecreaseExpression(TypeScriptParser.PreDecreaseExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code PreDecreaseExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitPreDecreaseExpression(TypeScriptParser.PreDecreaseExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code AwaitExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterAwaitExpression(TypeScriptParser.AwaitExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code AwaitExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitAwaitExpression(TypeScriptParser.AwaitExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code FunctionExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterFunctionExpression(TypeScriptParser.FunctionExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code FunctionExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitFunctionExpression(TypeScriptParser.FunctionExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code UnaryMinusExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterUnaryMinusExpression(TypeScriptParser.UnaryMinusExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code UnaryMinusExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitUnaryMinusExpression(TypeScriptParser.UnaryMinusExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code AssignmentExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterAssignmentExpression(TypeScriptParser.AssignmentExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code AssignmentExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitAssignmentExpression(TypeScriptParser.AssignmentExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code PostDecreaseExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterPostDecreaseExpression(TypeScriptParser.PostDecreaseExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code PostDecreaseExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitPostDecreaseExpression(TypeScriptParser.PostDecreaseExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code InstanceofExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterInstanceofExpression(TypeScriptParser.InstanceofExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code InstanceofExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitInstanceofExpression(TypeScriptParser.InstanceofExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code UnaryPlusExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterUnaryPlusExpression(TypeScriptParser.UnaryPlusExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code UnaryPlusExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitUnaryPlusExpression(TypeScriptParser.UnaryPlusExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code DeleteExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterDeleteExpression(TypeScriptParser.DeleteExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code DeleteExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitDeleteExpression(TypeScriptParser.DeleteExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code IteratorsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterIteratorsExpression(TypeScriptParser.IteratorsExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code IteratorsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitIteratorsExpression(TypeScriptParser.IteratorsExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code SuperExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterSuperExpression(TypeScriptParser.SuperExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code SuperExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitSuperExpression(TypeScriptParser.SuperExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code ParenthesizedExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterParenthesizedExpression(TypeScriptParser.ParenthesizedExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code ParenthesizedExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitParenthesizedExpression(TypeScriptParser.ParenthesizedExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code PostIncrementExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterPostIncrementExpression(TypeScriptParser.PostIncrementExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code PostIncrementExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitPostIncrementExpression(TypeScriptParser.PostIncrementExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code YieldExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterYieldExpression(TypeScriptParser.YieldExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code YieldExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitYieldExpression(TypeScriptParser.YieldExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code ClassExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterClassExpression(TypeScriptParser.ClassExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code ClassExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitClassExpression(TypeScriptParser.ClassExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code IdentifierExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterIdentifierExpression(TypeScriptParser.IdentifierExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code IdentifierExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitIdentifierExpression(TypeScriptParser.IdentifierExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code CoalesceExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void enterCoalesceExpression(TypeScriptParser.CoalesceExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code CoalesceExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + */ + void exitCoalesceExpression(TypeScriptParser.CoalesceExpressionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#asExpression}. + * @param ctx the parse tree + */ + void enterAsExpression(TypeScriptParser.AsExpressionContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#asExpression}. + * @param ctx the parse tree + */ + void exitAsExpression(TypeScriptParser.AsExpressionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#assignable}. + * @param ctx the parse tree + */ + void enterAssignable(TypeScriptParser.AssignableContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#assignable}. + * @param ctx the parse tree + */ + void exitAssignable(TypeScriptParser.AssignableContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#anonymousFunction}. + * @param ctx the parse tree + */ + void enterAnonymousFunction(TypeScriptParser.AnonymousFunctionContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#anonymousFunction}. + * @param ctx the parse tree + */ + void exitAnonymousFunction(TypeScriptParser.AnonymousFunctionContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#arrowFunctionDeclaration}. + * @param ctx the parse tree + */ + void enterArrowFunctionDeclaration(TypeScriptParser.ArrowFunctionDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#arrowFunctionDeclaration}. + * @param ctx the parse tree + */ + void exitArrowFunctionDeclaration(TypeScriptParser.ArrowFunctionDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#arrowFunctionParameters}. + * @param ctx the parse tree + */ + void enterArrowFunctionParameters(TypeScriptParser.ArrowFunctionParametersContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#arrowFunctionParameters}. + * @param ctx the parse tree + */ + void exitArrowFunctionParameters(TypeScriptParser.ArrowFunctionParametersContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#arrowFunctionBody}. + * @param ctx the parse tree + */ + void enterArrowFunctionBody(TypeScriptParser.ArrowFunctionBodyContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#arrowFunctionBody}. + * @param ctx the parse tree + */ + void exitArrowFunctionBody(TypeScriptParser.ArrowFunctionBodyContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#assignmentOperator}. + * @param ctx the parse tree + */ + void enterAssignmentOperator(TypeScriptParser.AssignmentOperatorContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#assignmentOperator}. + * @param ctx the parse tree + */ + void exitAssignmentOperator(TypeScriptParser.AssignmentOperatorContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#literal}. + * @param ctx the parse tree + */ + void enterLiteral(TypeScriptParser.LiteralContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#literal}. + * @param ctx the parse tree + */ + void exitLiteral(TypeScriptParser.LiteralContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#templateStringLiteral}. + * @param ctx the parse tree + */ + void enterTemplateStringLiteral(TypeScriptParser.TemplateStringLiteralContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#templateStringLiteral}. + * @param ctx the parse tree + */ + void exitTemplateStringLiteral(TypeScriptParser.TemplateStringLiteralContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#templateStringAtom}. + * @param ctx the parse tree + */ + void enterTemplateStringAtom(TypeScriptParser.TemplateStringAtomContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#templateStringAtom}. + * @param ctx the parse tree + */ + void exitTemplateStringAtom(TypeScriptParser.TemplateStringAtomContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#numericLiteral}. + * @param ctx the parse tree + */ + void enterNumericLiteral(TypeScriptParser.NumericLiteralContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#numericLiteral}. + * @param ctx the parse tree + */ + void exitNumericLiteral(TypeScriptParser.NumericLiteralContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#bigintLiteral}. + * @param ctx the parse tree + */ + void enterBigintLiteral(TypeScriptParser.BigintLiteralContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#bigintLiteral}. + * @param ctx the parse tree + */ + void exitBigintLiteral(TypeScriptParser.BigintLiteralContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#getter}. + * @param ctx the parse tree + */ + void enterGetter(TypeScriptParser.GetterContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#getter}. + * @param ctx the parse tree + */ + void exitGetter(TypeScriptParser.GetterContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#setter}. + * @param ctx the parse tree + */ + void enterSetter(TypeScriptParser.SetterContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#setter}. + * @param ctx the parse tree + */ + void exitSetter(TypeScriptParser.SetterContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#identifierName}. + * @param ctx the parse tree + */ + void enterIdentifierName(TypeScriptParser.IdentifierNameContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#identifierName}. + * @param ctx the parse tree + */ + void exitIdentifierName(TypeScriptParser.IdentifierNameContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#identifier}. + * @param ctx the parse tree + */ + void enterIdentifier(TypeScriptParser.IdentifierContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#identifier}. + * @param ctx the parse tree + */ + void exitIdentifier(TypeScriptParser.IdentifierContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#identifierOrKeyWord}. + * @param ctx the parse tree + */ + void enterIdentifierOrKeyWord(TypeScriptParser.IdentifierOrKeyWordContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#identifierOrKeyWord}. + * @param ctx the parse tree + */ + void exitIdentifierOrKeyWord(TypeScriptParser.IdentifierOrKeyWordContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#reservedWord}. + * @param ctx the parse tree + */ + void enterReservedWord(TypeScriptParser.ReservedWordContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#reservedWord}. + * @param ctx the parse tree + */ + void exitReservedWord(TypeScriptParser.ReservedWordContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#keyword}. + * @param ctx the parse tree + */ + void enterKeyword(TypeScriptParser.KeywordContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#keyword}. + * @param ctx the parse tree + */ + void exitKeyword(TypeScriptParser.KeywordContext ctx); + /** + * Enter a parse tree produced by {@link TypeScriptParser#eos}. + * @param ctx the parse tree + */ + void enterEos(TypeScriptParser.EosContext ctx); + /** + * Exit a parse tree produced by {@link TypeScriptParser#eos}. + * @param ctx the parse tree + */ + void exitEos(TypeScriptParser.EosContext ctx); +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserVisitor.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserVisitor.java new file mode 100644 index 0000000000000000000000000000000000000000..8b1c3e6f78284cbaa097976641bf0b0bb3ead0ed --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptParserVisitor.java @@ -0,0 +1,1535 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr;// Generated from TypeScriptParser.g4 by ANTLR 4.13.2 +import org.antlr.v4.runtime.tree.ParseTreeVisitor; + +/** + * This interface defines a complete generic visitor for a parse tree produced + * by {@link TypeScriptParser}. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public interface TypeScriptParserVisitor extends ParseTreeVisitor { + /** + * Visit a parse tree produced by {@link TypeScriptParser#initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInitializer(TypeScriptParser.InitializerContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#bindingPattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBindingPattern(TypeScriptParser.BindingPatternContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeParameters}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeParameters(TypeScriptParser.TypeParametersContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeParameterList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeParameterList(TypeScriptParser.TypeParameterListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeParameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeParameter(TypeScriptParser.TypeParameterContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#constraint}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstraint(TypeScriptParser.ConstraintContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeArguments}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeArguments(TypeScriptParser.TypeArgumentsContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeArgumentList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeArgumentList(TypeScriptParser.TypeArgumentListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeArgument}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeArgument(TypeScriptParser.TypeArgumentContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#type_}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_(TypeScriptParser.Type_Context ctx); + /** + * Visit a parse tree produced by the {@code Intersection} + * labeled alternative in {@link TypeScriptParser#unionOrIntersectionOrPrimaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIntersection(TypeScriptParser.IntersectionContext ctx); + /** + * Visit a parse tree produced by the {@code Primary} + * labeled alternative in {@link TypeScriptParser#unionOrIntersectionOrPrimaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimary(TypeScriptParser.PrimaryContext ctx); + /** + * Visit a parse tree produced by the {@code Union} + * labeled alternative in {@link TypeScriptParser#unionOrIntersectionOrPrimaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnion(TypeScriptParser.UnionContext ctx); + /** + * Visit a parse tree produced by the {@code RedefinitionOfType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRedefinitionOfType(TypeScriptParser.RedefinitionOfTypeContext ctx); + /** + * Visit a parse tree produced by the {@code PredefinedPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPredefinedPrimType(TypeScriptParser.PredefinedPrimTypeContext ctx); + /** + * Visit a parse tree produced by the {@code ArrayPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrayPrimType(TypeScriptParser.ArrayPrimTypeContext ctx); + /** + * Visit a parse tree produced by the {@code ParenthesizedPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParenthesizedPrimType(TypeScriptParser.ParenthesizedPrimTypeContext ctx); + /** + * Visit a parse tree produced by the {@code ThisPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitThisPrimType(TypeScriptParser.ThisPrimTypeContext ctx); + /** + * Visit a parse tree produced by the {@code TuplePrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTuplePrimType(TypeScriptParser.TuplePrimTypeContext ctx); + /** + * Visit a parse tree produced by the {@code KeyOfType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitKeyOfType(TypeScriptParser.KeyOfTypeContext ctx); + /** + * Visit a parse tree produced by the {@code ObjectPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitObjectPrimType(TypeScriptParser.ObjectPrimTypeContext ctx); + /** + * Visit a parse tree produced by the {@code ReferencePrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReferencePrimType(TypeScriptParser.ReferencePrimTypeContext ctx); + /** + * Visit a parse tree produced by the {@code QueryPrimType} + * labeled alternative in {@link TypeScriptParser#primaryType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQueryPrimType(TypeScriptParser.QueryPrimTypeContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#predefinedType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPredefinedType(TypeScriptParser.PredefinedTypeContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeReference}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeReference(TypeScriptParser.TypeReferenceContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeGeneric}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeGeneric(TypeScriptParser.TypeGenericContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeName(TypeScriptParser.TypeNameContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#objectType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitObjectType(TypeScriptParser.ObjectTypeContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeBody(TypeScriptParser.TypeBodyContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeMemberList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeMemberList(TypeScriptParser.TypeMemberListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeMember}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeMember(TypeScriptParser.TypeMemberContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#arrayType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrayType(TypeScriptParser.ArrayTypeContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#tupleType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTupleType(TypeScriptParser.TupleTypeContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#tupleElementTypes}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTupleElementTypes(TypeScriptParser.TupleElementTypesContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#functionType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunctionType(TypeScriptParser.FunctionTypeContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#constructorType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstructorType(TypeScriptParser.ConstructorTypeContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeQuery}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeQuery(TypeScriptParser.TypeQueryContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeQueryExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeQueryExpression(TypeScriptParser.TypeQueryExpressionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#propertySignatur}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPropertySignatur(TypeScriptParser.PropertySignaturContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeAnnotation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeAnnotation(TypeScriptParser.TypeAnnotationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#callSignature}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCallSignature(TypeScriptParser.CallSignatureContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#parameterList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParameterList(TypeScriptParser.ParameterListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#requiredParameterList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRequiredParameterList(TypeScriptParser.RequiredParameterListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#parameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParameter(TypeScriptParser.ParameterContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#optionalParameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOptionalParameter(TypeScriptParser.OptionalParameterContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#restParameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRestParameter(TypeScriptParser.RestParameterContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#requiredParameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRequiredParameter(TypeScriptParser.RequiredParameterContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#accessibilityModifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAccessibilityModifier(TypeScriptParser.AccessibilityModifierContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#identifierOrPattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifierOrPattern(TypeScriptParser.IdentifierOrPatternContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#constructSignature}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstructSignature(TypeScriptParser.ConstructSignatureContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#indexSignature}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIndexSignature(TypeScriptParser.IndexSignatureContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#methodSignature}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodSignature(TypeScriptParser.MethodSignatureContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#typeAliasDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeAliasDeclaration(TypeScriptParser.TypeAliasDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#constructorDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstructorDeclaration(TypeScriptParser.ConstructorDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#interfaceDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfaceDeclaration(TypeScriptParser.InterfaceDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#interfaceExtendsClause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfaceExtendsClause(TypeScriptParser.InterfaceExtendsClauseContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#classOrInterfaceTypeList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassOrInterfaceTypeList(TypeScriptParser.ClassOrInterfaceTypeListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#enumDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnumDeclaration(TypeScriptParser.EnumDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#enumBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnumBody(TypeScriptParser.EnumBodyContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#enumMemberList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnumMemberList(TypeScriptParser.EnumMemberListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#enumMember}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnumMember(TypeScriptParser.EnumMemberContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#namespaceDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNamespaceDeclaration(TypeScriptParser.NamespaceDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#namespaceName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNamespaceName(TypeScriptParser.NamespaceNameContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#importAliasDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportAliasDeclaration(TypeScriptParser.ImportAliasDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#decoratorList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDecoratorList(TypeScriptParser.DecoratorListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#decorator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDecorator(TypeScriptParser.DecoratorContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#decoratorMemberExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDecoratorMemberExpression(TypeScriptParser.DecoratorMemberExpressionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#decoratorCallExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDecoratorCallExpression(TypeScriptParser.DecoratorCallExpressionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#program}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitProgram(TypeScriptParser.ProgramContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#sourceElement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSourceElement(TypeScriptParser.SourceElementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStatement(TypeScriptParser.StatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#block}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBlock(TypeScriptParser.BlockContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#statementList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStatementList(TypeScriptParser.StatementListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#abstractDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAbstractDeclaration(TypeScriptParser.AbstractDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#importStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportStatement(TypeScriptParser.ImportStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#importFromBlock}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportFromBlock(TypeScriptParser.ImportFromBlockContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#importModuleItems}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportModuleItems(TypeScriptParser.ImportModuleItemsContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#importAliasName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportAliasName(TypeScriptParser.ImportAliasNameContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#moduleExportName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitModuleExportName(TypeScriptParser.ModuleExportNameContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#importedBinding}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportedBinding(TypeScriptParser.ImportedBindingContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#importDefault}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportDefault(TypeScriptParser.ImportDefaultContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#importNamespace}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportNamespace(TypeScriptParser.ImportNamespaceContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#importFrom}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportFrom(TypeScriptParser.ImportFromContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#aliasName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAliasName(TypeScriptParser.AliasNameContext ctx); + /** + * Visit a parse tree produced by the {@code ExportDeclaration} + * labeled alternative in {@link TypeScriptParser#exportStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExportDeclaration(TypeScriptParser.ExportDeclarationContext ctx); + /** + * Visit a parse tree produced by the {@code ExportDefaultDeclaration} + * labeled alternative in {@link TypeScriptParser#exportStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExportDefaultDeclaration(TypeScriptParser.ExportDefaultDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#exportFromBlock}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExportFromBlock(TypeScriptParser.ExportFromBlockContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#exportModuleItems}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExportModuleItems(TypeScriptParser.ExportModuleItemsContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#exportAliasName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExportAliasName(TypeScriptParser.ExportAliasNameContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDeclaration(TypeScriptParser.DeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#variableStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariableStatement(TypeScriptParser.VariableStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#variableDeclarationList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariableDeclarationList(TypeScriptParser.VariableDeclarationListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#variableDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariableDeclaration(TypeScriptParser.VariableDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#emptyStatement_}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEmptyStatement_(TypeScriptParser.EmptyStatement_Context ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#expressionStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpressionStatement(TypeScriptParser.ExpressionStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#ifStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIfStatement(TypeScriptParser.IfStatementContext ctx); + /** + * Visit a parse tree produced by the {@code DoStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDoStatement(TypeScriptParser.DoStatementContext ctx); + /** + * Visit a parse tree produced by the {@code WhileStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWhileStatement(TypeScriptParser.WhileStatementContext ctx); + /** + * Visit a parse tree produced by the {@code ForStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForStatement(TypeScriptParser.ForStatementContext ctx); + /** + * Visit a parse tree produced by the {@code ForVarStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForVarStatement(TypeScriptParser.ForVarStatementContext ctx); + /** + * Visit a parse tree produced by the {@code ForInStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForInStatement(TypeScriptParser.ForInStatementContext ctx); + /** + * Visit a parse tree produced by the {@code ForVarInStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForVarInStatement(TypeScriptParser.ForVarInStatementContext ctx); + /** + * Visit a parse tree produced by the {@code ForOfStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForOfStatement(TypeScriptParser.ForOfStatementContext ctx); + /** + * Visit a parse tree produced by the {@code ForVarOfStatement} + * labeled alternative in {@link TypeScriptParser#iterationStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForVarOfStatement(TypeScriptParser.ForVarOfStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#varModifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVarModifier(TypeScriptParser.VarModifierContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#continueStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitContinueStatement(TypeScriptParser.ContinueStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#breakStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBreakStatement(TypeScriptParser.BreakStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#returnStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReturnStatement(TypeScriptParser.ReturnStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#yieldStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitYieldStatement(TypeScriptParser.YieldStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#withStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWithStatement(TypeScriptParser.WithStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#switchStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchStatement(TypeScriptParser.SwitchStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#caseBlock}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCaseBlock(TypeScriptParser.CaseBlockContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#caseClauses}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCaseClauses(TypeScriptParser.CaseClausesContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#caseClause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCaseClause(TypeScriptParser.CaseClauseContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#defaultClause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDefaultClause(TypeScriptParser.DefaultClauseContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#labelledStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLabelledStatement(TypeScriptParser.LabelledStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#throwStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitThrowStatement(TypeScriptParser.ThrowStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#tryStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTryStatement(TypeScriptParser.TryStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#catchProduction}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCatchProduction(TypeScriptParser.CatchProductionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#finallyProduction}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFinallyProduction(TypeScriptParser.FinallyProductionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#debuggerStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDebuggerStatement(TypeScriptParser.DebuggerStatementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#functionDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunctionDeclaration(TypeScriptParser.FunctionDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#classDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassDeclaration(TypeScriptParser.ClassDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#classHeritage}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassHeritage(TypeScriptParser.ClassHeritageContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#classTail}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassTail(TypeScriptParser.ClassTailContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#classExtendsClause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassExtendsClause(TypeScriptParser.ClassExtendsClauseContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#implementsClause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImplementsClause(TypeScriptParser.ImplementsClauseContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#classElement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassElement(TypeScriptParser.ClassElementContext ctx); + /** + * Visit a parse tree produced by the {@code PropertyDeclarationExpression} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPropertyDeclarationExpression(TypeScriptParser.PropertyDeclarationExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code MethodDeclarationExpression} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodDeclarationExpression(TypeScriptParser.MethodDeclarationExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code GetterSetterDeclarationExpression} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGetterSetterDeclarationExpression(TypeScriptParser.GetterSetterDeclarationExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code AbstractMemberDeclaration} + * labeled alternative in {@link TypeScriptParser#propertyMemberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAbstractMemberDeclaration(TypeScriptParser.AbstractMemberDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#propertyMemberBase}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPropertyMemberBase(TypeScriptParser.PropertyMemberBaseContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#indexMemberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIndexMemberDeclaration(TypeScriptParser.IndexMemberDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#generatorMethod}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGeneratorMethod(TypeScriptParser.GeneratorMethodContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#generatorFunctionDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGeneratorFunctionDeclaration(TypeScriptParser.GeneratorFunctionDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#generatorBlock}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGeneratorBlock(TypeScriptParser.GeneratorBlockContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#generatorDefinition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGeneratorDefinition(TypeScriptParser.GeneratorDefinitionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#iteratorBlock}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIteratorBlock(TypeScriptParser.IteratorBlockContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#iteratorDefinition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIteratorDefinition(TypeScriptParser.IteratorDefinitionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#classElementName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassElementName(TypeScriptParser.ClassElementNameContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#privateIdentifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrivateIdentifier(TypeScriptParser.PrivateIdentifierContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#formalParameterList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFormalParameterList(TypeScriptParser.FormalParameterListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#formalParameterArg}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFormalParameterArg(TypeScriptParser.FormalParameterArgContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#lastFormalParameterArg}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLastFormalParameterArg(TypeScriptParser.LastFormalParameterArgContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#functionBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunctionBody(TypeScriptParser.FunctionBodyContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#sourceElements}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSourceElements(TypeScriptParser.SourceElementsContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#arrayLiteral}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrayLiteral(TypeScriptParser.ArrayLiteralContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#elementList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitElementList(TypeScriptParser.ElementListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#arrayElement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrayElement(TypeScriptParser.ArrayElementContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#objectLiteral}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitObjectLiteral(TypeScriptParser.ObjectLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code PropertyExpressionAssignment} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPropertyExpressionAssignment(TypeScriptParser.PropertyExpressionAssignmentContext ctx); + /** + * Visit a parse tree produced by the {@code ComputedPropertyExpressionAssignment} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitComputedPropertyExpressionAssignment(TypeScriptParser.ComputedPropertyExpressionAssignmentContext ctx); + /** + * Visit a parse tree produced by the {@code PropertyGetter} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPropertyGetter(TypeScriptParser.PropertyGetterContext ctx); + /** + * Visit a parse tree produced by the {@code PropertySetter} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPropertySetter(TypeScriptParser.PropertySetterContext ctx); + /** + * Visit a parse tree produced by the {@code MethodProperty} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodProperty(TypeScriptParser.MethodPropertyContext ctx); + /** + * Visit a parse tree produced by the {@code PropertyShorthand} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPropertyShorthand(TypeScriptParser.PropertyShorthandContext ctx); + /** + * Visit a parse tree produced by the {@code SpreadOperator} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSpreadOperator(TypeScriptParser.SpreadOperatorContext ctx); + /** + * Visit a parse tree produced by the {@code RestParameterInObject} + * labeled alternative in {@link TypeScriptParser#propertyAssignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRestParameterInObject(TypeScriptParser.RestParameterInObjectContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#getAccessor}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGetAccessor(TypeScriptParser.GetAccessorContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#setAccessor}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSetAccessor(TypeScriptParser.SetAccessorContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#propertyName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPropertyName(TypeScriptParser.PropertyNameContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#arguments}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArguments(TypeScriptParser.ArgumentsContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#argumentList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArgumentList(TypeScriptParser.ArgumentListContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#argument}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArgument(TypeScriptParser.ArgumentContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#expressionSequence}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpressionSequence(TypeScriptParser.ExpressionSequenceContext ctx); + /** + * Visit a parse tree produced by the {@code TemplateStringExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTemplateStringExpression(TypeScriptParser.TemplateStringExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code GeneratorsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGeneratorsExpression(TypeScriptParser.GeneratorsExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code PowerExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPowerExpression(TypeScriptParser.PowerExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code InExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInExpression(TypeScriptParser.InExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code GenericTypes} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGenericTypes(TypeScriptParser.GenericTypesContext ctx); + /** + * Visit a parse tree produced by the {@code OptionalChainExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOptionalChainExpression(TypeScriptParser.OptionalChainExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code ArgumentsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArgumentsExpression(TypeScriptParser.ArgumentsExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code ThisExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitThisExpression(TypeScriptParser.ThisExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code TypeofExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeofExpression(TypeScriptParser.TypeofExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code GeneratorsFunctionExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGeneratorsFunctionExpression(TypeScriptParser.GeneratorsFunctionExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code EqualityExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEqualityExpression(TypeScriptParser.EqualityExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code BitXOrExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBitXOrExpression(TypeScriptParser.BitXOrExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code CastAsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCastAsExpression(TypeScriptParser.CastAsExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code MultiplicativeExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMultiplicativeExpression(TypeScriptParser.MultiplicativeExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code BitShiftExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBitShiftExpression(TypeScriptParser.BitShiftExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code AdditiveExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAdditiveExpression(TypeScriptParser.AdditiveExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code RelationalExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRelationalExpression(TypeScriptParser.RelationalExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code BitNotExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBitNotExpression(TypeScriptParser.BitNotExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code NewExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNewExpression(TypeScriptParser.NewExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code LiteralExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLiteralExpression(TypeScriptParser.LiteralExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code ArrayLiteralExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrayLiteralExpression(TypeScriptParser.ArrayLiteralExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code MemberDotExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMemberDotExpression(TypeScriptParser.MemberDotExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code MemberIndexExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMemberIndexExpression(TypeScriptParser.MemberIndexExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code BitAndExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBitAndExpression(TypeScriptParser.BitAndExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code BitOrExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBitOrExpression(TypeScriptParser.BitOrExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code AssignmentOperatorExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAssignmentOperatorExpression(TypeScriptParser.AssignmentOperatorExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code VoidExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVoidExpression(TypeScriptParser.VoidExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code TernaryExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTernaryExpression(TypeScriptParser.TernaryExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code LogicalAndExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLogicalAndExpression(TypeScriptParser.LogicalAndExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code PreIncrementExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPreIncrementExpression(TypeScriptParser.PreIncrementExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code ObjectLiteralExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitObjectLiteralExpression(TypeScriptParser.ObjectLiteralExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code LogicalOrExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLogicalOrExpression(TypeScriptParser.LogicalOrExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code NonNullAssertionExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNonNullAssertionExpression(TypeScriptParser.NonNullAssertionExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code NotExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNotExpression(TypeScriptParser.NotExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code PreDecreaseExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPreDecreaseExpression(TypeScriptParser.PreDecreaseExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code AwaitExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAwaitExpression(TypeScriptParser.AwaitExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code FunctionExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFunctionExpression(TypeScriptParser.FunctionExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code UnaryMinusExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnaryMinusExpression(TypeScriptParser.UnaryMinusExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code AssignmentExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAssignmentExpression(TypeScriptParser.AssignmentExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code PostDecreaseExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPostDecreaseExpression(TypeScriptParser.PostDecreaseExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code InstanceofExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInstanceofExpression(TypeScriptParser.InstanceofExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code UnaryPlusExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnaryPlusExpression(TypeScriptParser.UnaryPlusExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code DeleteExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDeleteExpression(TypeScriptParser.DeleteExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code IteratorsExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIteratorsExpression(TypeScriptParser.IteratorsExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code SuperExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSuperExpression(TypeScriptParser.SuperExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code ParenthesizedExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParenthesizedExpression(TypeScriptParser.ParenthesizedExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code PostIncrementExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPostIncrementExpression(TypeScriptParser.PostIncrementExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code YieldExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitYieldExpression(TypeScriptParser.YieldExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code ClassExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassExpression(TypeScriptParser.ClassExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code IdentifierExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifierExpression(TypeScriptParser.IdentifierExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code CoalesceExpression} + * labeled alternative in {@link TypeScriptParser#singleExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCoalesceExpression(TypeScriptParser.CoalesceExpressionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#asExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAsExpression(TypeScriptParser.AsExpressionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#assignable}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAssignable(TypeScriptParser.AssignableContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#anonymousFunction}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnonymousFunction(TypeScriptParser.AnonymousFunctionContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#arrowFunctionDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrowFunctionDeclaration(TypeScriptParser.ArrowFunctionDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#arrowFunctionParameters}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrowFunctionParameters(TypeScriptParser.ArrowFunctionParametersContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#arrowFunctionBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrowFunctionBody(TypeScriptParser.ArrowFunctionBodyContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#assignmentOperator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAssignmentOperator(TypeScriptParser.AssignmentOperatorContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLiteral(TypeScriptParser.LiteralContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#templateStringLiteral}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTemplateStringLiteral(TypeScriptParser.TemplateStringLiteralContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#templateStringAtom}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTemplateStringAtom(TypeScriptParser.TemplateStringAtomContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#numericLiteral}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNumericLiteral(TypeScriptParser.NumericLiteralContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#bigintLiteral}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBigintLiteral(TypeScriptParser.BigintLiteralContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#getter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGetter(TypeScriptParser.GetterContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#setter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSetter(TypeScriptParser.SetterContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#identifierName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifierName(TypeScriptParser.IdentifierNameContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#identifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifier(TypeScriptParser.IdentifierContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#identifierOrKeyWord}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifierOrKeyWord(TypeScriptParser.IdentifierOrKeyWordContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#reservedWord}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReservedWord(TypeScriptParser.ReservedWordContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#keyword}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitKeyword(TypeScriptParser.KeywordContext ctx); + /** + * Visit a parse tree produced by {@link TypeScriptParser#eos}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEos(TypeScriptParser.EosContext ctx); +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptTreeNode.java b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptTreeNode.java new file mode 100644 index 0000000000000000000000000000000000000000..ac2e34da4294d5a18191a8dc0b9578dc59538134 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/antlr/TypeScriptTreeNode.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package antlr; + +import java.util.ArrayList; +import java.util.List; + +/** + *

类名:该类用于xxx

+ * description typescript parse tree node + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class TypeScriptTreeNode { + private String type; + private String text; + private List children; + + public TypeScriptTreeNode() {} + + public TypeScriptTreeNode(String type, String text) { + this.type = type; + this.text = text; + this.children = new ArrayList<>(); + } + + public void setType(String type) { + this.type = type; + } + + public String getType() { + return type; + } + + public void setText(String text) { + this.text = text; + } + + public String getText() { + return text; + } + + public void setChildren(List children) { + this.children = children; + } + + public List getChildren() { + return children; + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/grammar/ClassObj.java b/src/intellij_plugin/ohosgen/src/main/java/grammar/ClassObj.java new file mode 100644 index 0000000000000000000000000000000000000000..ada22c3b2e81e3ecd7adec524633ffc06d52da80 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/grammar/ClassObj.java @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +/** + *

类名:该类用于xxx

+ * description class grammar + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class ClassObj { + private String name; + private String alias; + private ParamObj[] paramList; + private FuncObj[] funcList; + + /** + * 构造函数 + */ + public ClassObj() {} + + /** + * 构造函数 + */ + public ClassObj(String nv, String av, ParamObj[] pl, FuncObj[] fl) { + this.name = nv; + this.alias = av; + this.paramList = pl; + this.funcList = fl; + } + + /** + * 设名字 + * + * @param name 名字 + */ + public void setName(String name) { + this.name = name; + } + + /** + * 读名字 + * + * @return name 名字 + */ + public String getName() { + return name; + } + + /** + * 设置别名 + * + * @param alias 别名 + */ + public void setAlias(String alias) { + this.alias = alias; + } + + /** + * 读取别名 + * + * @return 别名 + */ + public String getAlias() { + return alias; + } + + /** + * 设置方法 + * + * @param funcList 方法列表 + */ + public void setFuncList(FuncObj[] funcList) { + this.funcList = funcList; + } + + /** + * 获取方法列表 + * + * @return 方法列表 + */ + public FuncObj[] getFuncList() { + return funcList; + } + + /** + * 设置参数 + * + * @param paramList 参数列表 + */ + public void setParamList(ParamObj[] paramList) { + this.paramList = paramList; + } + + /** + * 读取方法 + * + * @return 方法列表 + */ + public ParamObj[] getParamList() { + return paramList; + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/grammar/EnumObj.java b/src/intellij_plugin/ohosgen/src/main/java/grammar/EnumObj.java new file mode 100644 index 0000000000000000000000000000000000000000..4dcc9fec639336589da486a86f1843730f97c0cb --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/grammar/EnumObj.java @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +/** + *

类名:该类用于xxx

+ * description enum grammar + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class EnumObj { + private String name; + private String alias; + private String[] memberList; + private String[] valueList; + + /** + * 构造函数 + */ + public EnumObj() {} + + /** + * 构造函数 + * + * @param nv 名称 + * @param av 别名 + * @param ml 成员 + * @param vl 值 + */ + public EnumObj(String nv, String av, String[] ml, String[] vl) { + this.name = nv; + this.alias = av; + this.memberList = ml; + this.valueList = vl; + } + + /** + * 获取名称 + * + * @return 名称 + */ + public String getName() { + return name; + } + + /** + * 设置名称 + * + * @param name 名称 + */ + public void setName(String name) { + this.name = name; + } + + /** + * 读取别名 + * + * @return 别名 + */ + public String getAlias() { + return alias; + } + + /** + * 设置名称 + * + * @param alias 别名 + */ + public void setAlias(String alias) { + this.alias = alias; + } + + /** + * 获取成员列表 + * + * @return 成员列表 + */ + public String[] getMemberList() { + return memberList; + } + + /** + * 设置成员列表 + * + * @param memberList 成员列表 + */ + public void setMemberList(String[] memberList) { + this.memberList = memberList; + } + + /** + * 获取值 + * + * @return 值列表 + */ + public String[] getValueList() { + return valueList; + } + + /** + * 设置值列表 + * + * @param valueList 值列表 + */ + public void setValueList(String[] valueList) { + this.valueList = valueList; + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/grammar/FuncObj.java b/src/intellij_plugin/ohosgen/src/main/java/grammar/FuncObj.java new file mode 100644 index 0000000000000000000000000000000000000000..76174fa676ac563645237193322db6732a242187 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/grammar/FuncObj.java @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +/** + *

类名:该类用于xxx

+ * description function of grammar + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class FuncObj { + private String type; + private String name; + private String retValue; + private ParamObj[] paramList; + + /** + * 构造函数 + */ + public FuncObj() {} + + /** + * 构造函数 + * + * @param tv 类型 + * @param nv 名字 + * @param rv 返回值 + * @param pl 参数 + */ + public FuncObj(String tv, String nv, String rv, ParamObj[] pl) { + this.type = tv; + this.name = nv; + this.retValue = rv; + this.paramList = pl; + } + + /** + * 设置类型 + * + * @param type 类型 + */ + public void setType(String type) { + this.type = type; + } + + /** + * 获取类型 + * + * @return 类型 + */ + public String getType() { + return type; + } + + /** + * 设置名称 + * + * @param name 名称 + */ + public void setName(String name) { + this.name = name; + } + + /** + * 获取名称 + * + * @return 名称 + */ + public String getName() { + return name; + } + + /** + * 设置返回值 + * + * @param retValue 返回值 + */ + public void setRetValue(String retValue) { + this.retValue = retValue; + } + + /** + * 获取返回值 + * + * @return 返回值 + */ + public String getRetValue() { + return retValue; + } + + /** + * 设置参数 + * + * @param paramList 参数 + */ + public void setParamList(ParamObj[] paramList) { + this.paramList = paramList; + } + + /** + * 获取参数 + * + * @return 参数 + */ + public ParamObj[] getParamList() { + return paramList; + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/grammar/ParamObj.java b/src/intellij_plugin/ohosgen/src/main/java/grammar/ParamObj.java new file mode 100644 index 0000000000000000000000000000000000000000..68328928376cbfaacec0f96b3e9fcd4530a14c0d --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/grammar/ParamObj.java @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +/** + *

类名:该类用于xxx

+ * description param grammar + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class ParamObj { + private String type; + private String name; + private int arraySize; + private int[] asList; + + /** + * 构造函数 + */ + public ParamObj() {} + + /** + * 构造函数 + * + * @param tv 类型 + * @param nv 名称 + * @param as 数组下标 + * @param asl 数组下标数组 + */ + public ParamObj(String tv, String nv, int as, int[] asl) { + this.type = tv; + this.name = nv; + this.arraySize = as; + this.asList = asl; + } + + /** + * 获取名字 + * + * @return 名称 + */ + public String getName() { + return name; + } + + /** + * 设置名称 + * + * @param name 名称 + */ + public void setName(String name) { + this.name = name; + } + + /** + * 获取类型 + * + * @return 类型 + */ + public String getType() { + return type; + } + + /** + * 设置类型 + * + * @param type 类型 + */ + public void setType(String type) { + this.type = type; + } + + /** + * 获取数组下标 + * + * @return 数组下标 + */ + public int getArraySize() { + return arraySize; + } + + /** + * 获取数组下标 + * + * @return 数组下班 + */ + public int[] getAsList() { + return asList; + } + + /** + * 设置数组下标 + * + * @param arraySize 数组下标 + */ + public void setArraySize(int arraySize) { + this.arraySize = arraySize; + } + + /** + * 设置数组下标 + * + * @param asList 数组下标 + */ + public void setAsList(int[] asList) { + this.asList = asList; + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/grammar/ParseObj.java b/src/intellij_plugin/ohosgen/src/main/java/grammar/ParseObj.java new file mode 100644 index 0000000000000000000000000000000000000000..6f35ae50f70fe6c9bc00c74c9e2f07c600418a58 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/grammar/ParseObj.java @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +/** + *

类名:该类用于xxx

+ * description parse object + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class ParseObj { + private EnumObj[] enumList; + private UnionObj[] unionList; + private StructObj[] structList; + private ClassObj[] classList; + private FuncObj[] funcList; + private TypeObj[] typeList; + + /** + * 构造函数 + */ + ParseObj() { + enumList = new EnumObj[0]; + unionList = new UnionObj[0]; + structList = new StructObj[0]; + classList = new ClassObj[0]; + funcList = new FuncObj[0]; + typeList = new TypeObj[0]; + } + + /** + * 设置解析enum对象 + * + * @param res enum对象 + */ + void setEnumList(EnumObj[] res) { + enumList = res; + } + + /** + * 设置解析union对象 + * + * @param res union对象 + */ + void getUnionList(UnionObj[] res) { + unionList = res; + } + + /** + * 设置解析struct对象 + * + * @param res struct对象 + */ + void setStructList(StructObj[] res) { + structList = res; + } + + /** + * 设置解析对象 + * + * @param res class对象 + */ + void setClassList(ClassObj[] res) { + classList = res; + } + + /** + * 设置解析func对象 + * + * @param res func对象 + */ + void setFuncList(FuncObj[] res) { + funcList = res; + } + + /** + * 设置解析type对象 + * + * @param res type对象 + */ + void setTypeList(TypeObj[] res) { + typeList = res; + } + + /** + * 获取解析enum对象 + * + * @return 解析后enum列表 + */ + EnumObj[] getEnumList() { + return enumList; + } + + /** + * 获取解析union对象 + * + * @return 解析后union列表 + */ + UnionObj[] getUnionList() { + return unionList; + } + + /** + * 获取解析struct对象 + * + * @return 解析后struct列表 + */ + StructObj[] getStructList() { + return structList; + } + + /** + * 获取解析对象 + * + * @return 解析后class列表 + */ + ClassObj[] getClassList() { + return classList; + } + + /** + * 获取解析func对象 + * + * @return 解析后func列表 + */ + FuncObj[] getFuncList() { + return funcList; + } + + /** + * 获取解析type对象 + * + * @return 解析后type列表 + */ + TypeObj[] getTypeList() { + return typeList; + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/grammar/StructObj.java b/src/intellij_plugin/ohosgen/src/main/java/grammar/StructObj.java new file mode 100644 index 0000000000000000000000000000000000000000..1661708c4cb8c0c06cefff62771b18bab4442e56 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/grammar/StructObj.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +/** + *

类名:该类用于xxx

+ * description grammar structure + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class StructObj { + private String name; + private String alias; + private ParamObj[] memberList; + private FuncObj[] funcList; + + /** + * 构造函数 + */ + public StructObj() {} + + /** + * 构造函数 + * + * @param nv 名称 + * @param av 别名 + * @param ml 成员 + * @param fl 方法 + */ + public StructObj(String nv, String av, ParamObj[] ml, FuncObj[] fl) { + this.name = nv; + this.alias = av; + this.memberList = ml; + this.funcList = fl; + } + + /** + * 设置名称 + * + * @param name 名称 + */ + public void setName(String name) { + this.name = name; + } + + /** + * 获取名称 + * + * @return 名称 + */ + public String getName() { + return name; + } + + /** + * 设置别名 + * + * @param alias 别名 + */ + public void setAlias(String alias) { + this.alias = alias; + } + + /** + * 获取别名 + * + * @return 别名 + */ + public String getAlias() { + return alias; + } + + /** + * 获取方法 + * + * @return 方法 + */ + public FuncObj[] getFuncList() { + return funcList; + } + + /** + * 设置方法 + * + * @param funcList 方法 + */ + public void setFuncList(FuncObj[] funcList) { + this.funcList = funcList; + } + + /** + * 获取成员 + * + * @return 成员 + */ + public ParamObj[] getMemberList() { + return memberList; + } + + /** + * 设置成员 + * + * @param memberList 成员 + */ + public void setMemberList(ParamObj[] memberList) { + this.memberList = memberList; + } + +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/grammar/TypeObj.java b/src/intellij_plugin/ohosgen/src/main/java/grammar/TypeObj.java new file mode 100644 index 0000000000000000000000000000000000000000..8233722e535e5ec76dc13aa376a102892c9e3c09 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/grammar/TypeObj.java @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +/** + *

类名:该类用于xxx

+ * description type grammar + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class TypeObj { + private String name; + private String alias; + private ParamObj[] paramList; + private FuncObj[] funcList; + private String[] typeList; + + /** + * 构造函数 + */ + public TypeObj() {} + + /** + * 构造函数 + * + * @param nv 名称 + * @param av 别名 + * @param pl 参数 + * @param fl 方法 + * @param tl 类型 + */ + public TypeObj(String nv, String av, ParamObj[] pl, FuncObj[] fl, String[] tl) { + this.name = nv; + this.alias = av; + this.paramList = pl; + this.funcList = fl; + this.typeList = tl; + } + + /** + * 获取名称 + * + * @return 名称 + */ + public String getName() { + return name; + } + + /** + * 设置名称 + * + * @param name 名称 + */ + public void setName(String name) { + this.name = name; + } + + /** + * 获取别名 + * + * @return 别名 + */ + public String getAlias() { + return alias; + } + + /** + * 设置别名 + * + * @param alias 别名 + */ + public void setAlias(String alias) { + this.alias = alias; + } + + /** + * 获取参数 + * + * @return 参数 + */ + public ParamObj[] getParamList() { + return paramList; + } + + /** + * 设置参数 + * + * @param paramList 参数 + */ + public void setParamList(ParamObj[] paramList) { + this.paramList = paramList; + } + + /** + * 获取类型 + * + * @return 类型 + */ + public String[] getTypeList() { + return typeList; + } + + /** + * 设置类型 + * @param typeList 类型 + */ + public void setTypeList(String[] typeList) { + this.typeList = typeList; + } + + /** + * 获取方法 + * + * @return 方法 + */ + public FuncObj[] getFuncList() { + return funcList; + } + + /** + * 设置方法 + * + * @param funcList 方法 + */ + public void setFuncList(FuncObj[] funcList) { + this.funcList = funcList; + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/grammar/UnionObj.java b/src/intellij_plugin/ohosgen/src/main/java/grammar/UnionObj.java new file mode 100644 index 0000000000000000000000000000000000000000..47d50e3dd8c26bd0a375b0841dfe7a5f12cee717 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/main/java/grammar/UnionObj.java @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +import kotlinx.html.S; + +/** + *

类名:该类用于xxx

+ * description union grammar + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +public class UnionObj { + private String name; + private String alias; + private ParamObj[] memList; + + /** + * 构造函数 + */ + public UnionObj() {} + + /** + * 构造函数 + * + * @param nv 名称 + * @param av 别名 + * @param pl 参数 + */ + public UnionObj(String nv, String av, ParamObj[] pl) { + this.name = nv; + this.alias = av; + this.memList = pl; + } + + /** + * 设置名称 + * + * @param name 名称 + */ + public void setName(String name) { + this.name = name; + } + + /** + * 获取名称 + * + * @return 名称 + */ + public String getName() { + return name; + } + + /** + * 设置名称 + * + * @param alias 名称 + */ + public void setAlias(String alias) { + this.alias = alias; + } + + /** + * 获取名称 + * + * @return 名称 + */ + public String getAlias() { + return alias; + } + + /** + * 获取成员 + * + * @return 成员 + */ + public ParamObj[] getMemList() { + return memList; + } + + /** + * 设置成员 + * + * @param memList 成员 + */ + public void setMemList(ParamObj[] memList) { + this.memList = memList; + } +} diff --git a/src/intellij_plugin/ohosgen/src/main/java/parse/ParseBase.java b/src/intellij_plugin/ohosgen/src/main/java/parse/ParseBase.java index 41646317b6bc140622845a6a35e7c4a5b35de851..73ae1608bf7dd1e5eb22f82b040bd7801210ec64 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/parse/ParseBase.java +++ b/src/intellij_plugin/ohosgen/src/main/java/parse/ParseBase.java @@ -15,6 +15,9 @@ package parse; +import grammar.*; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.CharStreams; import utils.BaseListener; import java.util.List; @@ -30,6 +33,8 @@ import java.util.concurrent.CopyOnWriteArrayList; * @since 2025-02-28 */ public abstract class ParseBase { + protected String fileContent; + protected CharStream fcStream; /** * 存储所有监听回调 */ @@ -62,4 +67,65 @@ public abstract class ParseBase { * @param fileContent 文件内容 */ public abstract void parseContent(String fileContent); + + /** + * 根据文件char stream解析文件 + * + * @param fileCStream 文件内容 + */ + public abstract void parseCStream(CharStream fileCStream); + + /** + * 解析enum + * + * @return enum + */ + protected EnumObj[] parseEnum() { + return new EnumObj[0]; + }; + + /** + * 解析union + * + * @return union + */ + protected UnionObj[] parseUnion() { + return new UnionObj[0]; + } + + /** + * 解析struct + * + * @return struct + */ + protected StructObj[] parseStruct() { + return new StructObj[0]; + } + + /** + * 解析class + * + * @return class + */ + protected ClassObj[] parseClass() { + return new ClassObj[0]; + } + + /** + * 解析func + * + * @return func + */ + protected FuncObj[] parseFunc() { + return new FuncObj[0]; + } + + /** + * 解析type + * + * @return type + */ + protected TypeObj[] parseType() { + return new TypeObj[0]; + } } diff --git a/src/intellij_plugin/ohosgen/src/main/java/parse/ParseC.java b/src/intellij_plugin/ohosgen/src/main/java/parse/ParseC.java index 868c7974eaba37c4b41a871ed40a5cc6506703e8..9bfebb19d334bb114f0feb4ec69614f86107499b 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/parse/ParseC.java +++ b/src/intellij_plugin/ohosgen/src/main/java/parse/ParseC.java @@ -17,8 +17,12 @@ package parse; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import grammar.*; +import org.antlr.v4.runtime.CharStream; import utils.BaseEvent; +import java.lang.reflect.Type; + /** *

类名:该类用于xxx

* description ${description} @@ -74,4 +78,45 @@ public class ParseC extends ParseBase { listener.onEvent(pcEvent); }); } + + /** + * 处理内容 + * + * @param fileCStream 文件内容 + */ + @Override + public void parseCStream(CharStream fileCStream) { + System.out.println("ts parse char stream"); + this.fcStream = fileCStream; + } + + @Override + protected EnumObj[] parseEnum() { + return super.parseEnum(); + } + + @Override + protected UnionObj[] parseUnion() { + return super.parseUnion(); + } + + @Override + protected StructObj[] parseStruct() { + return super.parseStruct(); + } + + @Override + protected ClassObj[] parseClass() { + return super.parseClass(); + } + + @Override + protected FuncObj[] parseFunc() { + return super.parseFunc(); + } + + @Override + protected TypeObj[] parseType() { + return super.parseType(); + } } diff --git a/src/intellij_plugin/ohosgen/src/main/java/parse/ParseTask.java b/src/intellij_plugin/ohosgen/src/main/java/parse/ParseTask.java index ebb83c3f56ed224eef1116c2a708d379c91b7b3f..499341051b716ca0140ecf329ae926a7a6665c14 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/parse/ParseTask.java +++ b/src/intellij_plugin/ohosgen/src/main/java/parse/ParseTask.java @@ -17,6 +17,8 @@ package parse; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.CharStreams; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.Task; import com.intellij.openapi.project.Project; @@ -28,6 +30,7 @@ import utils.BaseEvent; import utils.BaseListener; import java.io.IOException; +import java.io.InputStream; /** *

类名:该类用于xxx

@@ -85,15 +88,17 @@ public class ParseTask extends Task.Backgroundable implements BaseListener { try { String content = new String(parseFile.contentsToByteArray(), parseFile.getCharset()); System.out.println("doAnalysis"); + InputStream is = parseFile.getInputStream(); + CharStream ics = CharStreams.fromStream(is); - parser.parseContent(content); + parser.parseCStream(ics); System.out.println("parseContent finish"); String[] lines = content.split("\n"); for (int i = 0; i < lines.length; i++) { // 模拟处理每一行 indicator.setFraction((i + 1) / (double) lines.length); indicator.setText("Dts2cpp steps : " + (i + 1) + "/" + lines.length); - System.out.println("Dts2cpp steps : " + (i + 1) + "/" + lines.length); +// System.out.println("Dts2cpp steps : " + (i + 1) + "/" + lines.length); // 这里添加实际业务逻辑 processLine(lines[i]); @@ -112,7 +117,7 @@ public class ParseTask extends Task.Backgroundable implements BaseListener { */ private void processLine(String line) { // 实际业务逻辑(如语法分析/代码检查等) - System.out.println("processLine"); +// System.out.println("processLine"); } /** diff --git a/src/intellij_plugin/ohosgen/src/main/java/parse/ParseTs.java b/src/intellij_plugin/ohosgen/src/main/java/parse/ParseTs.java index 999f81806f7517aa8a4a1e6200edfd3dd4454a5e..5d85340d21831e2bb6c96d8a710c62266ac445c4 100644 --- a/src/intellij_plugin/ohosgen/src/main/java/parse/ParseTs.java +++ b/src/intellij_plugin/ohosgen/src/main/java/parse/ParseTs.java @@ -15,8 +15,17 @@ package parse; +import antlr.TypeScriptCustomListener; +import antlr.TypeScriptLexer; +import antlr.TypeScriptParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import grammar.*; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.CommonTokenStream; +import org.antlr.v4.runtime.RecognitionException; +import org.antlr.v4.runtime.tree.ParseTree; +import org.antlr.v4.runtime.tree.ParseTreeWalker; import utils.BaseEvent; /** @@ -59,7 +68,41 @@ public class ParseTs extends ParseBase { */ @Override public void parseContent(String fileContent) { - System.out.println("parseContent: " + fileContent); + System.out.println("ts parseContent"); + this.fileContent = fileContent; + doNotify(); + } + + /** + * 处理内容 + * + * @param fileCStream 文件内容 + */ + @Override + public void parseCStream(CharStream fileCStream) { + System.out.println("ts parse char stream start"); + this.fcStream = fileCStream; + + try { + // 初始化词法分析器 + TypeScriptLexer lexer = new TypeScriptLexer(this.fcStream); + CommonTokenStream tokens = new CommonTokenStream(lexer); + // 初始化语法分析器并生成 AST + TypeScriptParser parser = new TypeScriptParser(tokens); + ParseTree tree = parser.program(); + TypeScriptCustomListener tsc = new TypeScriptCustomListener(); + ParseTreeWalker walker = new ParseTreeWalker(); + walker.walk(tsc, tree); + + System.out.println("ts parse char stream finish"); + } catch (RecognitionException e) { + System.out.println("parse cstream e.printStackTrace(): " + e.getMessage()); + } + + doNotify(); + } + + private void doNotify() { BaseEvent pcEvent = new BaseEvent(this); pcEvent.setEventMsg("parsec complete"); ParseInfo pi = new ParseInfo("start", "parse ts content starting", 0, 100); @@ -74,4 +117,34 @@ public class ParseTs extends ParseBase { listener.onEvent(pcEvent); }); } + + @Override + protected EnumObj[] parseEnum() { + return super.parseEnum(); + } + + @Override + protected UnionObj[] parseUnion() { + return super.parseUnion(); + } + + @Override + protected StructObj[] parseStruct() { + return super.parseStruct(); + } + + @Override + protected ClassObj[] parseClass() { + return super.parseClass(); + } + + @Override + protected FuncObj[] parseFunc() { + return super.parseFunc(); + } + + @Override + protected TypeObj[] parseType() { + return super.parseType(); + } } diff --git a/src/intellij_plugin/ohosgen/src/test/java/grammar/ClassObjTest.java b/src/intellij_plugin/ohosgen/src/test/java/grammar/ClassObjTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a0bc068350653163ccc1d5217976dacf0e1dd67d --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/test/java/grammar/ClassObjTest.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + *

类名:该类用于xxx

+ * description + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +class ClassObjTest { + + @BeforeEach + void setUp() { + } + + @AfterEach + void tearDown() { + } + + @Test + void setName() { + } + + @Test + void getName() { + } + + @Test + void setAlias() { + } + + @Test + void getAlias() { + } + + @Test + void setFuncList() { + } + + @Test + void getFuncList() { + } + + @Test + void setParamList() { + } + + @Test + void getParamList() { + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/test/java/grammar/EnumObjTest.java b/src/intellij_plugin/ohosgen/src/test/java/grammar/EnumObjTest.java new file mode 100644 index 0000000000000000000000000000000000000000..813b0f74023cfb7a1f3d44b7a2edf73077fef491 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/test/java/grammar/EnumObjTest.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + *

类名:该类用于xxx

+ * description + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +class EnumObjTest { + + @BeforeEach + void setUp() { + } + + @AfterEach + void tearDown() { + } + + @Test + void getName() { + } + + @Test + void setName() { + } + + @Test + void getAlias() { + } + + @Test + void setAlias() { + } + + @Test + void getMemberList() { + } + + @Test + void setMemberList() { + } + + @Test + void getValueList() { + } + + @Test + void setValueList() { + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/test/java/grammar/FuncObjTest.java b/src/intellij_plugin/ohosgen/src/test/java/grammar/FuncObjTest.java new file mode 100644 index 0000000000000000000000000000000000000000..aa2162c890057348df0b2ea34c0a15a35c1c5116 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/test/java/grammar/FuncObjTest.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + *

类名:该类用于xxx

+ * description + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +class FuncObjTest { + + @BeforeEach + void setUp() { + } + + @AfterEach + void tearDown() { + } + + @Test + void setType() { + } + + @Test + void getType() { + } + + @Test + void setName() { + } + + @Test + void getName() { + } + + @Test + void setRetValue() { + } + + @Test + void getRetValue() { + } + + @Test + void setParamList() { + } + + @Test + void getParamList() { + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/test/java/grammar/ParamObjTest.java b/src/intellij_plugin/ohosgen/src/test/java/grammar/ParamObjTest.java new file mode 100644 index 0000000000000000000000000000000000000000..6c2b97b2f49d2b39d1748ca19dff7989a1266eeb --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/test/java/grammar/ParamObjTest.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + *

类名:该类用于xxx

+ * description + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +class ParamObjTest { + + @BeforeEach + void setUp() { + } + + @AfterEach + void tearDown() { + } + + @Test + void getName() { + } + + @Test + void setName() { + } + + @Test + void getType() { + } + + @Test + void setType() { + } + + @Test + void getArraySize() { + } + + @Test + void getAsList() { + } + + @Test + void setArraySize() { + } + + @Test + void setAsList() { + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/test/java/grammar/ParseObjTest.java b/src/intellij_plugin/ohosgen/src/test/java/grammar/ParseObjTest.java new file mode 100644 index 0000000000000000000000000000000000000000..435068a33564c3434943b18461087b131dae53d6 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/test/java/grammar/ParseObjTest.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + *

类名:该类用于xxx

+ * description + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +class ParseObjTest { + + @BeforeEach + void setUp() { + } + + @AfterEach + void tearDown() { + } + + @Test + void setEnumList() { + } + + @Test + void getUnionList() { + } + + @Test + void setStructList() { + } + + @Test + void setClassList() { + } + + @Test + void setFuncList() { + } + + @Test + void setTypeList() { + } + + @Test + void getEnumList() { + } + + @Test + void testGetUnionList() { + } + + @Test + void getStructList() { + } + + @Test + void getClassList() { + } + + @Test + void getFuncList() { + } + + @Test + void getTypeList() { + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/test/java/grammar/StructObjTest.java b/src/intellij_plugin/ohosgen/src/test/java/grammar/StructObjTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a3862afd29da3b222ec3b117c57d7639566ec5f3 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/test/java/grammar/StructObjTest.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + *

类名:该类用于xxx

+ * description + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +class StructObjTest { + + @BeforeEach + void setUp() { + } + + @AfterEach + void tearDown() { + } + + @Test + void setName() { + } + + @Test + void getName() { + } + + @Test + void setAlias() { + } + + @Test + void getAlias() { + } + + @Test + void getFuncList() { + } + + @Test + void setFuncList() { + } + + @Test + void getMemberList() { + } + + @Test + void setMemberList() { + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/test/java/grammar/TypeObjTest.java b/src/intellij_plugin/ohosgen/src/test/java/grammar/TypeObjTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8822e17ffb2666e6b53efdbfbcf0d516052113db --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/test/java/grammar/TypeObjTest.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + *

类名:该类用于xxx

+ * description + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +class TypeObjTest { + + @BeforeEach + void setUp() { + } + + @AfterEach + void tearDown() { + } + + @Test + void getName() { + } + + @Test + void setName() { + } + + @Test + void getAlias() { + } + + @Test + void setAlias() { + } + + @Test + void getParamList() { + } + + @Test + void setParamList() { + } + + @Test + void getTypeList() { + } + + @Test + void setTypeList() { + } + + @Test + void getFuncList() { + } + + @Test + void setFuncList() { + } +} \ No newline at end of file diff --git a/src/intellij_plugin/ohosgen/src/test/java/grammar/UnionObjTest.java b/src/intellij_plugin/ohosgen/src/test/java/grammar/UnionObjTest.java new file mode 100644 index 0000000000000000000000000000000000000000..17a0641031c8e785182e4ff7767816dc133a97d3 --- /dev/null +++ b/src/intellij_plugin/ohosgen/src/test/java/grammar/UnionObjTest.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2025 Shenzhen Kaihong Digital. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grammar; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + *

类名:该类用于xxx

+ * description + * + * @author Administrator + * date 2025-02-28 + * @version 1.0 + * @since 2025-02-28 + */ +class UnionObjTest { + + @BeforeEach + void setUp() { + } + + @AfterEach + void tearDown() { + } + + @Test + void setName() { + } + + @Test + void getName() { + } + + @Test + void setAlias() { + } + + @Test + void getAlias() { + } + + @Test + void getMemList() { + } + + @Test + void setMemList() { + } +} \ No newline at end of file