expressir 1.4.2 → 2.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 +4 -4
- data/.github/workflows/codeql.yml +2 -14
- data/.github/workflows/rake.yml +6 -364
- data/.github/workflows/release.yml +15 -178
- data/.github/workflows/stress.yml +1 -18
- data/.rubocop.yml +1 -0
- data/.rubocop_todo.yml +7 -0
- data/Gemfile +13 -0
- data/README.adoc +6 -19
- data/Rakefile +6 -7
- data/expressir.gemspec +23 -32
- data/expressir_wrapped.txt +23068 -0
- data/lib/expressir/cli.rb +3 -2
- data/lib/expressir/express/formatter.rb +661 -661
- data/lib/expressir/express/parser.rb +299 -33
- data/lib/expressir/express/visitor.rb +238 -133
- data/lib/expressir/model/declarations/interface_item.rb +1 -1
- data/lib/expressir/version.rb +1 -1
- metadata +15 -573
- data/.cross_rubies +0 -28
- data/.gitmodules +0 -6
- data/.yardopts +0 -11
- data/exe/generate-parser +0 -51
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +0 -191
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +0 -652
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +0 -948
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2022.vcxproj +0 -652
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2022.vcxproj.filters +0 -948
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +0 -26
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +0 -17
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +0 -3040
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +0 -76
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +0 -76
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +0 -76
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.nuspec +0 -23
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.targets +0 -8
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.nuspec +0 -30
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.props +0 -21
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.targets +0 -44
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.nuspec +0 -29
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.targets +0 -44
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/antlr4.jpg +0 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/pack.cmd +0 -93
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +0 -10
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +0 -167
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +0 -10
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +0 -121
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +0 -23
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +0 -30
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +0 -180
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +0 -79
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +0 -61
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +0 -59
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +0 -25
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +0 -36
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +0 -414
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +0 -200
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +0 -11
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +0 -37
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +0 -193
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +0 -158
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +0 -39
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +0 -74
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +0 -78
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +0 -79
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +0 -15
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +0 -35
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +0 -336
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +0 -466
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +0 -84
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +0 -80
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +0 -64
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +0 -99
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +0 -52
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +0 -32
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashMap.h +0 -57
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashSet.h +0 -57
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +0 -18
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +0 -24
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +0 -12
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +0 -218
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +0 -19
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +0 -45
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +0 -294
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +0 -196
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +0 -60
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +0 -46
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +0 -36
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +0 -31
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +0 -92
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +0 -88
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +0 -46
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +0 -42
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +0 -670
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +0 -461
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +0 -294
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +0 -173
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +0 -138
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +0 -147
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +0 -53
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +0 -38
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +0 -65
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +0 -98
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +0 -157
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +0 -160
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +0 -144
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +0 -141
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +0 -27
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +0 -32
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +0 -54
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +0 -155
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +0 -9
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +0 -92
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +0 -30
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +0 -9
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +0 -85
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +0 -11
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +0 -137
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +0 -425
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +0 -295
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +0 -208
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +0 -117
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +0 -270
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +0 -115
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Version.h +0 -42
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +0 -64
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +0 -177
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +0 -9
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +0 -23
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +0 -101
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +0 -168
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +0 -159
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +0 -133
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +0 -106
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +0 -157
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +0 -233
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +0 -157
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +0 -39
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +0 -48
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +0 -628
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +0 -32
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +0 -33
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +0 -71
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +0 -56
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +0 -139
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.cpp +0 -33
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.h +0 -36
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +0 -20
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +0 -29
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +0 -35
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +0 -16
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +0 -68
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +0 -129
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +0 -51
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +0 -27
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +0 -33
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +0 -24
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +0 -23
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +0 -26
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +0 -30
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +0 -14
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +0 -47
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +0 -14
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +0 -70
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +0 -25
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +0 -227
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +0 -12
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +0 -34
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +0 -31
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +0 -42
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +0 -15
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +0 -43
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/HashUtils.h +0 -18
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +0 -189
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +0 -76
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +0 -67
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +0 -44
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +0 -621
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +0 -199
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +0 -15
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +0 -100
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +0 -108
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +0 -128
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +0 -57
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +0 -43
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +0 -59
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +0 -45
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +0 -75
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +0 -50
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +0 -76
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +0 -43
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +0 -57
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +0 -36
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +0 -53
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +0 -36
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +0 -53
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +0 -43
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +0 -57
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +0 -36
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +0 -51
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +0 -43
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +0 -51
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +0 -16
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +0 -42
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +0 -26
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +0 -22
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +0 -27
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +0 -16
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +0 -25
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +0 -102
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +0 -102
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +0 -1413
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +0 -911
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulatorOptions.h +0 -50
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +0 -29
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +0 -25
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +0 -23
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +0 -35
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +0 -17
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +0 -62
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +0 -24
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +0 -50
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +0 -601
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +0 -225
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp +0 -56
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.h +0 -63
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp +0 -167
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h +0 -101
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCacheOptions.h +0 -71
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextType.h +0 -21
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +0 -202
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +0 -436
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +0 -179
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +0 -60
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +0 -26
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +0 -31
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +0 -26
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +0 -27
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +0 -33
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +0 -42
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +0 -418
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +0 -237
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContextType.h +0 -23
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SerializedATNView.h +0 -101
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +0 -28
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +0 -38
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +0 -79
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +0 -43
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +0 -24
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +0 -37
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +0 -19
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +0 -25
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +0 -24
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +0 -36
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +0 -65
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.cpp +0 -27
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.h +0 -33
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +0 -21
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +0 -27
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +0 -115
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +0 -96
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +0 -60
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +0 -32
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +0 -59
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +0 -154
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +0 -17
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +0 -22
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.cpp +0 -100
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.h +0 -154
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +0 -124
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +0 -33
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +0 -61
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +0 -84
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +0 -508
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +0 -190
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +0 -120
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +0 -102
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +0 -4
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +0 -21
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +0 -8
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +0 -16
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +0 -43
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +0 -149
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +0 -76
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +0 -207
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +0 -65
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Casts.h +0 -34
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +0 -161
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +0 -38
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +0 -16
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Unicode.h +0 -28
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.cpp +0 -242
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.h +0 -54
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +0 -129
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +0 -24
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +0 -54
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +0 -43
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +0 -66
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +0 -53
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +0 -12
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +0 -111
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +0 -9
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +0 -39
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +0 -50
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeType.h +0 -22
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +0 -9
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +0 -57
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +0 -48
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +0 -55
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +0 -40
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +0 -54
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +0 -32
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +0 -241
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +0 -78
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +0 -9
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +0 -44
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +0 -69
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +0 -132
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +0 -64
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +0 -105
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +0 -370
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +0 -185
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +0 -77
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +0 -117
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +0 -39
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +0 -86
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +0 -28
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +0 -51
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +0 -36
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +0 -80
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +0 -154
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +0 -86
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +0 -31
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +0 -40
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +0 -180
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +0 -64
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +0 -53
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +0 -12
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +0 -13
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +0 -22
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +0 -20
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +0 -27
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +0 -30
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +0 -26
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +0 -20
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +0 -25
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +0 -33
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +0 -26
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +0 -23
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +0 -23
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +0 -24
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +0 -23
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/tests/Utf8Test.cpp +0 -110
- data/ext/express_parser/antlrgen/Express.interp +0 -532
- data/ext/express_parser/antlrgen/Express.tokens +0 -190
- data/ext/express_parser/antlrgen/ExpressBaseListener.cpp +0 -7
- data/ext/express_parser/antlrgen/ExpressBaseListener.h +0 -623
- data/ext/express_parser/antlrgen/ExpressBaseVisitor.cpp +0 -7
- data/ext/express_parser/antlrgen/ExpressBaseVisitor.h +0 -816
- data/ext/express_parser/antlrgen/ExpressLexer.cpp +0 -685
- data/ext/express_parser/antlrgen/ExpressLexer.h +0 -78
- data/ext/express_parser/antlrgen/ExpressLexer.interp +0 -534
- data/ext/express_parser/antlrgen/ExpressLexer.tokens +0 -190
- data/ext/express_parser/antlrgen/ExpressListener.cpp +0 -7
- data/ext/express_parser/antlrgen/ExpressListener.h +0 -616
- data/ext/express_parser/antlrgen/ExpressParser.cpp +0 -17591
- data/ext/express_parser/antlrgen/ExpressParser.h +0 -3692
- data/ext/express_parser/antlrgen/ExpressVisitor.cpp +0 -7
- data/ext/express_parser/antlrgen/ExpressVisitor.h +0 -422
- data/ext/express_parser/express_parser.cpp +0 -19405
- data/ext/express_parser/extconf.rb +0 -63
- data/rakelib/antlr4-native.rake +0 -173
- data/rakelib/cross-ruby.rake +0 -403
- data/spec/acceptance/version_spec.rb +0 -30
- data/spec/expressir/express/cache_spec.rb +0 -89
- data/spec/expressir/express/formatter_spec.rb +0 -171
- data/spec/expressir/express/parser_spec.rb +0 -141
- data/spec/expressir/model/model_element_spec.rb +0 -343
- data/spec/spec_helper.rb +0 -24
- data/spec/support/console_helper.rb +0 -29
- data/spec/syntax/multiple.exp +0 -23
- data/spec/syntax/multiple.yaml +0 -198
- data/spec/syntax/multiple_formatted.exp +0 -71
- data/spec/syntax/multiple_hyperlink_formatted.exp +0 -71
- data/spec/syntax/multiple_schema_head_hyperlink_formatted.exp +0 -13
- data/spec/syntax/remark.exp +0 -193
- data/spec/syntax/remark.yaml +0 -471
- data/spec/syntax/remark_formatted.exp +0 -228
- data/spec/syntax/single.exp +0 -4
- data/spec/syntax/single.yaml +0 -18
- data/spec/syntax/single_formatted.exp +0 -10
- data/spec/syntax/single_formatted.yaml +0 -36
- data/spec/syntax/syntax.exp +0 -333
- data/spec/syntax/syntax.yaml +0 -3509
- data/spec/syntax/syntax_formatted.exp +0 -902
- data/spec/syntax/syntax_hyperlink_formatted.exp +0 -902
- data/spec/syntax/syntax_schema_head_formatted.exp +0 -18
@@ -1,225 +0,0 @@
|
|
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 <atomic>
|
9
|
-
|
10
|
-
#include "Recognizer.h"
|
11
|
-
#include "atn/ATN.h"
|
12
|
-
#include "atn/ATNState.h"
|
13
|
-
#include "atn/PredictionContextType.h"
|
14
|
-
|
15
|
-
namespace antlr4 {
|
16
|
-
|
17
|
-
class RuleContext;
|
18
|
-
|
19
|
-
namespace atn {
|
20
|
-
|
21
|
-
class ATN;
|
22
|
-
class ArrayPredictionContext;
|
23
|
-
class SingletonPredictionContext;
|
24
|
-
class PredictionContextCache;
|
25
|
-
class PredictionContextMergeCache;
|
26
|
-
|
27
|
-
class ANTLR4CPP_PUBLIC PredictionContext {
|
28
|
-
public:
|
29
|
-
/// Represents $ in local context prediction, which means wildcard.
|
30
|
-
/// *+x = *.
|
31
|
-
static const Ref<const PredictionContext> EMPTY;
|
32
|
-
|
33
|
-
/// Represents $ in an array in full context mode, when $
|
34
|
-
/// doesn't mean wildcard: $ + x = [$,x]. Here,
|
35
|
-
/// $ = EMPTY_RETURN_STATE.
|
36
|
-
// ml: originally Integer.MAX_VALUE, which would be -1 for us, but this is already used in places where
|
37
|
-
// -1 is converted to unsigned, so we use a different value here. Any value does the job provided it doesn't
|
38
|
-
// conflict with real return states.
|
39
|
-
static constexpr size_t EMPTY_RETURN_STATE = std::numeric_limits<size_t>::max() - 9;
|
40
|
-
|
41
|
-
// dispatch
|
42
|
-
static Ref<const PredictionContext> merge(Ref<const PredictionContext> a,
|
43
|
-
Ref<const PredictionContext> b,
|
44
|
-
bool rootIsWildcard,
|
45
|
-
PredictionContextMergeCache *mergeCache);
|
46
|
-
|
47
|
-
/// <summary>
|
48
|
-
/// Merge two <seealso cref="SingletonPredictionContext"/> instances.
|
49
|
-
///
|
50
|
-
/// <p/>
|
51
|
-
///
|
52
|
-
/// Stack tops equal, parents merge is same; return left graph.<br/>
|
53
|
-
/// <embed src="images/SingletonMerge_SameRootSamePar.svg" type="image/svg+xml"/>
|
54
|
-
///
|
55
|
-
/// <p/>
|
56
|
-
///
|
57
|
-
/// Same stack top, parents differ; merge parents giving array node, then
|
58
|
-
/// remainders of those graphs. A new root node is created to point to the
|
59
|
-
/// merged parents.<br/>
|
60
|
-
/// <embed src="images/SingletonMerge_SameRootDiffPar.svg" type="image/svg+xml"/>
|
61
|
-
///
|
62
|
-
/// <p/>
|
63
|
-
///
|
64
|
-
/// Different stack tops pointing to same parent. Make array node for the
|
65
|
-
/// root where both element in the root point to the same (original)
|
66
|
-
/// parent.<br/>
|
67
|
-
/// <embed src="images/SingletonMerge_DiffRootSamePar.svg" type="image/svg+xml"/>
|
68
|
-
///
|
69
|
-
/// <p/>
|
70
|
-
///
|
71
|
-
/// Different stack tops pointing to different parents. Make array node for
|
72
|
-
/// the root where each element points to the corresponding original
|
73
|
-
/// parent.<br/>
|
74
|
-
/// <embed src="images/SingletonMerge_DiffRootDiffPar.svg" type="image/svg+xml"/>
|
75
|
-
/// </summary>
|
76
|
-
/// <param name="a"> the first <seealso cref="SingletonPredictionContext"/> </param>
|
77
|
-
/// <param name="b"> the second <seealso cref="SingletonPredictionContext"/> </param>
|
78
|
-
/// <param name="rootIsWildcard"> {@code true} if this is a local-context merge,
|
79
|
-
/// otherwise false to indicate a full-context merge </param>
|
80
|
-
/// <param name="mergeCache"> </param>
|
81
|
-
static Ref<const PredictionContext> mergeSingletons(Ref<const SingletonPredictionContext> a,
|
82
|
-
Ref<const SingletonPredictionContext> b,
|
83
|
-
bool rootIsWildcard,
|
84
|
-
PredictionContextMergeCache *mergeCache);
|
85
|
-
|
86
|
-
/**
|
87
|
-
* Handle case where at least one of {@code a} or {@code b} is
|
88
|
-
* {@link #EMPTY}. In the following diagrams, the symbol {@code $} is used
|
89
|
-
* to represent {@link #EMPTY}.
|
90
|
-
*
|
91
|
-
* <h2>Local-Context Merges</h2>
|
92
|
-
*
|
93
|
-
* <p>These local-context merge operations are used when {@code rootIsWildcard}
|
94
|
-
* is true.</p>
|
95
|
-
*
|
96
|
-
* <p>{@link #EMPTY} is superset of any graph; return {@link #EMPTY}.<br>
|
97
|
-
* <embed src="images/LocalMerge_EmptyRoot.svg" type="image/svg+xml"/></p>
|
98
|
-
*
|
99
|
-
* <p>{@link #EMPTY} and anything is {@code #EMPTY}, so merged parent is
|
100
|
-
* {@code #EMPTY}; return left graph.<br>
|
101
|
-
* <embed src="images/LocalMerge_EmptyParent.svg" type="image/svg+xml"/></p>
|
102
|
-
*
|
103
|
-
* <p>Special case of last merge if local context.<br>
|
104
|
-
* <embed src="images/LocalMerge_DiffRoots.svg" type="image/svg+xml"/></p>
|
105
|
-
*
|
106
|
-
* <h2>Full-Context Merges</h2>
|
107
|
-
*
|
108
|
-
* <p>These full-context merge operations are used when {@code rootIsWildcard}
|
109
|
-
* is false.</p>
|
110
|
-
*
|
111
|
-
* <p><embed src="images/FullMerge_EmptyRoots.svg" type="image/svg+xml"/></p>
|
112
|
-
*
|
113
|
-
* <p>Must keep all contexts; {@link #EMPTY} in array is a special value (and
|
114
|
-
* null parent).<br>
|
115
|
-
* <embed src="images/FullMerge_EmptyRoot.svg" type="image/svg+xml"/></p>
|
116
|
-
*
|
117
|
-
* <p><embed src="images/FullMerge_SameRoot.svg" type="image/svg+xml"/></p>
|
118
|
-
*
|
119
|
-
* @param a the first {@link SingletonPredictionContext}
|
120
|
-
* @param b the second {@link SingletonPredictionContext}
|
121
|
-
* @param rootIsWildcard {@code true} if this is a local-context merge,
|
122
|
-
* otherwise false to indicate a full-context merge
|
123
|
-
*/
|
124
|
-
static Ref<const PredictionContext> mergeRoot(Ref<const SingletonPredictionContext> a,
|
125
|
-
Ref<const SingletonPredictionContext> b,
|
126
|
-
bool rootIsWildcard);
|
127
|
-
|
128
|
-
/**
|
129
|
-
* Merge two {@link ArrayPredictionContext} instances.
|
130
|
-
*
|
131
|
-
* <p>Different tops, different parents.<br>
|
132
|
-
* <embed src="images/ArrayMerge_DiffTopDiffPar.svg" type="image/svg+xml"/></p>
|
133
|
-
*
|
134
|
-
* <p>Shared top, same parents.<br>
|
135
|
-
* <embed src="images/ArrayMerge_ShareTopSamePar.svg" type="image/svg+xml"/></p>
|
136
|
-
*
|
137
|
-
* <p>Shared top, different parents.<br>
|
138
|
-
* <embed src="images/ArrayMerge_ShareTopDiffPar.svg" type="image/svg+xml"/></p>
|
139
|
-
*
|
140
|
-
* <p>Shared top, all shared parents.<br>
|
141
|
-
* <embed src="images/ArrayMerge_ShareTopSharePar.svg" type="image/svg+xml"/></p>
|
142
|
-
*
|
143
|
-
* <p>Equal tops, merge parents and reduce top to
|
144
|
-
* {@link SingletonPredictionContext}.<br>
|
145
|
-
* <embed src="images/ArrayMerge_EqualTop.svg" type="image/svg+xml"/></p>
|
146
|
-
*/
|
147
|
-
static Ref<const PredictionContext> mergeArrays(Ref<const ArrayPredictionContext> a,
|
148
|
-
Ref<const ArrayPredictionContext> b,
|
149
|
-
bool rootIsWildcard,
|
150
|
-
PredictionContextMergeCache *mergeCache);
|
151
|
-
|
152
|
-
static std::string toDOTString(const Ref<const PredictionContext> &context);
|
153
|
-
|
154
|
-
static Ref<const PredictionContext> getCachedContext(const Ref<const PredictionContext> &context,
|
155
|
-
PredictionContextCache &contextCache);
|
156
|
-
|
157
|
-
static std::vector<Ref<const PredictionContext>> getAllContextNodes(const Ref<const PredictionContext> &context);
|
158
|
-
|
159
|
-
/// Convert a RuleContext tree to a PredictionContext graph.
|
160
|
-
/// Return EMPTY if outerContext is empty.
|
161
|
-
static Ref<const PredictionContext> fromRuleContext(const ATN &atn, RuleContext *outerContext);
|
162
|
-
|
163
|
-
PredictionContext(const PredictionContext&) = delete;
|
164
|
-
|
165
|
-
virtual ~PredictionContext() = default;
|
166
|
-
|
167
|
-
PredictionContext& operator=(const PredictionContext&) = delete;
|
168
|
-
PredictionContext& operator=(PredictionContext&&) = delete;
|
169
|
-
|
170
|
-
PredictionContextType getContextType() const { return _contextType; }
|
171
|
-
|
172
|
-
virtual size_t size() const = 0;
|
173
|
-
virtual const Ref<const PredictionContext>& getParent(size_t index) const = 0;
|
174
|
-
virtual size_t getReturnState(size_t index) const = 0;
|
175
|
-
|
176
|
-
/// This means only the EMPTY (wildcard? not sure) context is in set.
|
177
|
-
virtual bool isEmpty() const = 0;
|
178
|
-
bool hasEmptyPath() const;
|
179
|
-
|
180
|
-
size_t hashCode() const;
|
181
|
-
|
182
|
-
virtual bool equals(const PredictionContext &other) const = 0;
|
183
|
-
|
184
|
-
virtual std::string toString() const = 0;
|
185
|
-
|
186
|
-
std::vector<std::string> toStrings(Recognizer *recognizer, int currentState) const;
|
187
|
-
std::vector<std::string> toStrings(Recognizer *recognizer,
|
188
|
-
const Ref<const PredictionContext> &stop,
|
189
|
-
int currentState) const;
|
190
|
-
|
191
|
-
protected:
|
192
|
-
explicit PredictionContext(PredictionContextType contextType);
|
193
|
-
|
194
|
-
PredictionContext(PredictionContext&& other);
|
195
|
-
|
196
|
-
virtual size_t hashCodeImpl() const = 0;
|
197
|
-
|
198
|
-
size_t cachedHashCode() const { return _hashCode.load(std::memory_order_relaxed); }
|
199
|
-
|
200
|
-
private:
|
201
|
-
const PredictionContextType _contextType;
|
202
|
-
mutable std::atomic<size_t> _hashCode;
|
203
|
-
};
|
204
|
-
|
205
|
-
inline bool operator==(const PredictionContext &lhs, const PredictionContext &rhs) {
|
206
|
-
return lhs.equals(rhs);
|
207
|
-
}
|
208
|
-
|
209
|
-
inline bool operator!=(const PredictionContext &lhs, const PredictionContext &rhs) {
|
210
|
-
return !operator==(lhs, rhs);
|
211
|
-
}
|
212
|
-
|
213
|
-
} // namespace atn
|
214
|
-
} // namespace antlr4
|
215
|
-
|
216
|
-
namespace std {
|
217
|
-
|
218
|
-
template <>
|
219
|
-
struct hash<::antlr4::atn::PredictionContext> {
|
220
|
-
size_t operator()(const ::antlr4::atn::PredictionContext &predictionContext) const {
|
221
|
-
return predictionContext.hashCode();
|
222
|
-
}
|
223
|
-
};
|
224
|
-
|
225
|
-
} // namespace std
|
data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
// Copyright 2012-2022 The ANTLR Project
|
2
|
-
//
|
3
|
-
// Redistribution and use in source and binary forms, with or without modification, are permitted
|
4
|
-
// provided that the following conditions are met:
|
5
|
-
//
|
6
|
-
// 1. Redistributions of source code must retain the above copyright notice, this list of conditions
|
7
|
-
// and the following disclaimer.
|
8
|
-
//
|
9
|
-
// 2. Redistributions in binary form must reproduce the above copyright notice, this list of
|
10
|
-
// conditions and the following disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
//
|
13
|
-
// 3. Neither the name of the copyright holder nor the names of its contributors may be used to
|
14
|
-
// endorse or promote products derived from this software without specific prior written
|
15
|
-
// permission.
|
16
|
-
//
|
17
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
18
|
-
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
19
|
-
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
20
|
-
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
21
|
-
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
22
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
23
|
-
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
24
|
-
// WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
25
|
-
|
26
|
-
#include "atn/PredictionContextCache.h"
|
27
|
-
|
28
|
-
using namespace antlr4::atn;
|
29
|
-
|
30
|
-
void PredictionContextCache::put(const Ref<const PredictionContext> &value) {
|
31
|
-
assert(value);
|
32
|
-
|
33
|
-
_data.insert(value);
|
34
|
-
}
|
35
|
-
|
36
|
-
Ref<const PredictionContext> PredictionContextCache::get(
|
37
|
-
const Ref<const PredictionContext> &value) const {
|
38
|
-
assert(value);
|
39
|
-
|
40
|
-
auto iterator = _data.find(value);
|
41
|
-
if (iterator == _data.end()) {
|
42
|
-
return nullptr;
|
43
|
-
}
|
44
|
-
return *iterator;
|
45
|
-
}
|
46
|
-
|
47
|
-
size_t PredictionContextCache::PredictionContextHasher::operator()(
|
48
|
-
const Ref<const PredictionContext> &predictionContext) const {
|
49
|
-
return predictionContext->hashCode();
|
50
|
-
}
|
51
|
-
|
52
|
-
bool PredictionContextCache::PredictionContextComparer::operator()(
|
53
|
-
const Ref<const PredictionContext> &lhs,
|
54
|
-
const Ref<const PredictionContext> &rhs) const {
|
55
|
-
return *lhs == *rhs;
|
56
|
-
}
|
data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.h
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
// Copyright 2012-2022 The ANTLR Project
|
2
|
-
//
|
3
|
-
// Redistribution and use in source and binary forms, with or without modification, are permitted
|
4
|
-
// provided that the following conditions are met:
|
5
|
-
//
|
6
|
-
// 1. Redistributions of source code must retain the above copyright notice, this list of conditions
|
7
|
-
// and the following disclaimer.
|
8
|
-
//
|
9
|
-
// 2. Redistributions in binary form must reproduce the above copyright notice, this list of
|
10
|
-
// conditions and the following disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
//
|
13
|
-
// 3. Neither the name of the copyright holder nor the names of its contributors may be used to
|
14
|
-
// endorse or promote products derived from this software without specific prior written
|
15
|
-
// permission.
|
16
|
-
//
|
17
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
18
|
-
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
19
|
-
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
20
|
-
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
21
|
-
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
22
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
23
|
-
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
24
|
-
// WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
25
|
-
|
26
|
-
#pragma once
|
27
|
-
|
28
|
-
#include "atn/PredictionContext.h"
|
29
|
-
#include "FlatHashSet.h"
|
30
|
-
|
31
|
-
namespace antlr4 {
|
32
|
-
namespace atn {
|
33
|
-
|
34
|
-
class ANTLR4CPP_PUBLIC PredictionContextCache final {
|
35
|
-
public:
|
36
|
-
PredictionContextCache() = default;
|
37
|
-
|
38
|
-
PredictionContextCache(const PredictionContextCache&) = delete;
|
39
|
-
PredictionContextCache(PredictionContextCache&&) = delete;
|
40
|
-
|
41
|
-
PredictionContextCache& operator=(const PredictionContextCache&) = delete;
|
42
|
-
PredictionContextCache& operator=(PredictionContextCache&&) = delete;
|
43
|
-
|
44
|
-
void put(const Ref<const PredictionContext> &value);
|
45
|
-
|
46
|
-
Ref<const PredictionContext> get(const Ref<const PredictionContext> &value) const;
|
47
|
-
|
48
|
-
private:
|
49
|
-
struct ANTLR4CPP_PUBLIC PredictionContextHasher final {
|
50
|
-
size_t operator()(const Ref<const PredictionContext> &predictionContext) const;
|
51
|
-
};
|
52
|
-
|
53
|
-
struct ANTLR4CPP_PUBLIC PredictionContextComparer final {
|
54
|
-
bool operator()(const Ref<const PredictionContext> &lhs,
|
55
|
-
const Ref<const PredictionContext> &rhs) const;
|
56
|
-
};
|
57
|
-
|
58
|
-
FlatHashSet<Ref<const PredictionContext>,
|
59
|
-
PredictionContextHasher, PredictionContextComparer> _data;
|
60
|
-
};
|
61
|
-
|
62
|
-
} // namespace atn
|
63
|
-
} // namespace antlr4
|
data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp
DELETED
@@ -1,167 +0,0 @@
|
|
1
|
-
// Copyright 2012-2022 The ANTLR Project
|
2
|
-
//
|
3
|
-
// Redistribution and use in source and binary forms, with or without modification, are permitted
|
4
|
-
// provided that the following conditions are met:
|
5
|
-
//
|
6
|
-
// 1. Redistributions of source code must retain the above copyright notice, this list of conditions
|
7
|
-
// and the following disclaimer.
|
8
|
-
//
|
9
|
-
// 2. Redistributions in binary form must reproduce the above copyright notice, this list of
|
10
|
-
// conditions and the following disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
//
|
13
|
-
// 3. Neither the name of the copyright holder nor the names of its contributors may be used to
|
14
|
-
// endorse or promote products derived from this software without specific prior written
|
15
|
-
// permission.
|
16
|
-
//
|
17
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
18
|
-
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
19
|
-
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
20
|
-
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
21
|
-
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
22
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
23
|
-
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
24
|
-
// WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
25
|
-
|
26
|
-
#include "atn/PredictionContextMergeCache.h"
|
27
|
-
|
28
|
-
#include "misc/MurmurHash.h"
|
29
|
-
|
30
|
-
using namespace antlr4::atn;
|
31
|
-
using namespace antlr4::misc;
|
32
|
-
|
33
|
-
PredictionContextMergeCache::PredictionContextMergeCache(
|
34
|
-
const PredictionContextMergeCacheOptions &options) : _options(options) {}
|
35
|
-
|
36
|
-
Ref<const PredictionContext> PredictionContextMergeCache::put(
|
37
|
-
const Ref<const PredictionContext> &key1,
|
38
|
-
const Ref<const PredictionContext> &key2,
|
39
|
-
Ref<const PredictionContext> value) {
|
40
|
-
assert(key1);
|
41
|
-
assert(key2);
|
42
|
-
|
43
|
-
if (getOptions().getMaxSize() == 0) {
|
44
|
-
// Cache is effectively disabled.
|
45
|
-
return value;
|
46
|
-
}
|
47
|
-
|
48
|
-
auto [existing, inserted] = _entries.try_emplace(std::make_pair(key1.get(), key2.get()));
|
49
|
-
if (inserted) {
|
50
|
-
try {
|
51
|
-
existing->second.reset(new Entry());
|
52
|
-
} catch (...) {
|
53
|
-
_entries.erase(existing);
|
54
|
-
throw;
|
55
|
-
}
|
56
|
-
existing->second->key = std::make_pair(key1, key2);
|
57
|
-
existing->second->value = std::move(value);
|
58
|
-
pushToFront(existing->second.get());
|
59
|
-
} else {
|
60
|
-
if (existing->second->value != value) {
|
61
|
-
existing->second->value = std::move(value);
|
62
|
-
}
|
63
|
-
moveToFront(existing->second.get());
|
64
|
-
}
|
65
|
-
compact(existing->second.get());
|
66
|
-
return existing->second->value;
|
67
|
-
}
|
68
|
-
|
69
|
-
Ref<const PredictionContext> PredictionContextMergeCache::get(
|
70
|
-
const Ref<const PredictionContext> &key1,
|
71
|
-
const Ref<const PredictionContext> &key2) const {
|
72
|
-
assert(key1);
|
73
|
-
assert(key2);
|
74
|
-
|
75
|
-
if (getOptions().getMaxSize() == 0) {
|
76
|
-
// Cache is effectively disabled.
|
77
|
-
return nullptr;
|
78
|
-
}
|
79
|
-
|
80
|
-
auto iterator = _entries.find(std::make_pair(key1.get(), key2.get()));
|
81
|
-
if (iterator == _entries.end()) {
|
82
|
-
return nullptr;
|
83
|
-
}
|
84
|
-
moveToFront(iterator->second.get());
|
85
|
-
return iterator->second->value;
|
86
|
-
}
|
87
|
-
|
88
|
-
void PredictionContextMergeCache::clear() {
|
89
|
-
Container().swap(_entries);
|
90
|
-
_head = _tail = nullptr;
|
91
|
-
_size = 0;
|
92
|
-
}
|
93
|
-
|
94
|
-
void PredictionContextMergeCache::moveToFront(Entry *entry) const {
|
95
|
-
if (entry->prev == nullptr) {
|
96
|
-
assert(entry == _head);
|
97
|
-
return;
|
98
|
-
}
|
99
|
-
entry->prev->next = entry->next;
|
100
|
-
if (entry->next != nullptr) {
|
101
|
-
entry->next->prev = entry->prev;
|
102
|
-
} else {
|
103
|
-
assert(entry == _tail);
|
104
|
-
_tail = entry->prev;
|
105
|
-
}
|
106
|
-
entry->prev = nullptr;
|
107
|
-
entry->next = _head;
|
108
|
-
_head->prev = entry;
|
109
|
-
_head = entry;
|
110
|
-
assert(entry->prev == nullptr);
|
111
|
-
}
|
112
|
-
|
113
|
-
void PredictionContextMergeCache::pushToFront(Entry *entry) {
|
114
|
-
++_size;
|
115
|
-
entry->prev = nullptr;
|
116
|
-
entry->next = _head;
|
117
|
-
if (_head != nullptr) {
|
118
|
-
_head->prev = entry;
|
119
|
-
_head = entry;
|
120
|
-
} else {
|
121
|
-
assert(entry->next == nullptr);
|
122
|
-
_head = entry;
|
123
|
-
_tail = entry;
|
124
|
-
}
|
125
|
-
assert(entry->prev == nullptr);
|
126
|
-
}
|
127
|
-
|
128
|
-
void PredictionContextMergeCache::remove(Entry *entry) {
|
129
|
-
if (entry->prev != nullptr) {
|
130
|
-
entry->prev->next = entry->next;
|
131
|
-
} else {
|
132
|
-
assert(entry == _head);
|
133
|
-
_head = entry->next;
|
134
|
-
}
|
135
|
-
if (entry->next != nullptr) {
|
136
|
-
entry->next->prev = entry->prev;
|
137
|
-
} else {
|
138
|
-
assert(entry == _tail);
|
139
|
-
_tail = entry->prev;
|
140
|
-
}
|
141
|
-
--_size;
|
142
|
-
_entries.erase(std::make_pair(entry->key.first.get(), entry->key.second.get()));
|
143
|
-
}
|
144
|
-
|
145
|
-
void PredictionContextMergeCache::compact(const Entry *preserve) {
|
146
|
-
Entry *entry = _tail;
|
147
|
-
while (entry != nullptr && _size > getOptions().getMaxSize()) {
|
148
|
-
Entry *next = entry->prev;
|
149
|
-
if (entry != preserve) {
|
150
|
-
remove(entry);
|
151
|
-
}
|
152
|
-
entry = next;
|
153
|
-
}
|
154
|
-
}
|
155
|
-
|
156
|
-
size_t PredictionContextMergeCache::PredictionContextHasher::operator()(
|
157
|
-
const PredictionContextPair &value) const {
|
158
|
-
size_t hash = MurmurHash::initialize();
|
159
|
-
hash = MurmurHash::update(hash, value.first->hashCode());
|
160
|
-
hash = MurmurHash::update(hash, value.second->hashCode());
|
161
|
-
return MurmurHash::finish(hash, 2);
|
162
|
-
}
|
163
|
-
|
164
|
-
bool PredictionContextMergeCache::PredictionContextComparer::operator()(
|
165
|
-
const PredictionContextPair &lhs, const PredictionContextPair &rhs) const {
|
166
|
-
return *lhs.first == *rhs.first && *lhs.second == *rhs.second;
|
167
|
-
}
|
data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
// Copyright 2012-2022 The ANTLR Project
|
2
|
-
//
|
3
|
-
// Redistribution and use in source and binary forms, with or without modification, are permitted
|
4
|
-
// provided that the following conditions are met:
|
5
|
-
//
|
6
|
-
// 1. Redistributions of source code must retain the above copyright notice, this list of conditions
|
7
|
-
// and the following disclaimer.
|
8
|
-
//
|
9
|
-
// 2. Redistributions in binary form must reproduce the above copyright notice, this list of
|
10
|
-
// conditions and the following disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
//
|
13
|
-
// 3. Neither the name of the copyright holder nor the names of its contributors may be used to
|
14
|
-
// endorse or promote products derived from this software without specific prior written
|
15
|
-
// permission.
|
16
|
-
//
|
17
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
18
|
-
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
19
|
-
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
20
|
-
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
21
|
-
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
22
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
23
|
-
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
24
|
-
// WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
25
|
-
|
26
|
-
#pragma once
|
27
|
-
|
28
|
-
#include <utility>
|
29
|
-
|
30
|
-
#include "atn/PredictionContext.h"
|
31
|
-
#include "atn/PredictionContextMergeCacheOptions.h"
|
32
|
-
#include "FlatHashMap.h"
|
33
|
-
|
34
|
-
namespace antlr4 {
|
35
|
-
namespace atn {
|
36
|
-
|
37
|
-
class ANTLR4CPP_PUBLIC PredictionContextMergeCache final {
|
38
|
-
public:
|
39
|
-
PredictionContextMergeCache()
|
40
|
-
: PredictionContextMergeCache(PredictionContextMergeCacheOptions()) {}
|
41
|
-
|
42
|
-
explicit PredictionContextMergeCache(const PredictionContextMergeCacheOptions &options);
|
43
|
-
|
44
|
-
PredictionContextMergeCache(const PredictionContextMergeCache&) = delete;
|
45
|
-
PredictionContextMergeCache(PredictionContextMergeCache&&) = delete;
|
46
|
-
|
47
|
-
PredictionContextMergeCache& operator=(const PredictionContextMergeCache&) = delete;
|
48
|
-
PredictionContextMergeCache& operator=(PredictionContextMergeCache&&) = delete;
|
49
|
-
|
50
|
-
Ref<const PredictionContext> put(const Ref<const PredictionContext> &key1,
|
51
|
-
const Ref<const PredictionContext> &key2,
|
52
|
-
Ref<const PredictionContext> value);
|
53
|
-
|
54
|
-
Ref<const PredictionContext> get(const Ref<const PredictionContext> &key1,
|
55
|
-
const Ref<const PredictionContext> &key2) const;
|
56
|
-
|
57
|
-
const PredictionContextMergeCacheOptions& getOptions() const { return _options; }
|
58
|
-
|
59
|
-
void clear();
|
60
|
-
|
61
|
-
private:
|
62
|
-
using PredictionContextPair = std::pair<const PredictionContext*, const PredictionContext*>;
|
63
|
-
|
64
|
-
struct ANTLR4CPP_PUBLIC PredictionContextHasher final {
|
65
|
-
size_t operator()(const PredictionContextPair &value) const;
|
66
|
-
};
|
67
|
-
|
68
|
-
struct ANTLR4CPP_PUBLIC PredictionContextComparer final {
|
69
|
-
bool operator()(const PredictionContextPair &lhs, const PredictionContextPair &rhs) const;
|
70
|
-
};
|
71
|
-
|
72
|
-
struct ANTLR4CPP_PUBLIC Entry final {
|
73
|
-
std::pair<Ref<const PredictionContext>, Ref<const PredictionContext>> key;
|
74
|
-
Ref<const PredictionContext> value;
|
75
|
-
Entry *prev = nullptr;
|
76
|
-
Entry *next = nullptr;
|
77
|
-
};
|
78
|
-
|
79
|
-
void moveToFront(Entry *entry) const;
|
80
|
-
|
81
|
-
void pushToFront(Entry *entry);
|
82
|
-
|
83
|
-
void remove(Entry *entry);
|
84
|
-
|
85
|
-
void compact(const Entry *preserve);
|
86
|
-
|
87
|
-
using Container = FlatHashMap<PredictionContextPair, std::unique_ptr<Entry>,
|
88
|
-
PredictionContextHasher, PredictionContextComparer>;
|
89
|
-
|
90
|
-
const PredictionContextMergeCacheOptions _options;
|
91
|
-
|
92
|
-
Container _entries;
|
93
|
-
|
94
|
-
mutable Entry *_head = nullptr;
|
95
|
-
mutable Entry *_tail = nullptr;
|
96
|
-
|
97
|
-
size_t _size = 0;
|
98
|
-
};
|
99
|
-
|
100
|
-
} // namespace atn
|
101
|
-
} // namespace antlr4
|
@@ -1,71 +0,0 @@
|
|
1
|
-
// Copyright 2012-2022 The ANTLR Project
|
2
|
-
//
|
3
|
-
// Redistribution and use in source and binary forms, with or without modification, are permitted
|
4
|
-
// provided that the following conditions are met:
|
5
|
-
//
|
6
|
-
// 1. Redistributions of source code must retain the above copyright notice, this list of conditions
|
7
|
-
// and the following disclaimer.
|
8
|
-
//
|
9
|
-
// 2. Redistributions in binary form must reproduce the above copyright notice, this list of
|
10
|
-
// conditions and the following disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
//
|
13
|
-
// 3. Neither the name of the copyright holder nor the names of its contributors may be used to
|
14
|
-
// endorse or promote products derived from this software without specific prior written
|
15
|
-
// permission.
|
16
|
-
//
|
17
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
18
|
-
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
19
|
-
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
20
|
-
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
21
|
-
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
22
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
23
|
-
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
24
|
-
// WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
25
|
-
|
26
|
-
#pragma once
|
27
|
-
|
28
|
-
#include <cstddef>
|
29
|
-
#include <cstdint>
|
30
|
-
#include <limits>
|
31
|
-
|
32
|
-
#include "antlr4-common.h"
|
33
|
-
|
34
|
-
namespace antlr4 {
|
35
|
-
namespace atn {
|
36
|
-
|
37
|
-
class ANTLR4CPP_PUBLIC PredictionContextMergeCacheOptions final {
|
38
|
-
public:
|
39
|
-
PredictionContextMergeCacheOptions() = default;
|
40
|
-
|
41
|
-
size_t getMaxSize() const { return _maxSize; }
|
42
|
-
|
43
|
-
bool hasMaxSize() const { return getMaxSize() != std::numeric_limits<size_t>::max(); }
|
44
|
-
|
45
|
-
PredictionContextMergeCacheOptions& setMaxSize(size_t maxSize) {
|
46
|
-
_maxSize = maxSize;
|
47
|
-
return *this;
|
48
|
-
}
|
49
|
-
|
50
|
-
size_t getClearEveryN() const {
|
51
|
-
return _clearEveryN;
|
52
|
-
}
|
53
|
-
|
54
|
-
bool hasClearEveryN() const { return getClearEveryN() != 0; }
|
55
|
-
|
56
|
-
PredictionContextMergeCacheOptions& setClearEveryN(uint64_t clearEveryN) {
|
57
|
-
_clearEveryN = clearEveryN;
|
58
|
-
return *this;
|
59
|
-
}
|
60
|
-
|
61
|
-
PredictionContextMergeCacheOptions& neverClear() {
|
62
|
-
return setClearEveryN(0);
|
63
|
-
}
|
64
|
-
|
65
|
-
private:
|
66
|
-
size_t _maxSize = std::numeric_limits<size_t>::max();
|
67
|
-
uint64_t _clearEveryN = 1;
|
68
|
-
};
|
69
|
-
|
70
|
-
} // namespace atn
|
71
|
-
} // namespace antlr4
|