expressir 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (377) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codeql.yml +47 -0
  3. data/.github/workflows/rake.yml +9 -8
  4. data/.github/workflows/release.yml +13 -10
  5. data/.github/workflows/stress.yml +53 -0
  6. data/.gitignore +1 -1
  7. data/.gitmodules +2 -2
  8. data/exe/generate-parser +1 -1
  9. data/expressir.gemspec +4 -4
  10. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +191 -0
  11. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +11 -26
  12. 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
  13. data/ext/{express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj → express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2022.vcxproj} +38 -45
  14. 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
  15. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +177 -177
  16. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.nuspec +23 -0
  17. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.targets +8 -0
  18. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.nuspec +30 -0
  19. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.props +21 -0
  20. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.targets +44 -0
  21. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.nuspec +29 -0
  22. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.targets +44 -0
  23. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/antlr4.jpg +0 -0
  24. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/pack.cmd +93 -0
  25. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashMap.h +57 -0
  26. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashSet.h +57 -0
  27. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +4 -2
  28. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +3 -2
  29. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +2 -1
  30. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Version.h +1 -1
  31. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +5 -2
  32. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +1 -2
  33. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +2 -1
  34. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +4 -3
  35. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +4 -4
  36. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +9 -8
  37. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +2 -1
  38. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +2 -17
  39. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +0 -1
  40. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +30 -10
  41. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +1 -1
  42. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/HashUtils.h +18 -0
  43. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +18 -12
  44. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +1 -4
  45. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +1 -8
  46. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +68 -38
  47. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +23 -1
  48. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.h +3 -4
  49. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h +3 -3
  50. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +2 -2
  51. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +11 -11
  52. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +11 -7
  53. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +1 -8
  54. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +1 -1
  55. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +2 -1
  56. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.cpp +100 -0
  57. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.h +154 -0
  58. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +1 -1
  59. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +18 -18
  60. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +180 -0
  61. data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +16 -10
  62. data/ext/{express-parser → express_parser}/express_parser.cpp +17 -15
  63. data/ext/{express-parser → express_parser}/extconf.rb +1 -0
  64. data/lib/expressir/express/parser.rb +0 -1
  65. data/lib/expressir/express/visitor.rb +11 -8
  66. data/lib/expressir/model/declarations/schema.rb +3 -3
  67. data/lib/expressir/model/model_element.rb +4 -4
  68. data/lib/expressir/version.rb +1 -1
  69. data/lib/expressir.rb +20 -0
  70. data/rakelib/antlr4-native.rake +24 -12
  71. data/rakelib/cross-ruby.rake +1 -1
  72. data/spec/acceptance/version_spec.rb +3 -0
  73. data/spec/expressir/express/cache_spec.rb +2 -2
  74. data/spec/expressir/express/formatter_spec.rb +0 -2
  75. metadata +359 -347
  76. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +0 -153
  77. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj +0 -643
  78. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj +0 -659
  79. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj.filters +0 -987
  80. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +0 -987
  81. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +0 -182
  82. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +0 -0
  83. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +0 -0
  84. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  85. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
  86. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +0 -0
  87. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +0 -0
  88. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +0 -0
  89. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +0 -0
  90. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +0 -0
  91. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +0 -0
  92. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +0 -0
  93. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +0 -0
  94. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +0 -0
  95. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +0 -0
  96. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +0 -0
  97. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +0 -0
  98. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +0 -0
  99. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +0 -0
  100. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +0 -0
  101. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +0 -0
  102. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +0 -0
  103. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +0 -0
  104. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +0 -0
  105. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +0 -0
  106. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +0 -0
  107. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +0 -0
  108. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +0 -0
  109. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +0 -0
  110. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +0 -0
  111. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +0 -0
  112. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +0 -0
  113. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +0 -0
  114. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +0 -0
  115. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +0 -0
  116. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +0 -0
  117. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +0 -0
  118. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +0 -0
  119. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +0 -0
  120. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +0 -0
  121. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +0 -0
  122. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +0 -0
  123. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +0 -0
  124. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +0 -0
  125. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +0 -0
  126. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +0 -0
  127. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +0 -0
  128. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +0 -0
  129. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +0 -0
  130. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +0 -0
  131. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +0 -0
  132. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +0 -0
  133. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +0 -0
  134. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +0 -0
  135. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +0 -0
  136. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +0 -0
  137. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +0 -0
  138. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +0 -0
  139. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +0 -0
  140. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +0 -0
  141. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +0 -0
  142. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +0 -0
  143. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +0 -0
  144. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +0 -0
  145. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +0 -0
  146. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +0 -0
  147. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +0 -0
  148. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +0 -0
  149. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +0 -0
  150. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +0 -0
  151. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +0 -0
  152. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +0 -0
  153. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +0 -0
  154. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +0 -0
  155. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +0 -0
  156. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +0 -0
  157. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +0 -0
  158. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +0 -0
  159. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +0 -0
  160. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +0 -0
  161. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +0 -0
  162. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +0 -0
  163. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +0 -0
  164. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +0 -0
  165. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +0 -0
  166. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +0 -0
  167. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +0 -0
  168. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +0 -0
  169. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +0 -0
  170. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +0 -0
  171. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +0 -0
  172. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +0 -0
  173. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +0 -0
  174. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +0 -0
  175. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +0 -0
  176. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.cpp +0 -0
  177. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.h +0 -0
  178. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +0 -0
  179. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +0 -0
  180. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +0 -0
  181. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +0 -0
  182. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +0 -0
  183. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +0 -0
  184. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +0 -0
  185. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +0 -0
  186. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +0 -0
  187. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +0 -0
  188. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +0 -0
  189. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +0 -0
  190. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +0 -0
  191. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +0 -0
  192. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +0 -0
  193. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +0 -0
  194. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +0 -0
  195. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +0 -0
  196. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +0 -0
  197. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +0 -0
  198. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +0 -0
  199. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +0 -0
  200. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +0 -0
  201. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +0 -0
  202. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +0 -0
  203. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +0 -0
  204. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +0 -0
  205. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +0 -0
  206. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +0 -0
  207. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +0 -0
  208. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +0 -0
  209. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +0 -0
  210. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +0 -0
  211. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +0 -0
  212. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +0 -0
  213. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +0 -0
  214. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +0 -0
  215. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +0 -0
  216. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +0 -0
  217. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +0 -0
  218. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +0 -0
  219. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +0 -0
  220. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +0 -0
  221. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +0 -0
  222. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +0 -0
  223. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +0 -0
  224. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +0 -0
  225. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +0 -0
  226. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +0 -0
  227. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +0 -0
  228. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +0 -0
  229. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +0 -0
  230. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +0 -0
  231. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +0 -0
  232. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +0 -0
  233. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +0 -0
  234. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +0 -0
  235. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +0 -0
  236. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +0 -0
  237. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulatorOptions.h +0 -0
  238. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +0 -0
  239. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +0 -0
  240. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +0 -0
  241. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +0 -0
  242. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +0 -0
  243. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +0 -0
  244. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +0 -0
  245. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +0 -0
  246. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +0 -0
  247. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp +0 -0
  248. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp +0 -0
  249. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCacheOptions.h +0 -0
  250. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextType.h +0 -0
  251. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +0 -0
  252. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +0 -0
  253. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +0 -0
  254. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +0 -0
  255. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +0 -0
  256. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +0 -0
  257. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +0 -0
  258. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +0 -0
  259. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +0 -0
  260. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContextType.h +0 -0
  261. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SerializedATNView.h +0 -0
  262. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +0 -0
  263. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +0 -0
  264. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +0 -0
  265. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +0 -0
  266. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +0 -0
  267. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +0 -0
  268. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +0 -0
  269. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +0 -0
  270. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +0 -0
  271. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +0 -0
  272. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.cpp +0 -0
  273. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.h +0 -0
  274. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +0 -0
  275. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +0 -0
  276. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +0 -0
  277. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +0 -0
  278. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +0 -0
  279. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +0 -0
  280. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +0 -0
  281. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +0 -0
  282. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +0 -0
  283. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +0 -0
  284. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +0 -0
  285. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +0 -0
  286. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +0 -0
  287. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +0 -0
  288. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +0 -0
  289. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +0 -0
  290. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +0 -0
  291. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +0 -0
  292. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +0 -0
  293. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +0 -0
  294. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +0 -0
  295. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +0 -0
  296. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +0 -0
  297. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Casts.h +0 -0
  298. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +0 -0
  299. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +0 -0
  300. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +0 -0
  301. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Unicode.h +0 -0
  302. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.cpp +0 -0
  303. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.h +0 -0
  304. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +0 -0
  305. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +0 -0
  306. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +0 -0
  307. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +0 -0
  308. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +0 -0
  309. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +0 -0
  310. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +0 -0
  311. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +0 -0
  312. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +0 -0
  313. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +0 -0
  314. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +0 -0
  315. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeType.h +0 -0
  316. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +0 -0
  317. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +0 -0
  318. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +0 -0
  319. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +0 -0
  320. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +0 -0
  321. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +0 -0
  322. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +0 -0
  323. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +0 -0
  324. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +0 -0
  325. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +0 -0
  326. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +0 -0
  327. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +0 -0
  328. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +0 -0
  329. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +0 -0
  330. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +0 -0
  331. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +0 -0
  332. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +0 -0
  333. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +0 -0
  334. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +0 -0
  335. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +0 -0
  336. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +0 -0
  337. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +0 -0
  338. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +0 -0
  339. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +0 -0
  340. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +0 -0
  341. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +0 -0
  342. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +0 -0
  343. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +0 -0
  344. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +0 -0
  345. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +0 -0
  346. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +0 -0
  347. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +0 -0
  348. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +0 -0
  349. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +0 -0
  350. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +0 -0
  351. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +0 -0
  352. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +0 -0
  353. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +0 -0
  354. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +0 -0
  355. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +0 -0
  356. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +0 -0
  357. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +0 -0
  358. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +0 -0
  359. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +0 -0
  360. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +0 -0
  361. /data/ext/{express-parser → express_parser}/antlr4-upstream/runtime/Cpp/runtime/tests/Utf8Test.cpp +0 -0
  362. /data/ext/{express-parser → express_parser}/antlrgen/Express.interp +0 -0
  363. /data/ext/{express-parser → express_parser}/antlrgen/Express.tokens +0 -0
  364. /data/ext/{express-parser → express_parser}/antlrgen/ExpressBaseListener.cpp +0 -0
  365. /data/ext/{express-parser → express_parser}/antlrgen/ExpressBaseListener.h +0 -0
  366. /data/ext/{express-parser → express_parser}/antlrgen/ExpressBaseVisitor.cpp +0 -0
  367. /data/ext/{express-parser → express_parser}/antlrgen/ExpressBaseVisitor.h +0 -0
  368. /data/ext/{express-parser → express_parser}/antlrgen/ExpressLexer.cpp +0 -0
  369. /data/ext/{express-parser → express_parser}/antlrgen/ExpressLexer.h +0 -0
  370. /data/ext/{express-parser → express_parser}/antlrgen/ExpressLexer.interp +0 -0
  371. /data/ext/{express-parser → express_parser}/antlrgen/ExpressLexer.tokens +0 -0
  372. /data/ext/{express-parser → express_parser}/antlrgen/ExpressListener.cpp +0 -0
  373. /data/ext/{express-parser → express_parser}/antlrgen/ExpressListener.h +0 -0
  374. /data/ext/{express-parser → express_parser}/antlrgen/ExpressParser.cpp +0 -0
  375. /data/ext/{express-parser → express_parser}/antlrgen/ExpressParser.h +0 -0
  376. /data/ext/{express-parser → express_parser}/antlrgen/ExpressVisitor.cpp +0 -0
  377. /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
