UNPKG

@amplitude/ampli

Version:

Amplitude CLI

616 lines (615 loc) 736 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IdentifierContext = exports.StringLiteralContext = exports.ConstantContext = exports.PrimaryExpressionContext = exports.ArgumentExpressionContext = exports.ArgumentExpressionListContext = exports.PostfixContext = exports.PostfixExpressionContext = exports.UnaryOperatorContext = exports.UnaryExpressionContext = exports.ConstantExpressionContext = exports.InitializerContext = exports.CastExpressionContext = exports.AssignmentOperatorContext = exports.ExpressionContext = exports.ExpressionsContext = exports.JumpStatementContext = exports.ForInStatementContext = exports.ForLoopInitializerContext = exports.ForStatementContext = exports.DoStatementContext = exports.WhileStatementContext = exports.IterationStatementContext = exports.SwitchLabelContext = exports.SwitchSectionContext = exports.SwitchBlockContext = exports.SwitchStatementContext = exports.SelectionStatementContext = exports.CompoundStatementContext = exports.RangeExpressionContext = exports.LabeledStatementContext = exports.StatementContext = exports.DeclaratorContext = exports.ParameterDeclarationContext = exports.ParameterDeclarationListContext = exports.AbstractDeclaratorSuffixContext = exports.AbstractDeclaratorContext = exports.TypeNameContext = exports.InitializerListContext = exports.StructInitializerContext = exports.ArrayInitializerContext = exports.MacroContext = exports.PointerContext = exports.ParameterListContext = exports.DeclaratorSuffixContext = exports.DirectDeclaratorContext = exports.EnumeratorIdentifierContext = exports.EnumeratorContext = exports.EnumeratorListContext = exports.EnumSpecifierContext = exports.FieldDeclaratorContext = exports.FieldDeclaratorListContext = exports.TypeofExpressionContext = exports.TypeSpecifierContext = exports.ProtocolQualifierContext = exports.TypeQualifierContext = exports.TypePrefixContext = exports.StorageClassSpecifierContext = exports.NullabilitySpecifierContext = exports.ArcBehaviourSpecifierContext = exports.IbOutletQualifierContext = exports.SpecifierQualifierListContext = exports.FieldDeclarationContext = exports.StructOrUnionSpecifierContext = exports.InitDeclaratorContext = exports.InitDeclaratorListContext = exports.AttributeSpecifierContext = exports.DeclarationSpecifiersContext = exports.TypeDeclaratorContext = exports.TypeDeclaratorListContext = exports.TypedefDeclarationContext = exports.VarDeclarationContext = exports.EnumDeclarationContext = exports.FunctionCallExpressionContext = exports.DeclarationContext = exports.AttributeParameterAssignmentContext = exports.AttributeParameterContext = exports.AttributeParameterListContext = exports.AttributeParametersContext = exports.AttributeNameContext = exports.AttributeContext = exports.FunctionSignatureContext = exports.FunctionDefinitionContext = exports.FunctionDeclarationContext = exports.AutoreleaseStatementContext = exports.SynchronizedStatementContext = exports.CatchStatementContext = exports.TryBlockContext = exports.ThrowStatementContext = exports.TypeVariableDeclaratorContext = exports.EncodeExpressionContext = exports.ProtocolExpressionContext = exports.SelectorNameContext = exports.SelectorExpressionContext = exports.KeywordArgumentTypeContext = exports.KeywordArgumentContext = exports.MessageSelectorContext = exports.ReceiverContext = exports.MessageExpressionContext = exports.BlockExpressionContext = exports.TypeVariableDeclaratorOrNameContext = exports.BlockParametersContext = exports.BoxExpressionContext = exports.ArrayExpressionContext = exports.DictionaryPairContext = exports.DictionaryExpressionContext = exports.TypeSpecifierWithPrefixesContext = exports.GenericsSpecifierContext = exports.BlockTypeContext = exports.PropertySynthesizeItemContext = exports.PropertySynthesizeListContext = exports.PropertyImplementationContext = exports.MethodTypeContext = exports.SelectorContext = exports.KeywordDeclaratorContext = exports.MethodSelectorContext = exports.MethodDefinitionContext = exports.InstanceMethodDefinitionContext = exports.ClassMethodDefinitionContext = exports.ImplementationDefinitionListContext = exports.MethodDeclarationContext = exports.InstanceMethodDeclarationContext = exports.ClassMethodDeclarationContext = exports.InterfaceDeclarationListContext = exports.AccessModifierContext = exports.VisibilitySectionContext = exports.InstanceVariablesContext = exports.ProtocolNameContext = exports.PropertyAttributeContext = exports.PropertyAttributesListContext = exports.PropertyDeclarationContext = exports.ProtocolListContext = exports.ClassDeclarationListContext = exports.ProtocolDeclarationListContext = exports.ProtocolDeclarationSectionContext = exports.ProtocolDeclarationContext = exports.GenericTypeSpecifierContext = exports.CategoryImplementationContext = exports.ClassImplementationContext = exports.CategoryInterfaceContext = exports.ClassInterfaceContext = exports.ImportDeclarationContext = exports.TopLevelDeclarationContext = exports.TranslationUnitContext = exports.ObjectiveCParser = void 0; const ATN_1 = require("antlr4ts/atn/ATN"); const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer"); const FailedPredicateException_1 = require("antlr4ts/FailedPredicateException"); const NoViableAltException_1 = require("antlr4ts/NoViableAltException"); const Parser_1 = require("antlr4ts/Parser"); const ParserRuleContext_1 = require("antlr4ts/ParserRuleContext"); const ParserATNSimulator_1 = require("antlr4ts/atn/ParserATNSimulator"); const RecognitionException_1 = require("antlr4ts/RecognitionException"); const Token_1 = require("antlr4ts/Token"); const VocabularyImpl_1 = require("antlr4ts/VocabularyImpl"); const Utils = require("antlr4ts/misc/Utils"); class ObjectiveCParser extends Parser_1.Parser { constructor(input) { super(input); this._interp = new ParserATNSimulator_1.ParserATNSimulator(ObjectiveCParser._ATN, this); } get vocabulary() { return ObjectiveCParser.VOCABULARY; } get grammarFileName() { return "ObjectiveCParser.g4"; } get ruleNames() { return ObjectiveCParser.ruleNames; } get serializedATN() { return ObjectiveCParser._serializedATN; } translationUnit() { let _localctx = new TranslationUnitContext(this._ctx, this.state); this.enterRule(_localctx, 0, ObjectiveCParser.RULE_translationUnit); let _la; try { this.enterOuterAlt(_localctx, 1); { this.state = 291; this._errHandler.sync(this); _la = this._input.LA(1); while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << ObjectiveCParser.AUTO) | (1 << ObjectiveCParser.CHAR) | (1 << ObjectiveCParser.CONST) | (1 << ObjectiveCParser.DOUBLE) | (1 << ObjectiveCParser.ENUM) | (1 << ObjectiveCParser.EXTERN) | (1 << ObjectiveCParser.FLOAT) | (1 << ObjectiveCParser.INLINE) | (1 << ObjectiveCParser.INT) | (1 << ObjectiveCParser.LONG) | (1 << ObjectiveCParser.REGISTER) | (1 << ObjectiveCParser.RESTRICT) | (1 << ObjectiveCParser.SHORT) | (1 << ObjectiveCParser.SIGNED) | (1 << ObjectiveCParser.STATIC) | (1 << ObjectiveCParser.STRUCT) | (1 << ObjectiveCParser.TYPEDEF) | (1 << ObjectiveCParser.UNION) | (1 << ObjectiveCParser.UNSIGNED))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (ObjectiveCParser.VOID - 32)) | (1 << (ObjectiveCParser.VOLATILE - 32)) | (1 << (ObjectiveCParser.BOOL - 32)) | (1 << (ObjectiveCParser.Class - 32)) | (1 << (ObjectiveCParser.BYCOPY - 32)) | (1 << (ObjectiveCParser.BYREF - 32)) | (1 << (ObjectiveCParser.ID - 32)) | (1 << (ObjectiveCParser.IMP - 32)) | (1 << (ObjectiveCParser.IN - 32)) | (1 << (ObjectiveCParser.INOUT - 32)) | (1 << (ObjectiveCParser.ONEWAY - 32)) | (1 << (ObjectiveCParser.OUT - 32)) | (1 << (ObjectiveCParser.PROTOCOL_ - 32)) | (1 << (ObjectiveCParser.SEL - 32)) | (1 << (ObjectiveCParser.SELF - 32)) | (1 << (ObjectiveCParser.SUPER - 32)) | (1 << (ObjectiveCParser.CLASS - 32)))) !== 0) || ((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & ((1 << (ObjectiveCParser.IMPLEMENTATION - 65)) | (1 << (ObjectiveCParser.INTERFACE - 65)) | (1 << (ObjectiveCParser.IMPORT - 65)) | (1 << (ObjectiveCParser.PROTOCOL - 65)) | (1 << (ObjectiveCParser.ATOMIC - 65)) | (1 << (ObjectiveCParser.NONATOMIC - 65)) | (1 << (ObjectiveCParser.RETAIN - 65)) | (1 << (ObjectiveCParser.ATTRIBUTE - 65)) | (1 << (ObjectiveCParser.AUTORELEASING_QUALIFIER - 65)) | (1 << (ObjectiveCParser.BLOCK - 65)) | (1 << (ObjectiveCParser.BRIDGE - 65)) | (1 << (ObjectiveCParser.BRIDGE_RETAINED - 65)) | (1 << (ObjectiveCParser.BRIDGE_TRANSFER - 65)) | (1 << (ObjectiveCParser.COVARIANT - 65)) | (1 << (ObjectiveCParser.CONTRAVARIANT - 65)) | (1 << (ObjectiveCParser.DEPRECATED - 65)) | (1 << (ObjectiveCParser.KINDOF - 65)) | (1 << (ObjectiveCParser.STRONG_QUALIFIER - 65)) | (1 << (ObjectiveCParser.TYPEOF - 65)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED_QUALIFIER - 65)))) !== 0) || ((((_la - 97)) & ~0x1F) === 0 && ((1 << (_la - 97)) & ((1 << (ObjectiveCParser.UNUSED - 97)) | (1 << (ObjectiveCParser.WEAK_QUALIFIER - 97)) | (1 << (ObjectiveCParser.NULL_UNSPECIFIED - 97)) | (1 << (ObjectiveCParser.NULLABLE - 97)) | (1 << (ObjectiveCParser.NONNULL - 97)) | (1 << (ObjectiveCParser.NULL_RESETTABLE - 97)) | (1 << (ObjectiveCParser.NS_INLINE - 97)) | (1 << (ObjectiveCParser.NS_ENUM - 97)) | (1 << (ObjectiveCParser.NS_OPTIONS - 97)) | (1 << (ObjectiveCParser.ASSIGN - 97)) | (1 << (ObjectiveCParser.COPY - 97)) | (1 << (ObjectiveCParser.GETTER - 97)) | (1 << (ObjectiveCParser.SETTER - 97)) | (1 << (ObjectiveCParser.STRONG - 97)) | (1 << (ObjectiveCParser.READONLY - 97)) | (1 << (ObjectiveCParser.READWRITE - 97)) | (1 << (ObjectiveCParser.WEAK - 97)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED - 97)) | (1 << (ObjectiveCParser.IB_OUTLET - 97)) | (1 << (ObjectiveCParser.IB_OUTLET_COLLECTION - 97)) | (1 << (ObjectiveCParser.IB_INSPECTABLE - 97)) | (1 << (ObjectiveCParser.IB_DESIGNABLE - 97)) | (1 << (ObjectiveCParser.IDENTIFIER - 97)))) !== 0)) { { { this.state = 288; this.topLevelDeclaration(); } } this.state = 293; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 294; this.match(ObjectiveCParser.EOF); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } topLevelDeclaration() { let _localctx = new TopLevelDeclarationContext(this._ctx, this.state); this.enterRule(_localctx, 2, ObjectiveCParser.RULE_topLevelDeclaration); try { this.state = 307; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 1, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { this.state = 296; this.importDeclaration(); } break; case 2: this.enterOuterAlt(_localctx, 2); { this.state = 297; this.functionDeclaration(); } break; case 3: this.enterOuterAlt(_localctx, 3); { this.state = 298; this.declaration(); } break; case 4: this.enterOuterAlt(_localctx, 4); { this.state = 299; this.classInterface(); } break; case 5: this.enterOuterAlt(_localctx, 5); { this.state = 300; this.classImplementation(); } break; case 6: this.enterOuterAlt(_localctx, 6); { this.state = 301; this.categoryInterface(); } break; case 7: this.enterOuterAlt(_localctx, 7); { this.state = 302; this.categoryImplementation(); } break; case 8: this.enterOuterAlt(_localctx, 8); { this.state = 303; this.protocolDeclaration(); } break; case 9: this.enterOuterAlt(_localctx, 9); { this.state = 304; this.protocolDeclarationList(); } break; case 10: this.enterOuterAlt(_localctx, 10); { this.state = 305; this.classDeclarationList(); } break; case 11: this.enterOuterAlt(_localctx, 11); { this.state = 306; this.functionDefinition(); } break; } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } importDeclaration() { let _localctx = new ImportDeclarationContext(this._ctx, this.state); this.enterRule(_localctx, 4, ObjectiveCParser.RULE_importDeclaration); try { this.enterOuterAlt(_localctx, 1); { this.state = 309; this.match(ObjectiveCParser.IMPORT); this.state = 310; this.identifier(); this.state = 311; this.match(ObjectiveCParser.SEMI); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } classInterface() { let _localctx = new ClassInterfaceContext(this._ctx, this.state); this.enterRule(_localctx, 6, ObjectiveCParser.RULE_classInterface); let _la; try { this.enterOuterAlt(_localctx, 1); { this.state = 314; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === ObjectiveCParser.IB_DESIGNABLE) { { this.state = 313; this.match(ObjectiveCParser.IB_DESIGNABLE); } } this.state = 316; this.match(ObjectiveCParser.INTERFACE); this.state = 317; _localctx._className = this.genericTypeSpecifier(); this.state = 320; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === ObjectiveCParser.COLON) { { this.state = 318; this.match(ObjectiveCParser.COLON); this.state = 319; _localctx._superclassName = this.identifier(); } } this.state = 326; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === ObjectiveCParser.LT) { { this.state = 322; this.match(ObjectiveCParser.LT); this.state = 323; this.protocolList(); this.state = 324; this.match(ObjectiveCParser.GT); } } this.state = 329; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === ObjectiveCParser.LBRACE) { { this.state = 328; this.instanceVariables(); } } this.state = 332; this._errHandler.sync(this); _la = this._input.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << ObjectiveCParser.AUTO) | (1 << ObjectiveCParser.CHAR) | (1 << ObjectiveCParser.CONST) | (1 << ObjectiveCParser.DOUBLE) | (1 << ObjectiveCParser.ENUM) | (1 << ObjectiveCParser.EXTERN) | (1 << ObjectiveCParser.FLOAT) | (1 << ObjectiveCParser.INLINE) | (1 << ObjectiveCParser.INT) | (1 << ObjectiveCParser.LONG) | (1 << ObjectiveCParser.REGISTER) | (1 << ObjectiveCParser.RESTRICT) | (1 << ObjectiveCParser.SHORT) | (1 << ObjectiveCParser.SIGNED) | (1 << ObjectiveCParser.STATIC) | (1 << ObjectiveCParser.STRUCT) | (1 << ObjectiveCParser.TYPEDEF) | (1 << ObjectiveCParser.UNION) | (1 << ObjectiveCParser.UNSIGNED))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (ObjectiveCParser.VOID - 32)) | (1 << (ObjectiveCParser.VOLATILE - 32)) | (1 << (ObjectiveCParser.BOOL - 32)) | (1 << (ObjectiveCParser.Class - 32)) | (1 << (ObjectiveCParser.BYCOPY - 32)) | (1 << (ObjectiveCParser.BYREF - 32)) | (1 << (ObjectiveCParser.ID - 32)) | (1 << (ObjectiveCParser.IMP - 32)) | (1 << (ObjectiveCParser.IN - 32)) | (1 << (ObjectiveCParser.INOUT - 32)) | (1 << (ObjectiveCParser.ONEWAY - 32)) | (1 << (ObjectiveCParser.OUT - 32)) | (1 << (ObjectiveCParser.PROTOCOL_ - 32)) | (1 << (ObjectiveCParser.SEL - 32)) | (1 << (ObjectiveCParser.SELF - 32)) | (1 << (ObjectiveCParser.SUPER - 32)))) !== 0) || ((((_la - 72)) & ~0x1F) === 0 && ((1 << (_la - 72)) & ((1 << (ObjectiveCParser.PROPERTY - 72)) | (1 << (ObjectiveCParser.ATOMIC - 72)) | (1 << (ObjectiveCParser.NONATOMIC - 72)) | (1 << (ObjectiveCParser.RETAIN - 72)) | (1 << (ObjectiveCParser.ATTRIBUTE - 72)) | (1 << (ObjectiveCParser.AUTORELEASING_QUALIFIER - 72)) | (1 << (ObjectiveCParser.BLOCK - 72)) | (1 << (ObjectiveCParser.BRIDGE - 72)) | (1 << (ObjectiveCParser.BRIDGE_RETAINED - 72)) | (1 << (ObjectiveCParser.BRIDGE_TRANSFER - 72)) | (1 << (ObjectiveCParser.COVARIANT - 72)) | (1 << (ObjectiveCParser.CONTRAVARIANT - 72)) | (1 << (ObjectiveCParser.DEPRECATED - 72)) | (1 << (ObjectiveCParser.KINDOF - 72)) | (1 << (ObjectiveCParser.STRONG_QUALIFIER - 72)) | (1 << (ObjectiveCParser.TYPEOF - 72)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED_QUALIFIER - 72)) | (1 << (ObjectiveCParser.UNUSED - 72)) | (1 << (ObjectiveCParser.WEAK_QUALIFIER - 72)) | (1 << (ObjectiveCParser.NULL_UNSPECIFIED - 72)) | (1 << (ObjectiveCParser.NULLABLE - 72)) | (1 << (ObjectiveCParser.NONNULL - 72)) | (1 << (ObjectiveCParser.NULL_RESETTABLE - 72)) | (1 << (ObjectiveCParser.NS_INLINE - 72)))) !== 0) || ((((_la - 104)) & ~0x1F) === 0 && ((1 << (_la - 104)) & ((1 << (ObjectiveCParser.NS_ENUM - 104)) | (1 << (ObjectiveCParser.NS_OPTIONS - 104)) | (1 << (ObjectiveCParser.ASSIGN - 104)) | (1 << (ObjectiveCParser.COPY - 104)) | (1 << (ObjectiveCParser.GETTER - 104)) | (1 << (ObjectiveCParser.SETTER - 104)) | (1 << (ObjectiveCParser.STRONG - 104)) | (1 << (ObjectiveCParser.READONLY - 104)) | (1 << (ObjectiveCParser.READWRITE - 104)) | (1 << (ObjectiveCParser.WEAK - 104)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED - 104)) | (1 << (ObjectiveCParser.IB_OUTLET - 104)) | (1 << (ObjectiveCParser.IB_OUTLET_COLLECTION - 104)) | (1 << (ObjectiveCParser.IB_INSPECTABLE - 104)) | (1 << (ObjectiveCParser.IB_DESIGNABLE - 104)) | (1 << (ObjectiveCParser.IDENTIFIER - 104)))) !== 0) || _la === ObjectiveCParser.ADD || _la === ObjectiveCParser.SUB) { { this.state = 331; this.interfaceDeclarationList(); } } this.state = 334; this.match(ObjectiveCParser.END); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } categoryInterface() { let _localctx = new CategoryInterfaceContext(this._ctx, this.state); this.enterRule(_localctx, 8, ObjectiveCParser.RULE_categoryInterface); let _la; try { this.enterOuterAlt(_localctx, 1); { this.state = 336; this.match(ObjectiveCParser.INTERFACE); this.state = 337; _localctx._categoryName = this.genericTypeSpecifier(); this.state = 338; this.match(ObjectiveCParser.LP); this.state = 340; this._errHandler.sync(this); _la = this._input.LA(1); if (((((_la - 40)) & ~0x1F) === 0 && ((1 << (_la - 40)) & ((1 << (ObjectiveCParser.BOOL - 40)) | (1 << (ObjectiveCParser.Class - 40)) | (1 << (ObjectiveCParser.BYCOPY - 40)) | (1 << (ObjectiveCParser.BYREF - 40)) | (1 << (ObjectiveCParser.ID - 40)) | (1 << (ObjectiveCParser.IMP - 40)) | (1 << (ObjectiveCParser.IN - 40)) | (1 << (ObjectiveCParser.INOUT - 40)) | (1 << (ObjectiveCParser.ONEWAY - 40)) | (1 << (ObjectiveCParser.OUT - 40)) | (1 << (ObjectiveCParser.PROTOCOL_ - 40)) | (1 << (ObjectiveCParser.SEL - 40)) | (1 << (ObjectiveCParser.SELF - 40)) | (1 << (ObjectiveCParser.SUPER - 40)))) !== 0) || ((((_la - 81)) & ~0x1F) === 0 && ((1 << (_la - 81)) & ((1 << (ObjectiveCParser.ATOMIC - 81)) | (1 << (ObjectiveCParser.NONATOMIC - 81)) | (1 << (ObjectiveCParser.RETAIN - 81)) | (1 << (ObjectiveCParser.AUTORELEASING_QUALIFIER - 81)) | (1 << (ObjectiveCParser.BLOCK - 81)) | (1 << (ObjectiveCParser.BRIDGE_RETAINED - 81)) | (1 << (ObjectiveCParser.BRIDGE_TRANSFER - 81)) | (1 << (ObjectiveCParser.COVARIANT - 81)) | (1 << (ObjectiveCParser.CONTRAVARIANT - 81)) | (1 << (ObjectiveCParser.DEPRECATED - 81)) | (1 << (ObjectiveCParser.KINDOF - 81)) | (1 << (ObjectiveCParser.UNUSED - 81)) | (1 << (ObjectiveCParser.NULL_UNSPECIFIED - 81)) | (1 << (ObjectiveCParser.NULLABLE - 81)) | (1 << (ObjectiveCParser.NONNULL - 81)) | (1 << (ObjectiveCParser.NULL_RESETTABLE - 81)) | (1 << (ObjectiveCParser.NS_INLINE - 81)) | (1 << (ObjectiveCParser.NS_ENUM - 81)) | (1 << (ObjectiveCParser.NS_OPTIONS - 81)) | (1 << (ObjectiveCParser.ASSIGN - 81)) | (1 << (ObjectiveCParser.COPY - 81)) | (1 << (ObjectiveCParser.GETTER - 81)) | (1 << (ObjectiveCParser.SETTER - 81)) | (1 << (ObjectiveCParser.STRONG - 81)) | (1 << (ObjectiveCParser.READONLY - 81)) | (1 << (ObjectiveCParser.READWRITE - 81)))) !== 0) || ((((_la - 113)) & ~0x1F) === 0 && ((1 << (_la - 113)) & ((1 << (ObjectiveCParser.WEAK - 113)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED - 113)) | (1 << (ObjectiveCParser.IB_OUTLET - 113)) | (1 << (ObjectiveCParser.IB_OUTLET_COLLECTION - 113)) | (1 << (ObjectiveCParser.IB_INSPECTABLE - 113)) | (1 << (ObjectiveCParser.IB_DESIGNABLE - 113)) | (1 << (ObjectiveCParser.IDENTIFIER - 113)))) !== 0)) { { this.state = 339; _localctx._className = this.identifier(); } } this.state = 342; this.match(ObjectiveCParser.RP); this.state = 347; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === ObjectiveCParser.LT) { { this.state = 343; this.match(ObjectiveCParser.LT); this.state = 344; this.protocolList(); this.state = 345; this.match(ObjectiveCParser.GT); } } this.state = 350; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === ObjectiveCParser.LBRACE) { { this.state = 349; this.instanceVariables(); } } this.state = 353; this._errHandler.sync(this); _la = this._input.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << ObjectiveCParser.AUTO) | (1 << ObjectiveCParser.CHAR) | (1 << ObjectiveCParser.CONST) | (1 << ObjectiveCParser.DOUBLE) | (1 << ObjectiveCParser.ENUM) | (1 << ObjectiveCParser.EXTERN) | (1 << ObjectiveCParser.FLOAT) | (1 << ObjectiveCParser.INLINE) | (1 << ObjectiveCParser.INT) | (1 << ObjectiveCParser.LONG) | (1 << ObjectiveCParser.REGISTER) | (1 << ObjectiveCParser.RESTRICT) | (1 << ObjectiveCParser.SHORT) | (1 << ObjectiveCParser.SIGNED) | (1 << ObjectiveCParser.STATIC) | (1 << ObjectiveCParser.STRUCT) | (1 << ObjectiveCParser.TYPEDEF) | (1 << ObjectiveCParser.UNION) | (1 << ObjectiveCParser.UNSIGNED))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (ObjectiveCParser.VOID - 32)) | (1 << (ObjectiveCParser.VOLATILE - 32)) | (1 << (ObjectiveCParser.BOOL - 32)) | (1 << (ObjectiveCParser.Class - 32)) | (1 << (ObjectiveCParser.BYCOPY - 32)) | (1 << (ObjectiveCParser.BYREF - 32)) | (1 << (ObjectiveCParser.ID - 32)) | (1 << (ObjectiveCParser.IMP - 32)) | (1 << (ObjectiveCParser.IN - 32)) | (1 << (ObjectiveCParser.INOUT - 32)) | (1 << (ObjectiveCParser.ONEWAY - 32)) | (1 << (ObjectiveCParser.OUT - 32)) | (1 << (ObjectiveCParser.PROTOCOL_ - 32)) | (1 << (ObjectiveCParser.SEL - 32)) | (1 << (ObjectiveCParser.SELF - 32)) | (1 << (ObjectiveCParser.SUPER - 32)))) !== 0) || ((((_la - 72)) & ~0x1F) === 0 && ((1 << (_la - 72)) & ((1 << (ObjectiveCParser.PROPERTY - 72)) | (1 << (ObjectiveCParser.ATOMIC - 72)) | (1 << (ObjectiveCParser.NONATOMIC - 72)) | (1 << (ObjectiveCParser.RETAIN - 72)) | (1 << (ObjectiveCParser.ATTRIBUTE - 72)) | (1 << (ObjectiveCParser.AUTORELEASING_QUALIFIER - 72)) | (1 << (ObjectiveCParser.BLOCK - 72)) | (1 << (ObjectiveCParser.BRIDGE - 72)) | (1 << (ObjectiveCParser.BRIDGE_RETAINED - 72)) | (1 << (ObjectiveCParser.BRIDGE_TRANSFER - 72)) | (1 << (ObjectiveCParser.COVARIANT - 72)) | (1 << (ObjectiveCParser.CONTRAVARIANT - 72)) | (1 << (ObjectiveCParser.DEPRECATED - 72)) | (1 << (ObjectiveCParser.KINDOF - 72)) | (1 << (ObjectiveCParser.STRONG_QUALIFIER - 72)) | (1 << (ObjectiveCParser.TYPEOF - 72)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED_QUALIFIER - 72)) | (1 << (ObjectiveCParser.UNUSED - 72)) | (1 << (ObjectiveCParser.WEAK_QUALIFIER - 72)) | (1 << (ObjectiveCParser.NULL_UNSPECIFIED - 72)) | (1 << (ObjectiveCParser.NULLABLE - 72)) | (1 << (ObjectiveCParser.NONNULL - 72)) | (1 << (ObjectiveCParser.NULL_RESETTABLE - 72)) | (1 << (ObjectiveCParser.NS_INLINE - 72)))) !== 0) || ((((_la - 104)) & ~0x1F) === 0 && ((1 << (_la - 104)) & ((1 << (ObjectiveCParser.NS_ENUM - 104)) | (1 << (ObjectiveCParser.NS_OPTIONS - 104)) | (1 << (ObjectiveCParser.ASSIGN - 104)) | (1 << (ObjectiveCParser.COPY - 104)) | (1 << (ObjectiveCParser.GETTER - 104)) | (1 << (ObjectiveCParser.SETTER - 104)) | (1 << (ObjectiveCParser.STRONG - 104)) | (1 << (ObjectiveCParser.READONLY - 104)) | (1 << (ObjectiveCParser.READWRITE - 104)) | (1 << (ObjectiveCParser.WEAK - 104)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED - 104)) | (1 << (ObjectiveCParser.IB_OUTLET - 104)) | (1 << (ObjectiveCParser.IB_OUTLET_COLLECTION - 104)) | (1 << (ObjectiveCParser.IB_INSPECTABLE - 104)) | (1 << (ObjectiveCParser.IB_DESIGNABLE - 104)) | (1 << (ObjectiveCParser.IDENTIFIER - 104)))) !== 0) || _la === ObjectiveCParser.ADD || _la === ObjectiveCParser.SUB) { { this.state = 352; this.interfaceDeclarationList(); } } this.state = 355; this.match(ObjectiveCParser.END); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } classImplementation() { let _localctx = new ClassImplementationContext(this._ctx, this.state); this.enterRule(_localctx, 10, ObjectiveCParser.RULE_classImplementation); let _la; try { this.enterOuterAlt(_localctx, 1); { this.state = 357; this.match(ObjectiveCParser.IMPLEMENTATION); this.state = 358; _localctx._className = this.genericTypeSpecifier(); this.state = 361; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === ObjectiveCParser.COLON) { { this.state = 359; this.match(ObjectiveCParser.COLON); this.state = 360; _localctx._superclassName = this.identifier(); } } this.state = 364; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === ObjectiveCParser.LBRACE) { { this.state = 363; this.instanceVariables(); } } this.state = 367; this._errHandler.sync(this); _la = this._input.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << ObjectiveCParser.AUTO) | (1 << ObjectiveCParser.CHAR) | (1 << ObjectiveCParser.CONST) | (1 << ObjectiveCParser.DOUBLE) | (1 << ObjectiveCParser.ENUM) | (1 << ObjectiveCParser.EXTERN) | (1 << ObjectiveCParser.FLOAT) | (1 << ObjectiveCParser.INLINE) | (1 << ObjectiveCParser.INT) | (1 << ObjectiveCParser.LONG) | (1 << ObjectiveCParser.REGISTER) | (1 << ObjectiveCParser.RESTRICT) | (1 << ObjectiveCParser.SHORT) | (1 << ObjectiveCParser.SIGNED) | (1 << ObjectiveCParser.STATIC) | (1 << ObjectiveCParser.STRUCT) | (1 << ObjectiveCParser.TYPEDEF) | (1 << ObjectiveCParser.UNION) | (1 << ObjectiveCParser.UNSIGNED))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (ObjectiveCParser.VOID - 32)) | (1 << (ObjectiveCParser.VOLATILE - 32)) | (1 << (ObjectiveCParser.BOOL - 32)) | (1 << (ObjectiveCParser.Class - 32)) | (1 << (ObjectiveCParser.BYCOPY - 32)) | (1 << (ObjectiveCParser.BYREF - 32)) | (1 << (ObjectiveCParser.ID - 32)) | (1 << (ObjectiveCParser.IMP - 32)) | (1 << (ObjectiveCParser.IN - 32)) | (1 << (ObjectiveCParser.INOUT - 32)) | (1 << (ObjectiveCParser.ONEWAY - 32)) | (1 << (ObjectiveCParser.OUT - 32)) | (1 << (ObjectiveCParser.PROTOCOL_ - 32)) | (1 << (ObjectiveCParser.SEL - 32)) | (1 << (ObjectiveCParser.SELF - 32)) | (1 << (ObjectiveCParser.SUPER - 32)) | (1 << (ObjectiveCParser.DYNAMIC - 32)))) !== 0) || ((((_la - 78)) & ~0x1F) === 0 && ((1 << (_la - 78)) & ((1 << (ObjectiveCParser.SYNTHESIZE - 78)) | (1 << (ObjectiveCParser.ATOMIC - 78)) | (1 << (ObjectiveCParser.NONATOMIC - 78)) | (1 << (ObjectiveCParser.RETAIN - 78)) | (1 << (ObjectiveCParser.ATTRIBUTE - 78)) | (1 << (ObjectiveCParser.AUTORELEASING_QUALIFIER - 78)) | (1 << (ObjectiveCParser.BLOCK - 78)) | (1 << (ObjectiveCParser.BRIDGE - 78)) | (1 << (ObjectiveCParser.BRIDGE_RETAINED - 78)) | (1 << (ObjectiveCParser.BRIDGE_TRANSFER - 78)) | (1 << (ObjectiveCParser.COVARIANT - 78)) | (1 << (ObjectiveCParser.CONTRAVARIANT - 78)) | (1 << (ObjectiveCParser.DEPRECATED - 78)) | (1 << (ObjectiveCParser.KINDOF - 78)) | (1 << (ObjectiveCParser.STRONG_QUALIFIER - 78)) | (1 << (ObjectiveCParser.TYPEOF - 78)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED_QUALIFIER - 78)) | (1 << (ObjectiveCParser.UNUSED - 78)) | (1 << (ObjectiveCParser.WEAK_QUALIFIER - 78)) | (1 << (ObjectiveCParser.NULL_UNSPECIFIED - 78)) | (1 << (ObjectiveCParser.NULLABLE - 78)) | (1 << (ObjectiveCParser.NONNULL - 78)) | (1 << (ObjectiveCParser.NULL_RESETTABLE - 78)) | (1 << (ObjectiveCParser.NS_INLINE - 78)) | (1 << (ObjectiveCParser.NS_ENUM - 78)) | (1 << (ObjectiveCParser.NS_OPTIONS - 78)) | (1 << (ObjectiveCParser.ASSIGN - 78)) | (1 << (ObjectiveCParser.COPY - 78)) | (1 << (ObjectiveCParser.GETTER - 78)) | (1 << (ObjectiveCParser.SETTER - 78)))) !== 0) || ((((_la - 110)) & ~0x1F) === 0 && ((1 << (_la - 110)) & ((1 << (ObjectiveCParser.STRONG - 110)) | (1 << (ObjectiveCParser.READONLY - 110)) | (1 << (ObjectiveCParser.READWRITE - 110)) | (1 << (ObjectiveCParser.WEAK - 110)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED - 110)) | (1 << (ObjectiveCParser.IB_OUTLET - 110)) | (1 << (ObjectiveCParser.IB_OUTLET_COLLECTION - 110)) | (1 << (ObjectiveCParser.IB_INSPECTABLE - 110)) | (1 << (ObjectiveCParser.IB_DESIGNABLE - 110)) | (1 << (ObjectiveCParser.IDENTIFIER - 110)))) !== 0) || _la === ObjectiveCParser.ADD || _la === ObjectiveCParser.SUB) { { this.state = 366; this.implementationDefinitionList(); } } this.state = 369; this.match(ObjectiveCParser.END); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } categoryImplementation() { let _localctx = new CategoryImplementationContext(this._ctx, this.state); this.enterRule(_localctx, 12, ObjectiveCParser.RULE_categoryImplementation); let _la; try { this.enterOuterAlt(_localctx, 1); { this.state = 371; this.match(ObjectiveCParser.IMPLEMENTATION); this.state = 372; _localctx._categoryName = this.genericTypeSpecifier(); this.state = 373; this.match(ObjectiveCParser.LP); this.state = 374; _localctx._className = this.identifier(); this.state = 375; this.match(ObjectiveCParser.RP); this.state = 377; this._errHandler.sync(this); _la = this._input.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << ObjectiveCParser.AUTO) | (1 << ObjectiveCParser.CHAR) | (1 << ObjectiveCParser.CONST) | (1 << ObjectiveCParser.DOUBLE) | (1 << ObjectiveCParser.ENUM) | (1 << ObjectiveCParser.EXTERN) | (1 << ObjectiveCParser.FLOAT) | (1 << ObjectiveCParser.INLINE) | (1 << ObjectiveCParser.INT) | (1 << ObjectiveCParser.LONG) | (1 << ObjectiveCParser.REGISTER) | (1 << ObjectiveCParser.RESTRICT) | (1 << ObjectiveCParser.SHORT) | (1 << ObjectiveCParser.SIGNED) | (1 << ObjectiveCParser.STATIC) | (1 << ObjectiveCParser.STRUCT) | (1 << ObjectiveCParser.TYPEDEF) | (1 << ObjectiveCParser.UNION) | (1 << ObjectiveCParser.UNSIGNED))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (ObjectiveCParser.VOID - 32)) | (1 << (ObjectiveCParser.VOLATILE - 32)) | (1 << (ObjectiveCParser.BOOL - 32)) | (1 << (ObjectiveCParser.Class - 32)) | (1 << (ObjectiveCParser.BYCOPY - 32)) | (1 << (ObjectiveCParser.BYREF - 32)) | (1 << (ObjectiveCParser.ID - 32)) | (1 << (ObjectiveCParser.IMP - 32)) | (1 << (ObjectiveCParser.IN - 32)) | (1 << (ObjectiveCParser.INOUT - 32)) | (1 << (ObjectiveCParser.ONEWAY - 32)) | (1 << (ObjectiveCParser.OUT - 32)) | (1 << (ObjectiveCParser.PROTOCOL_ - 32)) | (1 << (ObjectiveCParser.SEL - 32)) | (1 << (ObjectiveCParser.SELF - 32)) | (1 << (ObjectiveCParser.SUPER - 32)) | (1 << (ObjectiveCParser.DYNAMIC - 32)))) !== 0) || ((((_la - 78)) & ~0x1F) === 0 && ((1 << (_la - 78)) & ((1 << (ObjectiveCParser.SYNTHESIZE - 78)) | (1 << (ObjectiveCParser.ATOMIC - 78)) | (1 << (ObjectiveCParser.NONATOMIC - 78)) | (1 << (ObjectiveCParser.RETAIN - 78)) | (1 << (ObjectiveCParser.ATTRIBUTE - 78)) | (1 << (ObjectiveCParser.AUTORELEASING_QUALIFIER - 78)) | (1 << (ObjectiveCParser.BLOCK - 78)) | (1 << (ObjectiveCParser.BRIDGE - 78)) | (1 << (ObjectiveCParser.BRIDGE_RETAINED - 78)) | (1 << (ObjectiveCParser.BRIDGE_TRANSFER - 78)) | (1 << (ObjectiveCParser.COVARIANT - 78)) | (1 << (ObjectiveCParser.CONTRAVARIANT - 78)) | (1 << (ObjectiveCParser.DEPRECATED - 78)) | (1 << (ObjectiveCParser.KINDOF - 78)) | (1 << (ObjectiveCParser.STRONG_QUALIFIER - 78)) | (1 << (ObjectiveCParser.TYPEOF - 78)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED_QUALIFIER - 78)) | (1 << (ObjectiveCParser.UNUSED - 78)) | (1 << (ObjectiveCParser.WEAK_QUALIFIER - 78)) | (1 << (ObjectiveCParser.NULL_UNSPECIFIED - 78)) | (1 << (ObjectiveCParser.NULLABLE - 78)) | (1 << (ObjectiveCParser.NONNULL - 78)) | (1 << (ObjectiveCParser.NULL_RESETTABLE - 78)) | (1 << (ObjectiveCParser.NS_INLINE - 78)) | (1 << (ObjectiveCParser.NS_ENUM - 78)) | (1 << (ObjectiveCParser.NS_OPTIONS - 78)) | (1 << (ObjectiveCParser.ASSIGN - 78)) | (1 << (ObjectiveCParser.COPY - 78)) | (1 << (ObjectiveCParser.GETTER - 78)) | (1 << (ObjectiveCParser.SETTER - 78)))) !== 0) || ((((_la - 110)) & ~0x1F) === 0 && ((1 << (_la - 110)) & ((1 << (ObjectiveCParser.STRONG - 110)) | (1 << (ObjectiveCParser.READONLY - 110)) | (1 << (ObjectiveCParser.READWRITE - 110)) | (1 << (ObjectiveCParser.WEAK - 110)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED - 110)) | (1 << (ObjectiveCParser.IB_OUTLET - 110)) | (1 << (ObjectiveCParser.IB_OUTLET_COLLECTION - 110)) | (1 << (ObjectiveCParser.IB_INSPECTABLE - 110)) | (1 << (ObjectiveCParser.IB_DESIGNABLE - 110)) | (1 << (ObjectiveCParser.IDENTIFIER - 110)))) !== 0) || _la === ObjectiveCParser.ADD || _la === ObjectiveCParser.SUB) { { this.state = 376; this.implementationDefinitionList(); } } this.state = 379; this.match(ObjectiveCParser.END); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } genericTypeSpecifier() { let _localctx = new GenericTypeSpecifierContext(this._ctx, this.state); this.enterRule(_localctx, 14, ObjectiveCParser.RULE_genericTypeSpecifier); try { this.enterOuterAlt(_localctx, 1); { this.state = 381; this.identifier(); this.state = 387; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 15, this._ctx)) { case 1: { { this.state = 382; this.match(ObjectiveCParser.LT); this.state = 383; this.protocolList(); this.state = 384; this.match(ObjectiveCParser.GT); } } break; case 2: { this.state = 386; this.genericsSpecifier(); } break; } } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } protocolDeclaration() { let _localctx = new ProtocolDeclarationContext(this._ctx, this.state); this.enterRule(_localctx, 16, ObjectiveCParser.RULE_protocolDeclaration); let _la; try { this.enterOuterAlt(_localctx, 1); { this.state = 389; this.match(ObjectiveCParser.PROTOCOL); this.state = 390; this.protocolName(); this.state = 395; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === ObjectiveCParser.LT) { { this.state = 391; this.match(ObjectiveCParser.LT); this.state = 392; this.protocolList(); this.state = 393; this.match(ObjectiveCParser.GT); } } this.state = 400; this._errHandler.sync(this); _la = this._input.LA(1); while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << ObjectiveCParser.AUTO) | (1 << ObjectiveCParser.CHAR) | (1 << ObjectiveCParser.CONST) | (1 << ObjectiveCParser.DOUBLE) | (1 << ObjectiveCParser.ENUM) | (1 << ObjectiveCParser.EXTERN) | (1 << ObjectiveCParser.FLOAT) | (1 << ObjectiveCParser.INLINE) | (1 << ObjectiveCParser.INT) | (1 << ObjectiveCParser.LONG) | (1 << ObjectiveCParser.REGISTER) | (1 << ObjectiveCParser.RESTRICT) | (1 << ObjectiveCParser.SHORT) | (1 << ObjectiveCParser.SIGNED) | (1 << ObjectiveCParser.STATIC) | (1 << ObjectiveCParser.STRUCT) | (1 << ObjectiveCParser.TYPEDEF) | (1 << ObjectiveCParser.UNION) | (1 << ObjectiveCParser.UNSIGNED))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (ObjectiveCParser.VOID - 32)) | (1 << (ObjectiveCParser.VOLATILE - 32)) | (1 << (ObjectiveCParser.BOOL - 32)) | (1 << (ObjectiveCParser.Class - 32)) | (1 << (ObjectiveCParser.BYCOPY - 32)) | (1 << (ObjectiveCParser.BYREF - 32)) | (1 << (ObjectiveCParser.ID - 32)) | (1 << (ObjectiveCParser.IMP - 32)) | (1 << (ObjectiveCParser.IN - 32)) | (1 << (ObjectiveCParser.INOUT - 32)) | (1 << (ObjectiveCParser.ONEWAY - 32)) | (1 << (ObjectiveCParser.OUT - 32)) | (1 << (ObjectiveCParser.PROTOCOL_ - 32)) | (1 << (ObjectiveCParser.SEL - 32)) | (1 << (ObjectiveCParser.SELF - 32)) | (1 << (ObjectiveCParser.SUPER - 32)))) !== 0) || ((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & ((1 << (ObjectiveCParser.OPTIONAL - 70)) | (1 << (ObjectiveCParser.PROPERTY - 70)) | (1 << (ObjectiveCParser.REQUIRED - 70)) | (1 << (ObjectiveCParser.ATOMIC - 70)) | (1 << (ObjectiveCParser.NONATOMIC - 70)) | (1 << (ObjectiveCParser.RETAIN - 70)) | (1 << (ObjectiveCParser.ATTRIBUTE - 70)) | (1 << (ObjectiveCParser.AUTORELEASING_QUALIFIER - 70)) | (1 << (ObjectiveCParser.BLOCK - 70)) | (1 << (ObjectiveCParser.BRIDGE - 70)) | (1 << (ObjectiveCParser.BRIDGE_RETAINED - 70)) | (1 << (ObjectiveCParser.BRIDGE_TRANSFER - 70)) | (1 << (ObjectiveCParser.COVARIANT - 70)) | (1 << (ObjectiveCParser.CONTRAVARIANT - 70)) | (1 << (ObjectiveCParser.DEPRECATED - 70)) | (1 << (ObjectiveCParser.KINDOF - 70)) | (1 << (ObjectiveCParser.STRONG_QUALIFIER - 70)) | (1 << (ObjectiveCParser.TYPEOF - 70)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED_QUALIFIER - 70)) | (1 << (ObjectiveCParser.UNUSED - 70)) | (1 << (ObjectiveCParser.WEAK_QUALIFIER - 70)) | (1 << (ObjectiveCParser.NULL_UNSPECIFIED - 70)) | (1 << (ObjectiveCParser.NULLABLE - 70)) | (1 << (ObjectiveCParser.NONNULL - 70)))) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (ObjectiveCParser.NULL_RESETTABLE - 102)) | (1 << (ObjectiveCParser.NS_INLINE - 102)) | (1 << (ObjectiveCParser.NS_ENUM - 102)) | (1 << (ObjectiveCParser.NS_OPTIONS - 102)) | (1 << (ObjectiveCParser.ASSIGN - 102)) | (1 << (ObjectiveCParser.COPY - 102)) | (1 << (ObjectiveCParser.GETTER - 102)) | (1 << (ObjectiveCParser.SETTER - 102)) | (1 << (ObjectiveCParser.STRONG - 102)) | (1 << (ObjectiveCParser.READONLY - 102)) | (1 << (ObjectiveCParser.READWRITE - 102)) | (1 << (ObjectiveCParser.WEAK - 102)) | (1 << (ObjectiveCParser.UNSAFE_UNRETAINED - 102)) | (1 << (ObjectiveCParser.IB_OUTLET - 102)) | (1 << (ObjectiveCParser.IB_OUTLET_COLLECTION - 102)) | (1 << (ObjectiveCParser.IB_INSPECTABLE - 102)) | (1 << (ObjectiveCParser.IB_DESIGNABLE - 102)) | (1 << (ObjectiveCParser.IDENTIFIER - 102)))) !== 0) || _la === ObjectiveCParser.ADD || _la === ObjectiveCParser.SUB) { { { this.state = 397; this.protocolDeclarationSection(); } } this.state = 402; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 403; this.match(ObjectiveCParser.END); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } protocolDeclarationSection() { let _localctx = new ProtocolDeclarationSectionContext(this._ctx, this.state); this.enterRule(_localctx, 18, ObjectiveCParser.RULE_protocolDeclarationSection); let _la; try { let _alt; this.state = 417; this._errHandler.sync(this); switch (this._input.LA(1)) { case ObjectiveCParser.OPTIONAL: case ObjectiveCParser.REQUIRED: this.enterOuterAlt(_localctx, 1); { this.state = 405; _localctx._modifier = this._input.LT(1); _la = this._input.LA(1); if (!(_la === ObjectiveCParser.OPTIONAL || _la === ObjectiveCParser.REQUIRED)) { _localctx._modifier = this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === Token_1.Token.EOF) { this.matchedEOF = true; } this._errHandler.reportMatch(this); this.consume(); } this.state = 409; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 18, this._ctx); while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { this.state = 406; this.interfaceDeclarationList(); } } } this.state = 411; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 18, this._ctx); } } break; case ObjectiveCParser.AUTO: case ObjectiveCParser.CHAR: case ObjectiveCParser.CONST: case ObjectiveCParser.DOUBLE: case ObjectiveCParser.ENUM: case ObjectiveCParser.EXTERN: case ObjectiveCParser.FLOAT: case ObjectiveCParser.INLINE: case ObjectiveCParser.INT: case ObjectiveCParser.LONG: case ObjectiveCParser.REGISTER: case ObjectiveCParser.RESTRICT: case ObjectiveCParser.SHORT: