expressir 1.3.0 → 1.3.1
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 +47 -0
- data/.github/workflows/rake.yml +9 -8
- data/.github/workflows/release.yml +13 -10
- data/.github/workflows/stress.yml +53 -0
- data/.gitignore +1 -1
- data/.gitmodules +2 -2
- data/exe/generate-parser +1 -1
- data/expressir.gemspec +4 -4
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +191 -0
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +11 -26
- data/ext/{express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj.filters → express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters} +52 -85
- data/ext/{express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj → express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2022.vcxproj} +38 -45
- data/ext/{express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj.filters → express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2022.vcxproj.filters} +42 -81
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +177 -177
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.nuspec +23 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.targets +8 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.nuspec +30 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.props +21 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.targets +44 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.nuspec +29 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.targets +44 -0
- 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 +93 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashMap.h +57 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashSet.h +57 -0
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +4 -2
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +3 -2
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +2 -1
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Version.h +1 -1
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +5 -2
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +1 -2
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +2 -1
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +4 -3
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +4 -4
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +9 -8
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +2 -1
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +2 -17
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +0 -1
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +30 -10
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +1 -1
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/HashUtils.h +18 -0
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +18 -12
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +1 -4
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +1 -8
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +68 -38
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +23 -1
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.h +3 -4
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h +3 -3
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +2 -2
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +11 -11
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +11 -7
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +1 -8
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +1 -1
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +2 -1
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.cpp +100 -0
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.h +154 -0
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +1 -1
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +18 -18
- data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +180 -0
- data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +16 -10
- data/ext/{express-parser → express_parser}/express_parser.cpp +17 -15
- data/ext/{express-parser → express_parser}/extconf.rb +1 -0
- data/lib/expressir/express/parser.rb +0 -1
- data/lib/expressir/express/visitor.rb +11 -8
- data/lib/expressir/model/declarations/schema.rb +3 -3
- data/lib/expressir/model/model_element.rb +4 -4
- data/lib/expressir/version.rb +1 -1
- data/lib/expressir.rb +20 -0
- data/rakelib/antlr4-native.rake +24 -12
- data/rakelib/cross-ruby.rake +1 -1
- data/spec/acceptance/version_spec.rb +3 -0
- data/spec/expressir/express/cache_spec.rb +2 -2
- data/spec/expressir/express/formatter_spec.rb +0 -2
- metadata +359 -347
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +0 -153
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj +0 -643
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj +0 -659
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj.filters +0 -987
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +0 -987
- data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +0 -182
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulatorOptions.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCacheOptions.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextType.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContextType.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SerializedATNView.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Casts.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Unicode.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeType.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +0 -0
- /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/tests/Utf8Test.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/Express.interp +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/Express.tokens +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressBaseListener.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressBaseListener.h +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressBaseVisitor.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressBaseVisitor.h +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressLexer.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressLexer.h +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressLexer.interp +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressLexer.tokens +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressListener.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressListener.h +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressParser.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressParser.h +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressVisitor.cpp +0 -0
- /data/ext/{express-parser → express_parser}/antlrgen/ExpressVisitor.h +0 -0
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "atn/RuleStopState.h"
|
|
22
22
|
#include "atn/ATNConfigSet.h"
|
|
23
23
|
#include "atn/ATNConfig.h"
|
|
24
|
+
#include "internal/Synchronization.h"
|
|
24
25
|
|
|
25
26
|
#include "atn/StarLoopEntryState.h"
|
|
26
27
|
#include "atn/BlockStartState.h"
|
|
@@ -35,14 +36,22 @@
|
|
|
35
36
|
|
|
36
37
|
#include "atn/ParserATNSimulator.h"
|
|
37
38
|
|
|
39
|
+
#ifndef DEBUG_ATN
|
|
38
40
|
#define DEBUG_ATN 0
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
+
#endif
|
|
42
|
+
#ifndef TRACE_ATN_SIM
|
|
43
|
+
#define TRACE_ATN_SIM 0
|
|
44
|
+
#endif
|
|
45
|
+
#ifndef DFA_DEBUG
|
|
46
|
+
#define DFA_DEBUG 0
|
|
47
|
+
#endif
|
|
48
|
+
#ifndef RETRY_DEBUG
|
|
41
49
|
#define RETRY_DEBUG 0
|
|
50
|
+
#endif
|
|
42
51
|
|
|
43
52
|
using namespace antlr4;
|
|
44
53
|
using namespace antlr4::atn;
|
|
45
|
-
|
|
54
|
+
using namespace antlr4::internal;
|
|
46
55
|
using namespace antlrcpp;
|
|
47
56
|
|
|
48
57
|
const bool ParserATNSimulator::TURN_OFF_LR_LOOP_ENTRY_BRANCH_OPT = ParserATNSimulator::getLrLoopSetting();
|
|
@@ -77,7 +86,7 @@ void ParserATNSimulator::clearDFA() {
|
|
|
77
86
|
|
|
78
87
|
size_t ParserATNSimulator::adaptivePredict(TokenStream *input, size_t decision, ParserRuleContext *outerContext) {
|
|
79
88
|
|
|
80
|
-
#if DEBUG_ATN == 1 ||
|
|
89
|
+
#if DEBUG_ATN == 1 || TRACE_ATN_SIM == 1
|
|
81
90
|
std::cout << "adaptivePredict decision " << decision << " exec LA(1)==" << getLookaheadName(input) << " line "
|
|
82
91
|
<< input->LT(1)->getLine() << ":" << input->LT(1)->getCharPositionInLine() << std::endl;
|
|
83
92
|
#endif
|
|
@@ -107,11 +116,11 @@ size_t ParserATNSimulator::adaptivePredict(TokenStream *input, size_t decision,
|
|
|
107
116
|
|
|
108
117
|
dfa::DFAState *s0;
|
|
109
118
|
{
|
|
110
|
-
|
|
119
|
+
SharedLock<SharedMutex> stateLock(atn._stateMutex);
|
|
111
120
|
if (dfa.isPrecedenceDfa()) {
|
|
112
121
|
// the start state for a precedence DFA depends on the current
|
|
113
122
|
// parser precedence, and is provided by a DFA method.
|
|
114
|
-
|
|
123
|
+
SharedLock<SharedMutex> edgeLock(atn._edgeMutex);
|
|
115
124
|
s0 = dfa.getPrecedenceStartState(parser->getPrecedence());
|
|
116
125
|
} else {
|
|
117
126
|
// the start state for a "regular" DFA is just s0
|
|
@@ -123,7 +132,7 @@ size_t ParserATNSimulator::adaptivePredict(TokenStream *input, size_t decision,
|
|
|
123
132
|
auto s0_closure = computeStartState(dfa.atnStartState, &ParserRuleContext::EMPTY, false);
|
|
124
133
|
std::unique_ptr<dfa::DFAState> newState;
|
|
125
134
|
std::unique_ptr<dfa::DFAState> oldState;
|
|
126
|
-
|
|
135
|
+
UniqueLock<SharedMutex> stateLock(atn._stateMutex);
|
|
127
136
|
dfa::DFAState* ds0 = dfa.s0;
|
|
128
137
|
if (dfa.isPrecedenceDfa()) {
|
|
129
138
|
/* If this is a precedence DFA, we use applyPrecedenceFilter
|
|
@@ -135,7 +144,7 @@ size_t ParserATNSimulator::adaptivePredict(TokenStream *input, size_t decision,
|
|
|
135
144
|
ds0->configs = std::move(s0_closure); // not used for prediction but useful to know start configs anyway
|
|
136
145
|
newState = std::make_unique<dfa::DFAState>(applyPrecedenceFilter(ds0->configs.get()));
|
|
137
146
|
s0 = addDFAState(dfa, newState.get());
|
|
138
|
-
|
|
147
|
+
UniqueLock<SharedMutex> edgeLock(atn._edgeMutex);
|
|
139
148
|
dfa.setPrecedenceStartState(parser->getPrecedence(), s0);
|
|
140
149
|
} else {
|
|
141
150
|
newState = std::make_unique<dfa::DFAState>(std::move(s0_closure));
|
|
@@ -159,15 +168,16 @@ size_t ParserATNSimulator::adaptivePredict(TokenStream *input, size_t decision,
|
|
|
159
168
|
size_t ParserATNSimulator::execATN(dfa::DFA &dfa, dfa::DFAState *s0, TokenStream *input, size_t startIndex,
|
|
160
169
|
ParserRuleContext *outerContext) {
|
|
161
170
|
|
|
162
|
-
#if DEBUG_ATN == 1 ||
|
|
163
|
-
std::cout << "execATN decision " << dfa.decision << "
|
|
171
|
+
#if DEBUG_ATN == 1 || TRACE_ATN_SIM == 1
|
|
172
|
+
std::cout << "execATN decision " << dfa.decision << ", DFA state " << s0->toString() <<
|
|
173
|
+
", LA(1)==" << getLookaheadName(input) <<
|
|
164
174
|
" line " << input->LT(1)->getLine() << ":" << input->LT(1)->getCharPositionInLine() << std::endl;
|
|
165
175
|
#endif
|
|
166
176
|
|
|
167
177
|
dfa::DFAState *previousD = s0;
|
|
168
178
|
|
|
169
179
|
#if DEBUG_ATN == 1
|
|
170
|
-
std::cout << "s0 = " << s0 << std::endl;
|
|
180
|
+
std::cout << "s0 = " << s0->toString() << std::endl;
|
|
171
181
|
#endif
|
|
172
182
|
|
|
173
183
|
size_t t = input->LA(1);
|
|
@@ -227,7 +237,7 @@ size_t ParserATNSimulator::execATN(dfa::DFA &dfa, dfa::DFAState *s0, TokenStream
|
|
|
227
237
|
}
|
|
228
238
|
}
|
|
229
239
|
|
|
230
|
-
#if
|
|
240
|
+
#if DFA_DEBUG == 1
|
|
231
241
|
std::cout << "ctx sensitive state " << outerContext << " in " << D << std::endl;
|
|
232
242
|
#endif
|
|
233
243
|
|
|
@@ -272,7 +282,7 @@ size_t ParserATNSimulator::execATN(dfa::DFA &dfa, dfa::DFAState *s0, TokenStream
|
|
|
272
282
|
|
|
273
283
|
dfa::DFAState *ParserATNSimulator::getExistingTargetState(dfa::DFAState *previousD, size_t t) {
|
|
274
284
|
dfa::DFAState* retval;
|
|
275
|
-
|
|
285
|
+
SharedLock<SharedMutex> edgeLock(atn._edgeMutex);
|
|
276
286
|
auto iterator = previousD->edges.find(t);
|
|
277
287
|
retval = (iterator == previousD->edges.end()) ? nullptr : iterator->second;
|
|
278
288
|
return retval;
|
|
@@ -341,6 +351,10 @@ void ParserATNSimulator::predicateDFAState(dfa::DFAState *dfaState, DecisionStat
|
|
|
341
351
|
size_t ParserATNSimulator::execATNWithFullContext(dfa::DFA &dfa, dfa::DFAState *D, ATNConfigSet *s0,
|
|
342
352
|
TokenStream *input, size_t startIndex, ParserRuleContext *outerContext) {
|
|
343
353
|
|
|
354
|
+
#if TRACE_ATN_SIM == 1
|
|
355
|
+
std::cout << "execATNWithFullContext " << s0->toString() << std::endl;
|
|
356
|
+
#endif
|
|
357
|
+
|
|
344
358
|
bool fullCtx = true;
|
|
345
359
|
bool foundExactAmbig = false;
|
|
346
360
|
|
|
@@ -562,7 +576,11 @@ std::unique_ptr<ATNConfigSet> ParserATNSimulator::computeReachSet(ATNConfigSet *
|
|
|
562
576
|
}
|
|
563
577
|
}
|
|
564
578
|
|
|
565
|
-
|
|
579
|
+
#if DEBUG_ATN == 1 || TRACE_ATN_SIM == 1
|
|
580
|
+
std::cout << "computeReachSet " << closure_->toString() << " -> " << reach->toString() << std::endl;
|
|
581
|
+
#endif
|
|
582
|
+
|
|
583
|
+
if (reach->isEmpty()) {
|
|
566
584
|
return nullptr;
|
|
567
585
|
}
|
|
568
586
|
return reach;
|
|
@@ -599,7 +617,11 @@ std::unique_ptr<ATNConfigSet> ParserATNSimulator::computeStartState(ATNState *p,
|
|
|
599
617
|
Ref<const PredictionContext> initialContext = PredictionContext::fromRuleContext(atn, ctx);
|
|
600
618
|
std::unique_ptr<ATNConfigSet> configs(new ATNConfigSet(fullCtx));
|
|
601
619
|
|
|
602
|
-
|
|
620
|
+
#if DEBUG_ATN == 1 || TRACE_ATN_SIM == 1
|
|
621
|
+
std::cout << "computeStartState from ATN state " << p->toString() << " initialContext=" << initialContext->toString() << std::endl;
|
|
622
|
+
#endif
|
|
623
|
+
|
|
624
|
+
for (size_t i = 0; i < p->transitions.size(); i++) {
|
|
603
625
|
ATNState *target = p->transitions[i]->target;
|
|
604
626
|
Ref<ATNConfig> c = std::make_shared<ATNConfig>(target, (int)i + 1, initialContext);
|
|
605
627
|
ATNConfig::Set closureBusy;
|
|
@@ -691,8 +713,8 @@ std::vector<Ref<const SemanticContext>> ParserATNSimulator::getPredsForAmbigAlts
|
|
|
691
713
|
size_t nPredAlts = 0;
|
|
692
714
|
for (size_t i = 1; i <= nalts; i++) {
|
|
693
715
|
if (altToPred[i] == nullptr) {
|
|
694
|
-
altToPred[i] = SemanticContext::
|
|
695
|
-
} else if (altToPred[i] != SemanticContext::
|
|
716
|
+
altToPred[i] = SemanticContext::Empty::Instance;
|
|
717
|
+
} else if (altToPred[i] != SemanticContext::Empty::Instance) {
|
|
696
718
|
nPredAlts++;
|
|
697
719
|
}
|
|
698
720
|
}
|
|
@@ -711,7 +733,7 @@ std::vector<Ref<const SemanticContext>> ParserATNSimulator::getPredsForAmbigAlts
|
|
|
711
733
|
std::vector<dfa::DFAState::PredPrediction> ParserATNSimulator::getPredicatePredictions(const antlrcpp::BitSet &ambigAlts,
|
|
712
734
|
const std::vector<Ref<const SemanticContext>> &altToPred) {
|
|
713
735
|
bool containsPredicate = std::find_if(altToPred.begin(), altToPred.end(), [](const Ref<const SemanticContext> &context) {
|
|
714
|
-
return context != SemanticContext::
|
|
736
|
+
return context != SemanticContext::Empty::Instance;
|
|
715
737
|
}) != altToPred.end();
|
|
716
738
|
std::vector<dfa::DFAState::PredPrediction> pairs;
|
|
717
739
|
if (containsPredicate) {
|
|
@@ -766,7 +788,7 @@ std::pair<ATNConfigSet *, ATNConfigSet *> ParserATNSimulator::splitAccordingToSe
|
|
|
766
788
|
ATNConfigSet *succeeded(new ATNConfigSet(configs->fullCtx));
|
|
767
789
|
ATNConfigSet *failed(new ATNConfigSet(configs->fullCtx));
|
|
768
790
|
for (const auto &c : configs->configs) {
|
|
769
|
-
if (c->semanticContext != SemanticContext::
|
|
791
|
+
if (c->semanticContext != SemanticContext::Empty::Instance) {
|
|
770
792
|
bool predicateEvaluationResult = evalSemanticContext(c->semanticContext, outerContext, c->alt, configs->fullCtx);
|
|
771
793
|
if (predicateEvaluationResult) {
|
|
772
794
|
succeeded->add(c);
|
|
@@ -784,7 +806,7 @@ BitSet ParserATNSimulator::evalSemanticContext(const std::vector<dfa::DFAState::
|
|
|
784
806
|
ParserRuleContext *outerContext, bool complete) {
|
|
785
807
|
BitSet predictions;
|
|
786
808
|
for (const auto &prediction : predPredictions) {
|
|
787
|
-
if (prediction.pred == SemanticContext::
|
|
809
|
+
if (prediction.pred == SemanticContext::Empty::Instance) {
|
|
788
810
|
predictions.set(prediction.alt);
|
|
789
811
|
if (!complete) {
|
|
790
812
|
break;
|
|
@@ -794,12 +816,12 @@ BitSet ParserATNSimulator::evalSemanticContext(const std::vector<dfa::DFAState::
|
|
|
794
816
|
|
|
795
817
|
bool fullCtx = false; // in dfa
|
|
796
818
|
bool predicateEvaluationResult = evalSemanticContext(prediction.pred, outerContext, prediction.alt, fullCtx);
|
|
797
|
-
#if DEBUG_ATN == 1 ||
|
|
819
|
+
#if DEBUG_ATN == 1 || DFA_DEBUG == 1
|
|
798
820
|
std::cout << "eval pred " << prediction.toString() << " = " << predicateEvaluationResult << std::endl;
|
|
799
821
|
#endif
|
|
800
822
|
|
|
801
823
|
if (predicateEvaluationResult) {
|
|
802
|
-
#if DEBUG_ATN == 1 ||
|
|
824
|
+
#if DEBUG_ATN == 1 || DFA_DEBUG == 1
|
|
803
825
|
std::cout << "PREDICT " << prediction.alt << std::endl;
|
|
804
826
|
#endif
|
|
805
827
|
|
|
@@ -829,7 +851,7 @@ void ParserATNSimulator::closure(Ref<ATNConfig> const& config, ATNConfigSet *con
|
|
|
829
851
|
void ParserATNSimulator::closureCheckingStopState(Ref<ATNConfig> const& config, ATNConfigSet *configs,
|
|
830
852
|
ATNConfig::Set &closureBusy, bool collectPredicates, bool fullCtx, int depth, bool treatEofAsEpsilon) {
|
|
831
853
|
|
|
832
|
-
#if
|
|
854
|
+
#if TRACE_ATN_SIM == 1
|
|
833
855
|
std::cout << "closure(" << config->toString(true) << ")" << std::endl;
|
|
834
856
|
#endif
|
|
835
857
|
|
|
@@ -935,7 +957,7 @@ void ParserATNSimulator::closure_(Ref<ATNConfig> const& config, ATNConfigSet *co
|
|
|
935
957
|
assert(newDepth > INT_MIN);
|
|
936
958
|
|
|
937
959
|
newDepth--;
|
|
938
|
-
#if
|
|
960
|
+
#if DFA_DEBUG == 1
|
|
939
961
|
std::cout << "dips into outer ctx: " << c << std::endl;
|
|
940
962
|
#endif
|
|
941
963
|
|
|
@@ -1082,7 +1104,7 @@ Ref<ATNConfig> ParserATNSimulator::getEpsilonTarget(Ref<ATNConfig> const& config
|
|
|
1082
1104
|
}
|
|
1083
1105
|
|
|
1084
1106
|
Ref<ATNConfig> ParserATNSimulator::actionTransition(Ref<ATNConfig> const& config, const ActionTransition *t) {
|
|
1085
|
-
#if
|
|
1107
|
+
#if DFA_DEBUG == 1
|
|
1086
1108
|
std::cout << "ACTION edge " << t->ruleIndex << ":" << t->actionIndex << std::endl;
|
|
1087
1109
|
#endif
|
|
1088
1110
|
|
|
@@ -1091,7 +1113,7 @@ Ref<ATNConfig> ParserATNSimulator::actionTransition(Ref<ATNConfig> const& config
|
|
|
1091
1113
|
|
|
1092
1114
|
Ref<ATNConfig> ParserATNSimulator::precedenceTransition(Ref<ATNConfig> const& config, const PrecedencePredicateTransition *pt,
|
|
1093
1115
|
bool collectPredicates, bool inContext, bool fullCtx) {
|
|
1094
|
-
#if
|
|
1116
|
+
#if DFA_DEBUG == 1
|
|
1095
1117
|
std::cout << "PRED (collectPredicates=" << collectPredicates << ") " << pt->getPrecedence() << ">=_p" << ", ctx dependent=true" << std::endl;
|
|
1096
1118
|
if (parser != nullptr) {
|
|
1097
1119
|
std::cout << "context surrounding pred is " << Arrays::listToString(parser->getRuleInvocationStack(), ", ") << std::endl;
|
|
@@ -1122,7 +1144,7 @@ Ref<ATNConfig> ParserATNSimulator::precedenceTransition(Ref<ATNConfig> const& co
|
|
|
1122
1144
|
c = std::make_shared<ATNConfig>(*config, pt->target);
|
|
1123
1145
|
}
|
|
1124
1146
|
|
|
1125
|
-
#if
|
|
1147
|
+
#if DFA_DEBUG == 1
|
|
1126
1148
|
std::cout << "config from pred transition=" << c << std::endl;
|
|
1127
1149
|
#endif
|
|
1128
1150
|
|
|
@@ -1131,7 +1153,7 @@ Ref<ATNConfig> ParserATNSimulator::precedenceTransition(Ref<ATNConfig> const& co
|
|
|
1131
1153
|
|
|
1132
1154
|
Ref<ATNConfig> ParserATNSimulator::predTransition(Ref<ATNConfig> const& config, const PredicateTransition *pt,
|
|
1133
1155
|
bool collectPredicates, bool inContext, bool fullCtx) {
|
|
1134
|
-
#if
|
|
1156
|
+
#if DFA_DEBUG == 1
|
|
1135
1157
|
std::cout << "PRED (collectPredicates=" << collectPredicates << ") " << pt->getRuleIndex() << ":" << pt->getPredIndex() << ", ctx dependent=" << pt->isCtxDependent() << std::endl;
|
|
1136
1158
|
if (parser != nullptr) {
|
|
1137
1159
|
std::cout << "context surrounding pred is " << Arrays::listToString(parser->getRuleInvocationStack(), ", ") << std::endl;
|
|
@@ -1161,7 +1183,7 @@ Ref<ATNConfig> ParserATNSimulator::predTransition(Ref<ATNConfig> const& config,
|
|
|
1161
1183
|
c = std::make_shared<ATNConfig>(*config, pt->target);
|
|
1162
1184
|
}
|
|
1163
1185
|
|
|
1164
|
-
#if
|
|
1186
|
+
#if DFA_DEBUG == 1
|
|
1165
1187
|
std::cout << "config from pred transition=" << c << std::endl;
|
|
1166
1188
|
#endif
|
|
1167
1189
|
|
|
@@ -1169,7 +1191,7 @@ Ref<ATNConfig> ParserATNSimulator::predTransition(Ref<ATNConfig> const& config,
|
|
|
1169
1191
|
}
|
|
1170
1192
|
|
|
1171
1193
|
Ref<ATNConfig> ParserATNSimulator::ruleTransition(Ref<ATNConfig> const& config, const RuleTransition *t) {
|
|
1172
|
-
#if
|
|
1194
|
+
#if DFA_DEBUG == 1
|
|
1173
1195
|
std::cout << "CALL rule " << getRuleName(t->target->ruleIndex) << ", ctx=" << config->context << std::endl;
|
|
1174
1196
|
#endif
|
|
1175
1197
|
|
|
@@ -1252,7 +1274,7 @@ size_t ParserATNSimulator::getUniqueAlt(ATNConfigSet *configs) {
|
|
|
1252
1274
|
}
|
|
1253
1275
|
|
|
1254
1276
|
dfa::DFAState *ParserATNSimulator::addDFAEdge(dfa::DFA &dfa, dfa::DFAState *from, ssize_t t, dfa::DFAState *to) {
|
|
1255
|
-
#if
|
|
1277
|
+
#if DFA_DEBUG == 1
|
|
1256
1278
|
std::cout << "EDGE " << from << " -> " << to << " upon " << getTokenName(t) << std::endl;
|
|
1257
1279
|
#endif
|
|
1258
1280
|
|
|
@@ -1261,7 +1283,7 @@ dfa::DFAState *ParserATNSimulator::addDFAEdge(dfa::DFA &dfa, dfa::DFAState *from
|
|
|
1261
1283
|
}
|
|
1262
1284
|
|
|
1263
1285
|
{
|
|
1264
|
-
|
|
1286
|
+
UniqueLock<SharedMutex> stateLock(atn._stateMutex);
|
|
1265
1287
|
to = addDFAState(dfa, to); // used existing if possible not incoming
|
|
1266
1288
|
}
|
|
1267
1289
|
if (from == nullptr || t > (int)atn.maxTokenType) {
|
|
@@ -1269,11 +1291,11 @@ dfa::DFAState *ParserATNSimulator::addDFAEdge(dfa::DFA &dfa, dfa::DFAState *from
|
|
|
1269
1291
|
}
|
|
1270
1292
|
|
|
1271
1293
|
{
|
|
1272
|
-
|
|
1294
|
+
UniqueLock<SharedMutex> edgeLock(atn._edgeMutex);
|
|
1273
1295
|
from->edges[t] = to; // connect
|
|
1274
1296
|
}
|
|
1275
1297
|
|
|
1276
|
-
#if
|
|
1298
|
+
#if DFA_DEBUG == 1
|
|
1277
1299
|
std::string dfaText;
|
|
1278
1300
|
if (parser != nullptr) {
|
|
1279
1301
|
dfaText = dfa.toString(parser->getVocabulary());
|
|
@@ -1295,18 +1317,26 @@ dfa::DFAState *ParserATNSimulator::addDFAState(dfa::DFA &dfa, dfa::DFAState *D)
|
|
|
1295
1317
|
// which will only succeed if an equivalent DFAState does not already exist.
|
|
1296
1318
|
auto [existing, inserted] = dfa.states.insert(D);
|
|
1297
1319
|
if (!inserted) {
|
|
1320
|
+
#if TRACE_ATN_SIM == 1
|
|
1321
|
+
std::cout << "addDFAState " << D->toString() << " exists" << std::endl;
|
|
1322
|
+
#endif
|
|
1298
1323
|
return *existing;
|
|
1299
1324
|
}
|
|
1300
1325
|
|
|
1301
1326
|
// Previously we did a lookup, then set fields, then inserted. It was `dfa.states.size()`, since
|
|
1302
1327
|
// we already inserted we need to subtract one.
|
|
1303
1328
|
D->stateNumber = static_cast<int>(dfa.states.size() - 1);
|
|
1329
|
+
|
|
1330
|
+
#if TRACE_ATN_SIM == 1
|
|
1331
|
+
std::cout << "addDFAState new " << D->toString() << std::endl;
|
|
1332
|
+
#endif
|
|
1333
|
+
|
|
1304
1334
|
if (!D->configs->isReadonly()) {
|
|
1305
1335
|
D->configs->optimizeConfigs(this);
|
|
1306
1336
|
D->configs->setReadonly(true);
|
|
1307
1337
|
}
|
|
1308
1338
|
|
|
1309
|
-
#if
|
|
1339
|
+
#if DFA_DEBUG == 1
|
|
1310
1340
|
std::cout << "adding new DFA state: " << D << std::endl;
|
|
1311
1341
|
#endif
|
|
1312
1342
|
|
|
@@ -1315,7 +1345,7 @@ dfa::DFAState *ParserATNSimulator::addDFAState(dfa::DFA &dfa, dfa::DFAState *D)
|
|
|
1315
1345
|
|
|
1316
1346
|
void ParserATNSimulator::reportAttemptingFullContext(dfa::DFA &dfa, const antlrcpp::BitSet &conflictingAlts,
|
|
1317
1347
|
ATNConfigSet *configs, size_t startIndex, size_t stopIndex) {
|
|
1318
|
-
#if
|
|
1348
|
+
#if DFA_DEBUG == 1 || RETRY_DEBUG == 1
|
|
1319
1349
|
misc::Interval interval = misc::Interval((int)startIndex, (int)stopIndex);
|
|
1320
1350
|
std::cout << "reportAttemptingFullContext decision=" << dfa.decision << ":" << configs << ", input=" << parser->getTokenStream()->getText(interval) << std::endl;
|
|
1321
1351
|
#endif
|
|
@@ -1327,7 +1357,7 @@ void ParserATNSimulator::reportAttemptingFullContext(dfa::DFA &dfa, const antlrc
|
|
|
1327
1357
|
|
|
1328
1358
|
void ParserATNSimulator::reportContextSensitivity(dfa::DFA &dfa, size_t prediction, ATNConfigSet *configs,
|
|
1329
1359
|
size_t startIndex, size_t stopIndex) {
|
|
1330
|
-
#if
|
|
1360
|
+
#if DFA_DEBUG == 1 || RETRY_DEBUG == 1
|
|
1331
1361
|
misc::Interval interval = misc::Interval(startIndex, stopIndex);
|
|
1332
1362
|
std::cout << "reportContextSensitivity decision=" << dfa.decision << ":" << configs << ", input=" << parser->getTokenStream()->getText(interval) << std::endl;
|
|
1333
1363
|
#endif
|
|
@@ -1339,7 +1369,7 @@ void ParserATNSimulator::reportContextSensitivity(dfa::DFA &dfa, size_t predicti
|
|
|
1339
1369
|
|
|
1340
1370
|
void ParserATNSimulator::reportAmbiguity(dfa::DFA &dfa, dfa::DFAState * /*D*/, size_t startIndex, size_t stopIndex,
|
|
1341
1371
|
bool exact, const antlrcpp::BitSet &ambigAlts, ATNConfigSet *configs) {
|
|
1342
|
-
#if
|
|
1372
|
+
#if DFA_DEBUG == 1 || RETRY_DEBUG == 1
|
|
1343
1373
|
misc::Interval interval = misc::Interval((int)startIndex, (int)stopIndex);
|
|
1344
1374
|
std::cout << "reportAmbiguity " << ambigAlts << ":" << configs << ", input=" << parser->getTokenStream()->getText(interval) << std::endl;
|
|
1345
1375
|
#endif
|
|
@@ -325,14 +325,19 @@ Ref<const PredictionContext> PredictionContext::mergeRoot(Ref<const SingletonPre
|
|
|
325
325
|
|
|
326
326
|
Ref<const PredictionContext> PredictionContext::mergeArrays(Ref<const ArrayPredictionContext> a, Ref<const ArrayPredictionContext> b,
|
|
327
327
|
bool rootIsWildcard, PredictionContextMergeCache *mergeCache) {
|
|
328
|
-
|
|
329
328
|
if (mergeCache) {
|
|
330
329
|
auto existing = mergeCache->get(a, b);
|
|
331
330
|
if (existing) {
|
|
331
|
+
#if TRACE_ATN_SIM == 1
|
|
332
|
+
std::cout << "mergeArrays a=" << a->toString() << ",b=" << b->toString() << " -> previous" << std::endl;
|
|
333
|
+
#endif
|
|
332
334
|
return existing;
|
|
333
335
|
}
|
|
334
336
|
existing = mergeCache->get(b, a);
|
|
335
337
|
if (existing) {
|
|
338
|
+
#if TRACE_ATN_SIM == 1
|
|
339
|
+
std::cout << "mergeArrays a=" << a->toString() << ",b=" << b->toString() << " -> previous" << std::endl;
|
|
340
|
+
#endif
|
|
336
341
|
return existing;
|
|
337
342
|
}
|
|
338
343
|
}
|
|
@@ -410,19 +415,36 @@ Ref<const PredictionContext> PredictionContext::mergeArrays(Ref<const ArrayPredi
|
|
|
410
415
|
// TODO: track whether this is possible above during merge sort for speed
|
|
411
416
|
if (m == *a) {
|
|
412
417
|
if (mergeCache) {
|
|
418
|
+
#if TRACE_ATN_SIM == 1
|
|
419
|
+
std::cout << "mergeArrays a=" << a->toString() << ",b=" << b->toString() << " -> a" << std::endl;
|
|
420
|
+
#endif
|
|
413
421
|
return mergeCache->put(a, b, a);
|
|
414
422
|
}
|
|
423
|
+
#if TRACE_ATN_SIM == 1
|
|
424
|
+
std::cout << "mergeArrays a=" << a->toString() << ",b=" << b->toString() << " -> a" << std::endl;
|
|
425
|
+
#endif
|
|
415
426
|
return a;
|
|
416
427
|
}
|
|
417
428
|
if (m == *b) {
|
|
418
429
|
if (mergeCache) {
|
|
430
|
+
#if TRACE_ATN_SIM == 1
|
|
431
|
+
std::cout << "mergeArrays a=" << a->toString() << ",b=" << b->toString() << " -> b" << std::endl;
|
|
432
|
+
#endif
|
|
419
433
|
return mergeCache->put(a, b, b);
|
|
420
434
|
}
|
|
435
|
+
#if TRACE_ATN_SIM == 1
|
|
436
|
+
std::cout << "mergeArrays a=" << a->toString() << ",b=" << b->toString() << " -> b" << std::endl;
|
|
437
|
+
#endif
|
|
421
438
|
return b;
|
|
422
439
|
}
|
|
423
440
|
|
|
424
441
|
combineCommonParents(m.parents);
|
|
425
442
|
auto c = std::make_shared<ArrayPredictionContext>(std::move(m));
|
|
443
|
+
|
|
444
|
+
#if TRACE_ATN_SIM == 1
|
|
445
|
+
std::cout << "mergeArrays a=" << a->toString() << ",b=" << b->toString() << " -> " << c->toString() << std::endl;
|
|
446
|
+
#endif
|
|
447
|
+
|
|
426
448
|
if (mergeCache) {
|
|
427
449
|
return mergeCache->put(a, b, std::move(c));
|
|
428
450
|
}
|
|
@@ -25,9 +25,8 @@
|
|
|
25
25
|
|
|
26
26
|
#pragma once
|
|
27
27
|
|
|
28
|
-
#include <unordered_set>
|
|
29
|
-
|
|
30
28
|
#include "atn/PredictionContext.h"
|
|
29
|
+
#include "FlatHashSet.h"
|
|
31
30
|
|
|
32
31
|
namespace antlr4 {
|
|
33
32
|
namespace atn {
|
|
@@ -56,8 +55,8 @@ namespace atn {
|
|
|
56
55
|
const Ref<const PredictionContext> &rhs) const;
|
|
57
56
|
};
|
|
58
57
|
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
FlatHashSet<Ref<const PredictionContext>,
|
|
59
|
+
PredictionContextHasher, PredictionContextComparer> _data;
|
|
61
60
|
};
|
|
62
61
|
|
|
63
62
|
} // namespace atn
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
|
|
26
26
|
#pragma once
|
|
27
27
|
|
|
28
|
-
#include <unordered_map>
|
|
29
28
|
#include <utility>
|
|
30
29
|
|
|
31
30
|
#include "atn/PredictionContext.h"
|
|
32
31
|
#include "atn/PredictionContextMergeCacheOptions.h"
|
|
32
|
+
#include "FlatHashMap.h"
|
|
33
33
|
|
|
34
34
|
namespace antlr4 {
|
|
35
35
|
namespace atn {
|
|
@@ -84,8 +84,8 @@ namespace atn {
|
|
|
84
84
|
|
|
85
85
|
void compact(const Entry *preserve);
|
|
86
86
|
|
|
87
|
-
using Container =
|
|
88
|
-
|
|
87
|
+
using Container = FlatHashMap<PredictionContextPair, std::unique_ptr<Entry>,
|
|
88
|
+
PredictionContextHasher, PredictionContextComparer>;
|
|
89
89
|
|
|
90
90
|
const PredictionContextMergeCacheOptions _options;
|
|
91
91
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
|
2
2
|
* Use of this file is governed by the BSD 3-clause license that
|
|
3
3
|
* can be found in the LICENSE.txt file in the project root.
|
|
4
4
|
*/
|
|
@@ -62,7 +62,7 @@ bool PredictionModeClass::hasSLLConflictTerminatingPrediction(PredictionMode mod
|
|
|
62
62
|
// dup configs, tossing out semantic predicates
|
|
63
63
|
ATNConfigSet dup(true);
|
|
64
64
|
for (auto &config : configs->configs) {
|
|
65
|
-
Ref<ATNConfig> c = std::make_shared<ATNConfig>(*config, SemanticContext::
|
|
65
|
+
Ref<ATNConfig> c = std::make_shared<ATNConfig>(*config, SemanticContext::Empty::Instance);
|
|
66
66
|
dup.add(c);
|
|
67
67
|
}
|
|
68
68
|
std::vector<antlrcpp::BitSet> altsets = getConflictingAltSubsets(&dup);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
|
2
2
|
* Use of this file is governed by the BSD 3-clause license that
|
|
3
3
|
* can be found in the LICENSE.txt file in the project root.
|
|
4
4
|
*/
|
|
@@ -137,7 +137,7 @@ bool SemanticContext::PrecedencePredicate::eval(Recognizer *parser, RuleContext
|
|
|
137
137
|
Ref<const SemanticContext> SemanticContext::PrecedencePredicate::evalPrecedence(Recognizer *parser,
|
|
138
138
|
RuleContext *parserCallStack) const {
|
|
139
139
|
if (parser->precpred(parserCallStack, precedence)) {
|
|
140
|
-
return SemanticContext::
|
|
140
|
+
return SemanticContext::Empty::Instance;
|
|
141
141
|
}
|
|
142
142
|
return nullptr;
|
|
143
143
|
}
|
|
@@ -237,7 +237,7 @@ Ref<const SemanticContext> SemanticContext::AND::evalPrecedence(Recognizer *pars
|
|
|
237
237
|
// The AND context is false if any element is false.
|
|
238
238
|
return nullptr;
|
|
239
239
|
}
|
|
240
|
-
if (evaluated !=
|
|
240
|
+
if (evaluated != Empty::Instance) {
|
|
241
241
|
// Reduce the result by skipping true elements.
|
|
242
242
|
operands.push_back(std::move(evaluated));
|
|
243
243
|
}
|
|
@@ -249,7 +249,7 @@ Ref<const SemanticContext> SemanticContext::AND::evalPrecedence(Recognizer *pars
|
|
|
249
249
|
|
|
250
250
|
if (operands.empty()) {
|
|
251
251
|
// All elements were true, so the AND context is true.
|
|
252
|
-
return
|
|
252
|
+
return Empty::Instance;
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
Ref<const SemanticContext> result = std::move(operands[0]);
|
|
@@ -337,9 +337,9 @@ Ref<const SemanticContext> SemanticContext::OR::evalPrecedence(Recognizer *parse
|
|
|
337
337
|
for (const auto &context : getOperands()) {
|
|
338
338
|
auto evaluated = context->evalPrecedence(parser, parserCallStack);
|
|
339
339
|
differs |= (evaluated != context);
|
|
340
|
-
if (evaluated ==
|
|
340
|
+
if (evaluated == Empty::Instance) {
|
|
341
341
|
// The OR context is true if any element is true.
|
|
342
|
-
return
|
|
342
|
+
return Empty::Instance;
|
|
343
343
|
}
|
|
344
344
|
if (evaluated != nullptr) {
|
|
345
345
|
// Reduce the result by skipping false elements.
|
|
@@ -374,18 +374,18 @@ std::string SemanticContext::OR::toString() const {
|
|
|
374
374
|
|
|
375
375
|
//------------------ SemanticContext -----------------------------------------------------------------------------------
|
|
376
376
|
|
|
377
|
-
const Ref<const SemanticContext> SemanticContext::
|
|
377
|
+
const Ref<const SemanticContext> SemanticContext::Empty::Instance = std::make_shared<Predicate>(INVALID_INDEX, INVALID_INDEX, false);
|
|
378
378
|
|
|
379
379
|
Ref<const SemanticContext> SemanticContext::evalPrecedence(Recognizer * /*parser*/, RuleContext * /*parserCallStack*/) const {
|
|
380
380
|
return shared_from_this();
|
|
381
381
|
}
|
|
382
382
|
|
|
383
383
|
Ref<const SemanticContext> SemanticContext::And(Ref<const SemanticContext> a, Ref<const SemanticContext> b) {
|
|
384
|
-
if (!a || a ==
|
|
384
|
+
if (!a || a == Empty::Instance) {
|
|
385
385
|
return b;
|
|
386
386
|
}
|
|
387
387
|
|
|
388
|
-
if (!b || b ==
|
|
388
|
+
if (!b || b == Empty::Instance) {
|
|
389
389
|
return a;
|
|
390
390
|
}
|
|
391
391
|
|
|
@@ -405,8 +405,8 @@ Ref<const SemanticContext> SemanticContext::Or(Ref<const SemanticContext> a, Ref
|
|
|
405
405
|
return a;
|
|
406
406
|
}
|
|
407
407
|
|
|
408
|
-
if (a ==
|
|
409
|
-
return
|
|
408
|
+
if (a == Empty::Instance || b == Empty::Instance) {
|
|
409
|
+
return Empty::Instance;
|
|
410
410
|
}
|
|
411
411
|
|
|
412
412
|
Ref<OR> result = std::make_shared<OR>(std::move(a), std::move(b));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
|
2
2
|
* Use of this file is governed by the BSD 3-clause license that
|
|
3
3
|
* can be found in the LICENSE.txt file in the project root.
|
|
4
4
|
*/
|
|
@@ -20,12 +20,6 @@ namespace atn {
|
|
|
20
20
|
/// SemanticContext within the scope of this outer class.
|
|
21
21
|
class ANTLR4CPP_PUBLIC SemanticContext : public std::enable_shared_from_this<SemanticContext> {
|
|
22
22
|
public:
|
|
23
|
-
/**
|
|
24
|
-
* The default {@link SemanticContext}, which is semantically equivalent to
|
|
25
|
-
* a predicate of the form {@code {true}?}.
|
|
26
|
-
*/
|
|
27
|
-
static const Ref<const SemanticContext> NONE;
|
|
28
|
-
|
|
29
23
|
virtual ~SemanticContext() = default;
|
|
30
24
|
|
|
31
25
|
SemanticContextType getContextType() const { return _contextType; }
|
|
@@ -76,6 +70,7 @@ namespace atn {
|
|
|
76
70
|
/// See also: ParserATNSimulator::getPredsForAmbigAlts.
|
|
77
71
|
static Ref<const SemanticContext> Or(Ref<const SemanticContext> a, Ref<const SemanticContext> b);
|
|
78
72
|
|
|
73
|
+
class Empty;
|
|
79
74
|
class Predicate;
|
|
80
75
|
class PrecedencePredicate;
|
|
81
76
|
class Operator;
|
|
@@ -97,6 +92,15 @@ namespace atn {
|
|
|
97
92
|
return !operator==(lhs, rhs);
|
|
98
93
|
}
|
|
99
94
|
|
|
95
|
+
class ANTLR4CPP_PUBLIC SemanticContext::Empty : public SemanticContext{
|
|
96
|
+
public:
|
|
97
|
+
/**
|
|
98
|
+
* The default {@link SemanticContext}, which is semantically equivalent to
|
|
99
|
+
* a predicate of the form {@code {true}?}.
|
|
100
|
+
*/
|
|
101
|
+
static const Ref<const SemanticContext> Instance;
|
|
102
|
+
};
|
|
103
|
+
|
|
100
104
|
class ANTLR4CPP_PUBLIC SemanticContext::Predicate final : public SemanticContext {
|
|
101
105
|
public:
|
|
102
106
|
static bool is(const SemanticContext &semanticContext) { return semanticContext.getContextType() == SemanticContextType::PREDICATE; }
|
|
@@ -7,18 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
#include "support/Casts.h"
|
|
9
9
|
#include "misc/MurmurHash.h"
|
|
10
|
+
#include "atn/HashUtils.h"
|
|
10
11
|
|
|
11
12
|
using namespace antlr4::atn;
|
|
12
13
|
using namespace antlrcpp;
|
|
13
14
|
|
|
14
|
-
namespace {
|
|
15
|
-
|
|
16
|
-
bool cachedHashCodeEqual(size_t lhs, size_t rhs) {
|
|
17
|
-
return lhs == rhs || lhs == 0 || rhs == 0;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
15
|
SingletonPredictionContext::SingletonPredictionContext(Ref<const PredictionContext> parent, size_t returnState)
|
|
23
16
|
: PredictionContext(PredictionContextType::SINGLETON), parent(std::move(parent)), returnState(returnState) {
|
|
24
17
|
assert(returnState != ATNState::INVALID_STATE_NUMBER);
|
data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h
RENAMED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#include "antlr4-common.h"
|
|
9
9
|
|
|
10
10
|
#include "atn/ATNConfigSet.h"
|
|
11
|
+
#include "FlatHashMap.h"
|
|
11
12
|
|
|
12
13
|
namespace antlr4 {
|
|
13
14
|
namespace dfa {
|
|
@@ -63,7 +64,7 @@ namespace dfa {
|
|
|
63
64
|
/// <seealso cref="Token#EOF"/> maps to {@code edges[0]}.
|
|
64
65
|
// ml: this is a sparse list, so we use a map instead of a vector.
|
|
65
66
|
// Watch out: we no longer have the -1 offset, as it isn't needed anymore.
|
|
66
|
-
|
|
67
|
+
FlatHashMap<size_t, DFAState*> edges;
|
|
67
68
|
|
|
68
69
|
/// if accept state, what ttype do we match or alt do we predict?
|
|
69
70
|
/// This is set to <seealso cref="ATN#INVALID_ALT_NUMBER"/> when <seealso cref="#predicates"/>{@code !=null} or
|