- #define DEBUG_LIST_ATN_DECISIONS 0
40
- #define DEBUG_DFA 0
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 || DEBUG_LIST_ATN_DECISIONS == 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
- std::shared_lock<std::shared_mutex> stateLock(atn._stateMutex);
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
- std::shared_lock<std::shared_mutex> edgeLock(atn._edgeMutex);
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
- std::unique_lock<std::shared_mutex> stateLock(atn._stateMutex);
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
- std::unique_lock<std::shared_mutex> edgeLock(atn._edgeMutex);
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 || DEBUG_LIST_ATN_DECISIONS == 1
163
- std::cout << "execATN decision " << dfa.decision << " exec LA(1)==" << getLookaheadName(input) <<
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 DEBUG_DFA == 1
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
- std::shared_lock<std::shared_mutex> edgeLock(atn._edgeMutex);
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
- if (reach->isEmpty()) {
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
- for (size_t i = 0; i < p->transitions.size(); i++) {
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::NONE;
695
- } else if (altToPred[i] != SemanticContext::NONE) {
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::NONE;
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::NONE) {
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::NONE) {
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 || DEBUG_DFA == 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 || DEBUG_DFA == 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 DEBUG_ATN == 1
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 DEBUG_DFA == 1
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 DEBUG_DFA == 1
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 DEBUG_DFA == 1
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 DEBUG_DFA == 1
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 DEBUG_DFA == 1
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 DEBUG_DFA == 1
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 DEBUG_DFA == 1
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 DEBUG_DFA == 1
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
- std::unique_lock<std::shared_mutex> stateLock(atn._stateMutex);
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
- std::unique_lock<std::shared_mutex> edgeLock(atn._edgeMutex);
1294
+ UniqueLock<SharedMutex> edgeLock(atn._edgeMutex);
1273
1295
  from->edges[t] = to; // connect
1274
1296
  }
1275
1297
 
1276
- #if DEBUG_DFA == 1
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 DEBUG_DFA == 1
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 DEBUG_DFA == 1 || RETRY_DEBUG == 1
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 DEBUG_DFA == 1 || RETRY_DEBUG == 1
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 DEBUG_DFA == 1 || RETRY_DEBUG == 1
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
- std::unordered_set<Ref<const PredictionContext>,
60
- PredictionContextHasher, PredictionContextComparer> _data;
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 = std::unordered_map<PredictionContextPair, std::unique_ptr<Entry>,
88
- PredictionContextHasher, PredictionContextComparer>;
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
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
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::NONE);
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
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
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::NONE;
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 != NONE) {
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 NONE;
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 == NONE) {
340
+ if (evaluated == Empty::Instance) {
341
341
  // The OR context is true if any element is true.
342
- return NONE;
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::NONE = std::make_shared<Predicate>(INVALID_INDEX, INVALID_INDEX, false);
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 == NONE) {
384
+ if (!a || a == Empty::Instance) {
385
385
  return b;
386
386
  }
387
387
 
388
- if (!b || b == NONE) {
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 == NONE || b == NONE) {
409
- return NONE;
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
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
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);
@@ -46,7 +46,7 @@ std::string DFAState::toString() const {
46
46
  ss << ":" << configs->toString();
47
47
  }
48
48
  if (isAcceptState) {
49
- ss << " => ";
49
+ ss << "=>";
50
50
  if (!predicates.empty()) {
51
51
  for (size_t i = 0; i < predicates.size(); i++) {
52
52
  ss << predicates[i].toString();
@@ -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
- std::unordered_map<size_t, DFAState*> edges;
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