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,59 @@
|
|
|
1
|
+
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
|
2
|
+
* Use of this file is governed by the BSD 3-clause license that
|
|
3
|
+
* can be found in the LICENSE.txt file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#pragma once
|
|
7
|
+
|
|
8
|
+
#include "DefaultErrorStrategy.h"
|
|
9
|
+
|
|
10
|
+
namespace antlr4 {
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* This implementation of {@link ANTLRErrorStrategy} responds to syntax errors
|
|
14
|
+
* by immediately canceling the parse operation with a
|
|
15
|
+
* {@link ParseCancellationException}. The implementation ensures that the
|
|
16
|
+
* {@link ParserRuleContext#exception} field is set for all parse tree nodes
|
|
17
|
+
* that were not completed prior to encountering the error.
|
|
18
|
+
*
|
|
19
|
+
* <p>
|
|
20
|
+
* This error strategy is useful in the following scenarios.</p>
|
|
21
|
+
*
|
|
22
|
+
* <ul>
|
|
23
|
+
* <li><strong>Two-stage parsing:</strong> This error strategy allows the first
|
|
24
|
+
* stage of two-stage parsing to immediately terminate if an error is
|
|
25
|
+
* encountered, and immediately fall back to the second stage. In addition to
|
|
26
|
+
* avoiding wasted work by attempting to recover from errors here, the empty
|
|
27
|
+
* implementation of {@link BailErrorStrategy#sync} improves the performance of
|
|
28
|
+
* the first stage.</li>
|
|
29
|
+
* <li><strong>Silent validation:</strong> When syntax errors are not being
|
|
30
|
+
* reported or logged, and the parse result is simply ignored if errors occur,
|
|
31
|
+
* the {@link BailErrorStrategy} avoids wasting work on recovering from errors
|
|
32
|
+
* when the result will be ignored either way.</li>
|
|
33
|
+
* </ul>
|
|
34
|
+
*
|
|
35
|
+
* <p>
|
|
36
|
+
* {@code myparser.setErrorHandler(new BailErrorStrategy());}</p>
|
|
37
|
+
*
|
|
38
|
+
* @see Parser#setErrorHandler(ANTLRErrorStrategy)
|
|
39
|
+
*/
|
|
40
|
+
class ANTLR4CPP_PUBLIC BailErrorStrategy : public DefaultErrorStrategy {
|
|
41
|
+
/// <summary>
|
|
42
|
+
/// Instead of recovering from exception {@code e}, re-throw it wrapped
|
|
43
|
+
/// in a <seealso cref="ParseCancellationException"/> so it is not caught by the
|
|
44
|
+
/// rule function catches. Use <seealso cref="Exception#getCause()"/> to get the
|
|
45
|
+
/// original <seealso cref="RecognitionException"/>.
|
|
46
|
+
/// </summary>
|
|
47
|
+
public:
|
|
48
|
+
virtual void recover(Parser *recognizer, std::exception_ptr e) override;
|
|
49
|
+
|
|
50
|
+
/// Make sure we don't attempt to recover inline; if the parser
|
|
51
|
+
/// successfully recovers, it won't throw an exception.
|
|
52
|
+
virtual Token* recoverInline(Parser *recognizer) override;
|
|
53
|
+
|
|
54
|
+
/// <summary>
|
|
55
|
+
/// Make sure we don't attempt to recover from problems in subrules. </summary>
|
|
56
|
+
virtual void sync(Parser *recognizer) override;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
} // namespace antlr4
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
|
2
|
+
* Use of this file is governed by the BSD 3-clause license that
|
|
3
|
+
* can be found in the LICENSE.txt file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#include "BaseErrorListener.h"
|
|
7
|
+
#include "RecognitionException.h"
|
|
8
|
+
|
|
9
|
+
using namespace antlr4;
|
|
10
|
+
|
|
11
|
+
void BaseErrorListener::syntaxError(Recognizer * /*recognizer*/, Token * /*offendingSymbol*/, size_t /*line*/,
|
|
12
|
+
size_t /*charPositionInLine*/, const std::string &/*msg*/, std::exception_ptr /*e*/) {
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
void BaseErrorListener::reportAmbiguity(Parser * /*recognizer*/, const dfa::DFA &/*dfa*/, size_t /*startIndex*/,
|
|
16
|
+
size_t /*stopIndex*/, bool /*exact*/, const antlrcpp::BitSet &/*ambigAlts*/, atn::ATNConfigSet * /*configs*/) {
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
void BaseErrorListener::reportAttemptingFullContext(Parser * /*recognizer*/, const dfa::DFA &/*dfa*/, size_t /*startIndex*/,
|
|
20
|
+
size_t /*stopIndex*/, const antlrcpp::BitSet &/*conflictingAlts*/, atn::ATNConfigSet * /*configs*/) {
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
void BaseErrorListener::reportContextSensitivity(Parser * /*recognizer*/, const dfa::DFA &/*dfa*/, size_t /*startIndex*/,
|
|
24
|
+
size_t /*stopIndex*/, size_t /*prediction*/, atn::ATNConfigSet * /*configs*/) {
|
|
25
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
|
2
|
+
* Use of this file is governed by the BSD 3-clause license that
|
|
3
|
+
* can be found in the LICENSE.txt file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#pragma once
|
|
7
|
+
|
|
8
|
+
#include "ANTLRErrorListener.h"
|
|
9
|
+
|
|
10
|
+
namespace antlrcpp {
|
|
11
|
+
class BitSet;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
namespace antlr4 {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Provides an empty default implementation of {@link ANTLRErrorListener}. The
|
|
18
|
+
* default implementation of each method does nothing, but can be overridden as
|
|
19
|
+
* necessary.
|
|
20
|
+
*/
|
|
21
|
+
class ANTLR4CPP_PUBLIC BaseErrorListener : public ANTLRErrorListener {
|
|
22
|
+
|
|
23
|
+
virtual void syntaxError(Recognizer *recognizer, Token * offendingSymbol, size_t line, size_t charPositionInLine,
|
|
24
|
+
const std::string &msg, std::exception_ptr e) override;
|
|
25
|
+
|
|
26
|
+
virtual void reportAmbiguity(Parser *recognizer, const dfa::DFA &dfa, size_t startIndex, size_t stopIndex, bool exact,
|
|
27
|
+
const antlrcpp::BitSet &ambigAlts, atn::ATNConfigSet *configs) override;
|
|
28
|
+
|
|
29
|
+
virtual void reportAttemptingFullContext(Parser *recognizer, const dfa::DFA &dfa, size_t startIndex, size_t stopIndex,
|
|
30
|
+
const antlrcpp::BitSet &conflictingAlts, atn::ATNConfigSet *configs) override;
|
|
31
|
+
|
|
32
|
+
virtual void reportContextSensitivity(Parser *recognizer, const dfa::DFA &dfa, size_t startIndex, size_t stopIndex,
|
|
33
|
+
size_t prediction, atn::ATNConfigSet *configs) override;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
} // namespace antlr4
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
|
2
|
+
* Use of this file is governed by the BSD 3-clause license that
|
|
3
|
+
* can be found in the LICENSE.txt file in the project root.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#include "WritableToken.h"
|
|
7
|
+
#include "Lexer.h"
|
|
8
|
+
#include "RuleContext.h"
|
|
9
|
+
#include "misc/Interval.h"
|
|
10
|
+
#include "Exceptions.h"
|
|
11
|
+
#include "support/CPPUtils.h"
|
|
12
|
+
|
|
13
|
+
#include "BufferedTokenStream.h"
|
|
14
|
+
|
|
15
|
+
using namespace antlr4;
|
|
16
|
+
using namespace antlrcpp;
|
|
17
|
+
|
|
18
|
+
BufferedTokenStream::BufferedTokenStream(TokenSource *tokenSource) : _tokenSource(tokenSource){
|
|
19
|
+
InitializeInstanceFields();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
TokenSource* BufferedTokenStream::getTokenSource() const {
|
|
23
|
+
return _tokenSource;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
size_t BufferedTokenStream::index() {
|
|
27
|
+
return _p;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
ssize_t BufferedTokenStream::mark() {
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void BufferedTokenStream::release(ssize_t /*marker*/) {
|
|
35
|
+
// no resources to release
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
void BufferedTokenStream::reset() {
|
|
39
|
+
seek(0);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
void BufferedTokenStream::seek(size_t index) {
|
|
43
|
+
lazyInit();
|
|
44
|
+
_p = adjustSeekIndex(index);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
size_t BufferedTokenStream::size() {
|
|
48
|
+
return _tokens.size();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
void BufferedTokenStream::consume() {
|
|
52
|
+
bool skipEofCheck = false;
|
|
53
|
+
if (!_needSetup) {
|
|
54
|
+
if (_fetchedEOF) {
|
|
55
|
+
// the last token in tokens is EOF. skip check if p indexes any
|
|
56
|
+
// fetched token except the last.
|
|
57
|
+
skipEofCheck = _p < _tokens.size() - 1;
|
|
58
|
+
} else {
|
|
59
|
+
// no EOF token in tokens. skip check if p indexes a fetched token.
|
|
60
|
+
skipEofCheck = _p < _tokens.size();
|
|
61
|
+
}
|
|
62
|
+
} else {
|
|
63
|
+
// not yet initialized
|
|
64
|
+
skipEofCheck = false;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (!skipEofCheck && LA(1) == Token::EOF) {
|
|
68
|
+
throw IllegalStateException("cannot consume EOF");
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (sync(_p + 1)) {
|
|
72
|
+
_p = adjustSeekIndex(_p + 1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
bool BufferedTokenStream::sync(size_t i) {
|
|
77
|
+
if (i + 1 < _tokens.size())
|
|
78
|
+
return true;
|
|
79
|
+
size_t n = i - _tokens.size() + 1; // how many more elements we need?
|
|
80
|
+
|
|
81
|
+
if (n > 0) {
|
|
82
|
+
size_t fetched = fetch(n);
|
|
83
|
+
return fetched >= n;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
size_t BufferedTokenStream::fetch(size_t n) {
|
|
90
|
+
if (_fetchedEOF) {
|
|
91
|
+
return 0;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
size_t i = 0;
|
|
95
|
+
while (i < n) {
|
|
96
|
+
std::unique_ptr<Token> t(_tokenSource->nextToken());
|
|
97
|
+
|
|
98
|
+
if (is<WritableToken *>(t.get())) {
|
|
99
|
+
(static_cast<WritableToken *>(t.get()))->setTokenIndex(_tokens.size());
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
_tokens.push_back(std::move(t));
|
|
103
|
+
++i;
|
|
104
|
+
|
|
105
|
+
if (_tokens.back()->getType() == Token::EOF) {
|
|
106
|
+
_fetchedEOF = true;
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return i;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
Token* BufferedTokenStream::get(size_t i) const {
|
|
115
|
+
if (i >= _tokens.size()) {
|
|
116
|
+
throw IndexOutOfBoundsException(std::string("token index ") +
|
|
117
|
+
std::to_string(i) +
|
|
118
|
+
std::string(" out of range 0..") +
|
|
119
|
+
std::to_string(_tokens.size() - 1));
|
|
120
|
+
}
|
|
121
|
+
return _tokens[i].get();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
std::vector<Token *> BufferedTokenStream::get(size_t start, size_t stop) {
|
|
125
|
+
std::vector<Token *> subset;
|
|
126
|
+
|
|
127
|
+
lazyInit();
|
|
128
|
+
|
|
129
|
+
if (_tokens.empty()) {
|
|
130
|
+
return subset;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (stop >= _tokens.size()) {
|
|
134
|
+
stop = _tokens.size() - 1;
|
|
135
|
+
}
|
|
136
|
+
for (size_t i = start; i <= stop; i++) {
|
|
137
|
+
Token *t = _tokens[i].get();
|
|
138
|
+
if (t->getType() == Token::EOF) {
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
subset.push_back(t);
|
|
142
|
+
}
|
|
143
|
+
return subset;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
size_t BufferedTokenStream::LA(ssize_t i) {
|
|
147
|
+
return LT(i)->getType();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
Token* BufferedTokenStream::LB(size_t k) {
|
|
151
|
+
if (k > _p) {
|
|
152
|
+
return nullptr;
|
|
153
|
+
}
|
|
154
|
+
return _tokens[_p - k].get();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
Token* BufferedTokenStream::LT(ssize_t k) {
|
|
158
|
+
lazyInit();
|
|
159
|
+
if (k == 0) {
|
|
160
|
+
return nullptr;
|
|
161
|
+
}
|
|
162
|
+
if (k < 0) {
|
|
163
|
+
return LB(-k);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
size_t i = _p + k - 1;
|
|
167
|
+
sync(i);
|
|
168
|
+
if (i >= _tokens.size()) { // return EOF token
|
|
169
|
+
// EOF must be last token
|
|
170
|
+
return _tokens.back().get();
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
return _tokens[i].get();
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
ssize_t BufferedTokenStream::adjustSeekIndex(size_t i) {
|
|
177
|
+
return i;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
void BufferedTokenStream::lazyInit() {
|
|
181
|
+
if (_needSetup) {
|
|
182
|
+
setup();
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
void BufferedTokenStream::setup() {
|
|
187
|
+
_needSetup = false;
|
|
188
|
+
sync(0);
|
|
189
|
+
_p = adjustSeekIndex(0);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
void BufferedTokenStream::setTokenSource(TokenSource *tokenSource) {
|
|
193
|
+
_tokenSource = tokenSource;
|
|
194
|
+
_tokens.clear();
|
|
195
|
+
_fetchedEOF = false;
|
|
196
|
+
_needSetup = true;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
std::vector<Token *> BufferedTokenStream::getTokens() {
|
|
200
|
+
std::vector<Token *> result;
|
|
201
|
+
for (auto &t : _tokens)
|
|
202
|
+
result.push_back(t.get());
|
|
203
|
+
return result;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
std::vector<Token *> BufferedTokenStream::getTokens(size_t start, size_t stop) {
|
|
207
|
+
return getTokens(start, stop, std::vector<size_t>());
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
std::vector<Token *> BufferedTokenStream::getTokens(size_t start, size_t stop, const std::vector<size_t> &types) {
|
|
211
|
+
lazyInit();
|
|
212
|
+
if (stop >= _tokens.size() || start >= _tokens.size()) {
|
|
213
|
+
throw IndexOutOfBoundsException(std::string("start ") +
|
|
214
|
+
std::to_string(start) +
|
|
215
|
+
std::string(" or stop ") +
|
|
216
|
+
std::to_string(stop) +
|
|
217
|
+
std::string(" not in 0..") +
|
|
218
|
+
std::to_string(_tokens.size() - 1));
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
std::vector<Token *> filteredTokens;
|
|
222
|
+
|
|
223
|
+
if (start > stop) {
|
|
224
|
+
return filteredTokens;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
for (size_t i = start; i <= stop; i++) {
|
|
228
|
+
Token *tok = _tokens[i].get();
|
|
229
|
+
|
|
230
|
+
if (types.empty() || std::find(types.begin(), types.end(), tok->getType()) != types.end()) {
|
|
231
|
+
filteredTokens.push_back(tok);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return filteredTokens;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
std::vector<Token *> BufferedTokenStream::getTokens(size_t start, size_t stop, size_t ttype) {
|
|
238
|
+
std::vector<size_t> s;
|
|
239
|
+
s.push_back(ttype);
|
|
240
|
+
return getTokens(start, stop, s);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
ssize_t BufferedTokenStream::nextTokenOnChannel(size_t i, size_t channel) {
|
|
244
|
+
sync(i);
|
|
245
|
+
if (i >= size()) {
|
|
246
|
+
return size() - 1;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
Token *token = _tokens[i].get();
|
|
250
|
+
while (token->getChannel() != channel) {
|
|
251
|
+
if (token->getType() == Token::EOF) {
|
|
252
|
+
return i;
|
|
253
|
+
}
|
|
254
|
+
i++;
|
|
255
|
+
sync(i);
|
|
256
|
+
token = _tokens[i].get();
|
|
257
|
+
}
|
|
258
|
+
return i;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
ssize_t BufferedTokenStream::previousTokenOnChannel(size_t i, size_t channel) {
|
|
262
|
+
sync(i);
|
|
263
|
+
if (i >= size()) {
|
|
264
|
+
// the EOF token is on every channel
|
|
265
|
+
return size() - 1;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
while (true) {
|
|
269
|
+
Token *token = _tokens[i].get();
|
|
270
|
+
if (token->getType() == Token::EOF || token->getChannel() == channel) {
|
|
271
|
+
return i;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
if (i == 0)
|
|
275
|
+
return -1;
|
|
276
|
+
i--;
|
|
277
|
+
}
|
|
278
|
+
return i;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
std::vector<Token *> BufferedTokenStream::getHiddenTokensToRight(size_t tokenIndex, ssize_t channel) {
|
|
282
|
+
lazyInit();
|
|
283
|
+
if (tokenIndex >= _tokens.size()) {
|
|
284
|
+
throw IndexOutOfBoundsException(std::to_string(tokenIndex) + " not in 0.." + std::to_string(_tokens.size() - 1));
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
ssize_t nextOnChannel = nextTokenOnChannel(tokenIndex + 1, Lexer::DEFAULT_TOKEN_CHANNEL);
|
|
288
|
+
size_t to;
|
|
289
|
+
size_t from = tokenIndex + 1;
|
|
290
|
+
// if none onchannel to right, nextOnChannel=-1 so set to = last token
|
|
291
|
+
if (nextOnChannel == -1) {
|
|
292
|
+
to = static_cast<ssize_t>(size() - 1);
|
|
293
|
+
} else {
|
|
294
|
+
to = nextOnChannel;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
return filterForChannel(from, to, channel);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
std::vector<Token *> BufferedTokenStream::getHiddenTokensToRight(size_t tokenIndex) {
|
|
301
|
+
return getHiddenTokensToRight(tokenIndex, -1);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
std::vector<Token *> BufferedTokenStream::getHiddenTokensToLeft(size_t tokenIndex, ssize_t channel) {
|
|
305
|
+
lazyInit();
|
|
306
|
+
if (tokenIndex >= _tokens.size()) {
|
|
307
|
+
throw IndexOutOfBoundsException(std::to_string(tokenIndex) + " not in 0.." + std::to_string(_tokens.size() - 1));
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
if (tokenIndex == 0) {
|
|
311
|
+
// Obviously no tokens can appear before the first token.
|
|
312
|
+
return { };
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
ssize_t prevOnChannel = previousTokenOnChannel(tokenIndex - 1, Lexer::DEFAULT_TOKEN_CHANNEL);
|
|
316
|
+
if (prevOnChannel == static_cast<ssize_t>(tokenIndex - 1)) {
|
|
317
|
+
return { };
|
|
318
|
+
}
|
|
319
|
+
// if none onchannel to left, prevOnChannel=-1 then from=0
|
|
320
|
+
size_t from = static_cast<size_t>(prevOnChannel + 1);
|
|
321
|
+
size_t to = tokenIndex - 1;
|
|
322
|
+
|
|
323
|
+
return filterForChannel(from, to, channel);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
std::vector<Token *> BufferedTokenStream::getHiddenTokensToLeft(size_t tokenIndex) {
|
|
327
|
+
return getHiddenTokensToLeft(tokenIndex, -1);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
std::vector<Token *> BufferedTokenStream::filterForChannel(size_t from, size_t to, ssize_t channel) {
|
|
331
|
+
std::vector<Token *> hidden;
|
|
332
|
+
for (size_t i = from; i <= to; i++) {
|
|
333
|
+
Token *t = _tokens[i].get();
|
|
334
|
+
if (channel == -1) {
|
|
335
|
+
if (t->getChannel() != Lexer::DEFAULT_TOKEN_CHANNEL) {
|
|
336
|
+
hidden.push_back(t);
|
|
337
|
+
}
|
|
338
|
+
} else {
|
|
339
|
+
if (t->getChannel() == static_cast<size_t>(channel)) {
|
|
340
|
+
hidden.push_back(t);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
return hidden;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
bool BufferedTokenStream::isInitialized() const {
|
|
349
|
+
return !_needSetup;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Get the text of all tokens in this buffer.
|
|
354
|
+
*/
|
|
355
|
+
std::string BufferedTokenStream::getSourceName() const
|
|
356
|
+
{
|
|
357
|
+
return _tokenSource->getSourceName();
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
std::string BufferedTokenStream::getText() {
|
|
361
|
+
fill();
|
|
362
|
+
return getText(misc::Interval(0U, size() - 1));
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
std::string BufferedTokenStream::getText(const misc::Interval &interval) {
|
|
366
|
+
lazyInit();
|
|
367
|
+
size_t start = interval.a;
|
|
368
|
+
size_t stop = interval.b;
|
|
369
|
+
if (start == INVALID_INDEX || stop == INVALID_INDEX) {
|
|
370
|
+
return "";
|
|
371
|
+
}
|
|
372
|
+
sync(stop);
|
|
373
|
+
if (stop >= _tokens.size()) {
|
|
374
|
+
stop = _tokens.size() - 1;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
std::stringstream ss;
|
|
378
|
+
for (size_t i = start; i <= stop; i++) {
|
|
379
|
+
Token *t = _tokens[i].get();
|
|
380
|
+
if (t->getType() == Token::EOF) {
|
|
381
|
+
break;
|
|
382
|
+
}
|
|
383
|
+
ss << t->getText();
|
|
384
|
+
}
|
|
385
|
+
return ss.str();
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
std::string BufferedTokenStream::getText(RuleContext *ctx) {
|
|
389
|
+
return getText(ctx->getSourceInterval());
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
std::string BufferedTokenStream::getText(Token *start, Token *stop) {
|
|
393
|
+
if (start != nullptr && stop != nullptr) {
|
|
394
|
+
return getText(misc::Interval(start->getTokenIndex(), stop->getTokenIndex()));
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
return "";
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
void BufferedTokenStream::fill() {
|
|
401
|
+
lazyInit();
|
|
402
|
+
const size_t blockSize = 1000;
|
|
403
|
+
while (true) {
|
|
404
|
+
size_t fetched = fetch(blockSize);
|
|
405
|
+
if (fetched < blockSize) {
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
void BufferedTokenStream::InitializeInstanceFields() {
|
|
412
|
+
_needSetup = true;
|
|
413
|
+
_fetchedEOF = false;
|
|
414
|
+
}
|