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