// Generated from java-escape by ANTLR 4.11.1 import Antlr4 open class PCREParser: Parser { internal static var _decisionToDFA: [DFA] = { var decisionToDFA = [DFA]() let length = PCREParser._ATN.getNumberOfDecisions() for i in 0..'", "'''", "'_'", "':'", "'#'", "'='", "'!'", "'&'", "'a'", "'b'", "'c'", "'d'", "'e'", "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'", "'o'", "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'", "'y'", "'z'", "'A'", "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'", "'Z'", "'1'", "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "'0'" ] private static let _SYMBOLIC_NAMES: [String?] = [ nil, "Quoted", "BlockQuoted", "BellChar", "ControlChar", "EscapeChar", "FormFeed", "NewLine", "CarriageReturn", "Tab", "Backslash", "HexChar", "Dot", "OneDataUnit", "DecimalDigit", "NotDecimalDigit", "HorizontalWhiteSpace", "NotHorizontalWhiteSpace", "NotNewLine", "CharWithProperty", "CharWithoutProperty", "NewLineSequence", "WhiteSpace", "NotWhiteSpace", "VerticalWhiteSpace", "NotVerticalWhiteSpace", "WordChar", "NotWordChar", "ExtendedUnicodeChar", "CharacterClassStart", "CharacterClassEnd", "Caret", "Hyphen", "POSIXNamedSet", "POSIXNegatedNamedSet", "QuestionMark", "Plus", "Star", "OpenBrace", "CloseBrace", "Comma", "WordBoundary", "NonWordBoundary", "StartOfSubject", "EndOfSubjectOrLine", "EndOfSubjectOrLineEndOfSubject", "EndOfSubject", "PreviousMatchInSubject", "ResetStartMatch", "SubroutineOrNamedReferenceStartG", "NamedReferenceStartK", "Pipe", "OpenParen", "CloseParen", "LessThan", "GreaterThan", "SingleQuote", "Underscore", "Colon", "Hash", "Equals", "Exclamation", "Ampersand", "ALC", "BLC", "CLC", "DLC", "ELC", "FLC", "GLC", "HLC", "ILC", "JLC", "KLC", "LLC", "MLC", "NLC", "OLC", "PLC", "QLC", "RLC", "SLC", "TLC", "ULC", "VLC", "WLC", "XLC", "YLC", "ZLC", "AUC", "BUC", "CUC", "DUC", "EUC", "FUC", "GUC", "HUC", "IUC", "JUC", "KUC", "LUC", "MUC", "NUC", "OUC", "PUC", "QUC", "RUC", "SUC", "TUC", "UUC", "VUC", "WUC", "XUC", "YUC", "ZUC", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D0", "OtherChar" ] public static let VOCABULARY = Vocabulary(_LITERAL_NAMES, _SYMBOLIC_NAMES) override open func getGrammarFileName() -> String { return "java-escape" } override open func getRuleNames() -> [String] { return PCREParser.ruleNames } override open func getSerializedATN() -> [Int] { return PCREParser._serializedATN } override open func getATN() -> ATN { return PCREParser._ATN } override open func getVocabulary() -> Vocabulary { return PCREParser.VOCABULARY } override public init(_ input:TokenStream) throws { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION) try super.init(input) _interp = ParserATNSimulator(self,PCREParser._ATN,PCREParser._decisionToDFA, PCREParser._sharedContextCache) } public class ParseContext: ParserRuleContext { open func alternation() -> AlternationContext? { return getRuleContext(AlternationContext.self, 0) } open func EOF() -> TerminalNode? { return getToken(PCREParser.Tokens.EOF.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_parse } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterParse(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitParse(self) } } } @discardableResult open func parse() throws -> ParseContext { var _localctx: ParseContext _localctx = ParseContext(_ctx, getState()) try enterRule(_localctx, 0, PCREParser.RULE_parse) defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(74) try alternation() setState(75) try match(PCREParser.Tokens.EOF.rawValue) } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class AlternationContext: ParserRuleContext { open func expr() -> [ExprContext] { return getRuleContexts(ExprContext.self) } open func expr(_ i: Int) -> ExprContext? { return getRuleContext(ExprContext.self, i) } open func Pipe() -> [TerminalNode] { return getTokens(PCREParser.Tokens.Pipe.rawValue) } open func Pipe(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.Pipe.rawValue, i) } override open func getRuleIndex() -> Int { return PCREParser.RULE_alternation } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterAlternation(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitAlternation(self) } } } @discardableResult open func alternation() throws -> AlternationContext { var _localctx: AlternationContext _localctx = AlternationContext(_ctx, getState()) try enterRule(_localctx, 2, PCREParser.RULE_alternation) defer { try! exitRule() } do { var _alt:Int try enterOuterAlt(_localctx, 1) setState(77) try expr() setState(82) try _errHandler.sync(self) _alt = try getInterpreter().adaptivePredict(_input,0,_ctx) while (_alt != 2 && _alt != ATN.INVALID_ALT_NUMBER) { if ( _alt==1 ) { setState(78) try match(PCREParser.Tokens.Pipe.rawValue) setState(79) try expr() } setState(84) try _errHandler.sync(self) _alt = try getInterpreter().adaptivePredict(_input,0,_ctx) } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class ExprContext: ParserRuleContext { open func element() -> [ElementContext] { return getRuleContexts(ElementContext.self) } open func element(_ i: Int) -> ElementContext? { return getRuleContext(ElementContext.self, i) } override open func getRuleIndex() -> Int { return PCREParser.RULE_expr } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterExpr(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitExpr(self) } } } @discardableResult open func expr() throws -> ExprContext { var _localctx: ExprContext _localctx = ExprContext(_ctx, getState()) try enterRule(_localctx, 4, PCREParser.RULE_expr) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(88) try _errHandler.sync(self) _la = try _input.LA(1) while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & -11259239586594818) != 0 || (Int64((_la - 64)) & ~0x3f) == 0 && ((Int64(1) << (_la - 64)) & 4611686018427387903) != 0) { setState(85) try element() setState(90) try _errHandler.sync(self) _la = try _input.LA(1) } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class ElementContext: ParserRuleContext { open func atom() -> AtomContext? { return getRuleContext(AtomContext.self, 0) } open func quantifier() -> QuantifierContext? { return getRuleContext(QuantifierContext.self, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_element } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterElement(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitElement(self) } } } @discardableResult open func element() throws -> ElementContext { var _localctx: ElementContext _localctx = ElementContext(_ctx, getState()) try enterRule(_localctx, 6, PCREParser.RULE_element) defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(91) try atom() setState(93) try _errHandler.sync(self) switch (try getInterpreter().adaptivePredict(_input,2,_ctx)) { case 1: setState(92) try quantifier() break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class QuantifierContext: ParserRuleContext { open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func quantifier_type() -> Quantifier_typeContext? { return getRuleContext(Quantifier_typeContext.self, 0) } open func Plus() -> TerminalNode? { return getToken(PCREParser.Tokens.Plus.rawValue, 0) } open func Star() -> TerminalNode? { return getToken(PCREParser.Tokens.Star.rawValue, 0) } open func OpenBrace() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenBrace.rawValue, 0) } open func number() -> [NumberContext] { return getRuleContexts(NumberContext.self) } open func number(_ i: Int) -> NumberContext? { return getRuleContext(NumberContext.self, i) } open func CloseBrace() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseBrace.rawValue, 0) } open func Comma() -> TerminalNode? { return getToken(PCREParser.Tokens.Comma.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_quantifier } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterQuantifier(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitQuantifier(self) } } } @discardableResult open func quantifier() throws -> QuantifierContext { var _localctx: QuantifierContext _localctx = QuantifierContext(_ctx, getState()) try enterRule(_localctx, 8, PCREParser.RULE_quantifier) defer { try! exitRule() } do { setState(119) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,3, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(95) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(96) try quantifier_type() break case 2: try enterOuterAlt(_localctx, 2) setState(97) try match(PCREParser.Tokens.Plus.rawValue) setState(98) try quantifier_type() break case 3: try enterOuterAlt(_localctx, 3) setState(99) try match(PCREParser.Tokens.Star.rawValue) setState(100) try quantifier_type() break case 4: try enterOuterAlt(_localctx, 4) setState(101) try match(PCREParser.Tokens.OpenBrace.rawValue) setState(102) try number() setState(103) try match(PCREParser.Tokens.CloseBrace.rawValue) setState(104) try quantifier_type() break case 5: try enterOuterAlt(_localctx, 5) setState(106) try match(PCREParser.Tokens.OpenBrace.rawValue) setState(107) try number() setState(108) try match(PCREParser.Tokens.Comma.rawValue) setState(109) try match(PCREParser.Tokens.CloseBrace.rawValue) setState(110) try quantifier_type() break case 6: try enterOuterAlt(_localctx, 6) setState(112) try match(PCREParser.Tokens.OpenBrace.rawValue) setState(113) try number() setState(114) try match(PCREParser.Tokens.Comma.rawValue) setState(115) try number() setState(116) try match(PCREParser.Tokens.CloseBrace.rawValue) setState(117) try quantifier_type() break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Quantifier_typeContext: ParserRuleContext { open func Plus() -> TerminalNode? { return getToken(PCREParser.Tokens.Plus.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_quantifier_type } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterQuantifier_type(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitQuantifier_type(self) } } } @discardableResult open func quantifier_type() throws -> Quantifier_typeContext { var _localctx: Quantifier_typeContext _localctx = Quantifier_typeContext(_ctx, getState()) try enterRule(_localctx, 10, PCREParser.RULE_quantifier_type) defer { try! exitRule() } do { setState(124) try _errHandler.sync(self) switch (PCREParser.Tokens(rawValue: try _input.LA(1))!) { case .Plus: try enterOuterAlt(_localctx, 1) setState(121) try match(PCREParser.Tokens.Plus.rawValue) break case .QuestionMark: try enterOuterAlt(_localctx, 2) setState(122) try match(PCREParser.Tokens.QuestionMark.rawValue) break case .EOF:fallthrough case .Quoted:fallthrough case .BlockQuoted:fallthrough case .BellChar:fallthrough case .ControlChar:fallthrough case .EscapeChar:fallthrough case .FormFeed:fallthrough case .NewLine:fallthrough case .CarriageReturn:fallthrough case .Tab:fallthrough case .Backslash:fallthrough case .HexChar:fallthrough case .Dot:fallthrough case .OneDataUnit:fallthrough case .DecimalDigit:fallthrough case .NotDecimalDigit:fallthrough case .HorizontalWhiteSpace:fallthrough case .NotHorizontalWhiteSpace:fallthrough case .NotNewLine:fallthrough case .CharWithProperty:fallthrough case .CharWithoutProperty:fallthrough case .NewLineSequence:fallthrough case .WhiteSpace:fallthrough case .NotWhiteSpace:fallthrough case .VerticalWhiteSpace:fallthrough case .NotVerticalWhiteSpace:fallthrough case .WordChar:fallthrough case .NotWordChar:fallthrough case .ExtendedUnicodeChar:fallthrough case .CharacterClassStart:fallthrough case .CharacterClassEnd:fallthrough case .Caret:fallthrough case .Hyphen:fallthrough case .POSIXNamedSet:fallthrough case .POSIXNegatedNamedSet:fallthrough case .OpenBrace:fallthrough case .CloseBrace:fallthrough case .Comma:fallthrough case .WordBoundary:fallthrough case .NonWordBoundary:fallthrough case .StartOfSubject:fallthrough case .EndOfSubjectOrLine:fallthrough case .EndOfSubjectOrLineEndOfSubject:fallthrough case .EndOfSubject:fallthrough case .PreviousMatchInSubject:fallthrough case .ResetStartMatch:fallthrough case .SubroutineOrNamedReferenceStartG:fallthrough case .NamedReferenceStartK:fallthrough case .Pipe:fallthrough case .OpenParen:fallthrough case .CloseParen:fallthrough case .LessThan:fallthrough case .GreaterThan:fallthrough case .SingleQuote:fallthrough case .Underscore:fallthrough case .Colon:fallthrough case .Hash:fallthrough case .Equals:fallthrough case .Exclamation:fallthrough case .Ampersand:fallthrough case .ALC:fallthrough case .BLC:fallthrough case .CLC:fallthrough case .DLC:fallthrough case .ELC:fallthrough case .FLC:fallthrough case .GLC:fallthrough case .HLC:fallthrough case .ILC:fallthrough case .JLC:fallthrough case .KLC:fallthrough case .LLC:fallthrough case .MLC:fallthrough case .NLC:fallthrough case .OLC:fallthrough case .PLC:fallthrough case .QLC:fallthrough case .RLC:fallthrough case .SLC:fallthrough case .TLC:fallthrough case .ULC:fallthrough case .VLC:fallthrough case .WLC:fallthrough case .XLC:fallthrough case .YLC:fallthrough case .ZLC:fallthrough case .AUC:fallthrough case .BUC:fallthrough case .CUC:fallthrough case .DUC:fallthrough case .EUC:fallthrough case .FUC:fallthrough case .GUC:fallthrough case .HUC:fallthrough case .IUC:fallthrough case .JUC:fallthrough case .KUC:fallthrough case .LUC:fallthrough case .MUC:fallthrough case .NUC:fallthrough case .OUC:fallthrough case .PUC:fallthrough case .QUC:fallthrough case .RUC:fallthrough case .SUC:fallthrough case .TUC:fallthrough case .UUC:fallthrough case .VUC:fallthrough case .WUC:fallthrough case .XUC:fallthrough case .YUC:fallthrough case .ZUC:fallthrough case .D1:fallthrough case .D2:fallthrough case .D3:fallthrough case .D4:fallthrough case .D5:fallthrough case .D6:fallthrough case .D7:fallthrough case .D8:fallthrough case .D9:fallthrough case .D0:fallthrough case .OtherChar: try enterOuterAlt(_localctx, 3) break default: throw ANTLRException.recognition(e: NoViableAltException(self)) } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Character_classContext: ParserRuleContext { open func CharacterClassStart() -> TerminalNode? { return getToken(PCREParser.Tokens.CharacterClassStart.rawValue, 0) } open func Caret() -> TerminalNode? { return getToken(PCREParser.Tokens.Caret.rawValue, 0) } open func CharacterClassEnd() -> [TerminalNode] { return getTokens(PCREParser.Tokens.CharacterClassEnd.rawValue) } open func CharacterClassEnd(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.CharacterClassEnd.rawValue, i) } open func Hyphen() -> TerminalNode? { return getToken(PCREParser.Tokens.Hyphen.rawValue, 0) } open func cc_atom() -> [Cc_atomContext] { return getRuleContexts(Cc_atomContext.self) } open func cc_atom(_ i: Int) -> Cc_atomContext? { return getRuleContext(Cc_atomContext.self, i) } override open func getRuleIndex() -> Int { return PCREParser.RULE_character_class } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterCharacter_class(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitCharacter_class(self) } } } @discardableResult open func character_class() throws -> Character_classContext { var _localctx: Character_classContext _localctx = Character_classContext(_ctx, getState()) try enterRule(_localctx, 12, PCREParser.RULE_character_class) var _la: Int = 0 defer { try! exitRule() } do { setState(183) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,11, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(126) try match(PCREParser.Tokens.CharacterClassStart.rawValue) setState(127) try match(PCREParser.Tokens.Caret.rawValue) setState(128) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) setState(129) try match(PCREParser.Tokens.Hyphen.rawValue) setState(131) try _errHandler.sync(self) _la = try _input.LA(1) repeat { setState(130) try cc_atom() setState(133); try _errHandler.sync(self) _la = try _input.LA(1) } while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & -2229810923315202) != 0 || (Int64((_la - 64)) & ~0x3f) == 0 && ((Int64(1) << (_la - 64)) & 4611686018427387903) != 0) setState(135) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(137) try match(PCREParser.Tokens.CharacterClassStart.rawValue) setState(138) try match(PCREParser.Tokens.Caret.rawValue) setState(139) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) setState(143) try _errHandler.sync(self) _la = try _input.LA(1) while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & -2229810923315202) != 0 || (Int64((_la - 64)) & ~0x3f) == 0 && ((Int64(1) << (_la - 64)) & 4611686018427387903) != 0) { setState(140) try cc_atom() setState(145) try _errHandler.sync(self) _la = try _input.LA(1) } setState(146) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) break case 3: try enterOuterAlt(_localctx, 3) setState(147) try match(PCREParser.Tokens.CharacterClassStart.rawValue) setState(148) try match(PCREParser.Tokens.Caret.rawValue) setState(150) try _errHandler.sync(self) _la = try _input.LA(1) repeat { setState(149) try cc_atom() setState(152); try _errHandler.sync(self) _la = try _input.LA(1) } while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & -2229810923315202) != 0 || (Int64((_la - 64)) & ~0x3f) == 0 && ((Int64(1) << (_la - 64)) & 4611686018427387903) != 0) setState(154) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(156) try match(PCREParser.Tokens.CharacterClassStart.rawValue) setState(157) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) setState(158) try match(PCREParser.Tokens.Hyphen.rawValue) setState(160) try _errHandler.sync(self) _la = try _input.LA(1) repeat { setState(159) try cc_atom() setState(162); try _errHandler.sync(self) _la = try _input.LA(1) } while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & -2229810923315202) != 0 || (Int64((_la - 64)) & ~0x3f) == 0 && ((Int64(1) << (_la - 64)) & 4611686018427387903) != 0) setState(164) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) break case 5: try enterOuterAlt(_localctx, 5) setState(166) try match(PCREParser.Tokens.CharacterClassStart.rawValue) setState(167) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) setState(171) try _errHandler.sync(self) _la = try _input.LA(1) while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & -2229810923315202) != 0 || (Int64((_la - 64)) & ~0x3f) == 0 && ((Int64(1) << (_la - 64)) & 4611686018427387903) != 0) { setState(168) try cc_atom() setState(173) try _errHandler.sync(self) _la = try _input.LA(1) } setState(174) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) break case 6: try enterOuterAlt(_localctx, 6) setState(175) try match(PCREParser.Tokens.CharacterClassStart.rawValue) setState(177) try _errHandler.sync(self) _la = try _input.LA(1) repeat { setState(176) try cc_atom() setState(179); try _errHandler.sync(self) _la = try _input.LA(1) } while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & -2229810923315202) != 0 || (Int64((_la - 64)) & ~0x3f) == 0 && ((Int64(1) << (_la - 64)) & 4611686018427387903) != 0) setState(181) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class BackreferenceContext: ParserRuleContext { open func backreference_or_octal() -> Backreference_or_octalContext? { return getRuleContext(Backreference_or_octalContext.self, 0) } open func SubroutineOrNamedReferenceStartG() -> TerminalNode? { return getToken(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue, 0) } open func number() -> NumberContext? { return getRuleContext(NumberContext.self, 0) } open func OpenBrace() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenBrace.rawValue, 0) } open func CloseBrace() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseBrace.rawValue, 0) } open func Hyphen() -> TerminalNode? { return getToken(PCREParser.Tokens.Hyphen.rawValue, 0) } open func NamedReferenceStartK() -> TerminalNode? { return getToken(PCREParser.Tokens.NamedReferenceStartK.rawValue, 0) } open func LessThan() -> TerminalNode? { return getToken(PCREParser.Tokens.LessThan.rawValue, 0) } open func name() -> NameContext? { return getRuleContext(NameContext.self, 0) } open func GreaterThan() -> TerminalNode? { return getToken(PCREParser.Tokens.GreaterThan.rawValue, 0) } open func SingleQuote() -> [TerminalNode] { return getTokens(PCREParser.Tokens.SingleQuote.rawValue) } open func SingleQuote(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.SingleQuote.rawValue, i) } open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func PUC() -> TerminalNode? { return getToken(PCREParser.Tokens.PUC.rawValue, 0) } open func Equals() -> TerminalNode? { return getToken(PCREParser.Tokens.Equals.rawValue, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_backreference } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterBackreference(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitBackreference(self) } } } @discardableResult open func backreference() throws -> BackreferenceContext { var _localctx: BackreferenceContext _localctx = BackreferenceContext(_ctx, getState()) try enterRule(_localctx, 14, PCREParser.RULE_backreference) defer { try! exitRule() } do { setState(226) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,12, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(185) try backreference_or_octal() break case 2: try enterOuterAlt(_localctx, 2) setState(186) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(187) try number() break case 3: try enterOuterAlt(_localctx, 3) setState(188) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(189) try match(PCREParser.Tokens.OpenBrace.rawValue) setState(190) try number() setState(191) try match(PCREParser.Tokens.CloseBrace.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(193) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(194) try match(PCREParser.Tokens.OpenBrace.rawValue) setState(195) try match(PCREParser.Tokens.Hyphen.rawValue) setState(196) try number() setState(197) try match(PCREParser.Tokens.CloseBrace.rawValue) break case 5: try enterOuterAlt(_localctx, 5) setState(199) try match(PCREParser.Tokens.NamedReferenceStartK.rawValue) setState(200) try match(PCREParser.Tokens.LessThan.rawValue) setState(201) try name() setState(202) try match(PCREParser.Tokens.GreaterThan.rawValue) break case 6: try enterOuterAlt(_localctx, 6) setState(204) try match(PCREParser.Tokens.NamedReferenceStartK.rawValue) setState(205) try match(PCREParser.Tokens.SingleQuote.rawValue) setState(206) try name() setState(207) try match(PCREParser.Tokens.SingleQuote.rawValue) break case 7: try enterOuterAlt(_localctx, 7) setState(209) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(210) try match(PCREParser.Tokens.OpenBrace.rawValue) setState(211) try name() setState(212) try match(PCREParser.Tokens.CloseBrace.rawValue) break case 8: try enterOuterAlt(_localctx, 8) setState(214) try match(PCREParser.Tokens.NamedReferenceStartK.rawValue) setState(215) try match(PCREParser.Tokens.OpenBrace.rawValue) setState(216) try name() setState(217) try match(PCREParser.Tokens.CloseBrace.rawValue) break case 9: try enterOuterAlt(_localctx, 9) setState(219) try match(PCREParser.Tokens.OpenParen.rawValue) setState(220) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(221) try match(PCREParser.Tokens.PUC.rawValue) setState(222) try match(PCREParser.Tokens.Equals.rawValue) setState(223) try name() setState(224) try match(PCREParser.Tokens.CloseParen.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Backreference_or_octalContext: ParserRuleContext { open func octal_char() -> Octal_charContext? { return getRuleContext(Octal_charContext.self, 0) } open func Backslash() -> TerminalNode? { return getToken(PCREParser.Tokens.Backslash.rawValue, 0) } open func digit() -> DigitContext? { return getRuleContext(DigitContext.self, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_backreference_or_octal } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterBackreference_or_octal(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitBackreference_or_octal(self) } } } @discardableResult open func backreference_or_octal() throws -> Backreference_or_octalContext { var _localctx: Backreference_or_octalContext _localctx = Backreference_or_octalContext(_ctx, getState()) try enterRule(_localctx, 16, PCREParser.RULE_backreference_or_octal) defer { try! exitRule() } do { setState(231) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,13, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(228) try octal_char() break case 2: try enterOuterAlt(_localctx, 2) setState(229) try match(PCREParser.Tokens.Backslash.rawValue) setState(230) try digit() break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class CaptureContext: ParserRuleContext { open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func LessThan() -> TerminalNode? { return getToken(PCREParser.Tokens.LessThan.rawValue, 0) } open func name() -> NameContext? { return getRuleContext(NameContext.self, 0) } open func GreaterThan() -> TerminalNode? { return getToken(PCREParser.Tokens.GreaterThan.rawValue, 0) } open func alternation() -> AlternationContext? { return getRuleContext(AlternationContext.self, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } open func SingleQuote() -> [TerminalNode] { return getTokens(PCREParser.Tokens.SingleQuote.rawValue) } open func SingleQuote(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.SingleQuote.rawValue, i) } open func PUC() -> TerminalNode? { return getToken(PCREParser.Tokens.PUC.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_capture } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterCapture(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitCapture(self) } } } @discardableResult open func capture() throws -> CaptureContext { var _localctx: CaptureContext _localctx = CaptureContext(_ctx, getState()) try enterRule(_localctx, 18, PCREParser.RULE_capture) defer { try! exitRule() } do { setState(262) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,14, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(233) try match(PCREParser.Tokens.OpenParen.rawValue) setState(234) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(235) try match(PCREParser.Tokens.LessThan.rawValue) setState(236) try name() setState(237) try match(PCREParser.Tokens.GreaterThan.rawValue) setState(238) try alternation() setState(239) try match(PCREParser.Tokens.CloseParen.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(241) try match(PCREParser.Tokens.OpenParen.rawValue) setState(242) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(243) try match(PCREParser.Tokens.SingleQuote.rawValue) setState(244) try name() setState(245) try match(PCREParser.Tokens.SingleQuote.rawValue) setState(246) try alternation() setState(247) try match(PCREParser.Tokens.CloseParen.rawValue) break case 3: try enterOuterAlt(_localctx, 3) setState(249) try match(PCREParser.Tokens.OpenParen.rawValue) setState(250) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(251) try match(PCREParser.Tokens.PUC.rawValue) setState(252) try match(PCREParser.Tokens.LessThan.rawValue) setState(253) try name() setState(254) try match(PCREParser.Tokens.GreaterThan.rawValue) setState(255) try alternation() setState(256) try match(PCREParser.Tokens.CloseParen.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(258) try match(PCREParser.Tokens.OpenParen.rawValue) setState(259) try alternation() setState(260) try match(PCREParser.Tokens.CloseParen.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Non_captureContext: ParserRuleContext { open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func Colon() -> TerminalNode? { return getToken(PCREParser.Tokens.Colon.rawValue, 0) } open func alternation() -> AlternationContext? { return getRuleContext(AlternationContext.self, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } open func Pipe() -> TerminalNode? { return getToken(PCREParser.Tokens.Pipe.rawValue, 0) } open func GreaterThan() -> TerminalNode? { return getToken(PCREParser.Tokens.GreaterThan.rawValue, 0) } open func option_flags() -> Option_flagsContext? { return getRuleContext(Option_flagsContext.self, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_non_capture } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterNon_capture(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitNon_capture(self) } } } @discardableResult open func non_capture() throws -> Non_captureContext { var _localctx: Non_captureContext _localctx = Non_captureContext(_ctx, getState()) try enterRule(_localctx, 20, PCREParser.RULE_non_capture) defer { try! exitRule() } do { setState(289) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,15, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(264) try match(PCREParser.Tokens.OpenParen.rawValue) setState(265) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(266) try match(PCREParser.Tokens.Colon.rawValue) setState(267) try alternation() setState(268) try match(PCREParser.Tokens.CloseParen.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(270) try match(PCREParser.Tokens.OpenParen.rawValue) setState(271) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(272) try match(PCREParser.Tokens.Pipe.rawValue) setState(273) try alternation() setState(274) try match(PCREParser.Tokens.CloseParen.rawValue) break case 3: try enterOuterAlt(_localctx, 3) setState(276) try match(PCREParser.Tokens.OpenParen.rawValue) setState(277) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(278) try match(PCREParser.Tokens.GreaterThan.rawValue) setState(279) try alternation() setState(280) try match(PCREParser.Tokens.CloseParen.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(282) try match(PCREParser.Tokens.OpenParen.rawValue) setState(283) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(284) try option_flags() setState(285) try match(PCREParser.Tokens.Colon.rawValue) setState(286) try alternation() setState(287) try match(PCREParser.Tokens.CloseParen.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class CommentContext: ParserRuleContext { open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func Hash() -> TerminalNode? { return getToken(PCREParser.Tokens.Hash.rawValue, 0) } open func non_close_parens() -> Non_close_parensContext? { return getRuleContext(Non_close_parensContext.self, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_comment } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterComment(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitComment(self) } } } @discardableResult open func comment() throws -> CommentContext { var _localctx: CommentContext _localctx = CommentContext(_ctx, getState()) try enterRule(_localctx, 22, PCREParser.RULE_comment) defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(291) try match(PCREParser.Tokens.OpenParen.rawValue) setState(292) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(293) try match(PCREParser.Tokens.Hash.rawValue) setState(294) try non_close_parens() setState(295) try match(PCREParser.Tokens.CloseParen.rawValue) } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class OptionContext: ParserRuleContext { open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func option_flags() -> [Option_flagsContext] { return getRuleContexts(Option_flagsContext.self) } open func option_flags(_ i: Int) -> Option_flagsContext? { return getRuleContext(Option_flagsContext.self, i) } open func Hyphen() -> TerminalNode? { return getToken(PCREParser.Tokens.Hyphen.rawValue, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } open func Star() -> TerminalNode? { return getToken(PCREParser.Tokens.Star.rawValue, 0) } open func NUC() -> TerminalNode? { return getToken(PCREParser.Tokens.NUC.rawValue, 0) } open func OUC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.OUC.rawValue) } open func OUC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.OUC.rawValue, i) } open func Underscore() -> [TerminalNode] { return getTokens(PCREParser.Tokens.Underscore.rawValue) } open func Underscore(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.Underscore.rawValue, i) } open func SUC() -> TerminalNode? { return getToken(PCREParser.Tokens.SUC.rawValue, 0) } open func TUC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.TUC.rawValue) } open func TUC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.TUC.rawValue, i) } open func AUC() -> TerminalNode? { return getToken(PCREParser.Tokens.AUC.rawValue, 0) } open func RUC() -> TerminalNode? { return getToken(PCREParser.Tokens.RUC.rawValue, 0) } open func PUC() -> TerminalNode? { return getToken(PCREParser.Tokens.PUC.rawValue, 0) } open func UUC() -> TerminalNode? { return getToken(PCREParser.Tokens.UUC.rawValue, 0) } open func FUC() -> TerminalNode? { return getToken(PCREParser.Tokens.FUC.rawValue, 0) } open func D8() -> TerminalNode? { return getToken(PCREParser.Tokens.D8.rawValue, 0) } open func D1() -> TerminalNode? { return getToken(PCREParser.Tokens.D1.rawValue, 0) } open func D6() -> TerminalNode? { return getToken(PCREParser.Tokens.D6.rawValue, 0) } open func CUC() -> TerminalNode? { return getToken(PCREParser.Tokens.CUC.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_option } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterOption(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitOption(self) } } } @discardableResult open func option() throws -> OptionContext { var _localctx: OptionContext _localctx = OptionContext(_ctx, getState()) try enterRule(_localctx, 24, PCREParser.RULE_option) defer { try! exitRule() } do { setState(351) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,16, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(297) try match(PCREParser.Tokens.OpenParen.rawValue) setState(298) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(299) try option_flags() setState(300) try match(PCREParser.Tokens.Hyphen.rawValue) setState(301) try option_flags() setState(302) try match(PCREParser.Tokens.CloseParen.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(304) try match(PCREParser.Tokens.OpenParen.rawValue) setState(305) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(306) try option_flags() setState(307) try match(PCREParser.Tokens.CloseParen.rawValue) break case 3: try enterOuterAlt(_localctx, 3) setState(309) try match(PCREParser.Tokens.OpenParen.rawValue) setState(310) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(311) try match(PCREParser.Tokens.Hyphen.rawValue) setState(312) try option_flags() setState(313) try match(PCREParser.Tokens.CloseParen.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(315) try match(PCREParser.Tokens.OpenParen.rawValue) setState(316) try match(PCREParser.Tokens.Star.rawValue) setState(317) try match(PCREParser.Tokens.NUC.rawValue) setState(318) try match(PCREParser.Tokens.OUC.rawValue) setState(319) try match(PCREParser.Tokens.Underscore.rawValue) setState(320) try match(PCREParser.Tokens.SUC.rawValue) setState(321) try match(PCREParser.Tokens.TUC.rawValue) setState(322) try match(PCREParser.Tokens.AUC.rawValue) setState(323) try match(PCREParser.Tokens.RUC.rawValue) setState(324) try match(PCREParser.Tokens.TUC.rawValue) setState(325) try match(PCREParser.Tokens.Underscore.rawValue) setState(326) try match(PCREParser.Tokens.OUC.rawValue) setState(327) try match(PCREParser.Tokens.PUC.rawValue) setState(328) try match(PCREParser.Tokens.TUC.rawValue) setState(329) try match(PCREParser.Tokens.CloseParen.rawValue) break case 5: try enterOuterAlt(_localctx, 5) setState(330) try match(PCREParser.Tokens.OpenParen.rawValue) setState(331) try match(PCREParser.Tokens.Star.rawValue) setState(332) try match(PCREParser.Tokens.UUC.rawValue) setState(333) try match(PCREParser.Tokens.TUC.rawValue) setState(334) try match(PCREParser.Tokens.FUC.rawValue) setState(335) try match(PCREParser.Tokens.D8.rawValue) setState(336) try match(PCREParser.Tokens.CloseParen.rawValue) break case 6: try enterOuterAlt(_localctx, 6) setState(337) try match(PCREParser.Tokens.OpenParen.rawValue) setState(338) try match(PCREParser.Tokens.Star.rawValue) setState(339) try match(PCREParser.Tokens.UUC.rawValue) setState(340) try match(PCREParser.Tokens.TUC.rawValue) setState(341) try match(PCREParser.Tokens.FUC.rawValue) setState(342) try match(PCREParser.Tokens.D1.rawValue) setState(343) try match(PCREParser.Tokens.D6.rawValue) setState(344) try match(PCREParser.Tokens.CloseParen.rawValue) break case 7: try enterOuterAlt(_localctx, 7) setState(345) try match(PCREParser.Tokens.OpenParen.rawValue) setState(346) try match(PCREParser.Tokens.Star.rawValue) setState(347) try match(PCREParser.Tokens.UUC.rawValue) setState(348) try match(PCREParser.Tokens.CUC.rawValue) setState(349) try match(PCREParser.Tokens.PUC.rawValue) setState(350) try match(PCREParser.Tokens.CloseParen.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Option_flagsContext: ParserRuleContext { open func option_flag() -> [Option_flagContext] { return getRuleContexts(Option_flagContext.self) } open func option_flag(_ i: Int) -> Option_flagContext? { return getRuleContext(Option_flagContext.self, i) } override open func getRuleIndex() -> Int { return PCREParser.RULE_option_flags } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterOption_flags(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitOption_flags(self) } } } @discardableResult open func option_flags() throws -> Option_flagsContext { var _localctx: Option_flagsContext _localctx = Option_flagsContext(_ctx, getState()) try enterRule(_localctx, 26, PCREParser.RULE_option_flags) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(354) try _errHandler.sync(self) _la = try _input.LA(1) repeat { setState(353) try option_flag() setState(356); try _errHandler.sync(self) _la = try _input.LA(1) } while ((Int64((_la - 71)) & ~0x3f) == 0 && ((Int64(1) << (_la - 71)) & 275012158481) != 0) } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Option_flagContext: ParserRuleContext { open func ILC() -> TerminalNode? { return getToken(PCREParser.Tokens.ILC.rawValue, 0) } open func JUC() -> TerminalNode? { return getToken(PCREParser.Tokens.JUC.rawValue, 0) } open func MLC() -> TerminalNode? { return getToken(PCREParser.Tokens.MLC.rawValue, 0) } open func SLC() -> TerminalNode? { return getToken(PCREParser.Tokens.SLC.rawValue, 0) } open func UUC() -> TerminalNode? { return getToken(PCREParser.Tokens.UUC.rawValue, 0) } open func XLC() -> TerminalNode? { return getToken(PCREParser.Tokens.XLC.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_option_flag } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterOption_flag(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitOption_flag(self) } } } @discardableResult open func option_flag() throws -> Option_flagContext { var _localctx: Option_flagContext _localctx = Option_flagContext(_ctx, getState()) try enterRule(_localctx, 28, PCREParser.RULE_option_flag) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(358) _la = try _input.LA(1) if (!((Int64((_la - 71)) & ~0x3f) == 0 && ((Int64(1) << (_la - 71)) & 275012158481) != 0)) { try _errHandler.recoverInline(self) } else { _errHandler.reportMatch(self) try consume() } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Look_aroundContext: ParserRuleContext { open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func Equals() -> TerminalNode? { return getToken(PCREParser.Tokens.Equals.rawValue, 0) } open func alternation() -> AlternationContext? { return getRuleContext(AlternationContext.self, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } open func Exclamation() -> TerminalNode? { return getToken(PCREParser.Tokens.Exclamation.rawValue, 0) } open func LessThan() -> TerminalNode? { return getToken(PCREParser.Tokens.LessThan.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_look_around } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterLook_around(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitLook_around(self) } } } @discardableResult open func look_around() throws -> Look_aroundContext { var _localctx: Look_aroundContext _localctx = Look_aroundContext(_ctx, getState()) try enterRule(_localctx, 30, PCREParser.RULE_look_around) defer { try! exitRule() } do { setState(386) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,18, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(360) try match(PCREParser.Tokens.OpenParen.rawValue) setState(361) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(362) try match(PCREParser.Tokens.Equals.rawValue) setState(363) try alternation() setState(364) try match(PCREParser.Tokens.CloseParen.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(366) try match(PCREParser.Tokens.OpenParen.rawValue) setState(367) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(368) try match(PCREParser.Tokens.Exclamation.rawValue) setState(369) try alternation() setState(370) try match(PCREParser.Tokens.CloseParen.rawValue) break case 3: try enterOuterAlt(_localctx, 3) setState(372) try match(PCREParser.Tokens.OpenParen.rawValue) setState(373) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(374) try match(PCREParser.Tokens.LessThan.rawValue) setState(375) try match(PCREParser.Tokens.Equals.rawValue) setState(376) try alternation() setState(377) try match(PCREParser.Tokens.CloseParen.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(379) try match(PCREParser.Tokens.OpenParen.rawValue) setState(380) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(381) try match(PCREParser.Tokens.LessThan.rawValue) setState(382) try match(PCREParser.Tokens.Exclamation.rawValue) setState(383) try alternation() setState(384) try match(PCREParser.Tokens.CloseParen.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Subroutine_referenceContext: ParserRuleContext { open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func RUC() -> TerminalNode? { return getToken(PCREParser.Tokens.RUC.rawValue, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } open func number() -> NumberContext? { return getRuleContext(NumberContext.self, 0) } open func Plus() -> TerminalNode? { return getToken(PCREParser.Tokens.Plus.rawValue, 0) } open func Hyphen() -> TerminalNode? { return getToken(PCREParser.Tokens.Hyphen.rawValue, 0) } open func Ampersand() -> TerminalNode? { return getToken(PCREParser.Tokens.Ampersand.rawValue, 0) } open func name() -> NameContext? { return getRuleContext(NameContext.self, 0) } open func PUC() -> TerminalNode? { return getToken(PCREParser.Tokens.PUC.rawValue, 0) } open func GreaterThan() -> TerminalNode? { return getToken(PCREParser.Tokens.GreaterThan.rawValue, 0) } open func SubroutineOrNamedReferenceStartG() -> TerminalNode? { return getToken(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue, 0) } open func LessThan() -> TerminalNode? { return getToken(PCREParser.Tokens.LessThan.rawValue, 0) } open func SingleQuote() -> [TerminalNode] { return getTokens(PCREParser.Tokens.SingleQuote.rawValue) } open func SingleQuote(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.SingleQuote.rawValue, i) } override open func getRuleIndex() -> Int { return PCREParser.RULE_subroutine_reference } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterSubroutine_reference(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitSubroutine_reference(self) } } } @discardableResult open func subroutine_reference() throws -> Subroutine_referenceContext { var _localctx: Subroutine_referenceContext _localctx = Subroutine_referenceContext(_ctx, getState()) try enterRule(_localctx, 32, PCREParser.RULE_subroutine_reference) defer { try! exitRule() } do { setState(466) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,19, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(388) try match(PCREParser.Tokens.OpenParen.rawValue) setState(389) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(390) try match(PCREParser.Tokens.RUC.rawValue) setState(391) try match(PCREParser.Tokens.CloseParen.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(392) try match(PCREParser.Tokens.OpenParen.rawValue) setState(393) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(394) try number() setState(395) try match(PCREParser.Tokens.CloseParen.rawValue) break case 3: try enterOuterAlt(_localctx, 3) setState(397) try match(PCREParser.Tokens.OpenParen.rawValue) setState(398) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(399) try match(PCREParser.Tokens.Plus.rawValue) setState(400) try number() setState(401) try match(PCREParser.Tokens.CloseParen.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(403) try match(PCREParser.Tokens.OpenParen.rawValue) setState(404) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(405) try match(PCREParser.Tokens.Hyphen.rawValue) setState(406) try number() setState(407) try match(PCREParser.Tokens.CloseParen.rawValue) break case 5: try enterOuterAlt(_localctx, 5) setState(409) try match(PCREParser.Tokens.OpenParen.rawValue) setState(410) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(411) try match(PCREParser.Tokens.Ampersand.rawValue) setState(412) try name() setState(413) try match(PCREParser.Tokens.CloseParen.rawValue) break case 6: try enterOuterAlt(_localctx, 6) setState(415) try match(PCREParser.Tokens.OpenParen.rawValue) setState(416) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(417) try match(PCREParser.Tokens.PUC.rawValue) setState(418) try match(PCREParser.Tokens.GreaterThan.rawValue) setState(419) try name() setState(420) try match(PCREParser.Tokens.CloseParen.rawValue) break case 7: try enterOuterAlt(_localctx, 7) setState(422) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(423) try match(PCREParser.Tokens.LessThan.rawValue) setState(424) try name() setState(425) try match(PCREParser.Tokens.GreaterThan.rawValue) break case 8: try enterOuterAlt(_localctx, 8) setState(427) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(428) try match(PCREParser.Tokens.SingleQuote.rawValue) setState(429) try name() setState(430) try match(PCREParser.Tokens.SingleQuote.rawValue) break case 9: try enterOuterAlt(_localctx, 9) setState(432) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(433) try match(PCREParser.Tokens.LessThan.rawValue) setState(434) try number() setState(435) try match(PCREParser.Tokens.GreaterThan.rawValue) break case 10: try enterOuterAlt(_localctx, 10) setState(437) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(438) try match(PCREParser.Tokens.SingleQuote.rawValue) setState(439) try number() setState(440) try match(PCREParser.Tokens.SingleQuote.rawValue) break case 11: try enterOuterAlt(_localctx, 11) setState(442) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(443) try match(PCREParser.Tokens.LessThan.rawValue) setState(444) try match(PCREParser.Tokens.Plus.rawValue) setState(445) try number() setState(446) try match(PCREParser.Tokens.GreaterThan.rawValue) break case 12: try enterOuterAlt(_localctx, 12) setState(448) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(449) try match(PCREParser.Tokens.SingleQuote.rawValue) setState(450) try match(PCREParser.Tokens.Plus.rawValue) setState(451) try number() setState(452) try match(PCREParser.Tokens.SingleQuote.rawValue) break case 13: try enterOuterAlt(_localctx, 13) setState(454) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(455) try match(PCREParser.Tokens.LessThan.rawValue) setState(456) try match(PCREParser.Tokens.Hyphen.rawValue) setState(457) try number() setState(458) try match(PCREParser.Tokens.GreaterThan.rawValue) break case 14: try enterOuterAlt(_localctx, 14) setState(460) try match(PCREParser.Tokens.SubroutineOrNamedReferenceStartG.rawValue) setState(461) try match(PCREParser.Tokens.SingleQuote.rawValue) setState(462) try match(PCREParser.Tokens.Hyphen.rawValue) setState(463) try number() setState(464) try match(PCREParser.Tokens.SingleQuote.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class ConditionalContext: ParserRuleContext { open func OpenParen() -> [TerminalNode] { return getTokens(PCREParser.Tokens.OpenParen.rawValue) } open func OpenParen(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, i) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func number() -> NumberContext? { return getRuleContext(NumberContext.self, 0) } open func CloseParen() -> [TerminalNode] { return getTokens(PCREParser.Tokens.CloseParen.rawValue) } open func CloseParen(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, i) } open func alternation() -> [AlternationContext] { return getRuleContexts(AlternationContext.self) } open func alternation(_ i: Int) -> AlternationContext? { return getRuleContext(AlternationContext.self, i) } open func Pipe() -> TerminalNode? { return getToken(PCREParser.Tokens.Pipe.rawValue, 0) } open func Plus() -> TerminalNode? { return getToken(PCREParser.Tokens.Plus.rawValue, 0) } open func Hyphen() -> TerminalNode? { return getToken(PCREParser.Tokens.Hyphen.rawValue, 0) } open func LessThan() -> TerminalNode? { return getToken(PCREParser.Tokens.LessThan.rawValue, 0) } open func name() -> NameContext? { return getRuleContext(NameContext.self, 0) } open func GreaterThan() -> TerminalNode? { return getToken(PCREParser.Tokens.GreaterThan.rawValue, 0) } open func SingleQuote() -> [TerminalNode] { return getTokens(PCREParser.Tokens.SingleQuote.rawValue) } open func SingleQuote(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.SingleQuote.rawValue, i) } open func RUC() -> TerminalNode? { return getToken(PCREParser.Tokens.RUC.rawValue, 0) } open func Ampersand() -> TerminalNode? { return getToken(PCREParser.Tokens.Ampersand.rawValue, 0) } open func DUC() -> TerminalNode? { return getToken(PCREParser.Tokens.DUC.rawValue, 0) } open func EUC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.EUC.rawValue) } open func EUC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.EUC.rawValue, i) } open func FUC() -> TerminalNode? { return getToken(PCREParser.Tokens.FUC.rawValue, 0) } open func IUC() -> TerminalNode? { return getToken(PCREParser.Tokens.IUC.rawValue, 0) } open func NUC() -> TerminalNode? { return getToken(PCREParser.Tokens.NUC.rawValue, 0) } open func ALC() -> TerminalNode? { return getToken(PCREParser.Tokens.ALC.rawValue, 0) } open func SLC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.SLC.rawValue) } open func SLC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.SLC.rawValue, i) } open func ELC() -> TerminalNode? { return getToken(PCREParser.Tokens.ELC.rawValue, 0) } open func RLC() -> TerminalNode? { return getToken(PCREParser.Tokens.RLC.rawValue, 0) } open func TLC() -> TerminalNode? { return getToken(PCREParser.Tokens.TLC.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_conditional } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterConditional(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitConditional(self) } } } @discardableResult open func conditional() throws -> ConditionalContext { var _localctx: ConditionalContext _localctx = ConditionalContext(_ctx, getState()) try enterRule(_localctx, 34, PCREParser.RULE_conditional) var _la: Int = 0 defer { try! exitRule() } do { setState(619) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,31, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(468) try match(PCREParser.Tokens.OpenParen.rawValue) setState(469) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(470) try match(PCREParser.Tokens.OpenParen.rawValue) setState(471) try number() setState(472) try match(PCREParser.Tokens.CloseParen.rawValue) setState(473) try alternation() setState(476) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(474) try match(PCREParser.Tokens.Pipe.rawValue) setState(475) try alternation() } setState(478) try match(PCREParser.Tokens.CloseParen.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(480) try match(PCREParser.Tokens.OpenParen.rawValue) setState(481) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(482) try match(PCREParser.Tokens.OpenParen.rawValue) setState(483) try match(PCREParser.Tokens.Plus.rawValue) setState(484) try number() setState(485) try match(PCREParser.Tokens.CloseParen.rawValue) setState(486) try alternation() setState(489) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(487) try match(PCREParser.Tokens.Pipe.rawValue) setState(488) try alternation() } setState(491) try match(PCREParser.Tokens.CloseParen.rawValue) break case 3: try enterOuterAlt(_localctx, 3) setState(493) try match(PCREParser.Tokens.OpenParen.rawValue) setState(494) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(495) try match(PCREParser.Tokens.OpenParen.rawValue) setState(496) try match(PCREParser.Tokens.Hyphen.rawValue) setState(497) try number() setState(498) try match(PCREParser.Tokens.CloseParen.rawValue) setState(499) try alternation() setState(502) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(500) try match(PCREParser.Tokens.Pipe.rawValue) setState(501) try alternation() } setState(504) try match(PCREParser.Tokens.CloseParen.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(506) try match(PCREParser.Tokens.OpenParen.rawValue) setState(507) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(508) try match(PCREParser.Tokens.OpenParen.rawValue) setState(509) try match(PCREParser.Tokens.LessThan.rawValue) setState(510) try name() setState(511) try match(PCREParser.Tokens.GreaterThan.rawValue) setState(512) try match(PCREParser.Tokens.CloseParen.rawValue) setState(513) try alternation() setState(516) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(514) try match(PCREParser.Tokens.Pipe.rawValue) setState(515) try alternation() } setState(518) try match(PCREParser.Tokens.CloseParen.rawValue) break case 5: try enterOuterAlt(_localctx, 5) setState(520) try match(PCREParser.Tokens.OpenParen.rawValue) setState(521) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(522) try match(PCREParser.Tokens.OpenParen.rawValue) setState(523) try match(PCREParser.Tokens.SingleQuote.rawValue) setState(524) try name() setState(525) try match(PCREParser.Tokens.SingleQuote.rawValue) setState(526) try match(PCREParser.Tokens.CloseParen.rawValue) setState(527) try alternation() setState(530) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(528) try match(PCREParser.Tokens.Pipe.rawValue) setState(529) try alternation() } setState(532) try match(PCREParser.Tokens.CloseParen.rawValue) break case 6: try enterOuterAlt(_localctx, 6) setState(534) try match(PCREParser.Tokens.OpenParen.rawValue) setState(535) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(536) try match(PCREParser.Tokens.OpenParen.rawValue) setState(537) try match(PCREParser.Tokens.RUC.rawValue) setState(538) try number() setState(539) try match(PCREParser.Tokens.CloseParen.rawValue) setState(540) try alternation() setState(543) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(541) try match(PCREParser.Tokens.Pipe.rawValue) setState(542) try alternation() } setState(545) try match(PCREParser.Tokens.CloseParen.rawValue) break case 7: try enterOuterAlt(_localctx, 7) setState(547) try match(PCREParser.Tokens.OpenParen.rawValue) setState(548) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(549) try match(PCREParser.Tokens.OpenParen.rawValue) setState(550) try match(PCREParser.Tokens.RUC.rawValue) setState(551) try match(PCREParser.Tokens.CloseParen.rawValue) setState(552) try alternation() setState(555) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(553) try match(PCREParser.Tokens.Pipe.rawValue) setState(554) try alternation() } setState(557) try match(PCREParser.Tokens.CloseParen.rawValue) break case 8: try enterOuterAlt(_localctx, 8) setState(559) try match(PCREParser.Tokens.OpenParen.rawValue) setState(560) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(561) try match(PCREParser.Tokens.OpenParen.rawValue) setState(562) try match(PCREParser.Tokens.RUC.rawValue) setState(563) try match(PCREParser.Tokens.Ampersand.rawValue) setState(564) try name() setState(565) try match(PCREParser.Tokens.CloseParen.rawValue) setState(566) try alternation() setState(569) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(567) try match(PCREParser.Tokens.Pipe.rawValue) setState(568) try alternation() } setState(571) try match(PCREParser.Tokens.CloseParen.rawValue) break case 9: try enterOuterAlt(_localctx, 9) setState(573) try match(PCREParser.Tokens.OpenParen.rawValue) setState(574) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(575) try match(PCREParser.Tokens.OpenParen.rawValue) setState(576) try match(PCREParser.Tokens.DUC.rawValue) setState(577) try match(PCREParser.Tokens.EUC.rawValue) setState(578) try match(PCREParser.Tokens.FUC.rawValue) setState(579) try match(PCREParser.Tokens.IUC.rawValue) setState(580) try match(PCREParser.Tokens.NUC.rawValue) setState(581) try match(PCREParser.Tokens.EUC.rawValue) setState(582) try match(PCREParser.Tokens.CloseParen.rawValue) setState(583) try alternation() setState(586) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(584) try match(PCREParser.Tokens.Pipe.rawValue) setState(585) try alternation() } setState(588) try match(PCREParser.Tokens.CloseParen.rawValue) break case 10: try enterOuterAlt(_localctx, 10) setState(590) try match(PCREParser.Tokens.OpenParen.rawValue) setState(591) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(592) try match(PCREParser.Tokens.OpenParen.rawValue) setState(593) try match(PCREParser.Tokens.ALC.rawValue) setState(594) try match(PCREParser.Tokens.SLC.rawValue) setState(595) try match(PCREParser.Tokens.SLC.rawValue) setState(596) try match(PCREParser.Tokens.ELC.rawValue) setState(597) try match(PCREParser.Tokens.RLC.rawValue) setState(598) try match(PCREParser.Tokens.TLC.rawValue) setState(599) try match(PCREParser.Tokens.CloseParen.rawValue) setState(600) try alternation() setState(603) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(601) try match(PCREParser.Tokens.Pipe.rawValue) setState(602) try alternation() } setState(605) try match(PCREParser.Tokens.CloseParen.rawValue) break case 11: try enterOuterAlt(_localctx, 11) setState(607) try match(PCREParser.Tokens.OpenParen.rawValue) setState(608) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(609) try match(PCREParser.Tokens.OpenParen.rawValue) setState(610) try name() setState(611) try match(PCREParser.Tokens.CloseParen.rawValue) setState(612) try alternation() setState(615) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.Pipe.rawValue) { setState(613) try match(PCREParser.Tokens.Pipe.rawValue) setState(614) try alternation() } setState(617) try match(PCREParser.Tokens.CloseParen.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Backtrack_controlContext: ParserRuleContext { open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func Star() -> TerminalNode? { return getToken(PCREParser.Tokens.Star.rawValue, 0) } open func AUC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.AUC.rawValue) } open func AUC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.AUC.rawValue, i) } open func CUC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.CUC.rawValue) } open func CUC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.CUC.rawValue, i) } open func EUC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.EUC.rawValue) } open func EUC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.EUC.rawValue, i) } open func PUC() -> TerminalNode? { return getToken(PCREParser.Tokens.PUC.rawValue, 0) } open func TUC() -> TerminalNode? { return getToken(PCREParser.Tokens.TUC.rawValue, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } open func FUC() -> TerminalNode? { return getToken(PCREParser.Tokens.FUC.rawValue, 0) } open func IUC() -> TerminalNode? { return getToken(PCREParser.Tokens.IUC.rawValue, 0) } open func LUC() -> TerminalNode? { return getToken(PCREParser.Tokens.LUC.rawValue, 0) } open func Colon() -> TerminalNode? { return getToken(PCREParser.Tokens.Colon.rawValue, 0) } open func NUC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.NUC.rawValue) } open func NUC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.NUC.rawValue, i) } open func MUC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.MUC.rawValue) } open func MUC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.MUC.rawValue, i) } open func RUC() -> TerminalNode? { return getToken(PCREParser.Tokens.RUC.rawValue, 0) } open func KUC() -> TerminalNode? { return getToken(PCREParser.Tokens.KUC.rawValue, 0) } open func OUC() -> TerminalNode? { return getToken(PCREParser.Tokens.OUC.rawValue, 0) } open func UUC() -> TerminalNode? { return getToken(PCREParser.Tokens.UUC.rawValue, 0) } open func SUC() -> TerminalNode? { return getToken(PCREParser.Tokens.SUC.rawValue, 0) } open func HUC() -> TerminalNode? { return getToken(PCREParser.Tokens.HUC.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_backtrack_control } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterBacktrack_control(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitBacktrack_control(self) } } } @discardableResult open func backtrack_control() throws -> Backtrack_controlContext { var _localctx: Backtrack_controlContext _localctx = Backtrack_controlContext(_ctx, getState()) try enterRule(_localctx, 36, PCREParser.RULE_backtrack_control) var _la: Int = 0 defer { try! exitRule() } do { setState(721) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,34, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(621) try match(PCREParser.Tokens.OpenParen.rawValue) setState(622) try match(PCREParser.Tokens.Star.rawValue) setState(623) try match(PCREParser.Tokens.AUC.rawValue) setState(624) try match(PCREParser.Tokens.CUC.rawValue) setState(625) try match(PCREParser.Tokens.CUC.rawValue) setState(626) try match(PCREParser.Tokens.EUC.rawValue) setState(627) try match(PCREParser.Tokens.PUC.rawValue) setState(628) try match(PCREParser.Tokens.TUC.rawValue) setState(629) try match(PCREParser.Tokens.CloseParen.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(630) try match(PCREParser.Tokens.OpenParen.rawValue) setState(631) try match(PCREParser.Tokens.Star.rawValue) setState(632) try match(PCREParser.Tokens.FUC.rawValue) setState(636) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.AUC.rawValue) { setState(633) try match(PCREParser.Tokens.AUC.rawValue) setState(634) try match(PCREParser.Tokens.IUC.rawValue) setState(635) try match(PCREParser.Tokens.LUC.rawValue) } setState(638) try match(PCREParser.Tokens.CloseParen.rawValue) break case 3: try enterOuterAlt(_localctx, 3) setState(639) try match(PCREParser.Tokens.OpenParen.rawValue) setState(640) try match(PCREParser.Tokens.Star.rawValue) setState(645) try _errHandler.sync(self) _la = try _input.LA(1) if (_la == PCREParser.Tokens.MUC.rawValue) { setState(641) try match(PCREParser.Tokens.MUC.rawValue) setState(642) try match(PCREParser.Tokens.AUC.rawValue) setState(643) try match(PCREParser.Tokens.RUC.rawValue) setState(644) try match(PCREParser.Tokens.KUC.rawValue) } setState(647) try match(PCREParser.Tokens.Colon.rawValue) setState(648) try match(PCREParser.Tokens.NUC.rawValue) setState(649) try match(PCREParser.Tokens.AUC.rawValue) setState(650) try match(PCREParser.Tokens.MUC.rawValue) setState(651) try match(PCREParser.Tokens.EUC.rawValue) setState(652) try match(PCREParser.Tokens.CloseParen.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(653) try match(PCREParser.Tokens.OpenParen.rawValue) setState(654) try match(PCREParser.Tokens.Star.rawValue) setState(655) try match(PCREParser.Tokens.CUC.rawValue) setState(656) try match(PCREParser.Tokens.OUC.rawValue) setState(657) try match(PCREParser.Tokens.MUC.rawValue) setState(658) try match(PCREParser.Tokens.MUC.rawValue) setState(659) try match(PCREParser.Tokens.IUC.rawValue) setState(660) try match(PCREParser.Tokens.TUC.rawValue) setState(661) try match(PCREParser.Tokens.CloseParen.rawValue) break case 5: try enterOuterAlt(_localctx, 5) setState(662) try match(PCREParser.Tokens.OpenParen.rawValue) setState(663) try match(PCREParser.Tokens.Star.rawValue) setState(664) try match(PCREParser.Tokens.PUC.rawValue) setState(665) try match(PCREParser.Tokens.RUC.rawValue) setState(666) try match(PCREParser.Tokens.UUC.rawValue) setState(667) try match(PCREParser.Tokens.NUC.rawValue) setState(668) try match(PCREParser.Tokens.EUC.rawValue) setState(669) try match(PCREParser.Tokens.CloseParen.rawValue) break case 6: try enterOuterAlt(_localctx, 6) setState(670) try match(PCREParser.Tokens.OpenParen.rawValue) setState(671) try match(PCREParser.Tokens.Star.rawValue) setState(672) try match(PCREParser.Tokens.PUC.rawValue) setState(673) try match(PCREParser.Tokens.RUC.rawValue) setState(674) try match(PCREParser.Tokens.UUC.rawValue) setState(675) try match(PCREParser.Tokens.NUC.rawValue) setState(676) try match(PCREParser.Tokens.EUC.rawValue) setState(677) try match(PCREParser.Tokens.Colon.rawValue) setState(678) try match(PCREParser.Tokens.NUC.rawValue) setState(679) try match(PCREParser.Tokens.AUC.rawValue) setState(680) try match(PCREParser.Tokens.MUC.rawValue) setState(681) try match(PCREParser.Tokens.EUC.rawValue) setState(682) try match(PCREParser.Tokens.CloseParen.rawValue) break case 7: try enterOuterAlt(_localctx, 7) setState(683) try match(PCREParser.Tokens.OpenParen.rawValue) setState(684) try match(PCREParser.Tokens.Star.rawValue) setState(685) try match(PCREParser.Tokens.SUC.rawValue) setState(686) try match(PCREParser.Tokens.KUC.rawValue) setState(687) try match(PCREParser.Tokens.IUC.rawValue) setState(688) try match(PCREParser.Tokens.PUC.rawValue) setState(689) try match(PCREParser.Tokens.CloseParen.rawValue) break case 8: try enterOuterAlt(_localctx, 8) setState(690) try match(PCREParser.Tokens.OpenParen.rawValue) setState(691) try match(PCREParser.Tokens.Star.rawValue) setState(692) try match(PCREParser.Tokens.SUC.rawValue) setState(693) try match(PCREParser.Tokens.KUC.rawValue) setState(694) try match(PCREParser.Tokens.IUC.rawValue) setState(695) try match(PCREParser.Tokens.PUC.rawValue) setState(696) try match(PCREParser.Tokens.Colon.rawValue) setState(697) try match(PCREParser.Tokens.NUC.rawValue) setState(698) try match(PCREParser.Tokens.AUC.rawValue) setState(699) try match(PCREParser.Tokens.MUC.rawValue) setState(700) try match(PCREParser.Tokens.EUC.rawValue) setState(701) try match(PCREParser.Tokens.CloseParen.rawValue) break case 9: try enterOuterAlt(_localctx, 9) setState(702) try match(PCREParser.Tokens.OpenParen.rawValue) setState(703) try match(PCREParser.Tokens.Star.rawValue) setState(704) try match(PCREParser.Tokens.TUC.rawValue) setState(705) try match(PCREParser.Tokens.HUC.rawValue) setState(706) try match(PCREParser.Tokens.EUC.rawValue) setState(707) try match(PCREParser.Tokens.NUC.rawValue) setState(708) try match(PCREParser.Tokens.CloseParen.rawValue) break case 10: try enterOuterAlt(_localctx, 10) setState(709) try match(PCREParser.Tokens.OpenParen.rawValue) setState(710) try match(PCREParser.Tokens.Star.rawValue) setState(711) try match(PCREParser.Tokens.TUC.rawValue) setState(712) try match(PCREParser.Tokens.HUC.rawValue) setState(713) try match(PCREParser.Tokens.EUC.rawValue) setState(714) try match(PCREParser.Tokens.NUC.rawValue) setState(715) try match(PCREParser.Tokens.Colon.rawValue) setState(716) try match(PCREParser.Tokens.NUC.rawValue) setState(717) try match(PCREParser.Tokens.AUC.rawValue) setState(718) try match(PCREParser.Tokens.MUC.rawValue) setState(719) try match(PCREParser.Tokens.EUC.rawValue) setState(720) try match(PCREParser.Tokens.CloseParen.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Newline_conventionContext: ParserRuleContext { open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func Star() -> TerminalNode? { return getToken(PCREParser.Tokens.Star.rawValue, 0) } open func CUC() -> TerminalNode? { return getToken(PCREParser.Tokens.CUC.rawValue, 0) } open func RUC() -> [TerminalNode] { return getTokens(PCREParser.Tokens.RUC.rawValue) } open func RUC(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.RUC.rawValue, i) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } open func LUC() -> TerminalNode? { return getToken(PCREParser.Tokens.LUC.rawValue, 0) } open func FUC() -> TerminalNode? { return getToken(PCREParser.Tokens.FUC.rawValue, 0) } open func AUC() -> TerminalNode? { return getToken(PCREParser.Tokens.AUC.rawValue, 0) } open func NUC() -> TerminalNode? { return getToken(PCREParser.Tokens.NUC.rawValue, 0) } open func YUC() -> TerminalNode? { return getToken(PCREParser.Tokens.YUC.rawValue, 0) } open func BUC() -> TerminalNode? { return getToken(PCREParser.Tokens.BUC.rawValue, 0) } open func SUC() -> TerminalNode? { return getToken(PCREParser.Tokens.SUC.rawValue, 0) } open func Underscore() -> TerminalNode? { return getToken(PCREParser.Tokens.Underscore.rawValue, 0) } open func UUC() -> TerminalNode? { return getToken(PCREParser.Tokens.UUC.rawValue, 0) } open func IUC() -> TerminalNode? { return getToken(PCREParser.Tokens.IUC.rawValue, 0) } open func OUC() -> TerminalNode? { return getToken(PCREParser.Tokens.OUC.rawValue, 0) } open func DUC() -> TerminalNode? { return getToken(PCREParser.Tokens.DUC.rawValue, 0) } open func EUC() -> TerminalNode? { return getToken(PCREParser.Tokens.EUC.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_newline_convention } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterNewline_convention(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitNewline_convention(self) } } } @discardableResult open func newline_convention() throws -> Newline_conventionContext { var _localctx: Newline_conventionContext _localctx = Newline_conventionContext(_ctx, getState()) try enterRule(_localctx, 38, PCREParser.RULE_newline_convention) defer { try! exitRule() } do { setState(784) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,35, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(723) try match(PCREParser.Tokens.OpenParen.rawValue) setState(724) try match(PCREParser.Tokens.Star.rawValue) setState(725) try match(PCREParser.Tokens.CUC.rawValue) setState(726) try match(PCREParser.Tokens.RUC.rawValue) setState(727) try match(PCREParser.Tokens.CloseParen.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(728) try match(PCREParser.Tokens.OpenParen.rawValue) setState(729) try match(PCREParser.Tokens.Star.rawValue) setState(730) try match(PCREParser.Tokens.LUC.rawValue) setState(731) try match(PCREParser.Tokens.FUC.rawValue) setState(732) try match(PCREParser.Tokens.CloseParen.rawValue) break case 3: try enterOuterAlt(_localctx, 3) setState(733) try match(PCREParser.Tokens.OpenParen.rawValue) setState(734) try match(PCREParser.Tokens.Star.rawValue) setState(735) try match(PCREParser.Tokens.CUC.rawValue) setState(736) try match(PCREParser.Tokens.RUC.rawValue) setState(737) try match(PCREParser.Tokens.LUC.rawValue) setState(738) try match(PCREParser.Tokens.FUC.rawValue) setState(739) try match(PCREParser.Tokens.CloseParen.rawValue) break case 4: try enterOuterAlt(_localctx, 4) setState(740) try match(PCREParser.Tokens.OpenParen.rawValue) setState(741) try match(PCREParser.Tokens.Star.rawValue) setState(742) try match(PCREParser.Tokens.AUC.rawValue) setState(743) try match(PCREParser.Tokens.NUC.rawValue) setState(744) try match(PCREParser.Tokens.YUC.rawValue) setState(745) try match(PCREParser.Tokens.CUC.rawValue) setState(746) try match(PCREParser.Tokens.RUC.rawValue) setState(747) try match(PCREParser.Tokens.LUC.rawValue) setState(748) try match(PCREParser.Tokens.FUC.rawValue) setState(749) try match(PCREParser.Tokens.CloseParen.rawValue) break case 5: try enterOuterAlt(_localctx, 5) setState(750) try match(PCREParser.Tokens.OpenParen.rawValue) setState(751) try match(PCREParser.Tokens.Star.rawValue) setState(752) try match(PCREParser.Tokens.AUC.rawValue) setState(753) try match(PCREParser.Tokens.NUC.rawValue) setState(754) try match(PCREParser.Tokens.YUC.rawValue) setState(755) try match(PCREParser.Tokens.CloseParen.rawValue) break case 6: try enterOuterAlt(_localctx, 6) setState(756) try match(PCREParser.Tokens.OpenParen.rawValue) setState(757) try match(PCREParser.Tokens.Star.rawValue) setState(758) try match(PCREParser.Tokens.BUC.rawValue) setState(759) try match(PCREParser.Tokens.SUC.rawValue) setState(760) try match(PCREParser.Tokens.RUC.rawValue) setState(761) try match(PCREParser.Tokens.Underscore.rawValue) setState(762) try match(PCREParser.Tokens.AUC.rawValue) setState(763) try match(PCREParser.Tokens.NUC.rawValue) setState(764) try match(PCREParser.Tokens.YUC.rawValue) setState(765) try match(PCREParser.Tokens.CUC.rawValue) setState(766) try match(PCREParser.Tokens.RUC.rawValue) setState(767) try match(PCREParser.Tokens.LUC.rawValue) setState(768) try match(PCREParser.Tokens.FUC.rawValue) setState(769) try match(PCREParser.Tokens.CloseParen.rawValue) break case 7: try enterOuterAlt(_localctx, 7) setState(770) try match(PCREParser.Tokens.OpenParen.rawValue) setState(771) try match(PCREParser.Tokens.Star.rawValue) setState(772) try match(PCREParser.Tokens.BUC.rawValue) setState(773) try match(PCREParser.Tokens.SUC.rawValue) setState(774) try match(PCREParser.Tokens.RUC.rawValue) setState(775) try match(PCREParser.Tokens.Underscore.rawValue) setState(776) try match(PCREParser.Tokens.UUC.rawValue) setState(777) try match(PCREParser.Tokens.NUC.rawValue) setState(778) try match(PCREParser.Tokens.IUC.rawValue) setState(779) try match(PCREParser.Tokens.CUC.rawValue) setState(780) try match(PCREParser.Tokens.OUC.rawValue) setState(781) try match(PCREParser.Tokens.DUC.rawValue) setState(782) try match(PCREParser.Tokens.EUC.rawValue) setState(783) try match(PCREParser.Tokens.CloseParen.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class CalloutContext: ParserRuleContext { open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func CUC() -> TerminalNode? { return getToken(PCREParser.Tokens.CUC.rawValue, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } open func number() -> NumberContext? { return getRuleContext(NumberContext.self, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_callout } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterCallout(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitCallout(self) } } } @discardableResult open func callout() throws -> CalloutContext { var _localctx: CalloutContext _localctx = CalloutContext(_ctx, getState()) try enterRule(_localctx, 40, PCREParser.RULE_callout) defer { try! exitRule() } do { setState(796) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,36, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(786) try match(PCREParser.Tokens.OpenParen.rawValue) setState(787) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(788) try match(PCREParser.Tokens.CUC.rawValue) setState(789) try match(PCREParser.Tokens.CloseParen.rawValue) break case 2: try enterOuterAlt(_localctx, 2) setState(790) try match(PCREParser.Tokens.OpenParen.rawValue) setState(791) try match(PCREParser.Tokens.QuestionMark.rawValue) setState(792) try match(PCREParser.Tokens.CUC.rawValue) setState(793) try number() setState(794) try match(PCREParser.Tokens.CloseParen.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class AtomContext: ParserRuleContext { open func subroutine_reference() -> Subroutine_referenceContext? { return getRuleContext(Subroutine_referenceContext.self, 0) } open func shared_atom() -> Shared_atomContext? { return getRuleContext(Shared_atomContext.self, 0) } open func literal() -> LiteralContext? { return getRuleContext(LiteralContext.self, 0) } open func character_class() -> Character_classContext? { return getRuleContext(Character_classContext.self, 0) } open func capture() -> CaptureContext? { return getRuleContext(CaptureContext.self, 0) } open func non_capture() -> Non_captureContext? { return getRuleContext(Non_captureContext.self, 0) } open func comment() -> CommentContext? { return getRuleContext(CommentContext.self, 0) } open func option() -> OptionContext? { return getRuleContext(OptionContext.self, 0) } open func look_around() -> Look_aroundContext? { return getRuleContext(Look_aroundContext.self, 0) } open func backreference() -> BackreferenceContext? { return getRuleContext(BackreferenceContext.self, 0) } open func conditional() -> ConditionalContext? { return getRuleContext(ConditionalContext.self, 0) } open func backtrack_control() -> Backtrack_controlContext? { return getRuleContext(Backtrack_controlContext.self, 0) } open func newline_convention() -> Newline_conventionContext? { return getRuleContext(Newline_conventionContext.self, 0) } open func callout() -> CalloutContext? { return getRuleContext(CalloutContext.self, 0) } open func Dot() -> TerminalNode? { return getToken(PCREParser.Tokens.Dot.rawValue, 0) } open func Caret() -> TerminalNode? { return getToken(PCREParser.Tokens.Caret.rawValue, 0) } open func StartOfSubject() -> TerminalNode? { return getToken(PCREParser.Tokens.StartOfSubject.rawValue, 0) } open func WordBoundary() -> TerminalNode? { return getToken(PCREParser.Tokens.WordBoundary.rawValue, 0) } open func NonWordBoundary() -> TerminalNode? { return getToken(PCREParser.Tokens.NonWordBoundary.rawValue, 0) } open func EndOfSubjectOrLine() -> TerminalNode? { return getToken(PCREParser.Tokens.EndOfSubjectOrLine.rawValue, 0) } open func EndOfSubjectOrLineEndOfSubject() -> TerminalNode? { return getToken(PCREParser.Tokens.EndOfSubjectOrLineEndOfSubject.rawValue, 0) } open func EndOfSubject() -> TerminalNode? { return getToken(PCREParser.Tokens.EndOfSubject.rawValue, 0) } open func PreviousMatchInSubject() -> TerminalNode? { return getToken(PCREParser.Tokens.PreviousMatchInSubject.rawValue, 0) } open func ResetStartMatch() -> TerminalNode? { return getToken(PCREParser.Tokens.ResetStartMatch.rawValue, 0) } open func OneDataUnit() -> TerminalNode? { return getToken(PCREParser.Tokens.OneDataUnit.rawValue, 0) } open func ExtendedUnicodeChar() -> TerminalNode? { return getToken(PCREParser.Tokens.ExtendedUnicodeChar.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_atom } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterAtom(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitAtom(self) } } } @discardableResult open func atom() throws -> AtomContext { var _localctx: AtomContext _localctx = AtomContext(_ctx, getState()) try enterRule(_localctx, 42, PCREParser.RULE_atom) defer { try! exitRule() } do { setState(824) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,37, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(798) try subroutine_reference() break case 2: try enterOuterAlt(_localctx, 2) setState(799) try shared_atom() break case 3: try enterOuterAlt(_localctx, 3) setState(800) try literal() break case 4: try enterOuterAlt(_localctx, 4) setState(801) try character_class() break case 5: try enterOuterAlt(_localctx, 5) setState(802) try capture() break case 6: try enterOuterAlt(_localctx, 6) setState(803) try non_capture() break case 7: try enterOuterAlt(_localctx, 7) setState(804) try comment() break case 8: try enterOuterAlt(_localctx, 8) setState(805) try option() break case 9: try enterOuterAlt(_localctx, 9) setState(806) try look_around() break case 10: try enterOuterAlt(_localctx, 10) setState(807) try backreference() break case 11: try enterOuterAlt(_localctx, 11) setState(808) try conditional() break case 12: try enterOuterAlt(_localctx, 12) setState(809) try backtrack_control() break case 13: try enterOuterAlt(_localctx, 13) setState(810) try newline_convention() break case 14: try enterOuterAlt(_localctx, 14) setState(811) try callout() break case 15: try enterOuterAlt(_localctx, 15) setState(812) try match(PCREParser.Tokens.Dot.rawValue) break case 16: try enterOuterAlt(_localctx, 16) setState(813) try match(PCREParser.Tokens.Caret.rawValue) break case 17: try enterOuterAlt(_localctx, 17) setState(814) try match(PCREParser.Tokens.StartOfSubject.rawValue) break case 18: try enterOuterAlt(_localctx, 18) setState(815) try match(PCREParser.Tokens.WordBoundary.rawValue) break case 19: try enterOuterAlt(_localctx, 19) setState(816) try match(PCREParser.Tokens.NonWordBoundary.rawValue) break case 20: try enterOuterAlt(_localctx, 20) setState(817) try match(PCREParser.Tokens.EndOfSubjectOrLine.rawValue) break case 21: try enterOuterAlt(_localctx, 21) setState(818) try match(PCREParser.Tokens.EndOfSubjectOrLineEndOfSubject.rawValue) break case 22: try enterOuterAlt(_localctx, 22) setState(819) try match(PCREParser.Tokens.EndOfSubject.rawValue) break case 23: try enterOuterAlt(_localctx, 23) setState(820) try match(PCREParser.Tokens.PreviousMatchInSubject.rawValue) break case 24: try enterOuterAlt(_localctx, 24) setState(821) try match(PCREParser.Tokens.ResetStartMatch.rawValue) break case 25: try enterOuterAlt(_localctx, 25) setState(822) try match(PCREParser.Tokens.OneDataUnit.rawValue) break case 26: try enterOuterAlt(_localctx, 26) setState(823) try match(PCREParser.Tokens.ExtendedUnicodeChar.rawValue) break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Cc_atomContext: ParserRuleContext { open func cc_literal() -> [Cc_literalContext] { return getRuleContexts(Cc_literalContext.self) } open func cc_literal(_ i: Int) -> Cc_literalContext? { return getRuleContext(Cc_literalContext.self, i) } open func Hyphen() -> TerminalNode? { return getToken(PCREParser.Tokens.Hyphen.rawValue, 0) } open func shared_atom() -> Shared_atomContext? { return getRuleContext(Shared_atomContext.self, 0) } open func backreference_or_octal() -> Backreference_or_octalContext? { return getRuleContext(Backreference_or_octalContext.self, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_cc_atom } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterCc_atom(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitCc_atom(self) } } } @discardableResult open func cc_atom() throws -> Cc_atomContext { var _localctx: Cc_atomContext _localctx = Cc_atomContext(_ctx, getState()) try enterRule(_localctx, 44, PCREParser.RULE_cc_atom) defer { try! exitRule() } do { setState(833) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,38, _ctx)) { case 1: try enterOuterAlt(_localctx, 1) setState(826) try cc_literal() setState(827) try match(PCREParser.Tokens.Hyphen.rawValue) setState(828) try cc_literal() break case 2: try enterOuterAlt(_localctx, 2) setState(830) try shared_atom() break case 3: try enterOuterAlt(_localctx, 3) setState(831) try cc_literal() break case 4: try enterOuterAlt(_localctx, 4) setState(832) try backreference_or_octal() break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Shared_atomContext: ParserRuleContext { open func POSIXNamedSet() -> TerminalNode? { return getToken(PCREParser.Tokens.POSIXNamedSet.rawValue, 0) } open func POSIXNegatedNamedSet() -> TerminalNode? { return getToken(PCREParser.Tokens.POSIXNegatedNamedSet.rawValue, 0) } open func ControlChar() -> TerminalNode? { return getToken(PCREParser.Tokens.ControlChar.rawValue, 0) } open func DecimalDigit() -> TerminalNode? { return getToken(PCREParser.Tokens.DecimalDigit.rawValue, 0) } open func NotDecimalDigit() -> TerminalNode? { return getToken(PCREParser.Tokens.NotDecimalDigit.rawValue, 0) } open func HorizontalWhiteSpace() -> TerminalNode? { return getToken(PCREParser.Tokens.HorizontalWhiteSpace.rawValue, 0) } open func NotHorizontalWhiteSpace() -> TerminalNode? { return getToken(PCREParser.Tokens.NotHorizontalWhiteSpace.rawValue, 0) } open func NotNewLine() -> TerminalNode? { return getToken(PCREParser.Tokens.NotNewLine.rawValue, 0) } open func CharWithProperty() -> TerminalNode? { return getToken(PCREParser.Tokens.CharWithProperty.rawValue, 0) } open func CharWithoutProperty() -> TerminalNode? { return getToken(PCREParser.Tokens.CharWithoutProperty.rawValue, 0) } open func NewLineSequence() -> TerminalNode? { return getToken(PCREParser.Tokens.NewLineSequence.rawValue, 0) } open func WhiteSpace() -> TerminalNode? { return getToken(PCREParser.Tokens.WhiteSpace.rawValue, 0) } open func NotWhiteSpace() -> TerminalNode? { return getToken(PCREParser.Tokens.NotWhiteSpace.rawValue, 0) } open func VerticalWhiteSpace() -> TerminalNode? { return getToken(PCREParser.Tokens.VerticalWhiteSpace.rawValue, 0) } open func NotVerticalWhiteSpace() -> TerminalNode? { return getToken(PCREParser.Tokens.NotVerticalWhiteSpace.rawValue, 0) } open func WordChar() -> TerminalNode? { return getToken(PCREParser.Tokens.WordChar.rawValue, 0) } open func NotWordChar() -> TerminalNode? { return getToken(PCREParser.Tokens.NotWordChar.rawValue, 0) } open func Backslash() -> TerminalNode? { return getToken(PCREParser.Tokens.Backslash.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_shared_atom } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterShared_atom(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitShared_atom(self) } } } @discardableResult open func shared_atom() throws -> Shared_atomContext { var _localctx: Shared_atomContext _localctx = Shared_atomContext(_ctx, getState()) try enterRule(_localctx, 46, PCREParser.RULE_shared_atom) defer { try! exitRule() } do { setState(854) try _errHandler.sync(self) switch (PCREParser.Tokens(rawValue: try _input.LA(1))!) { case .POSIXNamedSet: try enterOuterAlt(_localctx, 1) setState(835) try match(PCREParser.Tokens.POSIXNamedSet.rawValue) break case .POSIXNegatedNamedSet: try enterOuterAlt(_localctx, 2) setState(836) try match(PCREParser.Tokens.POSIXNegatedNamedSet.rawValue) break case .ControlChar: try enterOuterAlt(_localctx, 3) setState(837) try match(PCREParser.Tokens.ControlChar.rawValue) break case .DecimalDigit: try enterOuterAlt(_localctx, 4) setState(838) try match(PCREParser.Tokens.DecimalDigit.rawValue) break case .NotDecimalDigit: try enterOuterAlt(_localctx, 5) setState(839) try match(PCREParser.Tokens.NotDecimalDigit.rawValue) break case .HorizontalWhiteSpace: try enterOuterAlt(_localctx, 6) setState(840) try match(PCREParser.Tokens.HorizontalWhiteSpace.rawValue) break case .NotHorizontalWhiteSpace: try enterOuterAlt(_localctx, 7) setState(841) try match(PCREParser.Tokens.NotHorizontalWhiteSpace.rawValue) break case .NotNewLine: try enterOuterAlt(_localctx, 8) setState(842) try match(PCREParser.Tokens.NotNewLine.rawValue) break case .CharWithProperty: try enterOuterAlt(_localctx, 9) setState(843) try match(PCREParser.Tokens.CharWithProperty.rawValue) break case .CharWithoutProperty: try enterOuterAlt(_localctx, 10) setState(844) try match(PCREParser.Tokens.CharWithoutProperty.rawValue) break case .NewLineSequence: try enterOuterAlt(_localctx, 11) setState(845) try match(PCREParser.Tokens.NewLineSequence.rawValue) break case .WhiteSpace: try enterOuterAlt(_localctx, 12) setState(846) try match(PCREParser.Tokens.WhiteSpace.rawValue) break case .NotWhiteSpace: try enterOuterAlt(_localctx, 13) setState(847) try match(PCREParser.Tokens.NotWhiteSpace.rawValue) break case .VerticalWhiteSpace: try enterOuterAlt(_localctx, 14) setState(848) try match(PCREParser.Tokens.VerticalWhiteSpace.rawValue) break case .NotVerticalWhiteSpace: try enterOuterAlt(_localctx, 15) setState(849) try match(PCREParser.Tokens.NotVerticalWhiteSpace.rawValue) break case .WordChar: try enterOuterAlt(_localctx, 16) setState(850) try match(PCREParser.Tokens.WordChar.rawValue) break case .NotWordChar: try enterOuterAlt(_localctx, 17) setState(851) try match(PCREParser.Tokens.NotWordChar.rawValue) break case .Backslash: try enterOuterAlt(_localctx, 18) setState(852) try match(PCREParser.Tokens.Backslash.rawValue) setState(853) try matchWildcard(); break default: throw ANTLRException.recognition(e: NoViableAltException(self)) } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class LiteralContext: ParserRuleContext { open func shared_literal() -> Shared_literalContext? { return getRuleContext(Shared_literalContext.self, 0) } open func CharacterClassEnd() -> TerminalNode? { return getToken(PCREParser.Tokens.CharacterClassEnd.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_literal } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterLiteral(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitLiteral(self) } } } @discardableResult open func literal() throws -> LiteralContext { var _localctx: LiteralContext _localctx = LiteralContext(_ctx, getState()) try enterRule(_localctx, 48, PCREParser.RULE_literal) defer { try! exitRule() } do { setState(858) try _errHandler.sync(self) switch (PCREParser.Tokens(rawValue: try _input.LA(1))!) { case .Quoted:fallthrough case .BlockQuoted:fallthrough case .BellChar:fallthrough case .EscapeChar:fallthrough case .FormFeed:fallthrough case .NewLine:fallthrough case .CarriageReturn:fallthrough case .Tab:fallthrough case .Backslash:fallthrough case .HexChar:fallthrough case .Hyphen:fallthrough case .OpenBrace:fallthrough case .CloseBrace:fallthrough case .Comma:fallthrough case .LessThan:fallthrough case .GreaterThan:fallthrough case .SingleQuote:fallthrough case .Underscore:fallthrough case .Colon:fallthrough case .Hash:fallthrough case .Equals:fallthrough case .Exclamation:fallthrough case .Ampersand:fallthrough case .ALC:fallthrough case .BLC:fallthrough case .CLC:fallthrough case .DLC:fallthrough case .ELC:fallthrough case .FLC:fallthrough case .GLC:fallthrough case .HLC:fallthrough case .ILC:fallthrough case .JLC:fallthrough case .KLC:fallthrough case .LLC:fallthrough case .MLC:fallthrough case .NLC:fallthrough case .OLC:fallthrough case .PLC:fallthrough case .QLC:fallthrough case .RLC:fallthrough case .SLC:fallthrough case .TLC:fallthrough case .ULC:fallthrough case .VLC:fallthrough case .WLC:fallthrough case .XLC:fallthrough case .YLC:fallthrough case .ZLC:fallthrough case .AUC:fallthrough case .BUC:fallthrough case .CUC:fallthrough case .DUC:fallthrough case .EUC:fallthrough case .FUC:fallthrough case .GUC:fallthrough case .HUC:fallthrough case .IUC:fallthrough case .JUC:fallthrough case .KUC:fallthrough case .LUC:fallthrough case .MUC:fallthrough case .NUC:fallthrough case .OUC:fallthrough case .PUC:fallthrough case .QUC:fallthrough case .RUC:fallthrough case .SUC:fallthrough case .TUC:fallthrough case .UUC:fallthrough case .VUC:fallthrough case .WUC:fallthrough case .XUC:fallthrough case .YUC:fallthrough case .ZUC:fallthrough case .D1:fallthrough case .D2:fallthrough case .D3:fallthrough case .D4:fallthrough case .D5:fallthrough case .D6:fallthrough case .D7:fallthrough case .D8:fallthrough case .D9:fallthrough case .D0:fallthrough case .OtherChar: try enterOuterAlt(_localctx, 1) setState(856) try shared_literal() break case .CharacterClassEnd: try enterOuterAlt(_localctx, 2) setState(857) try match(PCREParser.Tokens.CharacterClassEnd.rawValue) break default: throw ANTLRException.recognition(e: NoViableAltException(self)) } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Cc_literalContext: ParserRuleContext { open func shared_literal() -> Shared_literalContext? { return getRuleContext(Shared_literalContext.self, 0) } open func Dot() -> TerminalNode? { return getToken(PCREParser.Tokens.Dot.rawValue, 0) } open func CharacterClassStart() -> TerminalNode? { return getToken(PCREParser.Tokens.CharacterClassStart.rawValue, 0) } open func Caret() -> TerminalNode? { return getToken(PCREParser.Tokens.Caret.rawValue, 0) } open func QuestionMark() -> TerminalNode? { return getToken(PCREParser.Tokens.QuestionMark.rawValue, 0) } open func Plus() -> TerminalNode? { return getToken(PCREParser.Tokens.Plus.rawValue, 0) } open func Star() -> TerminalNode? { return getToken(PCREParser.Tokens.Star.rawValue, 0) } open func WordBoundary() -> TerminalNode? { return getToken(PCREParser.Tokens.WordBoundary.rawValue, 0) } open func EndOfSubjectOrLine() -> TerminalNode? { return getToken(PCREParser.Tokens.EndOfSubjectOrLine.rawValue, 0) } open func Pipe() -> TerminalNode? { return getToken(PCREParser.Tokens.Pipe.rawValue, 0) } open func OpenParen() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenParen.rawValue, 0) } open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_cc_literal } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterCc_literal(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitCc_literal(self) } } } @discardableResult open func cc_literal() throws -> Cc_literalContext { var _localctx: Cc_literalContext _localctx = Cc_literalContext(_ctx, getState()) try enterRule(_localctx, 50, PCREParser.RULE_cc_literal) defer { try! exitRule() } do { setState(872) try _errHandler.sync(self) switch (PCREParser.Tokens(rawValue: try _input.LA(1))!) { case .Quoted:fallthrough case .BlockQuoted:fallthrough case .BellChar:fallthrough case .EscapeChar:fallthrough case .FormFeed:fallthrough case .NewLine:fallthrough case .CarriageReturn:fallthrough case .Tab:fallthrough case .Backslash:fallthrough case .HexChar:fallthrough case .Hyphen:fallthrough case .OpenBrace:fallthrough case .CloseBrace:fallthrough case .Comma:fallthrough case .LessThan:fallthrough case .GreaterThan:fallthrough case .SingleQuote:fallthrough case .Underscore:fallthrough case .Colon:fallthrough case .Hash:fallthrough case .Equals:fallthrough case .Exclamation:fallthrough case .Ampersand:fallthrough case .ALC:fallthrough case .BLC:fallthrough case .CLC:fallthrough case .DLC:fallthrough case .ELC:fallthrough case .FLC:fallthrough case .GLC:fallthrough case .HLC:fallthrough case .ILC:fallthrough case .JLC:fallthrough case .KLC:fallthrough case .LLC:fallthrough case .MLC:fallthrough case .NLC:fallthrough case .OLC:fallthrough case .PLC:fallthrough case .QLC:fallthrough case .RLC:fallthrough case .SLC:fallthrough case .TLC:fallthrough case .ULC:fallthrough case .VLC:fallthrough case .WLC:fallthrough case .XLC:fallthrough case .YLC:fallthrough case .ZLC:fallthrough case .AUC:fallthrough case .BUC:fallthrough case .CUC:fallthrough case .DUC:fallthrough case .EUC:fallthrough case .FUC:fallthrough case .GUC:fallthrough case .HUC:fallthrough case .IUC:fallthrough case .JUC:fallthrough case .KUC:fallthrough case .LUC:fallthrough case .MUC:fallthrough case .NUC:fallthrough case .OUC:fallthrough case .PUC:fallthrough case .QUC:fallthrough case .RUC:fallthrough case .SUC:fallthrough case .TUC:fallthrough case .UUC:fallthrough case .VUC:fallthrough case .WUC:fallthrough case .XUC:fallthrough case .YUC:fallthrough case .ZUC:fallthrough case .D1:fallthrough case .D2:fallthrough case .D3:fallthrough case .D4:fallthrough case .D5:fallthrough case .D6:fallthrough case .D7:fallthrough case .D8:fallthrough case .D9:fallthrough case .D0:fallthrough case .OtherChar: try enterOuterAlt(_localctx, 1) setState(860) try shared_literal() break case .Dot: try enterOuterAlt(_localctx, 2) setState(861) try match(PCREParser.Tokens.Dot.rawValue) break case .CharacterClassStart: try enterOuterAlt(_localctx, 3) setState(862) try match(PCREParser.Tokens.CharacterClassStart.rawValue) break case .Caret: try enterOuterAlt(_localctx, 4) setState(863) try match(PCREParser.Tokens.Caret.rawValue) break case .QuestionMark: try enterOuterAlt(_localctx, 5) setState(864) try match(PCREParser.Tokens.QuestionMark.rawValue) break case .Plus: try enterOuterAlt(_localctx, 6) setState(865) try match(PCREParser.Tokens.Plus.rawValue) break case .Star: try enterOuterAlt(_localctx, 7) setState(866) try match(PCREParser.Tokens.Star.rawValue) break case .WordBoundary: try enterOuterAlt(_localctx, 8) setState(867) try match(PCREParser.Tokens.WordBoundary.rawValue) break case .EndOfSubjectOrLine: try enterOuterAlt(_localctx, 9) setState(868) try match(PCREParser.Tokens.EndOfSubjectOrLine.rawValue) break case .Pipe: try enterOuterAlt(_localctx, 10) setState(869) try match(PCREParser.Tokens.Pipe.rawValue) break case .OpenParen: try enterOuterAlt(_localctx, 11) setState(870) try match(PCREParser.Tokens.OpenParen.rawValue) break case .CloseParen: try enterOuterAlt(_localctx, 12) setState(871) try match(PCREParser.Tokens.CloseParen.rawValue) break default: throw ANTLRException.recognition(e: NoViableAltException(self)) } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Shared_literalContext: ParserRuleContext { open func octal_char() -> Octal_charContext? { return getRuleContext(Octal_charContext.self, 0) } open func letter() -> LetterContext? { return getRuleContext(LetterContext.self, 0) } open func digit() -> DigitContext? { return getRuleContext(DigitContext.self, 0) } open func BellChar() -> TerminalNode? { return getToken(PCREParser.Tokens.BellChar.rawValue, 0) } open func EscapeChar() -> TerminalNode? { return getToken(PCREParser.Tokens.EscapeChar.rawValue, 0) } open func FormFeed() -> TerminalNode? { return getToken(PCREParser.Tokens.FormFeed.rawValue, 0) } open func NewLine() -> TerminalNode? { return getToken(PCREParser.Tokens.NewLine.rawValue, 0) } open func CarriageReturn() -> TerminalNode? { return getToken(PCREParser.Tokens.CarriageReturn.rawValue, 0) } open func Tab() -> TerminalNode? { return getToken(PCREParser.Tokens.Tab.rawValue, 0) } open func HexChar() -> TerminalNode? { return getToken(PCREParser.Tokens.HexChar.rawValue, 0) } open func Quoted() -> TerminalNode? { return getToken(PCREParser.Tokens.Quoted.rawValue, 0) } open func BlockQuoted() -> TerminalNode? { return getToken(PCREParser.Tokens.BlockQuoted.rawValue, 0) } open func OpenBrace() -> TerminalNode? { return getToken(PCREParser.Tokens.OpenBrace.rawValue, 0) } open func CloseBrace() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseBrace.rawValue, 0) } open func Comma() -> TerminalNode? { return getToken(PCREParser.Tokens.Comma.rawValue, 0) } open func Hyphen() -> TerminalNode? { return getToken(PCREParser.Tokens.Hyphen.rawValue, 0) } open func LessThan() -> TerminalNode? { return getToken(PCREParser.Tokens.LessThan.rawValue, 0) } open func GreaterThan() -> TerminalNode? { return getToken(PCREParser.Tokens.GreaterThan.rawValue, 0) } open func SingleQuote() -> TerminalNode? { return getToken(PCREParser.Tokens.SingleQuote.rawValue, 0) } open func Underscore() -> TerminalNode? { return getToken(PCREParser.Tokens.Underscore.rawValue, 0) } open func Colon() -> TerminalNode? { return getToken(PCREParser.Tokens.Colon.rawValue, 0) } open func Hash() -> TerminalNode? { return getToken(PCREParser.Tokens.Hash.rawValue, 0) } open func Equals() -> TerminalNode? { return getToken(PCREParser.Tokens.Equals.rawValue, 0) } open func Exclamation() -> TerminalNode? { return getToken(PCREParser.Tokens.Exclamation.rawValue, 0) } open func Ampersand() -> TerminalNode? { return getToken(PCREParser.Tokens.Ampersand.rawValue, 0) } open func OtherChar() -> TerminalNode? { return getToken(PCREParser.Tokens.OtherChar.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_shared_literal } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterShared_literal(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitShared_literal(self) } } } @discardableResult open func shared_literal() throws -> Shared_literalContext { var _localctx: Shared_literalContext _localctx = Shared_literalContext(_ctx, getState()) try enterRule(_localctx, 52, PCREParser.RULE_shared_literal) defer { try! exitRule() } do { setState(900) try _errHandler.sync(self) switch (PCREParser.Tokens(rawValue: try _input.LA(1))!) { case .Backslash: try enterOuterAlt(_localctx, 1) setState(874) try octal_char() break case .ALC:fallthrough case .BLC:fallthrough case .CLC:fallthrough case .DLC:fallthrough case .ELC:fallthrough case .FLC:fallthrough case .GLC:fallthrough case .HLC:fallthrough case .ILC:fallthrough case .JLC:fallthrough case .KLC:fallthrough case .LLC:fallthrough case .MLC:fallthrough case .NLC:fallthrough case .OLC:fallthrough case .PLC:fallthrough case .QLC:fallthrough case .RLC:fallthrough case .SLC:fallthrough case .TLC:fallthrough case .ULC:fallthrough case .VLC:fallthrough case .WLC:fallthrough case .XLC:fallthrough case .YLC:fallthrough case .ZLC:fallthrough case .AUC:fallthrough case .BUC:fallthrough case .CUC:fallthrough case .DUC:fallthrough case .EUC:fallthrough case .FUC:fallthrough case .GUC:fallthrough case .HUC:fallthrough case .IUC:fallthrough case .JUC:fallthrough case .KUC:fallthrough case .LUC:fallthrough case .MUC:fallthrough case .NUC:fallthrough case .OUC:fallthrough case .PUC:fallthrough case .QUC:fallthrough case .RUC:fallthrough case .SUC:fallthrough case .TUC:fallthrough case .UUC:fallthrough case .VUC:fallthrough case .WUC:fallthrough case .XUC:fallthrough case .YUC:fallthrough case .ZUC: try enterOuterAlt(_localctx, 2) setState(875) try letter() break case .D1:fallthrough case .D2:fallthrough case .D3:fallthrough case .D4:fallthrough case .D5:fallthrough case .D6:fallthrough case .D7:fallthrough case .D8:fallthrough case .D9:fallthrough case .D0: try enterOuterAlt(_localctx, 3) setState(876) try digit() break case .BellChar: try enterOuterAlt(_localctx, 4) setState(877) try match(PCREParser.Tokens.BellChar.rawValue) break case .EscapeChar: try enterOuterAlt(_localctx, 5) setState(878) try match(PCREParser.Tokens.EscapeChar.rawValue) break case .FormFeed: try enterOuterAlt(_localctx, 6) setState(879) try match(PCREParser.Tokens.FormFeed.rawValue) break case .NewLine: try enterOuterAlt(_localctx, 7) setState(880) try match(PCREParser.Tokens.NewLine.rawValue) break case .CarriageReturn: try enterOuterAlt(_localctx, 8) setState(881) try match(PCREParser.Tokens.CarriageReturn.rawValue) break case .Tab: try enterOuterAlt(_localctx, 9) setState(882) try match(PCREParser.Tokens.Tab.rawValue) break case .HexChar: try enterOuterAlt(_localctx, 10) setState(883) try match(PCREParser.Tokens.HexChar.rawValue) break case .Quoted: try enterOuterAlt(_localctx, 11) setState(884) try match(PCREParser.Tokens.Quoted.rawValue) break case .BlockQuoted: try enterOuterAlt(_localctx, 12) setState(885) try match(PCREParser.Tokens.BlockQuoted.rawValue) break case .OpenBrace: try enterOuterAlt(_localctx, 13) setState(886) try match(PCREParser.Tokens.OpenBrace.rawValue) break case .CloseBrace: try enterOuterAlt(_localctx, 14) setState(887) try match(PCREParser.Tokens.CloseBrace.rawValue) break case .Comma: try enterOuterAlt(_localctx, 15) setState(888) try match(PCREParser.Tokens.Comma.rawValue) break case .Hyphen: try enterOuterAlt(_localctx, 16) setState(889) try match(PCREParser.Tokens.Hyphen.rawValue) break case .LessThan: try enterOuterAlt(_localctx, 17) setState(890) try match(PCREParser.Tokens.LessThan.rawValue) break case .GreaterThan: try enterOuterAlt(_localctx, 18) setState(891) try match(PCREParser.Tokens.GreaterThan.rawValue) break case .SingleQuote: try enterOuterAlt(_localctx, 19) setState(892) try match(PCREParser.Tokens.SingleQuote.rawValue) break case .Underscore: try enterOuterAlt(_localctx, 20) setState(893) try match(PCREParser.Tokens.Underscore.rawValue) break case .Colon: try enterOuterAlt(_localctx, 21) setState(894) try match(PCREParser.Tokens.Colon.rawValue) break case .Hash: try enterOuterAlt(_localctx, 22) setState(895) try match(PCREParser.Tokens.Hash.rawValue) break case .Equals: try enterOuterAlt(_localctx, 23) setState(896) try match(PCREParser.Tokens.Equals.rawValue) break case .Exclamation: try enterOuterAlt(_localctx, 24) setState(897) try match(PCREParser.Tokens.Exclamation.rawValue) break case .Ampersand: try enterOuterAlt(_localctx, 25) setState(898) try match(PCREParser.Tokens.Ampersand.rawValue) break case .OtherChar: try enterOuterAlt(_localctx, 26) setState(899) try match(PCREParser.Tokens.OtherChar.rawValue) break default: throw ANTLRException.recognition(e: NoViableAltException(self)) } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class NumberContext: ParserRuleContext { open func digits() -> DigitsContext? { return getRuleContext(DigitsContext.self, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_number } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterNumber(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitNumber(self) } } } @discardableResult open func number() throws -> NumberContext { var _localctx: NumberContext _localctx = NumberContext(_ctx, getState()) try enterRule(_localctx, 54, PCREParser.RULE_number) defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(902) try digits() } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Octal_charContext: ParserRuleContext { open func Backslash() -> TerminalNode? { return getToken(PCREParser.Tokens.Backslash.rawValue, 0) } open func octal_digit() -> [Octal_digitContext] { return getRuleContexts(Octal_digitContext.self) } open func octal_digit(_ i: Int) -> Octal_digitContext? { return getRuleContext(Octal_digitContext.self, i) } open func D0() -> TerminalNode? { return getToken(PCREParser.Tokens.D0.rawValue, 0) } open func D1() -> TerminalNode? { return getToken(PCREParser.Tokens.D1.rawValue, 0) } open func D2() -> TerminalNode? { return getToken(PCREParser.Tokens.D2.rawValue, 0) } open func D3() -> TerminalNode? { return getToken(PCREParser.Tokens.D3.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_octal_char } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterOctal_char(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitOctal_char(self) } } } @discardableResult open func octal_char() throws -> Octal_charContext { var _localctx: Octal_charContext _localctx = Octal_charContext(_ctx, getState()) try enterRule(_localctx, 56, PCREParser.RULE_octal_char) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(913) try _errHandler.sync(self) switch(try getInterpreter().adaptivePredict(_input,43, _ctx)) { case 1: setState(904) try match(PCREParser.Tokens.Backslash.rawValue) setState(905) _la = try _input.LA(1) if (!((Int64((_la - 115)) & ~0x3f) == 0 && ((Int64(1) << (_la - 115)) & 519) != 0)) { try _errHandler.recoverInline(self) } else { _errHandler.reportMatch(self) try consume() } setState(906) try octal_digit() setState(907) try octal_digit() break case 2: setState(909) try match(PCREParser.Tokens.Backslash.rawValue) setState(910) try octal_digit() setState(911) try octal_digit() break default: break } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Octal_digitContext: ParserRuleContext { open func D0() -> TerminalNode? { return getToken(PCREParser.Tokens.D0.rawValue, 0) } open func D1() -> TerminalNode? { return getToken(PCREParser.Tokens.D1.rawValue, 0) } open func D2() -> TerminalNode? { return getToken(PCREParser.Tokens.D2.rawValue, 0) } open func D3() -> TerminalNode? { return getToken(PCREParser.Tokens.D3.rawValue, 0) } open func D4() -> TerminalNode? { return getToken(PCREParser.Tokens.D4.rawValue, 0) } open func D5() -> TerminalNode? { return getToken(PCREParser.Tokens.D5.rawValue, 0) } open func D6() -> TerminalNode? { return getToken(PCREParser.Tokens.D6.rawValue, 0) } open func D7() -> TerminalNode? { return getToken(PCREParser.Tokens.D7.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_octal_digit } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterOctal_digit(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitOctal_digit(self) } } } @discardableResult open func octal_digit() throws -> Octal_digitContext { var _localctx: Octal_digitContext _localctx = Octal_digitContext(_ctx, getState()) try enterRule(_localctx, 58, PCREParser.RULE_octal_digit) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(915) _la = try _input.LA(1) if (!((Int64((_la - 115)) & ~0x3f) == 0 && ((Int64(1) << (_la - 115)) & 639) != 0)) { try _errHandler.recoverInline(self) } else { _errHandler.reportMatch(self) try consume() } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class DigitsContext: ParserRuleContext { open func digit() -> [DigitContext] { return getRuleContexts(DigitContext.self) } open func digit(_ i: Int) -> DigitContext? { return getRuleContext(DigitContext.self, i) } override open func getRuleIndex() -> Int { return PCREParser.RULE_digits } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterDigits(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitDigits(self) } } } @discardableResult open func digits() throws -> DigitsContext { var _localctx: DigitsContext _localctx = DigitsContext(_ctx, getState()) try enterRule(_localctx, 60, PCREParser.RULE_digits) defer { try! exitRule() } do { var _alt:Int try enterOuterAlt(_localctx, 1) setState(918); try _errHandler.sync(self) _alt = 1; repeat { switch (_alt) { case 1: setState(917) try digit() break default: throw ANTLRException.recognition(e: NoViableAltException(self)) } setState(920); try _errHandler.sync(self) _alt = try getInterpreter().adaptivePredict(_input,44,_ctx) } while (_alt != 2 && _alt != ATN.INVALID_ALT_NUMBER) } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class DigitContext: ParserRuleContext { open func D0() -> TerminalNode? { return getToken(PCREParser.Tokens.D0.rawValue, 0) } open func D1() -> TerminalNode? { return getToken(PCREParser.Tokens.D1.rawValue, 0) } open func D2() -> TerminalNode? { return getToken(PCREParser.Tokens.D2.rawValue, 0) } open func D3() -> TerminalNode? { return getToken(PCREParser.Tokens.D3.rawValue, 0) } open func D4() -> TerminalNode? { return getToken(PCREParser.Tokens.D4.rawValue, 0) } open func D5() -> TerminalNode? { return getToken(PCREParser.Tokens.D5.rawValue, 0) } open func D6() -> TerminalNode? { return getToken(PCREParser.Tokens.D6.rawValue, 0) } open func D7() -> TerminalNode? { return getToken(PCREParser.Tokens.D7.rawValue, 0) } open func D8() -> TerminalNode? { return getToken(PCREParser.Tokens.D8.rawValue, 0) } open func D9() -> TerminalNode? { return getToken(PCREParser.Tokens.D9.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_digit } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterDigit(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitDigit(self) } } } @discardableResult open func digit() throws -> DigitContext { var _localctx: DigitContext _localctx = DigitContext(_ctx, getState()) try enterRule(_localctx, 62, PCREParser.RULE_digit) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(922) _la = try _input.LA(1) if (!((Int64((_la - 115)) & ~0x3f) == 0 && ((Int64(1) << (_la - 115)) & 1023) != 0)) { try _errHandler.recoverInline(self) } else { _errHandler.reportMatch(self) try consume() } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class NameContext: ParserRuleContext { open func alpha_nums() -> Alpha_numsContext? { return getRuleContext(Alpha_numsContext.self, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_name } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterName(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitName(self) } } } @discardableResult open func name() throws -> NameContext { var _localctx: NameContext _localctx = NameContext(_ctx, getState()) try enterRule(_localctx, 64, PCREParser.RULE_name) defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(924) try alpha_nums() } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Alpha_numsContext: ParserRuleContext { open func letter() -> [LetterContext] { return getRuleContexts(LetterContext.self) } open func letter(_ i: Int) -> LetterContext? { return getRuleContext(LetterContext.self, i) } open func Underscore() -> [TerminalNode] { return getTokens(PCREParser.Tokens.Underscore.rawValue) } open func Underscore(_ i:Int) -> TerminalNode? { return getToken(PCREParser.Tokens.Underscore.rawValue, i) } open func digit() -> [DigitContext] { return getRuleContexts(DigitContext.self) } open func digit(_ i: Int) -> DigitContext? { return getRuleContext(DigitContext.self, i) } override open func getRuleIndex() -> Int { return PCREParser.RULE_alpha_nums } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterAlpha_nums(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitAlpha_nums(self) } } } @discardableResult open func alpha_nums() throws -> Alpha_numsContext { var _localctx: Alpha_numsContext _localctx = Alpha_numsContext(_ctx, getState()) try enterRule(_localctx, 66, PCREParser.RULE_alpha_nums) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(928) try _errHandler.sync(self) switch (PCREParser.Tokens(rawValue: try _input.LA(1))!) { case .ALC:fallthrough case .BLC:fallthrough case .CLC:fallthrough case .DLC:fallthrough case .ELC:fallthrough case .FLC:fallthrough case .GLC:fallthrough case .HLC:fallthrough case .ILC:fallthrough case .JLC:fallthrough case .KLC:fallthrough case .LLC:fallthrough case .MLC:fallthrough case .NLC:fallthrough case .OLC:fallthrough case .PLC:fallthrough case .QLC:fallthrough case .RLC:fallthrough case .SLC:fallthrough case .TLC:fallthrough case .ULC:fallthrough case .VLC:fallthrough case .WLC:fallthrough case .XLC:fallthrough case .YLC:fallthrough case .ZLC:fallthrough case .AUC:fallthrough case .BUC:fallthrough case .CUC:fallthrough case .DUC:fallthrough case .EUC:fallthrough case .FUC:fallthrough case .GUC:fallthrough case .HUC:fallthrough case .IUC:fallthrough case .JUC:fallthrough case .KUC:fallthrough case .LUC:fallthrough case .MUC:fallthrough case .NUC:fallthrough case .OUC:fallthrough case .PUC:fallthrough case .QUC:fallthrough case .RUC:fallthrough case .SUC:fallthrough case .TUC:fallthrough case .UUC:fallthrough case .VUC:fallthrough case .WUC:fallthrough case .XUC:fallthrough case .YUC:fallthrough case .ZUC: setState(926) try letter() break case .Underscore: setState(927) try match(PCREParser.Tokens.Underscore.rawValue) break default: throw ANTLRException.recognition(e: NoViableAltException(self)) } setState(935) try _errHandler.sync(self) _la = try _input.LA(1) while (_la == PCREParser.Tokens.Underscore.rawValue || _la == PCREParser.Tokens.ALC.rawValue || (Int64((_la - 64)) & ~0x3f) == 0 && ((Int64(1) << (_la - 64)) & 2305843009213693951) != 0) { setState(933) try _errHandler.sync(self) switch (PCREParser.Tokens(rawValue: try _input.LA(1))!) { case .ALC:fallthrough case .BLC:fallthrough case .CLC:fallthrough case .DLC:fallthrough case .ELC:fallthrough case .FLC:fallthrough case .GLC:fallthrough case .HLC:fallthrough case .ILC:fallthrough case .JLC:fallthrough case .KLC:fallthrough case .LLC:fallthrough case .MLC:fallthrough case .NLC:fallthrough case .OLC:fallthrough case .PLC:fallthrough case .QLC:fallthrough case .RLC:fallthrough case .SLC:fallthrough case .TLC:fallthrough case .ULC:fallthrough case .VLC:fallthrough case .WLC:fallthrough case .XLC:fallthrough case .YLC:fallthrough case .ZLC:fallthrough case .AUC:fallthrough case .BUC:fallthrough case .CUC:fallthrough case .DUC:fallthrough case .EUC:fallthrough case .FUC:fallthrough case .GUC:fallthrough case .HUC:fallthrough case .IUC:fallthrough case .JUC:fallthrough case .KUC:fallthrough case .LUC:fallthrough case .MUC:fallthrough case .NUC:fallthrough case .OUC:fallthrough case .PUC:fallthrough case .QUC:fallthrough case .RUC:fallthrough case .SUC:fallthrough case .TUC:fallthrough case .UUC:fallthrough case .VUC:fallthrough case .WUC:fallthrough case .XUC:fallthrough case .YUC:fallthrough case .ZUC: setState(930) try letter() break case .Underscore: setState(931) try match(PCREParser.Tokens.Underscore.rawValue) break case .D1:fallthrough case .D2:fallthrough case .D3:fallthrough case .D4:fallthrough case .D5:fallthrough case .D6:fallthrough case .D7:fallthrough case .D8:fallthrough case .D9:fallthrough case .D0: setState(932) try digit() break default: throw ANTLRException.recognition(e: NoViableAltException(self)) } setState(937) try _errHandler.sync(self) _la = try _input.LA(1) } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Non_close_parensContext: ParserRuleContext { open func non_close_paren() -> [Non_close_parenContext] { return getRuleContexts(Non_close_parenContext.self) } open func non_close_paren(_ i: Int) -> Non_close_parenContext? { return getRuleContext(Non_close_parenContext.self, i) } override open func getRuleIndex() -> Int { return PCREParser.RULE_non_close_parens } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterNon_close_parens(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitNon_close_parens(self) } } } @discardableResult open func non_close_parens() throws -> Non_close_parensContext { var _localctx: Non_close_parensContext _localctx = Non_close_parensContext(_ctx, getState()) try enterRule(_localctx, 68, PCREParser.RULE_non_close_parens) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(939) try _errHandler.sync(self) _la = try _input.LA(1) repeat { setState(938) try non_close_paren() setState(941); try _errHandler.sync(self) _la = try _input.LA(1) } while ((Int64(_la) & ~0x3f) == 0 && ((Int64(1) << _la) & -9007199254740994) != 0 || (Int64((_la - 64)) & ~0x3f) == 0 && ((Int64(1) << (_la - 64)) & 4611686018427387903) != 0) } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class Non_close_parenContext: ParserRuleContext { open func CloseParen() -> TerminalNode? { return getToken(PCREParser.Tokens.CloseParen.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_non_close_paren } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterNon_close_paren(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitNon_close_paren(self) } } } @discardableResult open func non_close_paren() throws -> Non_close_parenContext { var _localctx: Non_close_parenContext _localctx = Non_close_parenContext(_ctx, getState()) try enterRule(_localctx, 70, PCREParser.RULE_non_close_paren) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(943) _la = try _input.LA(1) if (_la <= 0 || (_la == PCREParser.Tokens.CloseParen.rawValue)) { try _errHandler.recoverInline(self) } else { _errHandler.reportMatch(self) try consume() } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } public class LetterContext: ParserRuleContext { open func ALC() -> TerminalNode? { return getToken(PCREParser.Tokens.ALC.rawValue, 0) } open func BLC() -> TerminalNode? { return getToken(PCREParser.Tokens.BLC.rawValue, 0) } open func CLC() -> TerminalNode? { return getToken(PCREParser.Tokens.CLC.rawValue, 0) } open func DLC() -> TerminalNode? { return getToken(PCREParser.Tokens.DLC.rawValue, 0) } open func ELC() -> TerminalNode? { return getToken(PCREParser.Tokens.ELC.rawValue, 0) } open func FLC() -> TerminalNode? { return getToken(PCREParser.Tokens.FLC.rawValue, 0) } open func GLC() -> TerminalNode? { return getToken(PCREParser.Tokens.GLC.rawValue, 0) } open func HLC() -> TerminalNode? { return getToken(PCREParser.Tokens.HLC.rawValue, 0) } open func ILC() -> TerminalNode? { return getToken(PCREParser.Tokens.ILC.rawValue, 0) } open func JLC() -> TerminalNode? { return getToken(PCREParser.Tokens.JLC.rawValue, 0) } open func KLC() -> TerminalNode? { return getToken(PCREParser.Tokens.KLC.rawValue, 0) } open func LLC() -> TerminalNode? { return getToken(PCREParser.Tokens.LLC.rawValue, 0) } open func MLC() -> TerminalNode? { return getToken(PCREParser.Tokens.MLC.rawValue, 0) } open func NLC() -> TerminalNode? { return getToken(PCREParser.Tokens.NLC.rawValue, 0) } open func OLC() -> TerminalNode? { return getToken(PCREParser.Tokens.OLC.rawValue, 0) } open func PLC() -> TerminalNode? { return getToken(PCREParser.Tokens.PLC.rawValue, 0) } open func QLC() -> TerminalNode? { return getToken(PCREParser.Tokens.QLC.rawValue, 0) } open func RLC() -> TerminalNode? { return getToken(PCREParser.Tokens.RLC.rawValue, 0) } open func SLC() -> TerminalNode? { return getToken(PCREParser.Tokens.SLC.rawValue, 0) } open func TLC() -> TerminalNode? { return getToken(PCREParser.Tokens.TLC.rawValue, 0) } open func ULC() -> TerminalNode? { return getToken(PCREParser.Tokens.ULC.rawValue, 0) } open func VLC() -> TerminalNode? { return getToken(PCREParser.Tokens.VLC.rawValue, 0) } open func WLC() -> TerminalNode? { return getToken(PCREParser.Tokens.WLC.rawValue, 0) } open func XLC() -> TerminalNode? { return getToken(PCREParser.Tokens.XLC.rawValue, 0) } open func YLC() -> TerminalNode? { return getToken(PCREParser.Tokens.YLC.rawValue, 0) } open func ZLC() -> TerminalNode? { return getToken(PCREParser.Tokens.ZLC.rawValue, 0) } open func AUC() -> TerminalNode? { return getToken(PCREParser.Tokens.AUC.rawValue, 0) } open func BUC() -> TerminalNode? { return getToken(PCREParser.Tokens.BUC.rawValue, 0) } open func CUC() -> TerminalNode? { return getToken(PCREParser.Tokens.CUC.rawValue, 0) } open func DUC() -> TerminalNode? { return getToken(PCREParser.Tokens.DUC.rawValue, 0) } open func EUC() -> TerminalNode? { return getToken(PCREParser.Tokens.EUC.rawValue, 0) } open func FUC() -> TerminalNode? { return getToken(PCREParser.Tokens.FUC.rawValue, 0) } open func GUC() -> TerminalNode? { return getToken(PCREParser.Tokens.GUC.rawValue, 0) } open func HUC() -> TerminalNode? { return getToken(PCREParser.Tokens.HUC.rawValue, 0) } open func IUC() -> TerminalNode? { return getToken(PCREParser.Tokens.IUC.rawValue, 0) } open func JUC() -> TerminalNode? { return getToken(PCREParser.Tokens.JUC.rawValue, 0) } open func KUC() -> TerminalNode? { return getToken(PCREParser.Tokens.KUC.rawValue, 0) } open func LUC() -> TerminalNode? { return getToken(PCREParser.Tokens.LUC.rawValue, 0) } open func MUC() -> TerminalNode? { return getToken(PCREParser.Tokens.MUC.rawValue, 0) } open func NUC() -> TerminalNode? { return getToken(PCREParser.Tokens.NUC.rawValue, 0) } open func OUC() -> TerminalNode? { return getToken(PCREParser.Tokens.OUC.rawValue, 0) } open func PUC() -> TerminalNode? { return getToken(PCREParser.Tokens.PUC.rawValue, 0) } open func QUC() -> TerminalNode? { return getToken(PCREParser.Tokens.QUC.rawValue, 0) } open func RUC() -> TerminalNode? { return getToken(PCREParser.Tokens.RUC.rawValue, 0) } open func SUC() -> TerminalNode? { return getToken(PCREParser.Tokens.SUC.rawValue, 0) } open func TUC() -> TerminalNode? { return getToken(PCREParser.Tokens.TUC.rawValue, 0) } open func UUC() -> TerminalNode? { return getToken(PCREParser.Tokens.UUC.rawValue, 0) } open func VUC() -> TerminalNode? { return getToken(PCREParser.Tokens.VUC.rawValue, 0) } open func WUC() -> TerminalNode? { return getToken(PCREParser.Tokens.WUC.rawValue, 0) } open func XUC() -> TerminalNode? { return getToken(PCREParser.Tokens.XUC.rawValue, 0) } open func YUC() -> TerminalNode? { return getToken(PCREParser.Tokens.YUC.rawValue, 0) } open func ZUC() -> TerminalNode? { return getToken(PCREParser.Tokens.ZUC.rawValue, 0) } override open func getRuleIndex() -> Int { return PCREParser.RULE_letter } override open func enterRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.enterLetter(self) } } override open func exitRule(_ listener: ParseTreeListener) { if let listener = listener as? PCREListener { listener.exitLetter(self) } } } @discardableResult open func letter() throws -> LetterContext { var _localctx: LetterContext _localctx = LetterContext(_ctx, getState()) try enterRule(_localctx, 72, PCREParser.RULE_letter) var _la: Int = 0 defer { try! exitRule() } do { try enterOuterAlt(_localctx, 1) setState(945) _la = try _input.LA(1) if (!((Int64((_la - 63)) & ~0x3f) == 0 && ((Int64(1) << (_la - 63)) & 4503599627370495) != 0)) { try _errHandler.recoverInline(self) } else { _errHandler.reportMatch(self) try consume() } } catch ANTLRException.recognition(let re) { _localctx.exception = re _errHandler.reportError(self, re) try _errHandler.recover(self, re) } return _localctx } static let _serializedATN:[Int] = [ 4,1,125,948,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2, 7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14, 2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21, 2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28, 2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35, 2,36,7,36,1,0,1,0,1,0,1,1,1,1,1,1,5,1,81,8,1,10,1,12,1,84,9,1,1,2,5,2, 87,8,2,10,2,12,2,90,9,2,1,3,1,3,3,3,94,8,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4, 1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,3, 4,120,8,4,1,5,1,5,1,5,3,5,125,8,5,1,6,1,6,1,6,1,6,1,6,4,6,132,8,6,11,6, 12,6,133,1,6,1,6,1,6,1,6,1,6,1,6,5,6,142,8,6,10,6,12,6,145,9,6,1,6,1,6, 1,6,1,6,4,6,151,8,6,11,6,12,6,152,1,6,1,6,1,6,1,6,1,6,1,6,4,6,161,8,6, 11,6,12,6,162,1,6,1,6,1,6,1,6,1,6,5,6,170,8,6,10,6,12,6,173,9,6,1,6,1, 6,1,6,4,6,178,8,6,11,6,12,6,179,1,6,1,6,3,6,184,8,6,1,7,1,7,1,7,1,7,1, 7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7, 1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1, 7,1,7,3,7,227,8,7,1,8,1,8,1,8,3,8,232,8,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9, 1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1, 9,1,9,1,9,1,9,1,9,3,9,263,8,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10, 1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10, 1,10,1,10,1,10,3,10,290,8,10,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1, 12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1, 12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1, 12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1, 12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,3,12,352,8,12,1,13,4,13, 355,8,13,11,13,12,13,356,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15, 1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15, 1,15,1,15,1,15,1,15,1,15,3,15,387,8,15,1,16,1,16,1,16,1,16,1,16,1,16,1, 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, 16,1,16,3,16,467,8,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,477, 8,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,490,8, 17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,503,8,17, 1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,517,8, 17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,531, 8,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,544,8, 17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,556,8,17,1,17, 1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,570,8,17,1, 17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1, 17,3,17,587,8,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17, 1,17,1,17,1,17,1,17,3,17,604,8,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1, 17,1,17,1,17,3,17,616,8,17,1,17,1,17,3,17,620,8,17,1,18,1,18,1,18,1,18, 1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,3,18,637,8,18,1, 18,1,18,1,18,1,18,1,18,1,18,1,18,3,18,646,8,18,1,18,1,18,1,18,1,18,1,18, 1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18, 1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18, 1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18, 1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18, 1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,3,18, 722,8,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1, 19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1, 19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1, 19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1, 19,1,19,1,19,1,19,1,19,1,19,1,19,3,19,785,8,19,1,20,1,20,1,20,1,20,1,20, 1,20,1,20,1,20,1,20,1,20,3,20,797,8,20,1,21,1,21,1,21,1,21,1,21,1,21,1, 21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1, 21,1,21,1,21,1,21,1,21,1,21,3,21,825,8,21,1,22,1,22,1,22,1,22,1,22,1,22, 1,22,3,22,834,8,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1, 23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,3,23,855,8,23,1,24,1,24,3,24, 859,8,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,3, 25,873,8,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, 1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, 3,26,901,8,26,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,3, 28,914,8,28,1,29,1,29,1,30,4,30,919,8,30,11,30,12,30,920,1,31,1,31,1,32, 1,32,1,33,1,33,3,33,929,8,33,1,33,1,33,1,33,5,33,934,8,33,10,33,12,33, 937,9,33,1,34,4,34,940,8,34,11,34,12,34,941,1,35,1,35,1,36,1,36,1,36,0, 0,37,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46, 48,50,52,54,56,58,60,62,64,66,68,70,72,0,6,6,0,71,71,75,75,81,81,86,86, 98,98,109,109,2,0,115,117,124,124,2,0,115,121,124,124,1,0,115,124,1,0, 53,53,1,0,63,114,1097,0,74,1,0,0,0,2,77,1,0,0,0,4,88,1,0,0,0,6,91,1,0, 0,0,8,119,1,0,0,0,10,124,1,0,0,0,12,183,1,0,0,0,14,226,1,0,0,0,16,231, 1,0,0,0,18,262,1,0,0,0,20,289,1,0,0,0,22,291,1,0,0,0,24,351,1,0,0,0,26, 354,1,0,0,0,28,358,1,0,0,0,30,386,1,0,0,0,32,466,1,0,0,0,34,619,1,0,0, 0,36,721,1,0,0,0,38,784,1,0,0,0,40,796,1,0,0,0,42,824,1,0,0,0,44,833,1, 0,0,0,46,854,1,0,0,0,48,858,1,0,0,0,50,872,1,0,0,0,52,900,1,0,0,0,54,902, 1,0,0,0,56,913,1,0,0,0,58,915,1,0,0,0,60,918,1,0,0,0,62,922,1,0,0,0,64, 924,1,0,0,0,66,928,1,0,0,0,68,939,1,0,0,0,70,943,1,0,0,0,72,945,1,0,0, 0,74,75,3,2,1,0,75,76,5,0,0,1,76,1,1,0,0,0,77,82,3,4,2,0,78,79,5,51,0, 0,79,81,3,4,2,0,80,78,1,0,0,0,81,84,1,0,0,0,82,80,1,0,0,0,82,83,1,0,0, 0,83,3,1,0,0,0,84,82,1,0,0,0,85,87,3,6,3,0,86,85,1,0,0,0,87,90,1,0,0,0, 88,86,1,0,0,0,88,89,1,0,0,0,89,5,1,0,0,0,90,88,1,0,0,0,91,93,3,42,21,0, 92,94,3,8,4,0,93,92,1,0,0,0,93,94,1,0,0,0,94,7,1,0,0,0,95,96,5,35,0,0, 96,120,3,10,5,0,97,98,5,36,0,0,98,120,3,10,5,0,99,100,5,37,0,0,100,120, 3,10,5,0,101,102,5,38,0,0,102,103,3,54,27,0,103,104,5,39,0,0,104,105,3, 10,5,0,105,120,1,0,0,0,106,107,5,38,0,0,107,108,3,54,27,0,108,109,5,40, 0,0,109,110,5,39,0,0,110,111,3,10,5,0,111,120,1,0,0,0,112,113,5,38,0,0, 113,114,3,54,27,0,114,115,5,40,0,0,115,116,3,54,27,0,116,117,5,39,0,0, 117,118,3,10,5,0,118,120,1,0,0,0,119,95,1,0,0,0,119,97,1,0,0,0,119,99, 1,0,0,0,119,101,1,0,0,0,119,106,1,0,0,0,119,112,1,0,0,0,120,9,1,0,0,0, 121,125,5,36,0,0,122,125,5,35,0,0,123,125,1,0,0,0,124,121,1,0,0,0,124, 122,1,0,0,0,124,123,1,0,0,0,125,11,1,0,0,0,126,127,5,29,0,0,127,128,5, 31,0,0,128,129,5,30,0,0,129,131,5,32,0,0,130,132,3,44,22,0,131,130,1,0, 0,0,132,133,1,0,0,0,133,131,1,0,0,0,133,134,1,0,0,0,134,135,1,0,0,0,135, 136,5,30,0,0,136,184,1,0,0,0,137,138,5,29,0,0,138,139,5,31,0,0,139,143, 5,30,0,0,140,142,3,44,22,0,141,140,1,0,0,0,142,145,1,0,0,0,143,141,1,0, 0,0,143,144,1,0,0,0,144,146,1,0,0,0,145,143,1,0,0,0,146,184,5,30,0,0,147, 148,5,29,0,0,148,150,5,31,0,0,149,151,3,44,22,0,150,149,1,0,0,0,151,152, 1,0,0,0,152,150,1,0,0,0,152,153,1,0,0,0,153,154,1,0,0,0,154,155,5,30,0, 0,155,184,1,0,0,0,156,157,5,29,0,0,157,158,5,30,0,0,158,160,5,32,0,0,159, 161,3,44,22,0,160,159,1,0,0,0,161,162,1,0,0,0,162,160,1,0,0,0,162,163, 1,0,0,0,163,164,1,0,0,0,164,165,5,30,0,0,165,184,1,0,0,0,166,167,5,29, 0,0,167,171,5,30,0,0,168,170,3,44,22,0,169,168,1,0,0,0,170,173,1,0,0,0, 171,169,1,0,0,0,171,172,1,0,0,0,172,174,1,0,0,0,173,171,1,0,0,0,174,184, 5,30,0,0,175,177,5,29,0,0,176,178,3,44,22,0,177,176,1,0,0,0,178,179,1, 0,0,0,179,177,1,0,0,0,179,180,1,0,0,0,180,181,1,0,0,0,181,182,5,30,0,0, 182,184,1,0,0,0,183,126,1,0,0,0,183,137,1,0,0,0,183,147,1,0,0,0,183,156, 1,0,0,0,183,166,1,0,0,0,183,175,1,0,0,0,184,13,1,0,0,0,185,227,3,16,8, 0,186,187,5,49,0,0,187,227,3,54,27,0,188,189,5,49,0,0,189,190,5,38,0,0, 190,191,3,54,27,0,191,192,5,39,0,0,192,227,1,0,0,0,193,194,5,49,0,0,194, 195,5,38,0,0,195,196,5,32,0,0,196,197,3,54,27,0,197,198,5,39,0,0,198,227, 1,0,0,0,199,200,5,50,0,0,200,201,5,54,0,0,201,202,3,64,32,0,202,203,5, 55,0,0,203,227,1,0,0,0,204,205,5,50,0,0,205,206,5,56,0,0,206,207,3,64, 32,0,207,208,5,56,0,0,208,227,1,0,0,0,209,210,5,49,0,0,210,211,5,38,0, 0,211,212,3,64,32,0,212,213,5,39,0,0,213,227,1,0,0,0,214,215,5,50,0,0, 215,216,5,38,0,0,216,217,3,64,32,0,217,218,5,39,0,0,218,227,1,0,0,0,219, 220,5,52,0,0,220,221,5,35,0,0,221,222,5,104,0,0,222,223,5,60,0,0,223,224, 3,64,32,0,224,225,5,53,0,0,225,227,1,0,0,0,226,185,1,0,0,0,226,186,1,0, 0,0,226,188,1,0,0,0,226,193,1,0,0,0,226,199,1,0,0,0,226,204,1,0,0,0,226, 209,1,0,0,0,226,214,1,0,0,0,226,219,1,0,0,0,227,15,1,0,0,0,228,232,3,56, 28,0,229,230,5,10,0,0,230,232,3,62,31,0,231,228,1,0,0,0,231,229,1,0,0, 0,232,17,1,0,0,0,233,234,5,52,0,0,234,235,5,35,0,0,235,236,5,54,0,0,236, 237,3,64,32,0,237,238,5,55,0,0,238,239,3,2,1,0,239,240,5,53,0,0,240,263, 1,0,0,0,241,242,5,52,0,0,242,243,5,35,0,0,243,244,5,56,0,0,244,245,3,64, 32,0,245,246,5,56,0,0,246,247,3,2,1,0,247,248,5,53,0,0,248,263,1,0,0,0, 249,250,5,52,0,0,250,251,5,35,0,0,251,252,5,104,0,0,252,253,5,54,0,0,253, 254,3,64,32,0,254,255,5,55,0,0,255,256,3,2,1,0,256,257,5,53,0,0,257,263, 1,0,0,0,258,259,5,52,0,0,259,260,3,2,1,0,260,261,5,53,0,0,261,263,1,0, 0,0,262,233,1,0,0,0,262,241,1,0,0,0,262,249,1,0,0,0,262,258,1,0,0,0,263, 19,1,0,0,0,264,265,5,52,0,0,265,266,5,35,0,0,266,267,5,58,0,0,267,268, 3,2,1,0,268,269,5,53,0,0,269,290,1,0,0,0,270,271,5,52,0,0,271,272,5,35, 0,0,272,273,5,51,0,0,273,274,3,2,1,0,274,275,5,53,0,0,275,290,1,0,0,0, 276,277,5,52,0,0,277,278,5,35,0,0,278,279,5,55,0,0,279,280,3,2,1,0,280, 281,5,53,0,0,281,290,1,0,0,0,282,283,5,52,0,0,283,284,5,35,0,0,284,285, 3,26,13,0,285,286,5,58,0,0,286,287,3,2,1,0,287,288,5,53,0,0,288,290,1, 0,0,0,289,264,1,0,0,0,289,270,1,0,0,0,289,276,1,0,0,0,289,282,1,0,0,0, 290,21,1,0,0,0,291,292,5,52,0,0,292,293,5,35,0,0,293,294,5,59,0,0,294, 295,3,68,34,0,295,296,5,53,0,0,296,23,1,0,0,0,297,298,5,52,0,0,298,299, 5,35,0,0,299,300,3,26,13,0,300,301,5,32,0,0,301,302,3,26,13,0,302,303, 5,53,0,0,303,352,1,0,0,0,304,305,5,52,0,0,305,306,5,35,0,0,306,307,3,26, 13,0,307,308,5,53,0,0,308,352,1,0,0,0,309,310,5,52,0,0,310,311,5,35,0, 0,311,312,5,32,0,0,312,313,3,26,13,0,313,314,5,53,0,0,314,352,1,0,0,0, 315,316,5,52,0,0,316,317,5,37,0,0,317,318,5,102,0,0,318,319,5,103,0,0, 319,320,5,57,0,0,320,321,5,107,0,0,321,322,5,108,0,0,322,323,5,89,0,0, 323,324,5,106,0,0,324,325,5,108,0,0,325,326,5,57,0,0,326,327,5,103,0,0, 327,328,5,104,0,0,328,329,5,108,0,0,329,352,5,53,0,0,330,331,5,52,0,0, 331,332,5,37,0,0,332,333,5,109,0,0,333,334,5,108,0,0,334,335,5,94,0,0, 335,336,5,122,0,0,336,352,5,53,0,0,337,338,5,52,0,0,338,339,5,37,0,0,339, 340,5,109,0,0,340,341,5,108,0,0,341,342,5,94,0,0,342,343,5,115,0,0,343, 344,5,120,0,0,344,352,5,53,0,0,345,346,5,52,0,0,346,347,5,37,0,0,347,348, 5,109,0,0,348,349,5,91,0,0,349,350,5,104,0,0,350,352,5,53,0,0,351,297, 1,0,0,0,351,304,1,0,0,0,351,309,1,0,0,0,351,315,1,0,0,0,351,330,1,0,0, 0,351,337,1,0,0,0,351,345,1,0,0,0,352,25,1,0,0,0,353,355,3,28,14,0,354, 353,1,0,0,0,355,356,1,0,0,0,356,354,1,0,0,0,356,357,1,0,0,0,357,27,1,0, 0,0,358,359,7,0,0,0,359,29,1,0,0,0,360,361,5,52,0,0,361,362,5,35,0,0,362, 363,5,60,0,0,363,364,3,2,1,0,364,365,5,53,0,0,365,387,1,0,0,0,366,367, 5,52,0,0,367,368,5,35,0,0,368,369,5,61,0,0,369,370,3,2,1,0,370,371,5,53, 0,0,371,387,1,0,0,0,372,373,5,52,0,0,373,374,5,35,0,0,374,375,5,54,0,0, 375,376,5,60,0,0,376,377,3,2,1,0,377,378,5,53,0,0,378,387,1,0,0,0,379, 380,5,52,0,0,380,381,5,35,0,0,381,382,5,54,0,0,382,383,5,61,0,0,383,384, 3,2,1,0,384,385,5,53,0,0,385,387,1,0,0,0,386,360,1,0,0,0,386,366,1,0,0, 0,386,372,1,0,0,0,386,379,1,0,0,0,387,31,1,0,0,0,388,389,5,52,0,0,389, 390,5,35,0,0,390,391,5,106,0,0,391,467,5,53,0,0,392,393,5,52,0,0,393,394, 5,35,0,0,394,395,3,54,27,0,395,396,5,53,0,0,396,467,1,0,0,0,397,398,5, 52,0,0,398,399,5,35,0,0,399,400,5,36,0,0,400,401,3,54,27,0,401,402,5,53, 0,0,402,467,1,0,0,0,403,404,5,52,0,0,404,405,5,35,0,0,405,406,5,32,0,0, 406,407,3,54,27,0,407,408,5,53,0,0,408,467,1,0,0,0,409,410,5,52,0,0,410, 411,5,35,0,0,411,412,5,62,0,0,412,413,3,64,32,0,413,414,5,53,0,0,414,467, 1,0,0,0,415,416,5,52,0,0,416,417,5,35,0,0,417,418,5,104,0,0,418,419,5, 55,0,0,419,420,3,64,32,0,420,421,5,53,0,0,421,467,1,0,0,0,422,423,5,49, 0,0,423,424,5,54,0,0,424,425,3,64,32,0,425,426,5,55,0,0,426,467,1,0,0, 0,427,428,5,49,0,0,428,429,5,56,0,0,429,430,3,64,32,0,430,431,5,56,0,0, 431,467,1,0,0,0,432,433,5,49,0,0,433,434,5,54,0,0,434,435,3,54,27,0,435, 436,5,55,0,0,436,467,1,0,0,0,437,438,5,49,0,0,438,439,5,56,0,0,439,440, 3,54,27,0,440,441,5,56,0,0,441,467,1,0,0,0,442,443,5,49,0,0,443,444,5, 54,0,0,444,445,5,36,0,0,445,446,3,54,27,0,446,447,5,55,0,0,447,467,1,0, 0,0,448,449,5,49,0,0,449,450,5,56,0,0,450,451,5,36,0,0,451,452,3,54,27, 0,452,453,5,56,0,0,453,467,1,0,0,0,454,455,5,49,0,0,455,456,5,54,0,0,456, 457,5,32,0,0,457,458,3,54,27,0,458,459,5,55,0,0,459,467,1,0,0,0,460,461, 5,49,0,0,461,462,5,56,0,0,462,463,5,32,0,0,463,464,3,54,27,0,464,465,5, 56,0,0,465,467,1,0,0,0,466,388,1,0,0,0,466,392,1,0,0,0,466,397,1,0,0,0, 466,403,1,0,0,0,466,409,1,0,0,0,466,415,1,0,0,0,466,422,1,0,0,0,466,427, 1,0,0,0,466,432,1,0,0,0,466,437,1,0,0,0,466,442,1,0,0,0,466,448,1,0,0, 0,466,454,1,0,0,0,466,460,1,0,0,0,467,33,1,0,0,0,468,469,5,52,0,0,469, 470,5,35,0,0,470,471,5,52,0,0,471,472,3,54,27,0,472,473,5,53,0,0,473,476, 3,2,1,0,474,475,5,51,0,0,475,477,3,2,1,0,476,474,1,0,0,0,476,477,1,0,0, 0,477,478,1,0,0,0,478,479,5,53,0,0,479,620,1,0,0,0,480,481,5,52,0,0,481, 482,5,35,0,0,482,483,5,52,0,0,483,484,5,36,0,0,484,485,3,54,27,0,485,486, 5,53,0,0,486,489,3,2,1,0,487,488,5,51,0,0,488,490,3,2,1,0,489,487,1,0, 0,0,489,490,1,0,0,0,490,491,1,0,0,0,491,492,5,53,0,0,492,620,1,0,0,0,493, 494,5,52,0,0,494,495,5,35,0,0,495,496,5,52,0,0,496,497,5,32,0,0,497,498, 3,54,27,0,498,499,5,53,0,0,499,502,3,2,1,0,500,501,5,51,0,0,501,503,3, 2,1,0,502,500,1,0,0,0,502,503,1,0,0,0,503,504,1,0,0,0,504,505,5,53,0,0, 505,620,1,0,0,0,506,507,5,52,0,0,507,508,5,35,0,0,508,509,5,52,0,0,509, 510,5,54,0,0,510,511,3,64,32,0,511,512,5,55,0,0,512,513,5,53,0,0,513,516, 3,2,1,0,514,515,5,51,0,0,515,517,3,2,1,0,516,514,1,0,0,0,516,517,1,0,0, 0,517,518,1,0,0,0,518,519,5,53,0,0,519,620,1,0,0,0,520,521,5,52,0,0,521, 522,5,35,0,0,522,523,5,52,0,0,523,524,5,56,0,0,524,525,3,64,32,0,525,526, 5,56,0,0,526,527,5,53,0,0,527,530,3,2,1,0,528,529,5,51,0,0,529,531,3,2, 1,0,530,528,1,0,0,0,530,531,1,0,0,0,531,532,1,0,0,0,532,533,5,53,0,0,533, 620,1,0,0,0,534,535,5,52,0,0,535,536,5,35,0,0,536,537,5,52,0,0,537,538, 5,106,0,0,538,539,3,54,27,0,539,540,5,53,0,0,540,543,3,2,1,0,541,542,5, 51,0,0,542,544,3,2,1,0,543,541,1,0,0,0,543,544,1,0,0,0,544,545,1,0,0,0, 545,546,5,53,0,0,546,620,1,0,0,0,547,548,5,52,0,0,548,549,5,35,0,0,549, 550,5,52,0,0,550,551,5,106,0,0,551,552,5,53,0,0,552,555,3,2,1,0,553,554, 5,51,0,0,554,556,3,2,1,0,555,553,1,0,0,0,555,556,1,0,0,0,556,557,1,0,0, 0,557,558,5,53,0,0,558,620,1,0,0,0,559,560,5,52,0,0,560,561,5,35,0,0,561, 562,5,52,0,0,562,563,5,106,0,0,563,564,5,62,0,0,564,565,3,64,32,0,565, 566,5,53,0,0,566,569,3,2,1,0,567,568,5,51,0,0,568,570,3,2,1,0,569,567, 1,0,0,0,569,570,1,0,0,0,570,571,1,0,0,0,571,572,5,53,0,0,572,620,1,0,0, 0,573,574,5,52,0,0,574,575,5,35,0,0,575,576,5,52,0,0,576,577,5,92,0,0, 577,578,5,93,0,0,578,579,5,94,0,0,579,580,5,97,0,0,580,581,5,102,0,0,581, 582,5,93,0,0,582,583,5,53,0,0,583,586,3,2,1,0,584,585,5,51,0,0,585,587, 3,2,1,0,586,584,1,0,0,0,586,587,1,0,0,0,587,588,1,0,0,0,588,589,5,53,0, 0,589,620,1,0,0,0,590,591,5,52,0,0,591,592,5,35,0,0,592,593,5,52,0,0,593, 594,5,63,0,0,594,595,5,81,0,0,595,596,5,81,0,0,596,597,5,67,0,0,597,598, 5,80,0,0,598,599,5,82,0,0,599,600,5,53,0,0,600,603,3,2,1,0,601,602,5,51, 0,0,602,604,3,2,1,0,603,601,1,0,0,0,603,604,1,0,0,0,604,605,1,0,0,0,605, 606,5,53,0,0,606,620,1,0,0,0,607,608,5,52,0,0,608,609,5,35,0,0,609,610, 5,52,0,0,610,611,3,64,32,0,611,612,5,53,0,0,612,615,3,2,1,0,613,614,5, 51,0,0,614,616,3,2,1,0,615,613,1,0,0,0,615,616,1,0,0,0,616,617,1,0,0,0, 617,618,5,53,0,0,618,620,1,0,0,0,619,468,1,0,0,0,619,480,1,0,0,0,619,493, 1,0,0,0,619,506,1,0,0,0,619,520,1,0,0,0,619,534,1,0,0,0,619,547,1,0,0, 0,619,559,1,0,0,0,619,573,1,0,0,0,619,590,1,0,0,0,619,607,1,0,0,0,620, 35,1,0,0,0,621,622,5,52,0,0,622,623,5,37,0,0,623,624,5,89,0,0,624,625, 5,91,0,0,625,626,5,91,0,0,626,627,5,93,0,0,627,628,5,104,0,0,628,629,5, 108,0,0,629,722,5,53,0,0,630,631,5,52,0,0,631,632,5,37,0,0,632,636,5,94, 0,0,633,634,5,89,0,0,634,635,5,97,0,0,635,637,5,100,0,0,636,633,1,0,0, 0,636,637,1,0,0,0,637,638,1,0,0,0,638,722,5,53,0,0,639,640,5,52,0,0,640, 645,5,37,0,0,641,642,5,101,0,0,642,643,5,89,0,0,643,644,5,106,0,0,644, 646,5,99,0,0,645,641,1,0,0,0,645,646,1,0,0,0,646,647,1,0,0,0,647,648,5, 58,0,0,648,649,5,102,0,0,649,650,5,89,0,0,650,651,5,101,0,0,651,652,5, 93,0,0,652,722,5,53,0,0,653,654,5,52,0,0,654,655,5,37,0,0,655,656,5,91, 0,0,656,657,5,103,0,0,657,658,5,101,0,0,658,659,5,101,0,0,659,660,5,97, 0,0,660,661,5,108,0,0,661,722,5,53,0,0,662,663,5,52,0,0,663,664,5,37,0, 0,664,665,5,104,0,0,665,666,5,106,0,0,666,667,5,109,0,0,667,668,5,102, 0,0,668,669,5,93,0,0,669,722,5,53,0,0,670,671,5,52,0,0,671,672,5,37,0, 0,672,673,5,104,0,0,673,674,5,106,0,0,674,675,5,109,0,0,675,676,5,102, 0,0,676,677,5,93,0,0,677,678,5,58,0,0,678,679,5,102,0,0,679,680,5,89,0, 0,680,681,5,101,0,0,681,682,5,93,0,0,682,722,5,53,0,0,683,684,5,52,0,0, 684,685,5,37,0,0,685,686,5,107,0,0,686,687,5,99,0,0,687,688,5,97,0,0,688, 689,5,104,0,0,689,722,5,53,0,0,690,691,5,52,0,0,691,692,5,37,0,0,692,693, 5,107,0,0,693,694,5,99,0,0,694,695,5,97,0,0,695,696,5,104,0,0,696,697, 5,58,0,0,697,698,5,102,0,0,698,699,5,89,0,0,699,700,5,101,0,0,700,701, 5,93,0,0,701,722,5,53,0,0,702,703,5,52,0,0,703,704,5,37,0,0,704,705,5, 108,0,0,705,706,5,96,0,0,706,707,5,93,0,0,707,708,5,102,0,0,708,722,5, 53,0,0,709,710,5,52,0,0,710,711,5,37,0,0,711,712,5,108,0,0,712,713,5,96, 0,0,713,714,5,93,0,0,714,715,5,102,0,0,715,716,5,58,0,0,716,717,5,102, 0,0,717,718,5,89,0,0,718,719,5,101,0,0,719,720,5,93,0,0,720,722,5,53,0, 0,721,621,1,0,0,0,721,630,1,0,0,0,721,639,1,0,0,0,721,653,1,0,0,0,721, 662,1,0,0,0,721,670,1,0,0,0,721,683,1,0,0,0,721,690,1,0,0,0,721,702,1, 0,0,0,721,709,1,0,0,0,722,37,1,0,0,0,723,724,5,52,0,0,724,725,5,37,0,0, 725,726,5,91,0,0,726,727,5,106,0,0,727,785,5,53,0,0,728,729,5,52,0,0,729, 730,5,37,0,0,730,731,5,100,0,0,731,732,5,94,0,0,732,785,5,53,0,0,733,734, 5,52,0,0,734,735,5,37,0,0,735,736,5,91,0,0,736,737,5,106,0,0,737,738,5, 100,0,0,738,739,5,94,0,0,739,785,5,53,0,0,740,741,5,52,0,0,741,742,5,37, 0,0,742,743,5,89,0,0,743,744,5,102,0,0,744,745,5,113,0,0,745,746,5,91, 0,0,746,747,5,106,0,0,747,748,5,100,0,0,748,749,5,94,0,0,749,785,5,53, 0,0,750,751,5,52,0,0,751,752,5,37,0,0,752,753,5,89,0,0,753,754,5,102,0, 0,754,755,5,113,0,0,755,785,5,53,0,0,756,757,5,52,0,0,757,758,5,37,0,0, 758,759,5,90,0,0,759,760,5,107,0,0,760,761,5,106,0,0,761,762,5,57,0,0, 762,763,5,89,0,0,763,764,5,102,0,0,764,765,5,113,0,0,765,766,5,91,0,0, 766,767,5,106,0,0,767,768,5,100,0,0,768,769,5,94,0,0,769,785,5,53,0,0, 770,771,5,52,0,0,771,772,5,37,0,0,772,773,5,90,0,0,773,774,5,107,0,0,774, 775,5,106,0,0,775,776,5,57,0,0,776,777,5,109,0,0,777,778,5,102,0,0,778, 779,5,97,0,0,779,780,5,91,0,0,780,781,5,103,0,0,781,782,5,92,0,0,782,783, 5,93,0,0,783,785,5,53,0,0,784,723,1,0,0,0,784,728,1,0,0,0,784,733,1,0, 0,0,784,740,1,0,0,0,784,750,1,0,0,0,784,756,1,0,0,0,784,770,1,0,0,0,785, 39,1,0,0,0,786,787,5,52,0,0,787,788,5,35,0,0,788,789,5,91,0,0,789,797, 5,53,0,0,790,791,5,52,0,0,791,792,5,35,0,0,792,793,5,91,0,0,793,794,3, 54,27,0,794,795,5,53,0,0,795,797,1,0,0,0,796,786,1,0,0,0,796,790,1,0,0, 0,797,41,1,0,0,0,798,825,3,32,16,0,799,825,3,46,23,0,800,825,3,48,24,0, 801,825,3,12,6,0,802,825,3,18,9,0,803,825,3,20,10,0,804,825,3,22,11,0, 805,825,3,24,12,0,806,825,3,30,15,0,807,825,3,14,7,0,808,825,3,34,17,0, 809,825,3,36,18,0,810,825,3,38,19,0,811,825,3,40,20,0,812,825,5,12,0,0, 813,825,5,31,0,0,814,825,5,43,0,0,815,825,5,41,0,0,816,825,5,42,0,0,817, 825,5,44,0,0,818,825,5,45,0,0,819,825,5,46,0,0,820,825,5,47,0,0,821,825, 5,48,0,0,822,825,5,13,0,0,823,825,5,28,0,0,824,798,1,0,0,0,824,799,1,0, 0,0,824,800,1,0,0,0,824,801,1,0,0,0,824,802,1,0,0,0,824,803,1,0,0,0,824, 804,1,0,0,0,824,805,1,0,0,0,824,806,1,0,0,0,824,807,1,0,0,0,824,808,1, 0,0,0,824,809,1,0,0,0,824,810,1,0,0,0,824,811,1,0,0,0,824,812,1,0,0,0, 824,813,1,0,0,0,824,814,1,0,0,0,824,815,1,0,0,0,824,816,1,0,0,0,824,817, 1,0,0,0,824,818,1,0,0,0,824,819,1,0,0,0,824,820,1,0,0,0,824,821,1,0,0, 0,824,822,1,0,0,0,824,823,1,0,0,0,825,43,1,0,0,0,826,827,3,50,25,0,827, 828,5,32,0,0,828,829,3,50,25,0,829,834,1,0,0,0,830,834,3,46,23,0,831,834, 3,50,25,0,832,834,3,16,8,0,833,826,1,0,0,0,833,830,1,0,0,0,833,831,1,0, 0,0,833,832,1,0,0,0,834,45,1,0,0,0,835,855,5,33,0,0,836,855,5,34,0,0,837, 855,5,4,0,0,838,855,5,14,0,0,839,855,5,15,0,0,840,855,5,16,0,0,841,855, 5,17,0,0,842,855,5,18,0,0,843,855,5,19,0,0,844,855,5,20,0,0,845,855,5, 21,0,0,846,855,5,22,0,0,847,855,5,23,0,0,848,855,5,24,0,0,849,855,5,25, 0,0,850,855,5,26,0,0,851,855,5,27,0,0,852,853,5,10,0,0,853,855,9,0,0,0, 854,835,1,0,0,0,854,836,1,0,0,0,854,837,1,0,0,0,854,838,1,0,0,0,854,839, 1,0,0,0,854,840,1,0,0,0,854,841,1,0,0,0,854,842,1,0,0,0,854,843,1,0,0, 0,854,844,1,0,0,0,854,845,1,0,0,0,854,846,1,0,0,0,854,847,1,0,0,0,854, 848,1,0,0,0,854,849,1,0,0,0,854,850,1,0,0,0,854,851,1,0,0,0,854,852,1, 0,0,0,855,47,1,0,0,0,856,859,3,52,26,0,857,859,5,30,0,0,858,856,1,0,0, 0,858,857,1,0,0,0,859,49,1,0,0,0,860,873,3,52,26,0,861,873,5,12,0,0,862, 873,5,29,0,0,863,873,5,31,0,0,864,873,5,35,0,0,865,873,5,36,0,0,866,873, 5,37,0,0,867,873,5,41,0,0,868,873,5,44,0,0,869,873,5,51,0,0,870,873,5, 52,0,0,871,873,5,53,0,0,872,860,1,0,0,0,872,861,1,0,0,0,872,862,1,0,0, 0,872,863,1,0,0,0,872,864,1,0,0,0,872,865,1,0,0,0,872,866,1,0,0,0,872, 867,1,0,0,0,872,868,1,0,0,0,872,869,1,0,0,0,872,870,1,0,0,0,872,871,1, 0,0,0,873,51,1,0,0,0,874,901,3,56,28,0,875,901,3,72,36,0,876,901,3,62, 31,0,877,901,5,3,0,0,878,901,5,5,0,0,879,901,5,6,0,0,880,901,5,7,0,0,881, 901,5,8,0,0,882,901,5,9,0,0,883,901,5,11,0,0,884,901,5,1,0,0,885,901,5, 2,0,0,886,901,5,38,0,0,887,901,5,39,0,0,888,901,5,40,0,0,889,901,5,32, 0,0,890,901,5,54,0,0,891,901,5,55,0,0,892,901,5,56,0,0,893,901,5,57,0, 0,894,901,5,58,0,0,895,901,5,59,0,0,896,901,5,60,0,0,897,901,5,61,0,0, 898,901,5,62,0,0,899,901,5,125,0,0,900,874,1,0,0,0,900,875,1,0,0,0,900, 876,1,0,0,0,900,877,1,0,0,0,900,878,1,0,0,0,900,879,1,0,0,0,900,880,1, 0,0,0,900,881,1,0,0,0,900,882,1,0,0,0,900,883,1,0,0,0,900,884,1,0,0,0, 900,885,1,0,0,0,900,886,1,0,0,0,900,887,1,0,0,0,900,888,1,0,0,0,900,889, 1,0,0,0,900,890,1,0,0,0,900,891,1,0,0,0,900,892,1,0,0,0,900,893,1,0,0, 0,900,894,1,0,0,0,900,895,1,0,0,0,900,896,1,0,0,0,900,897,1,0,0,0,900, 898,1,0,0,0,900,899,1,0,0,0,901,53,1,0,0,0,902,903,3,60,30,0,903,55,1, 0,0,0,904,905,5,10,0,0,905,906,7,1,0,0,906,907,3,58,29,0,907,908,3,58, 29,0,908,914,1,0,0,0,909,910,5,10,0,0,910,911,3,58,29,0,911,912,3,58,29, 0,912,914,1,0,0,0,913,904,1,0,0,0,913,909,1,0,0,0,914,57,1,0,0,0,915,916, 7,2,0,0,916,59,1,0,0,0,917,919,3,62,31,0,918,917,1,0,0,0,919,920,1,0,0, 0,920,918,1,0,0,0,920,921,1,0,0,0,921,61,1,0,0,0,922,923,7,3,0,0,923,63, 1,0,0,0,924,925,3,66,33,0,925,65,1,0,0,0,926,929,3,72,36,0,927,929,5,57, 0,0,928,926,1,0,0,0,928,927,1,0,0,0,929,935,1,0,0,0,930,934,3,72,36,0, 931,934,5,57,0,0,932,934,3,62,31,0,933,930,1,0,0,0,933,931,1,0,0,0,933, 932,1,0,0,0,934,937,1,0,0,0,935,933,1,0,0,0,935,936,1,0,0,0,936,67,1,0, 0,0,937,935,1,0,0,0,938,940,3,70,35,0,939,938,1,0,0,0,940,941,1,0,0,0, 941,939,1,0,0,0,941,942,1,0,0,0,942,69,1,0,0,0,943,944,8,4,0,0,944,71, 1,0,0,0,945,946,7,5,0,0,946,73,1,0,0,0,49,82,88,93,119,124,133,143,152, 162,171,179,183,226,231,262,289,351,356,386,466,476,489,502,516,530,543, 555,569,586,603,615,619,636,645,721,784,796,824,833,854,858,872,900,913, 920,928,933,935,941 ] public static let _ATN = try! ATNDeserializer().deserialize(_serializedATN) }