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.
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