@amplitude/ampli
Version:
Amplitude CLI
616 lines (615 loc) • 736 kB
JavaScript
"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: