python3-parser 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +13 -0
- data/README.md +59 -0
- data/Rakefile +21 -0
- data/ext/python3-parser/Python3LexerBase.cpp +112 -0
- data/ext/python3-parser/Python3LexerBase.h +34 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +10 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +167 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +10 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +121 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +34 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +27 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +155 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +69 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +61 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +59 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +25 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +36 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +414 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +200 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +11 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +37 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +195 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +158 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +39 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +74 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +78 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +79 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +15 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +35 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +333 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +466 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +84 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +80 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +64 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +99 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +51 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +32 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +18 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +24 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +218 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +19 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +45 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +295 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +196 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +75 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +52 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +36 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +31 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +92 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +88 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +46 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +42 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +648 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +467 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +306 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +179 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +141 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +147 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +53 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +38 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +66 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +98 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +167 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +164 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +143 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +137 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +27 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +32 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +53 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +155 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +92 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +30 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +85 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +11 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +137 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +425 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +293 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +211 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +123 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +270 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +115 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +104 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +193 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +23 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +137 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +167 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +209 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +112 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +113 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +148 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +228 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +110 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +64 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +50 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +758 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +85 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp +621 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.h +61 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +63 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +87 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +72 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +133 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +20 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp +14 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h +24 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +33 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +33 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +16 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +68 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +82 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +43 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +31 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +30 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +22 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +21 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.cpp +15 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +24 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +21 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +47 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +14 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +70 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +25 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +227 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +17 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +30 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp +35 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h +27 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +35 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +39 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +15 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +43 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +158 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +109 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +84 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +44 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +628 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +210 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +66 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +107 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +115 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +55 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +55 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +63 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +62 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +87 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +63 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +82 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +56 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +61 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +47 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +57 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +47 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +57 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +56 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +61 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +47 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +55 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +56 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +55 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +42 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +22 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +27 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +25 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +20 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +102 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +102 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +1366 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +904 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +25 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +22 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +32 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +29 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +62 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +34 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +39 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +662 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +254 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +201 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +436 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +60 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +30 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +29 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.cpp +16 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +25 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +25 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +37 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +40 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +377 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +222 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +32 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +30 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +81 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +36 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +21 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp +15 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +35 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +19 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +21 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.cpp +12 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +21 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +44 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +76 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +25 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +25 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +127 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +91 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +67 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +32 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +100 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +144 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +20 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +23 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +124 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +31 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +89 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +84 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +521 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +198 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +134 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +76 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +4 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +21 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +13 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +170 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +43 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +110 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +76 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +248 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +78 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +163 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +36 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +54 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.cpp +303 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.h +112 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +128 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +19 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +23 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +33 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +71 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +15 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +102 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +39 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +50 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +57 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +49 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +31 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +32 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +57 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +33 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +241 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +78 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +9 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +44 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +371 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +117 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +39 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +86 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +28 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +51 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +80 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +154 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +86 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +31 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +40 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +173 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +56 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
- data/ext/python3-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
- data/ext/python3-parser/antlrgen/Python3Lexer.cpp +1024 -0
- data/ext/python3-parser/antlrgen/Python3Lexer.h +91 -0
- data/ext/python3-parser/antlrgen/Python3Lexer.interp +339 -0
- data/ext/python3-parser/antlrgen/Python3Lexer.tokens +181 -0
- data/ext/python3-parser/antlrgen/Python3Parser.cpp +10550 -0
- data/ext/python3-parser/antlrgen/Python3Parser.h +1811 -0
- data/ext/python3-parser/antlrgen/Python3Parser.interp +295 -0
- data/ext/python3-parser/antlrgen/Python3Parser.tokens +181 -0
- data/ext/python3-parser/antlrgen/Python3ParserBaseListener.cpp +7 -0
- data/ext/python3-parser/antlrgen/Python3ParserBaseListener.h +284 -0
- data/ext/python3-parser/antlrgen/Python3ParserBaseVisitor.cpp +7 -0
- data/ext/python3-parser/antlrgen/Python3ParserBaseVisitor.h +364 -0
- data/ext/python3-parser/antlrgen/Python3ParserListener.cpp +7 -0
- data/ext/python3-parser/antlrgen/Python3ParserListener.h +277 -0
- data/ext/python3-parser/antlrgen/Python3ParserVisitor.cpp +7 -0
- data/ext/python3-parser/antlrgen/Python3ParserVisitor.h +196 -0
- data/ext/python3-parser/extconf.rb +34 -0
- data/ext/python3-parser/python3_parser.cpp +10103 -0
- data/lib/python3-parser.rb +2 -0
- data/lib/python3-parser/version.rb +3 -0
- data/python3-parser.gemspec +31 -0
- data/spec/parser_spec.rb +105 -0
- data/spec/spec_helper.rb +9 -0
- metadata +391 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
token literal names:
|
|
2
|
+
null
|
|
3
|
+
null
|
|
4
|
+
null
|
|
5
|
+
null
|
|
6
|
+
null
|
|
7
|
+
null
|
|
8
|
+
'def'
|
|
9
|
+
'return'
|
|
10
|
+
'raise'
|
|
11
|
+
'from'
|
|
12
|
+
'import'
|
|
13
|
+
'as'
|
|
14
|
+
'global'
|
|
15
|
+
'nonlocal'
|
|
16
|
+
'assert'
|
|
17
|
+
'if'
|
|
18
|
+
'elif'
|
|
19
|
+
'else'
|
|
20
|
+
'while'
|
|
21
|
+
'for'
|
|
22
|
+
'in'
|
|
23
|
+
'try'
|
|
24
|
+
'finally'
|
|
25
|
+
'with'
|
|
26
|
+
'except'
|
|
27
|
+
'lambda'
|
|
28
|
+
'or'
|
|
29
|
+
'and'
|
|
30
|
+
'not'
|
|
31
|
+
'is'
|
|
32
|
+
'None'
|
|
33
|
+
'True'
|
|
34
|
+
'False'
|
|
35
|
+
'class'
|
|
36
|
+
'yield'
|
|
37
|
+
'del'
|
|
38
|
+
'pass'
|
|
39
|
+
'continue'
|
|
40
|
+
'break'
|
|
41
|
+
'async'
|
|
42
|
+
'await'
|
|
43
|
+
null
|
|
44
|
+
null
|
|
45
|
+
null
|
|
46
|
+
null
|
|
47
|
+
null
|
|
48
|
+
null
|
|
49
|
+
null
|
|
50
|
+
null
|
|
51
|
+
null
|
|
52
|
+
null
|
|
53
|
+
'.'
|
|
54
|
+
'...'
|
|
55
|
+
'*'
|
|
56
|
+
'('
|
|
57
|
+
')'
|
|
58
|
+
','
|
|
59
|
+
':'
|
|
60
|
+
';'
|
|
61
|
+
'**'
|
|
62
|
+
'='
|
|
63
|
+
'['
|
|
64
|
+
']'
|
|
65
|
+
'|'
|
|
66
|
+
'^'
|
|
67
|
+
'&'
|
|
68
|
+
'<<'
|
|
69
|
+
'>>'
|
|
70
|
+
'+'
|
|
71
|
+
'-'
|
|
72
|
+
'/'
|
|
73
|
+
'%'
|
|
74
|
+
'//'
|
|
75
|
+
'~'
|
|
76
|
+
'{'
|
|
77
|
+
'}'
|
|
78
|
+
'<'
|
|
79
|
+
'>'
|
|
80
|
+
'=='
|
|
81
|
+
'>='
|
|
82
|
+
'<='
|
|
83
|
+
'<>'
|
|
84
|
+
'!='
|
|
85
|
+
'@'
|
|
86
|
+
'->'
|
|
87
|
+
'+='
|
|
88
|
+
'-='
|
|
89
|
+
'*='
|
|
90
|
+
'@='
|
|
91
|
+
'/='
|
|
92
|
+
'%='
|
|
93
|
+
'&='
|
|
94
|
+
'|='
|
|
95
|
+
'^='
|
|
96
|
+
'<<='
|
|
97
|
+
'>>='
|
|
98
|
+
'**='
|
|
99
|
+
'//='
|
|
100
|
+
null
|
|
101
|
+
null
|
|
102
|
+
|
|
103
|
+
token symbolic names:
|
|
104
|
+
null
|
|
105
|
+
INDENT
|
|
106
|
+
DEDENT
|
|
107
|
+
STRING
|
|
108
|
+
NUMBER
|
|
109
|
+
INTEGER
|
|
110
|
+
DEF
|
|
111
|
+
RETURN
|
|
112
|
+
RAISE
|
|
113
|
+
FROM
|
|
114
|
+
IMPORT
|
|
115
|
+
AS
|
|
116
|
+
GLOBAL
|
|
117
|
+
NONLOCAL
|
|
118
|
+
ASSERT
|
|
119
|
+
IF
|
|
120
|
+
ELIF
|
|
121
|
+
ELSE
|
|
122
|
+
WHILE
|
|
123
|
+
FOR
|
|
124
|
+
IN
|
|
125
|
+
TRY
|
|
126
|
+
FINALLY
|
|
127
|
+
WITH
|
|
128
|
+
EXCEPT
|
|
129
|
+
LAMBDA
|
|
130
|
+
OR
|
|
131
|
+
AND
|
|
132
|
+
NOT
|
|
133
|
+
IS
|
|
134
|
+
NONE
|
|
135
|
+
TRUE
|
|
136
|
+
FALSE
|
|
137
|
+
CLASS
|
|
138
|
+
YIELD
|
|
139
|
+
DEL
|
|
140
|
+
PASS
|
|
141
|
+
CONTINUE
|
|
142
|
+
BREAK
|
|
143
|
+
ASYNC
|
|
144
|
+
AWAIT
|
|
145
|
+
NEWLINE
|
|
146
|
+
NAME
|
|
147
|
+
STRING_LITERAL
|
|
148
|
+
BYTES_LITERAL
|
|
149
|
+
DECIMAL_INTEGER
|
|
150
|
+
OCT_INTEGER
|
|
151
|
+
HEX_INTEGER
|
|
152
|
+
BIN_INTEGER
|
|
153
|
+
FLOAT_NUMBER
|
|
154
|
+
IMAG_NUMBER
|
|
155
|
+
DOT
|
|
156
|
+
ELLIPSIS
|
|
157
|
+
STAR
|
|
158
|
+
OPEN_PAREN
|
|
159
|
+
CLOSE_PAREN
|
|
160
|
+
COMMA
|
|
161
|
+
COLON
|
|
162
|
+
SEMI_COLON
|
|
163
|
+
POWER
|
|
164
|
+
ASSIGN
|
|
165
|
+
OPEN_BRACK
|
|
166
|
+
CLOSE_BRACK
|
|
167
|
+
OR_OP
|
|
168
|
+
XOR
|
|
169
|
+
AND_OP
|
|
170
|
+
LEFT_SHIFT
|
|
171
|
+
RIGHT_SHIFT
|
|
172
|
+
ADD
|
|
173
|
+
MINUS
|
|
174
|
+
DIV
|
|
175
|
+
MOD
|
|
176
|
+
IDIV
|
|
177
|
+
NOT_OP
|
|
178
|
+
OPEN_BRACE
|
|
179
|
+
CLOSE_BRACE
|
|
180
|
+
LESS_THAN
|
|
181
|
+
GREATER_THAN
|
|
182
|
+
EQUALS
|
|
183
|
+
GT_EQ
|
|
184
|
+
LT_EQ
|
|
185
|
+
NOT_EQ_1
|
|
186
|
+
NOT_EQ_2
|
|
187
|
+
AT
|
|
188
|
+
ARROW
|
|
189
|
+
ADD_ASSIGN
|
|
190
|
+
SUB_ASSIGN
|
|
191
|
+
MULT_ASSIGN
|
|
192
|
+
AT_ASSIGN
|
|
193
|
+
DIV_ASSIGN
|
|
194
|
+
MOD_ASSIGN
|
|
195
|
+
AND_ASSIGN
|
|
196
|
+
OR_ASSIGN
|
|
197
|
+
XOR_ASSIGN
|
|
198
|
+
LEFT_SHIFT_ASSIGN
|
|
199
|
+
RIGHT_SHIFT_ASSIGN
|
|
200
|
+
POWER_ASSIGN
|
|
201
|
+
IDIV_ASSIGN
|
|
202
|
+
SKIP_
|
|
203
|
+
UNKNOWN_CHAR
|
|
204
|
+
|
|
205
|
+
rule names:
|
|
206
|
+
single_input
|
|
207
|
+
file_input
|
|
208
|
+
eval_input
|
|
209
|
+
decorator
|
|
210
|
+
decorators
|
|
211
|
+
decorated
|
|
212
|
+
async_funcdef
|
|
213
|
+
funcdef
|
|
214
|
+
parameters
|
|
215
|
+
typedargslist
|
|
216
|
+
tfpdef
|
|
217
|
+
varargslist
|
|
218
|
+
vfpdef
|
|
219
|
+
stmt
|
|
220
|
+
simple_stmt
|
|
221
|
+
small_stmt
|
|
222
|
+
expr_stmt
|
|
223
|
+
annassign
|
|
224
|
+
testlist_star_expr
|
|
225
|
+
augassign
|
|
226
|
+
del_stmt
|
|
227
|
+
pass_stmt
|
|
228
|
+
flow_stmt
|
|
229
|
+
break_stmt
|
|
230
|
+
continue_stmt
|
|
231
|
+
return_stmt
|
|
232
|
+
yield_stmt
|
|
233
|
+
raise_stmt
|
|
234
|
+
import_stmt
|
|
235
|
+
import_name
|
|
236
|
+
import_from
|
|
237
|
+
import_as_name
|
|
238
|
+
dotted_as_name
|
|
239
|
+
import_as_names
|
|
240
|
+
dotted_as_names
|
|
241
|
+
dotted_name
|
|
242
|
+
global_stmt
|
|
243
|
+
nonlocal_stmt
|
|
244
|
+
assert_stmt
|
|
245
|
+
compound_stmt
|
|
246
|
+
async_stmt
|
|
247
|
+
if_stmt
|
|
248
|
+
while_stmt
|
|
249
|
+
for_stmt
|
|
250
|
+
try_stmt
|
|
251
|
+
with_stmt
|
|
252
|
+
with_item
|
|
253
|
+
except_clause
|
|
254
|
+
suite
|
|
255
|
+
test
|
|
256
|
+
test_nocond
|
|
257
|
+
lambdef
|
|
258
|
+
lambdef_nocond
|
|
259
|
+
or_test
|
|
260
|
+
and_test
|
|
261
|
+
not_test
|
|
262
|
+
comparison
|
|
263
|
+
comp_op
|
|
264
|
+
star_expr
|
|
265
|
+
expr
|
|
266
|
+
xor_expr
|
|
267
|
+
and_expr
|
|
268
|
+
shift_expr
|
|
269
|
+
arith_expr
|
|
270
|
+
term
|
|
271
|
+
factor
|
|
272
|
+
power
|
|
273
|
+
atom_expr
|
|
274
|
+
atom
|
|
275
|
+
testlist_comp
|
|
276
|
+
trailer
|
|
277
|
+
subscriptlist
|
|
278
|
+
subscript
|
|
279
|
+
sliceop
|
|
280
|
+
exprlist
|
|
281
|
+
testlist
|
|
282
|
+
dictorsetmaker
|
|
283
|
+
classdef
|
|
284
|
+
arglist
|
|
285
|
+
argument
|
|
286
|
+
comp_iter
|
|
287
|
+
comp_for
|
|
288
|
+
comp_if
|
|
289
|
+
encoding_decl
|
|
290
|
+
yield_expr
|
|
291
|
+
yield_arg
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
atn:
|
|
295
|
+
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 101, 1106, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 5, 2, 180, 10, 2, 3, 3, 3, 3, 7, 3, 184, 10, 3, 12, 3, 14, 3, 187, 11, 3, 3, 3, 3, 3, 3, 4, 3, 4, 7, 4, 193, 10, 4, 12, 4, 14, 4, 196, 11, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 204, 10, 5, 3, 5, 5, 5, 207, 10, 5, 3, 5, 3, 5, 3, 6, 6, 6, 212, 10, 6, 13, 6, 14, 6, 213, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 220, 10, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 230, 10, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 5, 10, 237, 10, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 5, 11, 244, 10, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 250, 10, 11, 7, 11, 252, 10, 11, 12, 11, 14, 11, 255, 11, 11, 3, 11, 3, 11, 3, 11, 5, 11, 260, 10, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 266, 10, 11, 7, 11, 268, 10, 11, 12, 11, 14, 11, 271, 11, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 277, 10, 11, 5, 11, 279, 10, 11, 5, 11, 281, 10, 11, 3, 11, 3, 11, 3, 11, 5, 11, 286, 10, 11, 5, 11, 288, 10, 11, 5, 11, 290, 10, 11, 3, 11, 3, 11, 5, 11, 294, 10, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 300, 10, 11, 7, 11, 302, 10, 11, 12, 11, 14, 11, 305, 11, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 311, 10, 11, 5, 11, 313, 10, 11, 5, 11, 315, 10, 11, 3, 11, 3, 11, 3, 11, 5, 11, 320, 10, 11, 5, 11, 322, 10, 11, 3, 12, 3, 12, 3, 12, 5, 12, 327, 10, 12, 3, 13, 3, 13, 3, 13, 5, 13, 332, 10, 13, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 338, 10, 13, 7, 13, 340, 10, 13, 12, 13, 14, 13, 343, 11, 13, 3, 13, 3, 13, 3, 13, 5, 13, 348, 10, 13, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 354, 10, 13, 7, 13, 356, 10, 13, 12, 13, 14, 13, 359, 11, 13, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 365, 10, 13, 5, 13, 367, 10, 13, 5, 13, 369, 10, 13, 3, 13, 3, 13, 3, 13, 5, 13, 374, 10, 13, 5, 13, 376, 10, 13, 5, 13, 378, 10, 13, 3, 13, 3, 13, 5, 13, 382, 10, 13, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 388, 10, 13, 7, 13, 390, 10, 13, 12, 13, 14, 13, 393, 11, 13, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 399, 10, 13, 5, 13, 401, 10, 13, 5, 13, 403, 10, 13, 3, 13, 3, 13, 3, 13, 5, 13, 408, 10, 13, 5, 13, 410, 10, 13, 3, 14, 3, 14, 3, 15, 3, 15, 5, 15, 416, 10, 15, 3, 16, 3, 16, 3, 16, 7, 16, 421, 10, 16, 12, 16, 14, 16, 424, 11, 16, 3, 16, 5, 16, 427, 10, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 439, 10, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 5, 18, 446, 10, 18, 3, 18, 3, 18, 3, 18, 5, 18, 451, 10, 18, 7, 18, 453, 10, 18, 12, 18, 14, 18, 456, 11, 18, 5, 18, 458, 10, 18, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 464, 10, 19, 3, 20, 3, 20, 5, 20, 468, 10, 20, 3, 20, 3, 20, 3, 20, 5, 20, 473, 10, 20, 7, 20, 475, 10, 20, 12, 20, 14, 20, 478, 11, 20, 3, 20, 5, 20, 481, 10, 20, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 5, 24, 495, 10, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 27, 3, 27, 5, 27, 503, 10, 27, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 511, 10, 29, 5, 29, 513, 10, 29, 3, 30, 3, 30, 5, 30, 517, 10, 30, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 7, 32, 524, 10, 32, 12, 32, 14, 32, 527, 11, 32, 3, 32, 3, 32, 6, 32, 531, 10, 32, 13, 32, 14, 32, 532, 5, 32, 535, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 544, 10, 32, 3, 33, 3, 33, 3, 33, 5, 33, 549, 10, 33, 3, 34, 3, 34, 3, 34, 5, 34, 554, 10, 34, 3, 35, 3, 35, 3, 35, 7, 35, 559, 10, 35, 12, 35, 14, 35, 562, 11, 35, 3, 35, 5, 35, 565, 10, 35, 3, 36, 3, 36, 3, 36, 7, 36, 570, 10, 36, 12, 36, 14, 36, 573, 11, 36, 3, 37, 3, 37, 3, 37, 7, 37, 578, 10, 37, 12, 37, 14, 37, 581, 11, 37, 3, 38, 3, 38, 3, 38, 3, 38, 7, 38, 587, 10, 38, 12, 38, 14, 38, 590, 11, 38, 3, 39, 3, 39, 3, 39, 3, 39, 7, 39, 596, 10, 39, 12, 39, 14, 39, 599, 11, 39, 3, 40, 3, 40, 3, 40, 3, 40, 5, 40, 605, 10, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 5, 41, 616, 10, 41, 3, 42, 3, 42, 3, 42, 3, 42, 5, 42, 622, 10, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 7, 43, 633, 10, 43, 12, 43, 14, 43, 636, 11, 43, 3, 43, 3, 43, 3, 43, 5, 43, 641, 10, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 5, 44, 650, 10, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 5, 45, 661, 10, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 6, 46, 670, 10, 46, 13, 46, 14, 46, 671, 3, 46, 3, 46, 3, 46, 5, 46, 677, 10, 46, 3, 46, 3, 46, 3, 46, 5, 46, 682, 10, 46, 3, 46, 3, 46, 3, 46, 5, 46, 687, 10, 46, 3, 47, 3, 47, 3, 47, 3, 47, 7, 47, 693, 10, 47, 12, 47, 14, 47, 696, 11, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 5, 48, 704, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 710, 10, 49, 5, 49, 712, 10, 49, 3, 50, 3, 50, 3, 50, 3, 50, 6, 50, 718, 10, 50, 13, 50, 14, 50, 719, 3, 50, 3, 50, 5, 50, 724, 10, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 732, 10, 51, 3, 51, 5, 51, 735, 10, 51, 3, 52, 3, 52, 5, 52, 739, 10, 52, 3, 53, 3, 53, 5, 53, 743, 10, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 5, 54, 750, 10, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 7, 55, 758, 10, 55, 12, 55, 14, 55, 761, 11, 55, 3, 56, 3, 56, 3, 56, 7, 56, 766, 10, 56, 12, 56, 14, 56, 769, 11, 56, 3, 57, 3, 57, 3, 57, 5, 57, 774, 10, 57, 3, 58, 3, 58, 3, 58, 3, 58, 7, 58, 780, 10, 58, 12, 58, 14, 58, 783, 11, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 5, 59, 798, 10, 59, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 7, 61, 806, 10, 61, 12, 61, 14, 61, 809, 11, 61, 3, 62, 3, 62, 3, 62, 7, 62, 814, 10, 62, 12, 62, 14, 62, 817, 11, 62, 3, 63, 3, 63, 3, 63, 7, 63, 822, 10, 63, 12, 63, 14, 63, 825, 11, 63, 3, 64, 3, 64, 3, 64, 7, 64, 830, 10, 64, 12, 64, 14, 64, 833, 11, 64, 3, 65, 3, 65, 3, 65, 7, 65, 838, 10, 65, 12, 65, 14, 65, 841, 11, 65, 3, 66, 3, 66, 3, 66, 7, 66, 846, 10, 66, 12, 66, 14, 66, 849, 11, 66, 3, 67, 3, 67, 3, 67, 5, 67, 854, 10, 67, 3, 68, 3, 68, 3, 68, 5, 68, 859, 10, 68, 3, 69, 5, 69, 862, 10, 69, 3, 69, 3, 69, 7, 69, 866, 10, 69, 12, 69, 14, 69, 869, 11, 69, 3, 70, 3, 70, 3, 70, 5, 70, 874, 10, 70, 3, 70, 3, 70, 3, 70, 5, 70, 879, 10, 70, 3, 70, 3, 70, 3, 70, 5, 70, 884, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 6, 70, 890, 10, 70, 13, 70, 14, 70, 891, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 898, 10, 70, 3, 71, 3, 71, 5, 71, 902, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 908, 10, 71, 7, 71, 910, 10, 71, 12, 71, 14, 71, 913, 11, 71, 3, 71, 5, 71, 916, 10, 71, 5, 71, 918, 10, 71, 3, 72, 3, 72, 5, 72, 922, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 931, 10, 72, 3, 73, 3, 73, 3, 73, 7, 73, 936, 10, 73, 12, 73, 14, 73, 939, 11, 73, 3, 73, 5, 73, 942, 10, 73, 3, 74, 3, 74, 5, 74, 946, 10, 74, 3, 74, 3, 74, 5, 74, 950, 10, 74, 3, 74, 5, 74, 953, 10, 74, 5, 74, 955, 10, 74, 3, 75, 3, 75, 5, 75, 959, 10, 75, 3, 76, 3, 76, 5, 76, 963, 10, 76, 3, 76, 3, 76, 3, 76, 5, 76, 968, 10, 76, 7, 76, 970, 10, 76, 12, 76, 14, 76, 973, 11, 76, 3, 76, 5, 76, 976, 10, 76, 3, 77, 3, 77, 3, 77, 7, 77, 981, 10, 77, 12, 77, 14, 77, 984, 11, 77, 3, 77, 5, 77, 987, 10, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 995, 10, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 1005, 10, 78, 7, 78, 1007, 10, 78, 12, 78, 14, 78, 1010, 11, 78, 3, 78, 5, 78, 1013, 10, 78, 5, 78, 1015, 10, 78, 3, 78, 3, 78, 5, 78, 1019, 10, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 1025, 10, 78, 7, 78, 1027, 10, 78, 12, 78, 14, 78, 1030, 11, 78, 3, 78, 5, 78, 1033, 10, 78, 5, 78, 1035, 10, 78, 5, 78, 1037, 10, 78, 3, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1043, 10, 79, 3, 79, 5, 79, 1046, 10, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 7, 80, 1054, 10, 80, 12, 80, 14, 80, 1057, 11, 80, 3, 80, 5, 80, 1060, 10, 80, 3, 81, 3, 81, 5, 81, 1064, 10, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 5, 81, 1074, 10, 81, 3, 82, 3, 82, 5, 82, 1078, 10, 82, 3, 83, 5, 83, 1081, 10, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 5, 83, 1088, 10, 83, 3, 84, 3, 84, 3, 84, 5, 84, 1093, 10, 84, 3, 85, 3, 85, 3, 86, 3, 86, 5, 86, 1099, 10, 86, 3, 87, 3, 87, 3, 87, 5, 87, 1104, 10, 87, 3, 87, 2, 2, 88, 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, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 2, 8, 3, 2, 87, 99, 3, 2, 53, 54, 3, 2, 68, 69, 3, 2, 70, 71, 5, 2, 55, 55, 72, 74, 85, 85, 4, 2, 70, 71, 75, 75, 2, 1231, 2, 179, 3, 2, 2, 2, 4, 185, 3, 2, 2, 2, 6, 190, 3, 2, 2, 2, 8, 199, 3, 2, 2, 2, 10, 211, 3, 2, 2, 2, 12, 215, 3, 2, 2, 2, 14, 221, 3, 2, 2, 2, 16, 224, 3, 2, 2, 2, 18, 234, 3, 2, 2, 2, 20, 321, 3, 2, 2, 2, 22, 323, 3, 2, 2, 2, 24, 409, 3, 2, 2, 2, 26, 411, 3, 2, 2, 2, 28, 415, 3, 2, 2, 2, 30, 417, 3, 2, 2, 2, 32, 438, 3, 2, 2, 2, 34, 440, 3, 2, 2, 2, 36, 459, 3, 2, 2, 2, 38, 467, 3, 2, 2, 2, 40, 482, 3, 2, 2, 2, 42, 484, 3, 2, 2, 2, 44, 487, 3, 2, 2, 2, 46, 494, 3, 2, 2, 2, 48, 496, 3, 2, 2, 2, 50, 498, 3, 2, 2, 2, 52, 500, 3, 2, 2, 2, 54, 504, 3, 2, 2, 2, 56, 506, 3, 2, 2, 2, 58, 516, 3, 2, 2, 2, 60, 518, 3, 2, 2, 2, 62, 521, 3, 2, 2, 2, 64, 545, 3, 2, 2, 2, 66, 550, 3, 2, 2, 2, 68, 555, 3, 2, 2, 2, 70, 566, 3, 2, 2, 2, 72, 574, 3, 2, 2, 2, 74, 582, 3, 2, 2, 2, 76, 591, 3, 2, 2, 2, 78, 600, 3, 2, 2, 2, 80, 615, 3, 2, 2, 2, 82, 617, 3, 2, 2, 2, 84, 623, 3, 2, 2, 2, 86, 642, 3, 2, 2, 2, 88, 651, 3, 2, 2, 2, 90, 662, 3, 2, 2, 2, 92, 688, 3, 2, 2, 2, 94, 700, 3, 2, 2, 2, 96, 705, 3, 2, 2, 2, 98, 723, 3, 2, 2, 2, 100, 734, 3, 2, 2, 2, 102, 738, 3, 2, 2, 2, 104, 740, 3, 2, 2, 2, 106, 747, 3, 2, 2, 2, 108, 754, 3, 2, 2, 2, 110, 762, 3, 2, 2, 2, 112, 773, 3, 2, 2, 2, 114, 775, 3, 2, 2, 2, 116, 797, 3, 2, 2, 2, 118, 799, 3, 2, 2, 2, 120, 802, 3, 2, 2, 2, 122, 810, 3, 2, 2, 2, 124, 818, 3, 2, 2, 2, 126, 826, 3, 2, 2, 2, 128, 834, 3, 2, 2, 2, 130, 842, 3, 2, 2, 2, 132, 853, 3, 2, 2, 2, 134, 855, 3, 2, 2, 2, 136, 861, 3, 2, 2, 2, 138, 897, 3, 2, 2, 2, 140, 901, 3, 2, 2, 2, 142, 930, 3, 2, 2, 2, 144, 932, 3, 2, 2, 2, 146, 954, 3, 2, 2, 2, 148, 956, 3, 2, 2, 2, 150, 962, 3, 2, 2, 2, 152, 977, 3, 2, 2, 2, 154, 1036, 3, 2, 2, 2, 156, 1038, 3, 2, 2, 2, 158, 1050, 3, 2, 2, 2, 160, 1073, 3, 2, 2, 2, 162, 1077, 3, 2, 2, 2, 164, 1080, 3, 2, 2, 2, 166, 1089, 3, 2, 2, 2, 168, 1094, 3, 2, 2, 2, 170, 1096, 3, 2, 2, 2, 172, 1103, 3, 2, 2, 2, 174, 180, 7, 43, 2, 2, 175, 180, 5, 30, 16, 2, 176, 177, 5, 80, 41, 2, 177, 178, 7, 43, 2, 2, 178, 180, 3, 2, 2, 2, 179, 174, 3, 2, 2, 2, 179, 175, 3, 2, 2, 2, 179, 176, 3, 2, 2, 2, 180, 3, 3, 2, 2, 2, 181, 184, 7, 43, 2, 2, 182, 184, 5, 28, 15, 2, 183, 181, 3, 2, 2, 2, 183, 182, 3, 2, 2, 2, 184, 187, 3, 2, 2, 2, 185, 183, 3, 2, 2, 2, 185, 186, 3, 2, 2, 2, 186, 188, 3, 2, 2, 2, 187, 185, 3, 2, 2, 2, 188, 189, 7, 2, 2, 3, 189, 5, 3, 2, 2, 2, 190, 194, 5, 152, 77, 2, 191, 193, 7, 43, 2, 2, 192, 191, 3, 2, 2, 2, 193, 196, 3, 2, 2, 2, 194, 192, 3, 2, 2, 2, 194, 195, 3, 2, 2, 2, 195, 197, 3, 2, 2, 2, 196, 194, 3, 2, 2, 2, 197, 198, 7, 2, 2, 3, 198, 7, 3, 2, 2, 2, 199, 200, 7, 85, 2, 2, 200, 206, 5, 72, 37, 2, 201, 203, 7, 56, 2, 2, 202, 204, 5, 158, 80, 2, 203, 202, 3, 2, 2, 2, 203, 204, 3, 2, 2, 2, 204, 205, 3, 2, 2, 2, 205, 207, 7, 57, 2, 2, 206, 201, 3, 2, 2, 2, 206, 207, 3, 2, 2, 2, 207, 208, 3, 2, 2, 2, 208, 209, 7, 43, 2, 2, 209, 9, 3, 2, 2, 2, 210, 212, 5, 8, 5, 2, 211, 210, 3, 2, 2, 2, 212, 213, 3, 2, 2, 2, 213, 211, 3, 2, 2, 2, 213, 214, 3, 2, 2, 2, 214, 11, 3, 2, 2, 2, 215, 219, 5, 10, 6, 2, 216, 220, 5, 156, 79, 2, 217, 220, 5, 16, 9, 2, 218, 220, 5, 14, 8, 2, 219, 216, 3, 2, 2, 2, 219, 217, 3, 2, 2, 2, 219, 218, 3, 2, 2, 2, 220, 13, 3, 2, 2, 2, 221, 222, 7, 41, 2, 2, 222, 223, 5, 16, 9, 2, 223, 15, 3, 2, 2, 2, 224, 225, 7, 8, 2, 2, 225, 226, 7, 44, 2, 2, 226, 229, 5, 18, 10, 2, 227, 228, 7, 86, 2, 2, 228, 230, 5, 100, 51, 2, 229, 227, 3, 2, 2, 2, 229, 230, 3, 2, 2, 2, 230, 231, 3, 2, 2, 2, 231, 232, 7, 59, 2, 2, 232, 233, 5, 98, 50, 2, 233, 17, 3, 2, 2, 2, 234, 236, 7, 56, 2, 2, 235, 237, 5, 20, 11, 2, 236, 235, 3, 2, 2, 2, 236, 237, 3, 2, 2, 2, 237, 238, 3, 2, 2, 2, 238, 239, 7, 57, 2, 2, 239, 19, 3, 2, 2, 2, 240, 243, 5, 22, 12, 2, 241, 242, 7, 62, 2, 2, 242, 244, 5, 100, 51, 2, 243, 241, 3, 2, 2, 2, 243, 244, 3, 2, 2, 2, 244, 253, 3, 2, 2, 2, 245, 246, 7, 58, 2, 2, 246, 249, 5, 22, 12, 2, 247, 248, 7, 62, 2, 2, 248, 250, 5, 100, 51, 2, 249, 247, 3, 2, 2, 2, 249, 250, 3, 2, 2, 2, 250, 252, 3, 2, 2, 2, 251, 245, 3, 2, 2, 2, 252, 255, 3, 2, 2, 2, 253, 251, 3, 2, 2, 2, 253, 254, 3, 2, 2, 2, 254, 289, 3, 2, 2, 2, 255, 253, 3, 2, 2, 2, 256, 287, 7, 58, 2, 2, 257, 259, 7, 55, 2, 2, 258, 260, 5, 22, 12, 2, 259, 258, 3, 2, 2, 2, 259, 260, 3, 2, 2, 2, 260, 269, 3, 2, 2, 2, 261, 262, 7, 58, 2, 2, 262, 265, 5, 22, 12, 2, 263, 264, 7, 62, 2, 2, 264, 266, 5, 100, 51, 2, 265, 263, 3, 2, 2, 2, 265, 266, 3, 2, 2, 2, 266, 268, 3, 2, 2, 2, 267, 261, 3, 2, 2, 2, 268, 271, 3, 2, 2, 2, 269, 267, 3, 2, 2, 2, 269, 270, 3, 2, 2, 2, 270, 280, 3, 2, 2, 2, 271, 269, 3, 2, 2, 2, 272, 278, 7, 58, 2, 2, 273, 274, 7, 61, 2, 2, 274, 276, 5, 22, 12, 2, 275, 277, 7, 58, 2, 2, 276, 275, 3, 2, 2, 2, 276, 277, 3, 2, 2, 2, 277, 279, 3, 2, 2, 2, 278, 273, 3, 2, 2, 2, 278, 279, 3, 2, 2, 2, 279, 281, 3, 2, 2, 2, 280, 272, 3, 2, 2, 2, 280, 281, 3, 2, 2, 2, 281, 288, 3, 2, 2, 2, 282, 283, 7, 61, 2, 2, 283, 285, 5, 22, 12, 2, 284, 286, 7, 58, 2, 2, 285, 284, 3, 2, 2, 2, 285, 286, 3, 2, 2, 2, 286, 288, 3, 2, 2, 2, 287, 257, 3, 2, 2, 2, 287, 282, 3, 2, 2, 2, 287, 288, 3, 2, 2, 2, 288, 290, 3, 2, 2, 2, 289, 256, 3, 2, 2, 2, 289, 290, 3, 2, 2, 2, 290, 322, 3, 2, 2, 2, 291, 293, 7, 55, 2, 2, 292, 294, 5, 22, 12, 2, 293, 292, 3, 2, 2, 2, 293, 294, 3, 2, 2, 2, 294, 303, 3, 2, 2, 2, 295, 296, 7, 58, 2, 2, 296, 299, 5, 22, 12, 2, 297, 298, 7, 62, 2, 2, 298, 300, 5, 100, 51, 2, 299, 297, 3, 2, 2, 2, 299, 300, 3, 2, 2, 2, 300, 302, 3, 2, 2, 2, 301, 295, 3, 2, 2, 2, 302, 305, 3, 2, 2, 2, 303, 301, 3, 2, 2, 2, 303, 304, 3, 2, 2, 2, 304, 314, 3, 2, 2, 2, 305, 303, 3, 2, 2, 2, 306, 312, 7, 58, 2, 2, 307, 308, 7, 61, 2, 2, 308, 310, 5, 22, 12, 2, 309, 311, 7, 58, 2, 2, 310, 309, 3, 2, 2, 2, 310, 311, 3, 2, 2, 2, 311, 313, 3, 2, 2, 2, 312, 307, 3, 2, 2, 2, 312, 313, 3, 2, 2, 2, 313, 315, 3, 2, 2, 2, 314, 306, 3, 2, 2, 2, 314, 315, 3, 2, 2, 2, 315, 322, 3, 2, 2, 2, 316, 317, 7, 61, 2, 2, 317, 319, 5, 22, 12, 2, 318, 320, 7, 58, 2, 2, 319, 318, 3, 2, 2, 2, 319, 320, 3, 2, 2, 2, 320, 322, 3, 2, 2, 2, 321, 240, 3, 2, 2, 2, 321, 291, 3, 2, 2, 2, 321, 316, 3, 2, 2, 2, 322, 21, 3, 2, 2, 2, 323, 326, 7, 44, 2, 2, 324, 325, 7, 59, 2, 2, 325, 327, 5, 100, 51, 2, 326, 324, 3, 2, 2, 2, 326, 327, 3, 2, 2, 2, 327, 23, 3, 2, 2, 2, 328, 331, 5, 26, 14, 2, 329, 330, 7, 62, 2, 2, 330, 332, 5, 100, 51, 2, 331, 329, 3, 2, 2, 2, 331, 332, 3, 2, 2, 2, 332, 341, 3, 2, 2, 2, 333, 334, 7, 58, 2, 2, 334, 337, 5, 26, 14, 2, 335, 336, 7, 62, 2, 2, 336, 338, 5, 100, 51, 2, 337, 335, 3, 2, 2, 2, 337, 338, 3, 2, 2, 2, 338, 340, 3, 2, 2, 2, 339, 333, 3, 2, 2, 2, 340, 343, 3, 2, 2, 2, 341, 339, 3, 2, 2, 2, 341, 342, 3, 2, 2, 2, 342, 377, 3, 2, 2, 2, 343, 341, 3, 2, 2, 2, 344, 375, 7, 58, 2, 2, 345, 347, 7, 55, 2, 2, 346, 348, 5, 26, 14, 2, 347, 346, 3, 2, 2, 2, 347, 348, 3, 2, 2, 2, 348, 357, 3, 2, 2, 2, 349, 350, 7, 58, 2, 2, 350, 353, 5, 26, 14, 2, 351, 352, 7, 62, 2, 2, 352, 354, 5, 100, 51, 2, 353, 351, 3, 2, 2, 2, 353, 354, 3, 2, 2, 2, 354, 356, 3, 2, 2, 2, 355, 349, 3, 2, 2, 2, 356, 359, 3, 2, 2, 2, 357, 355, 3, 2, 2, 2, 357, 358, 3, 2, 2, 2, 358, 368, 3, 2, 2, 2, 359, 357, 3, 2, 2, 2, 360, 366, 7, 58, 2, 2, 361, 362, 7, 61, 2, 2, 362, 364, 5, 26, 14, 2, 363, 365, 7, 58, 2, 2, 364, 363, 3, 2, 2, 2, 364, 365, 3, 2, 2, 2, 365, 367, 3, 2, 2, 2, 366, 361, 3, 2, 2, 2, 366, 367, 3, 2, 2, 2, 367, 369, 3, 2, 2, 2, 368, 360, 3, 2, 2, 2, 368, 369, 3, 2, 2, 2, 369, 376, 3, 2, 2, 2, 370, 371, 7, 61, 2, 2, 371, 373, 5, 26, 14, 2, 372, 374, 7, 58, 2, 2, 373, 372, 3, 2, 2, 2, 373, 374, 3, 2, 2, 2, 374, 376, 3, 2, 2, 2, 375, 345, 3, 2, 2, 2, 375, 370, 3, 2, 2, 2, 375, 376, 3, 2, 2, 2, 376, 378, 3, 2, 2, 2, 377, 344, 3, 2, 2, 2, 377, 378, 3, 2, 2, 2, 378, 410, 3, 2, 2, 2, 379, 381, 7, 55, 2, 2, 380, 382, 5, 26, 14, 2, 381, 380, 3, 2, 2, 2, 381, 382, 3, 2, 2, 2, 382, 391, 3, 2, 2, 2, 383, 384, 7, 58, 2, 2, 384, 387, 5, 26, 14, 2, 385, 386, 7, 62, 2, 2, 386, 388, 5, 100, 51, 2, 387, 385, 3, 2, 2, 2, 387, 388, 3, 2, 2, 2, 388, 390, 3, 2, 2, 2, 389, 383, 3, 2, 2, 2, 390, 393, 3, 2, 2, 2, 391, 389, 3, 2, 2, 2, 391, 392, 3, 2, 2, 2, 392, 402, 3, 2, 2, 2, 393, 391, 3, 2, 2, 2, 394, 400, 7, 58, 2, 2, 395, 396, 7, 61, 2, 2, 396, 398, 5, 26, 14, 2, 397, 399, 7, 58, 2, 2, 398, 397, 3, 2, 2, 2, 398, 399, 3, 2, 2, 2, 399, 401, 3, 2, 2, 2, 400, 395, 3, 2, 2, 2, 400, 401, 3, 2, 2, 2, 401, 403, 3, 2, 2, 2, 402, 394, 3, 2, 2, 2, 402, 403, 3, 2, 2, 2, 403, 410, 3, 2, 2, 2, 404, 405, 7, 61, 2, 2, 405, 407, 5, 26, 14, 2, 406, 408, 7, 58, 2, 2, 407, 406, 3, 2, 2, 2, 407, 408, 3, 2, 2, 2, 408, 410, 3, 2, 2, 2, 409, 328, 3, 2, 2, 2, 409, 379, 3, 2, 2, 2, 409, 404, 3, 2, 2, 2, 410, 25, 3, 2, 2, 2, 411, 412, 7, 44, 2, 2, 412, 27, 3, 2, 2, 2, 413, 416, 5, 30, 16, 2, 414, 416, 5, 80, 41, 2, 415, 413, 3, 2, 2, 2, 415, 414, 3, 2, 2, 2, 416, 29, 3, 2, 2, 2, 417, 422, 5, 32, 17, 2, 418, 419, 7, 60, 2, 2, 419, 421, 5, 32, 17, 2, 420, 418, 3, 2, 2, 2, 421, 424, 3, 2, 2, 2, 422, 420, 3, 2, 2, 2, 422, 423, 3, 2, 2, 2, 423, 426, 3, 2, 2, 2, 424, 422, 3, 2, 2, 2, 425, 427, 7, 60, 2, 2, 426, 425, 3, 2, 2, 2, 426, 427, 3, 2, 2, 2, 427, 428, 3, 2, 2, 2, 428, 429, 7, 43, 2, 2, 429, 31, 3, 2, 2, 2, 430, 439, 5, 34, 18, 2, 431, 439, 5, 42, 22, 2, 432, 439, 5, 44, 23, 2, 433, 439, 5, 46, 24, 2, 434, 439, 5, 58, 30, 2, 435, 439, 5, 74, 38, 2, 436, 439, 5, 76, 39, 2, 437, 439, 5, 78, 40, 2, 438, 430, 3, 2, 2, 2, 438, 431, 3, 2, 2, 2, 438, 432, 3, 2, 2, 2, 438, 433, 3, 2, 2, 2, 438, 434, 3, 2, 2, 2, 438, 435, 3, 2, 2, 2, 438, 436, 3, 2, 2, 2, 438, 437, 3, 2, 2, 2, 439, 33, 3, 2, 2, 2, 440, 457, 5, 38, 20, 2, 441, 458, 5, 36, 19, 2, 442, 445, 5, 40, 21, 2, 443, 446, 5, 170, 86, 2, 444, 446, 5, 152, 77, 2, 445, 443, 3, 2, 2, 2, 445, 444, 3, 2, 2, 2, 446, 458, 3, 2, 2, 2, 447, 450, 7, 62, 2, 2, 448, 451, 5, 170, 86, 2, 449, 451, 5, 38, 20, 2, 450, 448, 3, 2, 2, 2, 450, 449, 3, 2, 2, 2, 451, 453, 3, 2, 2, 2, 452, 447, 3, 2, 2, 2, 453, 456, 3, 2, 2, 2, 454, 452, 3, 2, 2, 2, 454, 455, 3, 2, 2, 2, 455, 458, 3, 2, 2, 2, 456, 454, 3, 2, 2, 2, 457, 441, 3, 2, 2, 2, 457, 442, 3, 2, 2, 2, 457, 454, 3, 2, 2, 2, 458, 35, 3, 2, 2, 2, 459, 460, 7, 59, 2, 2, 460, 463, 5, 100, 51, 2, 461, 462, 7, 62, 2, 2, 462, 464, 5, 100, 51, 2, 463, 461, 3, 2, 2, 2, 463, 464, 3, 2, 2, 2, 464, 37, 3, 2, 2, 2, 465, 468, 5, 100, 51, 2, 466, 468, 5, 118, 60, 2, 467, 465, 3, 2, 2, 2, 467, 466, 3, 2, 2, 2, 468, 476, 3, 2, 2, 2, 469, 472, 7, 58, 2, 2, 470, 473, 5, 100, 51, 2, 471, 473, 5, 118, 60, 2, 472, 470, 3, 2, 2, 2, 472, 471, 3, 2, 2, 2, 473, 475, 3, 2, 2, 2, 474, 469, 3, 2, 2, 2, 475, 478, 3, 2, 2, 2, 476, 474, 3, 2, 2, 2, 476, 477, 3, 2, 2, 2, 477, 480, 3, 2, 2, 2, 478, 476, 3, 2, 2, 2, 479, 481, 7, 58, 2, 2, 480, 479, 3, 2, 2, 2, 480, 481, 3, 2, 2, 2, 481, 39, 3, 2, 2, 2, 482, 483, 9, 2, 2, 2, 483, 41, 3, 2, 2, 2, 484, 485, 7, 37, 2, 2, 485, 486, 5, 150, 76, 2, 486, 43, 3, 2, 2, 2, 487, 488, 7, 38, 2, 2, 488, 45, 3, 2, 2, 2, 489, 495, 5, 48, 25, 2, 490, 495, 5, 50, 26, 2, 491, 495, 5, 52, 27, 2, 492, 495, 5, 56, 29, 2, 493, 495, 5, 54, 28, 2, 494, 489, 3, 2, 2, 2, 494, 490, 3, 2, 2, 2, 494, 491, 3, 2, 2, 2, 494, 492, 3, 2, 2, 2, 494, 493, 3, 2, 2, 2, 495, 47, 3, 2, 2, 2, 496, 497, 7, 40, 2, 2, 497, 49, 3, 2, 2, 2, 498, 499, 7, 39, 2, 2, 499, 51, 3, 2, 2, 2, 500, 502, 7, 9, 2, 2, 501, 503, 5, 152, 77, 2, 502, 501, 3, 2, 2, 2, 502, 503, 3, 2, 2, 2, 503, 53, 3, 2, 2, 2, 504, 505, 5, 170, 86, 2, 505, 55, 3, 2, 2, 2, 506, 512, 7, 10, 2, 2, 507, 510, 5, 100, 51, 2, 508, 509, 7, 11, 2, 2, 509, 511, 5, 100, 51, 2, 510, 508, 3, 2, 2, 2, 510, 511, 3, 2, 2, 2, 511, 513, 3, 2, 2, 2, 512, 507, 3, 2, 2, 2, 512, 513, 3, 2, 2, 2, 513, 57, 3, 2, 2, 2, 514, 517, 5, 60, 31, 2, 515, 517, 5, 62, 32, 2, 516, 514, 3, 2, 2, 2, 516, 515, 3, 2, 2, 2, 517, 59, 3, 2, 2, 2, 518, 519, 7, 12, 2, 2, 519, 520, 5, 70, 36, 2, 520, 61, 3, 2, 2, 2, 521, 534, 7, 11, 2, 2, 522, 524, 9, 3, 2, 2, 523, 522, 3, 2, 2, 2, 524, 527, 3, 2, 2, 2, 525, 523, 3, 2, 2, 2, 525, 526, 3, 2, 2, 2, 526, 528, 3, 2, 2, 2, 527, 525, 3, 2, 2, 2, 528, 535, 5, 72, 37, 2, 529, 531, 9, 3, 2, 2, 530, 529, 3, 2, 2, 2, 531, 532, 3, 2, 2, 2, 532, 530, 3, 2, 2, 2, 532, 533, 3, 2, 2, 2, 533, 535, 3, 2, 2, 2, 534, 525, 3, 2, 2, 2, 534, 530, 3, 2, 2, 2, 535, 536, 3, 2, 2, 2, 536, 543, 7, 12, 2, 2, 537, 544, 7, 55, 2, 2, 538, 539, 7, 56, 2, 2, 539, 540, 5, 68, 35, 2, 540, 541, 7, 57, 2, 2, 541, 544, 3, 2, 2, 2, 542, 544, 5, 68, 35, 2, 543, 537, 3, 2, 2, 2, 543, 538, 3, 2, 2, 2, 543, 542, 3, 2, 2, 2, 544, 63, 3, 2, 2, 2, 545, 548, 7, 44, 2, 2, 546, 547, 7, 13, 2, 2, 547, 549, 7, 44, 2, 2, 548, 546, 3, 2, 2, 2, 548, 549, 3, 2, 2, 2, 549, 65, 3, 2, 2, 2, 550, 553, 5, 72, 37, 2, 551, 552, 7, 13, 2, 2, 552, 554, 7, 44, 2, 2, 553, 551, 3, 2, 2, 2, 553, 554, 3, 2, 2, 2, 554, 67, 3, 2, 2, 2, 555, 560, 5, 64, 33, 2, 556, 557, 7, 58, 2, 2, 557, 559, 5, 64, 33, 2, 558, 556, 3, 2, 2, 2, 559, 562, 3, 2, 2, 2, 560, 558, 3, 2, 2, 2, 560, 561, 3, 2, 2, 2, 561, 564, 3, 2, 2, 2, 562, 560, 3, 2, 2, 2, 563, 565, 7, 58, 2, 2, 564, 563, 3, 2, 2, 2, 564, 565, 3, 2, 2, 2, 565, 69, 3, 2, 2, 2, 566, 571, 5, 66, 34, 2, 567, 568, 7, 58, 2, 2, 568, 570, 5, 66, 34, 2, 569, 567, 3, 2, 2, 2, 570, 573, 3, 2, 2, 2, 571, 569, 3, 2, 2, 2, 571, 572, 3, 2, 2, 2, 572, 71, 3, 2, 2, 2, 573, 571, 3, 2, 2, 2, 574, 579, 7, 44, 2, 2, 575, 576, 7, 53, 2, 2, 576, 578, 7, 44, 2, 2, 577, 575, 3, 2, 2, 2, 578, 581, 3, 2, 2, 2, 579, 577, 3, 2, 2, 2, 579, 580, 3, 2, 2, 2, 580, 73, 3, 2, 2, 2, 581, 579, 3, 2, 2, 2, 582, 583, 7, 14, 2, 2, 583, 588, 7, 44, 2, 2, 584, 585, 7, 58, 2, 2, 585, 587, 7, 44, 2, 2, 586, 584, 3, 2, 2, 2, 587, 590, 3, 2, 2, 2, 588, 586, 3, 2, 2, 2, 588, 589, 3, 2, 2, 2, 589, 75, 3, 2, 2, 2, 590, 588, 3, 2, 2, 2, 591, 592, 7, 15, 2, 2, 592, 597, 7, 44, 2, 2, 593, 594, 7, 58, 2, 2, 594, 596, 7, 44, 2, 2, 595, 593, 3, 2, 2, 2, 596, 599, 3, 2, 2, 2, 597, 595, 3, 2, 2, 2, 597, 598, 3, 2, 2, 2, 598, 77, 3, 2, 2, 2, 599, 597, 3, 2, 2, 2, 600, 601, 7, 16, 2, 2, 601, 604, 5, 100, 51, 2, 602, 603, 7, 58, 2, 2, 603, 605, 5, 100, 51, 2, 604, 602, 3, 2, 2, 2, 604, 605, 3, 2, 2, 2, 605, 79, 3, 2, 2, 2, 606, 616, 5, 84, 43, 2, 607, 616, 5, 86, 44, 2, 608, 616, 5, 88, 45, 2, 609, 616, 5, 90, 46, 2, 610, 616, 5, 92, 47, 2, 611, 616, 5, 16, 9, 2, 612, 616, 5, 156, 79, 2, 613, 616, 5, 12, 7, 2, 614, 616, 5, 82, 42, 2, 615, 606, 3, 2, 2, 2, 615, 607, 3, 2, 2, 2, 615, 608, 3, 2, 2, 2, 615, 609, 3, 2, 2, 2, 615, 610, 3, 2, 2, 2, 615, 611, 3, 2, 2, 2, 615, 612, 3, 2, 2, 2, 615, 613, 3, 2, 2, 2, 615, 614, 3, 2, 2, 2, 616, 81, 3, 2, 2, 2, 617, 621, 7, 41, 2, 2, 618, 622, 5, 16, 9, 2, 619, 622, 5, 92, 47, 2, 620, 622, 5, 88, 45, 2, 621, 618, 3, 2, 2, 2, 621, 619, 3, 2, 2, 2, 621, 620, 3, 2, 2, 2, 622, 83, 3, 2, 2, 2, 623, 624, 7, 17, 2, 2, 624, 625, 5, 100, 51, 2, 625, 626, 7, 59, 2, 2, 626, 634, 5, 98, 50, 2, 627, 628, 7, 18, 2, 2, 628, 629, 5, 100, 51, 2, 629, 630, 7, 59, 2, 2, 630, 631, 5, 98, 50, 2, 631, 633, 3, 2, 2, 2, 632, 627, 3, 2, 2, 2, 633, 636, 3, 2, 2, 2, 634, 632, 3, 2, 2, 2, 634, 635, 3, 2, 2, 2, 635, 640, 3, 2, 2, 2, 636, 634, 3, 2, 2, 2, 637, 638, 7, 19, 2, 2, 638, 639, 7, 59, 2, 2, 639, 641, 5, 98, 50, 2, 640, 637, 3, 2, 2, 2, 640, 641, 3, 2, 2, 2, 641, 85, 3, 2, 2, 2, 642, 643, 7, 20, 2, 2, 643, 644, 5, 100, 51, 2, 644, 645, 7, 59, 2, 2, 645, 649, 5, 98, 50, 2, 646, 647, 7, 19, 2, 2, 647, 648, 7, 59, 2, 2, 648, 650, 5, 98, 50, 2, 649, 646, 3, 2, 2, 2, 649, 650, 3, 2, 2, 2, 650, 87, 3, 2, 2, 2, 651, 652, 7, 21, 2, 2, 652, 653, 5, 150, 76, 2, 653, 654, 7, 22, 2, 2, 654, 655, 5, 152, 77, 2, 655, 656, 7, 59, 2, 2, 656, 660, 5, 98, 50, 2, 657, 658, 7, 19, 2, 2, 658, 659, 7, 59, 2, 2, 659, 661, 5, 98, 50, 2, 660, 657, 3, 2, 2, 2, 660, 661, 3, 2, 2, 2, 661, 89, 3, 2, 2, 2, 662, 663, 7, 23, 2, 2, 663, 664, 7, 59, 2, 2, 664, 686, 5, 98, 50, 2, 665, 666, 5, 96, 49, 2, 666, 667, 7, 59, 2, 2, 667, 668, 5, 98, 50, 2, 668, 670, 3, 2, 2, 2, 669, 665, 3, 2, 2, 2, 670, 671, 3, 2, 2, 2, 671, 669, 3, 2, 2, 2, 671, 672, 3, 2, 2, 2, 672, 676, 3, 2, 2, 2, 673, 674, 7, 19, 2, 2, 674, 675, 7, 59, 2, 2, 675, 677, 5, 98, 50, 2, 676, 673, 3, 2, 2, 2, 676, 677, 3, 2, 2, 2, 677, 681, 3, 2, 2, 2, 678, 679, 7, 24, 2, 2, 679, 680, 7, 59, 2, 2, 680, 682, 5, 98, 50, 2, 681, 678, 3, 2, 2, 2, 681, 682, 3, 2, 2, 2, 682, 687, 3, 2, 2, 2, 683, 684, 7, 24, 2, 2, 684, 685, 7, 59, 2, 2, 685, 687, 5, 98, 50, 2, 686, 669, 3, 2, 2, 2, 686, 683, 3, 2, 2, 2, 687, 91, 3, 2, 2, 2, 688, 689, 7, 25, 2, 2, 689, 694, 5, 94, 48, 2, 690, 691, 7, 58, 2, 2, 691, 693, 5, 94, 48, 2, 692, 690, 3, 2, 2, 2, 693, 696, 3, 2, 2, 2, 694, 692, 3, 2, 2, 2, 694, 695, 3, 2, 2, 2, 695, 697, 3, 2, 2, 2, 696, 694, 3, 2, 2, 2, 697, 698, 7, 59, 2, 2, 698, 699, 5, 98, 50, 2, 699, 93, 3, 2, 2, 2, 700, 703, 5, 100, 51, 2, 701, 702, 7, 13, 2, 2, 702, 704, 5, 120, 61, 2, 703, 701, 3, 2, 2, 2, 703, 704, 3, 2, 2, 2, 704, 95, 3, 2, 2, 2, 705, 711, 7, 26, 2, 2, 706, 709, 5, 100, 51, 2, 707, 708, 7, 13, 2, 2, 708, 710, 7, 44, 2, 2, 709, 707, 3, 2, 2, 2, 709, 710, 3, 2, 2, 2, 710, 712, 3, 2, 2, 2, 711, 706, 3, 2, 2, 2, 711, 712, 3, 2, 2, 2, 712, 97, 3, 2, 2, 2, 713, 724, 5, 30, 16, 2, 714, 715, 7, 43, 2, 2, 715, 717, 7, 3, 2, 2, 716, 718, 5, 28, 15, 2, 717, 716, 3, 2, 2, 2, 718, 719, 3, 2, 2, 2, 719, 717, 3, 2, 2, 2, 719, 720, 3, 2, 2, 2, 720, 721, 3, 2, 2, 2, 721, 722, 7, 4, 2, 2, 722, 724, 3, 2, 2, 2, 723, 713, 3, 2, 2, 2, 723, 714, 3, 2, 2, 2, 724, 99, 3, 2, 2, 2, 725, 731, 5, 108, 55, 2, 726, 727, 7, 17, 2, 2, 727, 728, 5, 108, 55, 2, 728, 729, 7, 19, 2, 2, 729, 730, 5, 100, 51, 2, 730, 732, 3, 2, 2, 2, 731, 726, 3, 2, 2, 2, 731, 732, 3, 2, 2, 2, 732, 735, 3, 2, 2, 2, 733, 735, 5, 104, 53, 2, 734, 725, 3, 2, 2, 2, 734, 733, 3, 2, 2, 2, 735, 101, 3, 2, 2, 2, 736, 739, 5, 108, 55, 2, 737, 739, 5, 106, 54, 2, 738, 736, 3, 2, 2, 2, 738, 737, 3, 2, 2, 2, 739, 103, 3, 2, 2, 2, 740, 742, 7, 27, 2, 2, 741, 743, 5, 24, 13, 2, 742, 741, 3, 2, 2, 2, 742, 743, 3, 2, 2, 2, 743, 744, 3, 2, 2, 2, 744, 745, 7, 59, 2, 2, 745, 746, 5, 100, 51, 2, 746, 105, 3, 2, 2, 2, 747, 749, 7, 27, 2, 2, 748, 750, 5, 24, 13, 2, 749, 748, 3, 2, 2, 2, 749, 750, 3, 2, 2, 2, 750, 751, 3, 2, 2, 2, 751, 752, 7, 59, 2, 2, 752, 753, 5, 102, 52, 2, 753, 107, 3, 2, 2, 2, 754, 759, 5, 110, 56, 2, 755, 756, 7, 28, 2, 2, 756, 758, 5, 110, 56, 2, 757, 755, 3, 2, 2, 2, 758, 761, 3, 2, 2, 2, 759, 757, 3, 2, 2, 2, 759, 760, 3, 2, 2, 2, 760, 109, 3, 2, 2, 2, 761, 759, 3, 2, 2, 2, 762, 767, 5, 112, 57, 2, 763, 764, 7, 29, 2, 2, 764, 766, 5, 112, 57, 2, 765, 763, 3, 2, 2, 2, 766, 769, 3, 2, 2, 2, 767, 765, 3, 2, 2, 2, 767, 768, 3, 2, 2, 2, 768, 111, 3, 2, 2, 2, 769, 767, 3, 2, 2, 2, 770, 771, 7, 30, 2, 2, 771, 774, 5, 112, 57, 2, 772, 774, 5, 114, 58, 2, 773, 770, 3, 2, 2, 2, 773, 772, 3, 2, 2, 2, 774, 113, 3, 2, 2, 2, 775, 781, 5, 120, 61, 2, 776, 777, 5, 116, 59, 2, 777, 778, 5, 120, 61, 2, 778, 780, 3, 2, 2, 2, 779, 776, 3, 2, 2, 2, 780, 783, 3, 2, 2, 2, 781, 779, 3, 2, 2, 2, 781, 782, 3, 2, 2, 2, 782, 115, 3, 2, 2, 2, 783, 781, 3, 2, 2, 2, 784, 798, 7, 78, 2, 2, 785, 798, 7, 79, 2, 2, 786, 798, 7, 80, 2, 2, 787, 798, 7, 81, 2, 2, 788, 798, 7, 82, 2, 2, 789, 798, 7, 83, 2, 2, 790, 798, 7, 84, 2, 2, 791, 798, 7, 22, 2, 2, 792, 793, 7, 30, 2, 2, 793, 798, 7, 22, 2, 2, 794, 798, 7, 31, 2, 2, 795, 796, 7, 31, 2, 2, 796, 798, 7, 30, 2, 2, 797, 784, 3, 2, 2, 2, 797, 785, 3, 2, 2, 2, 797, 786, 3, 2, 2, 2, 797, 787, 3, 2, 2, 2, 797, 788, 3, 2, 2, 2, 797, 789, 3, 2, 2, 2, 797, 790, 3, 2, 2, 2, 797, 791, 3, 2, 2, 2, 797, 792, 3, 2, 2, 2, 797, 794, 3, 2, 2, 2, 797, 795, 3, 2, 2, 2, 798, 117, 3, 2, 2, 2, 799, 800, 7, 55, 2, 2, 800, 801, 5, 120, 61, 2, 801, 119, 3, 2, 2, 2, 802, 807, 5, 122, 62, 2, 803, 804, 7, 65, 2, 2, 804, 806, 5, 122, 62, 2, 805, 803, 3, 2, 2, 2, 806, 809, 3, 2, 2, 2, 807, 805, 3, 2, 2, 2, 807, 808, 3, 2, 2, 2, 808, 121, 3, 2, 2, 2, 809, 807, 3, 2, 2, 2, 810, 815, 5, 124, 63, 2, 811, 812, 7, 66, 2, 2, 812, 814, 5, 124, 63, 2, 813, 811, 3, 2, 2, 2, 814, 817, 3, 2, 2, 2, 815, 813, 3, 2, 2, 2, 815, 816, 3, 2, 2, 2, 816, 123, 3, 2, 2, 2, 817, 815, 3, 2, 2, 2, 818, 823, 5, 126, 64, 2, 819, 820, 7, 67, 2, 2, 820, 822, 5, 126, 64, 2, 821, 819, 3, 2, 2, 2, 822, 825, 3, 2, 2, 2, 823, 821, 3, 2, 2, 2, 823, 824, 3, 2, 2, 2, 824, 125, 3, 2, 2, 2, 825, 823, 3, 2, 2, 2, 826, 831, 5, 128, 65, 2, 827, 828, 9, 4, 2, 2, 828, 830, 5, 128, 65, 2, 829, 827, 3, 2, 2, 2, 830, 833, 3, 2, 2, 2, 831, 829, 3, 2, 2, 2, 831, 832, 3, 2, 2, 2, 832, 127, 3, 2, 2, 2, 833, 831, 3, 2, 2, 2, 834, 839, 5, 130, 66, 2, 835, 836, 9, 5, 2, 2, 836, 838, 5, 130, 66, 2, 837, 835, 3, 2, 2, 2, 838, 841, 3, 2, 2, 2, 839, 837, 3, 2, 2, 2, 839, 840, 3, 2, 2, 2, 840, 129, 3, 2, 2, 2, 841, 839, 3, 2, 2, 2, 842, 847, 5, 132, 67, 2, 843, 844, 9, 6, 2, 2, 844, 846, 5, 132, 67, 2, 845, 843, 3, 2, 2, 2, 846, 849, 3, 2, 2, 2, 847, 845, 3, 2, 2, 2, 847, 848, 3, 2, 2, 2, 848, 131, 3, 2, 2, 2, 849, 847, 3, 2, 2, 2, 850, 851, 9, 7, 2, 2, 851, 854, 5, 132, 67, 2, 852, 854, 5, 134, 68, 2, 853, 850, 3, 2, 2, 2, 853, 852, 3, 2, 2, 2, 854, 133, 3, 2, 2, 2, 855, 858, 5, 136, 69, 2, 856, 857, 7, 61, 2, 2, 857, 859, 5, 132, 67, 2, 858, 856, 3, 2, 2, 2, 858, 859, 3, 2, 2, 2, 859, 135, 3, 2, 2, 2, 860, 862, 7, 42, 2, 2, 861, 860, 3, 2, 2, 2, 861, 862, 3, 2, 2, 2, 862, 863, 3, 2, 2, 2, 863, 867, 5, 138, 70, 2, 864, 866, 5, 142, 72, 2, 865, 864, 3, 2, 2, 2, 866, 869, 3, 2, 2, 2, 867, 865, 3, 2, 2, 2, 867, 868, 3, 2, 2, 2, 868, 137, 3, 2, 2, 2, 869, 867, 3, 2, 2, 2, 870, 873, 7, 56, 2, 2, 871, 874, 5, 170, 86, 2, 872, 874, 5, 140, 71, 2, 873, 871, 3, 2, 2, 2, 873, 872, 3, 2, 2, 2, 873, 874, 3, 2, 2, 2, 874, 875, 3, 2, 2, 2, 875, 898, 7, 57, 2, 2, 876, 878, 7, 63, 2, 2, 877, 879, 5, 140, 71, 2, 878, 877, 3, 2, 2, 2, 878, 879, 3, 2, 2, 2, 879, 880, 3, 2, 2, 2, 880, 898, 7, 64, 2, 2, 881, 883, 7, 76, 2, 2, 882, 884, 5, 154, 78, 2, 883, 882, 3, 2, 2, 2, 883, 884, 3, 2, 2, 2, 884, 885, 3, 2, 2, 2, 885, 898, 7, 77, 2, 2, 886, 898, 7, 44, 2, 2, 887, 898, 7, 6, 2, 2, 888, 890, 7, 5, 2, 2, 889, 888, 3, 2, 2, 2, 890, 891, 3, 2, 2, 2, 891, 889, 3, 2, 2, 2, 891, 892, 3, 2, 2, 2, 892, 898, 3, 2, 2, 2, 893, 898, 7, 54, 2, 2, 894, 898, 7, 32, 2, 2, 895, 898, 7, 33, 2, 2, 896, 898, 7, 34, 2, 2, 897, 870, 3, 2, 2, 2, 897, 876, 3, 2, 2, 2, 897, 881, 3, 2, 2, 2, 897, 886, 3, 2, 2, 2, 897, 887, 3, 2, 2, 2, 897, 889, 3, 2, 2, 2, 897, 893, 3, 2, 2, 2, 897, 894, 3, 2, 2, 2, 897, 895, 3, 2, 2, 2, 897, 896, 3, 2, 2, 2, 898, 139, 3, 2, 2, 2, 899, 902, 5, 100, 51, 2, 900, 902, 5, 118, 60, 2, 901, 899, 3, 2, 2, 2, 901, 900, 3, 2, 2, 2, 902, 917, 3, 2, 2, 2, 903, 918, 5, 164, 83, 2, 904, 907, 7, 58, 2, 2, 905, 908, 5, 100, 51, 2, 906, 908, 5, 118, 60, 2, 907, 905, 3, 2, 2, 2, 907, 906, 3, 2, 2, 2, 908, 910, 3, 2, 2, 2, 909, 904, 3, 2, 2, 2, 910, 913, 3, 2, 2, 2, 911, 909, 3, 2, 2, 2, 911, 912, 3, 2, 2, 2, 912, 915, 3, 2, 2, 2, 913, 911, 3, 2, 2, 2, 914, 916, 7, 58, 2, 2, 915, 914, 3, 2, 2, 2, 915, 916, 3, 2, 2, 2, 916, 918, 3, 2, 2, 2, 917, 903, 3, 2, 2, 2, 917, 911, 3, 2, 2, 2, 918, 141, 3, 2, 2, 2, 919, 921, 7, 56, 2, 2, 920, 922, 5, 158, 80, 2, 921, 920, 3, 2, 2, 2, 921, 922, 3, 2, 2, 2, 922, 923, 3, 2, 2, 2, 923, 931, 7, 57, 2, 2, 924, 925, 7, 63, 2, 2, 925, 926, 5, 144, 73, 2, 926, 927, 7, 64, 2, 2, 927, 931, 3, 2, 2, 2, 928, 929, 7, 53, 2, 2, 929, 931, 7, 44, 2, 2, 930, 919, 3, 2, 2, 2, 930, 924, 3, 2, 2, 2, 930, 928, 3, 2, 2, 2, 931, 143, 3, 2, 2, 2, 932, 937, 5, 146, 74, 2, 933, 934, 7, 58, 2, 2, 934, 936, 5, 146, 74, 2, 935, 933, 3, 2, 2, 2, 936, 939, 3, 2, 2, 2, 937, 935, 3, 2, 2, 2, 937, 938, 3, 2, 2, 2, 938, 941, 3, 2, 2, 2, 939, 937, 3, 2, 2, 2, 940, 942, 7, 58, 2, 2, 941, 940, 3, 2, 2, 2, 941, 942, 3, 2, 2, 2, 942, 145, 3, 2, 2, 2, 943, 955, 5, 100, 51, 2, 944, 946, 5, 100, 51, 2, 945, 944, 3, 2, 2, 2, 945, 946, 3, 2, 2, 2, 946, 947, 3, 2, 2, 2, 947, 949, 7, 59, 2, 2, 948, 950, 5, 100, 51, 2, 949, 948, 3, 2, 2, 2, 949, 950, 3, 2, 2, 2, 950, 952, 3, 2, 2, 2, 951, 953, 5, 148, 75, 2, 952, 951, 3, 2, 2, 2, 952, 953, 3, 2, 2, 2, 953, 955, 3, 2, 2, 2, 954, 943, 3, 2, 2, 2, 954, 945, 3, 2, 2, 2, 955, 147, 3, 2, 2, 2, 956, 958, 7, 59, 2, 2, 957, 959, 5, 100, 51, 2, 958, 957, 3, 2, 2, 2, 958, 959, 3, 2, 2, 2, 959, 149, 3, 2, 2, 2, 960, 963, 5, 120, 61, 2, 961, 963, 5, 118, 60, 2, 962, 960, 3, 2, 2, 2, 962, 961, 3, 2, 2, 2, 963, 971, 3, 2, 2, 2, 964, 967, 7, 58, 2, 2, 965, 968, 5, 120, 61, 2, 966, 968, 5, 118, 60, 2, 967, 965, 3, 2, 2, 2, 967, 966, 3, 2, 2, 2, 968, 970, 3, 2, 2, 2, 969, 964, 3, 2, 2, 2, 970, 973, 3, 2, 2, 2, 971, 969, 3, 2, 2, 2, 971, 972, 3, 2, 2, 2, 972, 975, 3, 2, 2, 2, 973, 971, 3, 2, 2, 2, 974, 976, 7, 58, 2, 2, 975, 974, 3, 2, 2, 2, 975, 976, 3, 2, 2, 2, 976, 151, 3, 2, 2, 2, 977, 982, 5, 100, 51, 2, 978, 979, 7, 58, 2, 2, 979, 981, 5, 100, 51, 2, 980, 978, 3, 2, 2, 2, 981, 984, 3, 2, 2, 2, 982, 980, 3, 2, 2, 2, 982, 983, 3, 2, 2, 2, 983, 986, 3, 2, 2, 2, 984, 982, 3, 2, 2, 2, 985, 987, 7, 58, 2, 2, 986, 985, 3, 2, 2, 2, 986, 987, 3, 2, 2, 2, 987, 153, 3, 2, 2, 2, 988, 989, 5, 100, 51, 2, 989, 990, 7, 59, 2, 2, 990, 991, 5, 100, 51, 2, 991, 995, 3, 2, 2, 2, 992, 993, 7, 61, 2, 2, 993, 995, 5, 120, 61, 2, 994, 988, 3, 2, 2, 2, 994, 992, 3, 2, 2, 2, 995, 1014, 3, 2, 2, 2, 996, 1015, 5, 164, 83, 2, 997, 1004, 7, 58, 2, 2, 998, 999, 5, 100, 51, 2, 999, 1000, 7, 59, 2, 2, 1000, 1001, 5, 100, 51, 2, 1001, 1005, 3, 2, 2, 2, 1002, 1003, 7, 61, 2, 2, 1003, 1005, 5, 120, 61, 2, 1004, 998, 3, 2, 2, 2, 1004, 1002, 3, 2, 2, 2, 1005, 1007, 3, 2, 2, 2, 1006, 997, 3, 2, 2, 2, 1007, 1010, 3, 2, 2, 2, 1008, 1006, 3, 2, 2, 2, 1008, 1009, 3, 2, 2, 2, 1009, 1012, 3, 2, 2, 2, 1010, 1008, 3, 2, 2, 2, 1011, 1013, 7, 58, 2, 2, 1012, 1011, 3, 2, 2, 2, 1012, 1013, 3, 2, 2, 2, 1013, 1015, 3, 2, 2, 2, 1014, 996, 3, 2, 2, 2, 1014, 1008, 3, 2, 2, 2, 1015, 1037, 3, 2, 2, 2, 1016, 1019, 5, 100, 51, 2, 1017, 1019, 5, 118, 60, 2, 1018, 1016, 3, 2, 2, 2, 1018, 1017, 3, 2, 2, 2, 1019, 1034, 3, 2, 2, 2, 1020, 1035, 5, 164, 83, 2, 1021, 1024, 7, 58, 2, 2, 1022, 1025, 5, 100, 51, 2, 1023, 1025, 5, 118, 60, 2, 1024, 1022, 3, 2, 2, 2, 1024, 1023, 3, 2, 2, 2, 1025, 1027, 3, 2, 2, 2, 1026, 1021, 3, 2, 2, 2, 1027, 1030, 3, 2, 2, 2, 1028, 1026, 3, 2, 2, 2, 1028, 1029, 3, 2, 2, 2, 1029, 1032, 3, 2, 2, 2, 1030, 1028, 3, 2, 2, 2, 1031, 1033, 7, 58, 2, 2, 1032, 1031, 3, 2, 2, 2, 1032, 1033, 3, 2, 2, 2, 1033, 1035, 3, 2, 2, 2, 1034, 1020, 3, 2, 2, 2, 1034, 1028, 3, 2, 2, 2, 1035, 1037, 3, 2, 2, 2, 1036, 994, 3, 2, 2, 2, 1036, 1018, 3, 2, 2, 2, 1037, 155, 3, 2, 2, 2, 1038, 1039, 7, 35, 2, 2, 1039, 1045, 7, 44, 2, 2, 1040, 1042, 7, 56, 2, 2, 1041, 1043, 5, 158, 80, 2, 1042, 1041, 3, 2, 2, 2, 1042, 1043, 3, 2, 2, 2, 1043, 1044, 3, 2, 2, 2, 1044, 1046, 7, 57, 2, 2, 1045, 1040, 3, 2, 2, 2, 1045, 1046, 3, 2, 2, 2, 1046, 1047, 3, 2, 2, 2, 1047, 1048, 7, 59, 2, 2, 1048, 1049, 5, 98, 50, 2, 1049, 157, 3, 2, 2, 2, 1050, 1055, 5, 160, 81, 2, 1051, 1052, 7, 58, 2, 2, 1052, 1054, 5, 160, 81, 2, 1053, 1051, 3, 2, 2, 2, 1054, 1057, 3, 2, 2, 2, 1055, 1053, 3, 2, 2, 2, 1055, 1056, 3, 2, 2, 2, 1056, 1059, 3, 2, 2, 2, 1057, 1055, 3, 2, 2, 2, 1058, 1060, 7, 58, 2, 2, 1059, 1058, 3, 2, 2, 2, 1059, 1060, 3, 2, 2, 2, 1060, 159, 3, 2, 2, 2, 1061, 1063, 5, 100, 51, 2, 1062, 1064, 5, 164, 83, 2, 1063, 1062, 3, 2, 2, 2, 1063, 1064, 3, 2, 2, 2, 1064, 1074, 3, 2, 2, 2, 1065, 1066, 5, 100, 51, 2, 1066, 1067, 7, 62, 2, 2, 1067, 1068, 5, 100, 51, 2, 1068, 1074, 3, 2, 2, 2, 1069, 1070, 7, 61, 2, 2, 1070, 1074, 5, 100, 51, 2, 1071, 1072, 7, 55, 2, 2, 1072, 1074, 5, 100, 51, 2, 1073, 1061, 3, 2, 2, 2, 1073, 1065, 3, 2, 2, 2, 1073, 1069, 3, 2, 2, 2, 1073, 1071, 3, 2, 2, 2, 1074, 161, 3, 2, 2, 2, 1075, 1078, 5, 164, 83, 2, 1076, 1078, 5, 166, 84, 2, 1077, 1075, 3, 2, 2, 2, 1077, 1076, 3, 2, 2, 2, 1078, 163, 3, 2, 2, 2, 1079, 1081, 7, 41, 2, 2, 1080, 1079, 3, 2, 2, 2, 1080, 1081, 3, 2, 2, 2, 1081, 1082, 3, 2, 2, 2, 1082, 1083, 7, 21, 2, 2, 1083, 1084, 5, 150, 76, 2, 1084, 1085, 7, 22, 2, 2, 1085, 1087, 5, 108, 55, 2, 1086, 1088, 5, 162, 82, 2, 1087, 1086, 3, 2, 2, 2, 1087, 1088, 3, 2, 2, 2, 1088, 165, 3, 2, 2, 2, 1089, 1090, 7, 17, 2, 2, 1090, 1092, 5, 102, 52, 2, 1091, 1093, 5, 162, 82, 2, 1092, 1091, 3, 2, 2, 2, 1092, 1093, 3, 2, 2, 2, 1093, 167, 3, 2, 2, 2, 1094, 1095, 7, 44, 2, 2, 1095, 169, 3, 2, 2, 2, 1096, 1098, 7, 36, 2, 2, 1097, 1099, 5, 172, 87, 2, 1098, 1097, 3, 2, 2, 2, 1098, 1099, 3, 2, 2, 2, 1099, 171, 3, 2, 2, 2, 1100, 1101, 7, 11, 2, 2, 1101, 1104, 5, 100, 51, 2, 1102, 1104, 5, 152, 77, 2, 1103, 1100, 3, 2, 2, 2, 1103, 1102, 3, 2, 2, 2, 1104, 173, 3, 2, 2, 2, 168, 179, 183, 185, 194, 203, 206, 213, 219, 229, 236, 243, 249, 253, 259, 265, 269, 276, 278, 280, 285, 287, 289, 293, 299, 303, 310, 312, 314, 319, 321, 326, 331, 337, 341, 347, 353, 357, 364, 366, 368, 373, 375, 377, 381, 387, 391, 398, 400, 402, 407, 409, 415, 422, 426, 438, 445, 450, 454, 457, 463, 467, 472, 476, 480, 494, 502, 510, 512, 516, 525, 532, 534, 543, 548, 553, 560, 564, 571, 579, 588, 597, 604, 615, 621, 634, 640, 649, 660, 671, 676, 681, 686, 694, 703, 709, 711, 719, 723, 731, 734, 738, 742, 749, 759, 767, 773, 781, 797, 807, 815, 823, 831, 839, 847, 853, 858, 861, 867, 873, 878, 883, 891, 897, 901, 907, 911, 915, 917, 921, 930, 937, 941, 945, 949, 952, 954, 958, 962, 967, 971, 975, 982, 986, 994, 1004, 1008, 1012, 1014, 1018, 1024, 1028, 1032, 1034, 1036, 1042, 1045, 1055, 1059, 1063, 1073, 1077, 1080, 1087, 1092, 1098, 1103]
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
INDENT=1
|
|
2
|
+
DEDENT=2
|
|
3
|
+
STRING=3
|
|
4
|
+
NUMBER=4
|
|
5
|
+
INTEGER=5
|
|
6
|
+
DEF=6
|
|
7
|
+
RETURN=7
|
|
8
|
+
RAISE=8
|
|
9
|
+
FROM=9
|
|
10
|
+
IMPORT=10
|
|
11
|
+
AS=11
|
|
12
|
+
GLOBAL=12
|
|
13
|
+
NONLOCAL=13
|
|
14
|
+
ASSERT=14
|
|
15
|
+
IF=15
|
|
16
|
+
ELIF=16
|
|
17
|
+
ELSE=17
|
|
18
|
+
WHILE=18
|
|
19
|
+
FOR=19
|
|
20
|
+
IN=20
|
|
21
|
+
TRY=21
|
|
22
|
+
FINALLY=22
|
|
23
|
+
WITH=23
|
|
24
|
+
EXCEPT=24
|
|
25
|
+
LAMBDA=25
|
|
26
|
+
OR=26
|
|
27
|
+
AND=27
|
|
28
|
+
NOT=28
|
|
29
|
+
IS=29
|
|
30
|
+
NONE=30
|
|
31
|
+
TRUE=31
|
|
32
|
+
FALSE=32
|
|
33
|
+
CLASS=33
|
|
34
|
+
YIELD=34
|
|
35
|
+
DEL=35
|
|
36
|
+
PASS=36
|
|
37
|
+
CONTINUE=37
|
|
38
|
+
BREAK=38
|
|
39
|
+
ASYNC=39
|
|
40
|
+
AWAIT=40
|
|
41
|
+
NEWLINE=41
|
|
42
|
+
NAME=42
|
|
43
|
+
STRING_LITERAL=43
|
|
44
|
+
BYTES_LITERAL=44
|
|
45
|
+
DECIMAL_INTEGER=45
|
|
46
|
+
OCT_INTEGER=46
|
|
47
|
+
HEX_INTEGER=47
|
|
48
|
+
BIN_INTEGER=48
|
|
49
|
+
FLOAT_NUMBER=49
|
|
50
|
+
IMAG_NUMBER=50
|
|
51
|
+
DOT=51
|
|
52
|
+
ELLIPSIS=52
|
|
53
|
+
STAR=53
|
|
54
|
+
OPEN_PAREN=54
|
|
55
|
+
CLOSE_PAREN=55
|
|
56
|
+
COMMA=56
|
|
57
|
+
COLON=57
|
|
58
|
+
SEMI_COLON=58
|
|
59
|
+
POWER=59
|
|
60
|
+
ASSIGN=60
|
|
61
|
+
OPEN_BRACK=61
|
|
62
|
+
CLOSE_BRACK=62
|
|
63
|
+
OR_OP=63
|
|
64
|
+
XOR=64
|
|
65
|
+
AND_OP=65
|
|
66
|
+
LEFT_SHIFT=66
|
|
67
|
+
RIGHT_SHIFT=67
|
|
68
|
+
ADD=68
|
|
69
|
+
MINUS=69
|
|
70
|
+
DIV=70
|
|
71
|
+
MOD=71
|
|
72
|
+
IDIV=72
|
|
73
|
+
NOT_OP=73
|
|
74
|
+
OPEN_BRACE=74
|
|
75
|
+
CLOSE_BRACE=75
|
|
76
|
+
LESS_THAN=76
|
|
77
|
+
GREATER_THAN=77
|
|
78
|
+
EQUALS=78
|
|
79
|
+
GT_EQ=79
|
|
80
|
+
LT_EQ=80
|
|
81
|
+
NOT_EQ_1=81
|
|
82
|
+
NOT_EQ_2=82
|
|
83
|
+
AT=83
|
|
84
|
+
ARROW=84
|
|
85
|
+
ADD_ASSIGN=85
|
|
86
|
+
SUB_ASSIGN=86
|
|
87
|
+
MULT_ASSIGN=87
|
|
88
|
+
AT_ASSIGN=88
|
|
89
|
+
DIV_ASSIGN=89
|
|
90
|
+
MOD_ASSIGN=90
|
|
91
|
+
AND_ASSIGN=91
|
|
92
|
+
OR_ASSIGN=92
|
|
93
|
+
XOR_ASSIGN=93
|
|
94
|
+
LEFT_SHIFT_ASSIGN=94
|
|
95
|
+
RIGHT_SHIFT_ASSIGN=95
|
|
96
|
+
POWER_ASSIGN=96
|
|
97
|
+
IDIV_ASSIGN=97
|
|
98
|
+
SKIP_=98
|
|
99
|
+
UNKNOWN_CHAR=99
|
|
100
|
+
'def'=6
|
|
101
|
+
'return'=7
|
|
102
|
+
'raise'=8
|
|
103
|
+
'from'=9
|
|
104
|
+
'import'=10
|
|
105
|
+
'as'=11
|
|
106
|
+
'global'=12
|
|
107
|
+
'nonlocal'=13
|
|
108
|
+
'assert'=14
|
|
109
|
+
'if'=15
|
|
110
|
+
'elif'=16
|
|
111
|
+
'else'=17
|
|
112
|
+
'while'=18
|
|
113
|
+
'for'=19
|
|
114
|
+
'in'=20
|
|
115
|
+
'try'=21
|
|
116
|
+
'finally'=22
|
|
117
|
+
'with'=23
|
|
118
|
+
'except'=24
|
|
119
|
+
'lambda'=25
|
|
120
|
+
'or'=26
|
|
121
|
+
'and'=27
|
|
122
|
+
'not'=28
|
|
123
|
+
'is'=29
|
|
124
|
+
'None'=30
|
|
125
|
+
'True'=31
|
|
126
|
+
'False'=32
|
|
127
|
+
'class'=33
|
|
128
|
+
'yield'=34
|
|
129
|
+
'del'=35
|
|
130
|
+
'pass'=36
|
|
131
|
+
'continue'=37
|
|
132
|
+
'break'=38
|
|
133
|
+
'async'=39
|
|
134
|
+
'await'=40
|
|
135
|
+
'.'=51
|
|
136
|
+
'...'=52
|
|
137
|
+
'*'=53
|
|
138
|
+
'('=54
|
|
139
|
+
')'=55
|
|
140
|
+
','=56
|
|
141
|
+
':'=57
|
|
142
|
+
';'=58
|
|
143
|
+
'**'=59
|
|
144
|
+
'='=60
|
|
145
|
+
'['=61
|
|
146
|
+
']'=62
|
|
147
|
+
'|'=63
|
|
148
|
+
'^'=64
|
|
149
|
+
'&'=65
|
|
150
|
+
'<<'=66
|
|
151
|
+
'>>'=67
|
|
152
|
+
'+'=68
|
|
153
|
+
'-'=69
|
|
154
|
+
'/'=70
|
|
155
|
+
'%'=71
|
|
156
|
+
'//'=72
|
|
157
|
+
'~'=73
|
|
158
|
+
'{'=74
|
|
159
|
+
'}'=75
|
|
160
|
+
'<'=76
|
|
161
|
+
'>'=77
|
|
162
|
+
'=='=78
|
|
163
|
+
'>='=79
|
|
164
|
+
'<='=80
|
|
165
|
+
'<>'=81
|
|
166
|
+
'!='=82
|
|
167
|
+
'@'=83
|
|
168
|
+
'->'=84
|
|
169
|
+
'+='=85
|
|
170
|
+
'-='=86
|
|
171
|
+
'*='=87
|
|
172
|
+
'@='=88
|
|
173
|
+
'/='=89
|
|
174
|
+
'%='=90
|
|
175
|
+
'&='=91
|
|
176
|
+
'|='=92
|
|
177
|
+
'^='=93
|
|
178
|
+
'<<='=94
|
|
179
|
+
'>>='=95
|
|
180
|
+
'**='=96
|
|
181
|
+
'//='=97
|