expressir 0.2.5-x64-mingw32 → 0.2.11-x64-mingw32

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 (534) hide show
  1. checksums.yaml +5 -5
  2. data/.cross_rubies +30 -0
  3. data/.github/workflows/rake.yml +45 -46
  4. data/.github/workflows/release.yml +83 -75
  5. data/.gitignore +17 -15
  6. data/.gitmodules +3 -3
  7. data/.rspec +2 -2
  8. data/.rubocop.yml +508 -508
  9. data/Gemfile +4 -6
  10. data/README.adoc +147 -147
  11. data/Rakefile +11 -17
  12. data/bin/console +12 -12
  13. data/bin/rspec +29 -29
  14. data/bin/setup +8 -8
  15. data/demo.rb +18 -18
  16. data/docs/development.md +90 -90
  17. data/exe/expressir +20 -20
  18. data/exe/generate-parser +47 -47
  19. data/expressir.gemspec +43 -40
  20. data/lib/expressir.rb +21 -21
  21. data/lib/expressir/cli.rb +27 -27
  22. data/lib/expressir/cli/ui.rb +36 -36
  23. data/lib/expressir/config.rb +23 -23
  24. data/lib/expressir/express.rb +11 -11
  25. data/lib/expressir/express/aggregate_dimension.rb +38 -38
  26. data/lib/expressir/express/attribute.rb +15 -15
  27. data/lib/expressir/express/comment.rb +7 -7
  28. data/lib/expressir/express/defined_type.rb +36 -36
  29. data/lib/expressir/express/derived.rb +65 -65
  30. data/lib/expressir/express/derived_aggregate.rb +43 -43
  31. data/lib/expressir/express/entity.rb +137 -137
  32. data/lib/expressir/express/explicit.rb +70 -70
  33. data/lib/expressir/express/explicit_aggregate.rb +46 -46
  34. data/lib/expressir/express/explicit_or_derived.rb +16 -16
  35. data/lib/expressir/express/global_rule.rb +44 -44
  36. data/lib/expressir/express/interface_specification.rb +51 -51
  37. data/lib/expressir/express/interfaced_item.rb +38 -38
  38. data/lib/expressir/express/inverse.rb +46 -46
  39. data/lib/expressir/express/inverse_aggregate.rb +37 -37
  40. data/lib/expressir/express/model_element.rb +7 -7
  41. data/lib/expressir/express/named_type.rb +19 -19
  42. data/lib/expressir/express/remark.rb +8 -8
  43. data/lib/expressir/express/repository.rb +306 -306
  44. data/lib/expressir/express/schema_definition.rb +96 -96
  45. data/lib/expressir/express/subtype_constraint.rb +14 -14
  46. data/lib/expressir/express/type.rb +26 -26
  47. data/lib/expressir/express/type_aggregate.rb +42 -42
  48. data/lib/expressir/express/type_enum.rb +29 -29
  49. data/lib/expressir/express/type_parser.rb +45 -45
  50. data/lib/expressir/express/type_select.rb +82 -82
  51. data/lib/expressir/express/unique_rule.rb +35 -35
  52. data/lib/expressir/express/where_rule.rb +32 -32
  53. data/lib/expressir/express_exp/2.4/express_parser.so +0 -0
  54. data/lib/expressir/express_exp/2.5/express_parser.so +0 -0
  55. data/lib/expressir/express_exp/2.6/express_parser.so +0 -0
  56. data/lib/expressir/express_exp/2.7/express_parser.so +0 -0
  57. data/lib/expressir/express_exp/3.0/express_parser.so +0 -0
  58. data/lib/expressir/express_exp/formatter.rb +1500 -1449
  59. data/lib/expressir/express_exp/parser.rb +53 -35
  60. data/lib/expressir/express_exp/visitor.rb +2551 -2450
  61. data/lib/expressir/express_parser.rb +30 -30
  62. data/lib/expressir/model.rb +67 -64
  63. data/lib/expressir/model/attribute.rb +28 -26
  64. data/lib/expressir/model/constant.rb +18 -16
  65. data/lib/expressir/model/entity.rb +38 -45
  66. data/lib/expressir/model/enumeration_item.rb +12 -10
  67. data/lib/expressir/model/expressions/aggregate_initializer.rb +12 -12
  68. data/lib/expressir/model/expressions/aggregate_item.rb +14 -14
  69. data/lib/expressir/model/expressions/attribute_reference.rb +14 -14
  70. data/lib/expressir/model/expressions/binary_expression.rb +39 -39
  71. data/lib/expressir/model/expressions/call.rb +14 -14
  72. data/lib/expressir/model/expressions/entity_constructor.rb +14 -14
  73. data/lib/expressir/model/expressions/group_reference.rb +14 -14
  74. data/lib/expressir/model/expressions/index_reference.rb +16 -16
  75. data/lib/expressir/model/expressions/interval.rb +20 -20
  76. data/lib/expressir/model/expressions/query_expression.rb +27 -25
  77. data/lib/expressir/model/expressions/simple_reference.rb +12 -12
  78. data/lib/expressir/model/expressions/unary_expression.rb +18 -18
  79. data/lib/expressir/model/function.rb +55 -61
  80. data/lib/expressir/model/identifier.rb +9 -8
  81. data/lib/expressir/model/informal_proposition.rb +13 -0
  82. data/lib/expressir/model/interface.rb +17 -17
  83. data/lib/expressir/model/literals/binary.rb +12 -12
  84. data/lib/expressir/model/literals/integer.rb +12 -12
  85. data/lib/expressir/model/literals/logical.rb +16 -16
  86. data/lib/expressir/model/literals/real.rb +12 -12
  87. data/lib/expressir/model/literals/string.rb +14 -14
  88. data/lib/expressir/model/model_element.rb +73 -0
  89. data/lib/expressir/model/parameter.rb +18 -16
  90. data/lib/expressir/model/procedure.rb +53 -59
  91. data/lib/expressir/model/renamed_ref.rb +12 -12
  92. data/lib/expressir/model/repository.rb +18 -18
  93. data/lib/expressir/model/rule.rb +58 -61
  94. data/lib/expressir/model/schema.rb +55 -66
  95. data/lib/expressir/model/scope.rb +70 -16
  96. data/lib/expressir/model/statements/alias.rb +27 -25
  97. data/lib/expressir/model/statements/assignment.rb +14 -14
  98. data/lib/expressir/model/statements/call.rb +14 -14
  99. data/lib/expressir/model/statements/case.rb +16 -16
  100. data/lib/expressir/model/statements/case_action.rb +14 -14
  101. data/lib/expressir/model/statements/compound.rb +12 -12
  102. data/lib/expressir/model/statements/escape.rb +7 -7
  103. data/lib/expressir/model/statements/if.rb +16 -16
  104. data/lib/expressir/model/statements/null.rb +7 -7
  105. data/lib/expressir/model/statements/repeat.rb +35 -33
  106. data/lib/expressir/model/statements/return.rb +12 -12
  107. data/lib/expressir/model/statements/skip.rb +7 -7
  108. data/lib/expressir/model/subtype_constraint.rb +28 -26
  109. data/lib/expressir/model/type.rb +33 -23
  110. data/lib/expressir/model/types/aggregate.rb +18 -16
  111. data/lib/expressir/model/types/array.rb +20 -20
  112. data/lib/expressir/model/types/bag.rb +16 -16
  113. data/lib/expressir/model/types/binary.rb +14 -14
  114. data/lib/expressir/model/types/boolean.rb +7 -7
  115. data/lib/expressir/model/types/enumeration.rb +18 -18
  116. data/lib/expressir/model/types/generic.rb +14 -12
  117. data/lib/expressir/model/types/generic_entity.rb +14 -12
  118. data/lib/expressir/model/types/integer.rb +7 -7
  119. data/lib/expressir/model/types/list.rb +18 -18
  120. data/lib/expressir/model/types/logical.rb +7 -7
  121. data/lib/expressir/model/types/number.rb +7 -7
  122. data/lib/expressir/model/types/real.rb +12 -12
  123. data/lib/expressir/model/types/select.rb +20 -20
  124. data/lib/expressir/model/types/set.rb +16 -16
  125. data/lib/expressir/model/types/string.rb +14 -14
  126. data/lib/expressir/model/unique.rb +16 -14
  127. data/lib/expressir/model/variable.rb +18 -16
  128. data/lib/expressir/model/where.rb +16 -14
  129. data/lib/expressir/parser.rb +6 -6
  130. data/lib/expressir/parser/owl_parser.rb +8 -8
  131. data/lib/expressir/version.rb +3 -3
  132. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp +9589 -9589
  133. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl +36619 -36619
  134. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.xml +13293 -13293
  135. data/original/examples/employment/eclipse/.project +17 -17
  136. data/original/examples/employment/eclipse/Express/employment_schema.exp +33 -33
  137. data/original/examples/employment/eclipse/Express/employment_schema.xmi +77 -77
  138. data/original/examples/employment/eclipse/Express/employment_schema.xml +92 -92
  139. data/original/examples/employment/eclipse/Models/Employment.uml +4 -4
  140. data/original/examples/employment/eclipse/Models/Employment.umldi +240 -240
  141. data/original/examples/employment/eclipse/readme.txt +6 -6
  142. data/original/examples/employment/employment_schema.exp +33 -33
  143. data/original/examples/employment/employment_schema.rb +232 -232
  144. data/original/examples/employment/employment_schema.xml +92 -92
  145. data/original/examples/employment/employment_schema___module.rb +46 -46
  146. data/original/examples/employment/employment_schema___p28attr.rb +126 -126
  147. data/original/examples/employment/employment_schema___p28inst.rb +26 -26
  148. data/original/examples/employment/example_employment_data.xml +1 -1
  149. data/original/examples/employment/example_employment_data_copy.xml +1 -1
  150. data/original/examples/employment/example_employment_reader.rb +30 -30
  151. data/original/examples/employment/example_employment_writer.rb +51 -51
  152. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.exp +3710 -3710
  153. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.owl +35880 -35880
  154. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xmi +15357 -15357
  155. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xml +9467 -9467
  156. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.exp +8404 -8404
  157. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl +43147 -43147
  158. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi +18341 -18341
  159. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml +11631 -11631
  160. data/original/examples/syntax/remark.exp +189 -145
  161. data/original/examples/syntax/remark_formatted.exp +213 -174
  162. data/original/examples/syntax/simple.exp +3 -0
  163. data/original/examples/syntax/source.exp +16 -0
  164. data/original/examples/syntax/syntax.exp +323 -310
  165. data/original/examples/syntax/syntax_formatted.exp +753 -1186
  166. data/original/exp2ruby.rb +525 -525
  167. data/original/expsm.rb +34 -34
  168. data/original/mapping_owl.rb +1018 -1018
  169. data/original/mapping_sysml.rb +2281 -2281
  170. data/original/mapping_uml2.rb +598 -598
  171. data/original/mapping_uml2_eclipse.rb +433 -433
  172. data/original/reeper.rb +134 -134
  173. data/rakelib/cross-ruby.rake +308 -0
  174. data/spec/acceptance/express_to_owl_spec.rb +18 -18
  175. data/spec/acceptance/version_spec.rb +12 -12
  176. data/spec/expressir/express/repository_spec.rb +25 -25
  177. data/spec/expressir/express_exp/ap233_spec.rb +22 -22
  178. data/spec/expressir/express_exp/format_remark_spec.rb +28 -28
  179. data/spec/expressir/express_exp/format_syntax_spec.rb +28 -28
  180. data/spec/expressir/express_exp/head_source_spec.rb +38 -0
  181. data/spec/expressir/express_exp/parse_multiple_spec.rb +32 -0
  182. data/spec/expressir/express_exp/parse_remark_spec.rb +411 -345
  183. data/spec/expressir/express_exp/parse_syntax_spec.rb +3048 -2998
  184. data/spec/expressir/express_exp/source_spec.rb +29 -0
  185. data/spec/expressir/model/model_element_spec.rb +77 -0
  186. data/spec/expressir/model/{find_spec.rb → scope_spec.rb} +123 -110
  187. data/spec/expressr_spec.rb +5 -5
  188. data/spec/spec_helper.rb +17 -17
  189. data/spec/support/console_helper.rb +29 -29
  190. metadata +41 -371
  191. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +0 -118
  192. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj +0 -637
  193. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj.filters +0 -984
  194. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj +0 -652
  195. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj.filters +0 -990
  196. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj +0 -652
  197. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj.filters +0 -990
  198. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +0 -652
  199. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +0 -990
  200. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +0 -26
  201. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +0 -17
  202. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +0 -3024
  203. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  204. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  205. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +0 -76
  206. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +0 -80
  207. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +0 -80
  208. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +0 -10
  209. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +0 -167
  210. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +0 -10
  211. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +0 -121
  212. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +0 -34
  213. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +0 -27
  214. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +0 -155
  215. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +0 -69
  216. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +0 -61
  217. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +0 -59
  218. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +0 -25
  219. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +0 -36
  220. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +0 -414
  221. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +0 -200
  222. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +0 -11
  223. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +0 -37
  224. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +0 -195
  225. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +0 -158
  226. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +0 -39
  227. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +0 -74
  228. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +0 -78
  229. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +0 -79
  230. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +0 -15
  231. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +0 -35
  232. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +0 -333
  233. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +0 -466
  234. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +0 -84
  235. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +0 -80
  236. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +0 -64
  237. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +0 -99
  238. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +0 -51
  239. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +0 -32
  240. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +0 -18
  241. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +0 -24
  242. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +0 -12
  243. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +0 -218
  244. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +0 -19
  245. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +0 -45
  246. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +0 -295
  247. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +0 -196
  248. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +0 -75
  249. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +0 -52
  250. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +0 -36
  251. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +0 -31
  252. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +0 -92
  253. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +0 -88
  254. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +0 -46
  255. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +0 -42
  256. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +0 -648
  257. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +0 -467
  258. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +0 -306
  259. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +0 -179
  260. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +0 -141
  261. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +0 -147
  262. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +0 -53
  263. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +0 -38
  264. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +0 -66
  265. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +0 -98
  266. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +0 -167
  267. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +0 -164
  268. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +0 -143
  269. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +0 -137
  270. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +0 -27
  271. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +0 -32
  272. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +0 -53
  273. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +0 -155
  274. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +0 -9
  275. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +0 -92
  276. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +0 -30
  277. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +0 -9
  278. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +0 -85
  279. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +0 -11
  280. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +0 -137
  281. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +0 -425
  282. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +0 -293
  283. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +0 -211
  284. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +0 -123
  285. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +0 -270
  286. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +0 -115
  287. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +0 -104
  288. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +0 -193
  289. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +0 -9
  290. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +0 -23
  291. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +0 -137
  292. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +0 -167
  293. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +0 -209
  294. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +0 -112
  295. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +0 -113
  296. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +0 -148
  297. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +0 -228
  298. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +0 -110
  299. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +0 -64
  300. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +0 -50
  301. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +0 -758
  302. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +0 -85
  303. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp +0 -621
  304. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.h +0 -61
  305. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +0 -63
  306. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +0 -87
  307. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +0 -72
  308. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +0 -133
  309. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +0 -20
  310. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp +0 -14
  311. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h +0 -24
  312. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +0 -33
  313. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +0 -33
  314. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +0 -16
  315. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +0 -68
  316. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +0 -82
  317. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +0 -43
  318. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +0 -31
  319. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +0 -30
  320. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp +0 -12
  321. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +0 -22
  322. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.cpp +0 -12
  323. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +0 -21
  324. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.cpp +0 -15
  325. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +0 -24
  326. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.cpp +0 -9
  327. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +0 -21
  328. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +0 -14
  329. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +0 -47
  330. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +0 -14
  331. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +0 -70
  332. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +0 -25
  333. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +0 -227
  334. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +0 -17
  335. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +0 -30
  336. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp +0 -35
  337. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h +0 -27
  338. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +0 -35
  339. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +0 -39
  340. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +0 -15
  341. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +0 -43
  342. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +0 -158
  343. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +0 -109
  344. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +0 -84
  345. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +0 -44
  346. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +0 -628
  347. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +0 -210
  348. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +0 -9
  349. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +0 -66
  350. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +0 -107
  351. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +0 -115
  352. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +0 -55
  353. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +0 -55
  354. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +0 -63
  355. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +0 -62
  356. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +0 -87
  357. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +0 -63
  358. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +0 -82
  359. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +0 -56
  360. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +0 -61
  361. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +0 -47
  362. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +0 -57
  363. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +0 -47
  364. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +0 -57
  365. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +0 -56
  366. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +0 -61
  367. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +0 -47
  368. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +0 -55
  369. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +0 -56
  370. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +0 -55
  371. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +0 -16
  372. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +0 -42
  373. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.cpp +0 -12
  374. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +0 -22
  375. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Makefile +0 -67
  376. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +0 -27
  377. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +0 -25
  378. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +0 -12
  379. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +0 -20
  380. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +0 -102
  381. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +0 -102
  382. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +0 -1366
  383. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +0 -904
  384. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp +0 -12
  385. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +0 -25
  386. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp +0 -12
  387. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +0 -22
  388. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +0 -32
  389. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +0 -29
  390. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +0 -17
  391. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +0 -62
  392. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +0 -34
  393. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +0 -39
  394. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +0 -662
  395. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +0 -254
  396. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +0 -201
  397. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +0 -436
  398. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +0 -179
  399. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +0 -60
  400. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +0 -30
  401. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +0 -29
  402. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.cpp +0 -16
  403. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +0 -25
  404. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.cpp +0 -12
  405. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +0 -25
  406. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +0 -37
  407. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +0 -40
  408. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +0 -377
  409. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +0 -222
  410. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +0 -32
  411. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +0 -30
  412. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +0 -81
  413. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +0 -36
  414. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp +0 -12
  415. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +0 -21
  416. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp +0 -15
  417. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +0 -35
  418. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +0 -19
  419. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +0 -21
  420. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.cpp +0 -12
  421. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +0 -21
  422. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +0 -44
  423. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +0 -76
  424. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +0 -25
  425. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +0 -25
  426. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +0 -127
  427. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +0 -91
  428. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +0 -67
  429. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +0 -32
  430. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +0 -100
  431. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +0 -144
  432. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +0 -20
  433. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +0 -23
  434. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +0 -124
  435. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +0 -31
  436. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +0 -89
  437. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +0 -84
  438. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +0 -521
  439. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +0 -198
  440. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +0 -134
  441. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +0 -76
  442. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +0 -4
  443. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +0 -21
  444. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +0 -13
  445. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +0 -170
  446. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +0 -43
  447. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +0 -110
  448. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +0 -76
  449. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +0 -248
  450. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +0 -78
  451. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +0 -163
  452. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +0 -36
  453. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +0 -54
  454. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.cpp +0 -303
  455. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.h +0 -112
  456. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +0 -128
  457. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.cpp +0 -9
  458. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +0 -19
  459. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +0 -23
  460. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +0 -33
  461. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +0 -71
  462. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +0 -53
  463. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +0 -15
  464. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +0 -102
  465. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +0 -9
  466. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +0 -39
  467. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +0 -50
  468. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +0 -9
  469. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +0 -57
  470. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +0 -49
  471. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +0 -31
  472. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.cpp +0 -9
  473. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +0 -32
  474. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +0 -57
  475. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +0 -33
  476. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +0 -241
  477. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +0 -78
  478. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +0 -9
  479. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +0 -44
  480. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +0 -69
  481. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +0 -132
  482. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +0 -64
  483. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +0 -105
  484. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +0 -371
  485. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +0 -185
  486. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +0 -77
  487. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +0 -117
  488. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +0 -39
  489. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +0 -86
  490. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +0 -28
  491. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +0 -51
  492. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +0 -36
  493. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +0 -80
  494. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +0 -154
  495. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +0 -86
  496. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +0 -31
  497. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +0 -40
  498. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +0 -173
  499. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +0 -64
  500. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +0 -56
  501. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +0 -12
  502. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +0 -13
  503. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +0 -22
  504. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +0 -20
  505. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +0 -27
  506. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +0 -30
  507. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +0 -26
  508. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +0 -20
  509. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +0 -25
  510. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +0 -33
  511. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +0 -26
  512. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +0 -23
  513. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +0 -23
  514. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +0 -24
  515. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +0 -23
  516. data/ext/express-parser/antlrgen/Express.interp +0 -532
  517. data/ext/express-parser/antlrgen/Express.tokens +0 -190
  518. data/ext/express-parser/antlrgen/ExpressBaseListener.cpp +0 -7
  519. data/ext/express-parser/antlrgen/ExpressBaseListener.h +0 -623
  520. data/ext/express-parser/antlrgen/ExpressBaseVisitor.cpp +0 -7
  521. data/ext/express-parser/antlrgen/ExpressBaseVisitor.h +0 -816
  522. data/ext/express-parser/antlrgen/ExpressLexer.cpp +0 -1169
  523. data/ext/express-parser/antlrgen/ExpressLexer.h +0 -85
  524. data/ext/express-parser/antlrgen/ExpressLexer.interp +0 -534
  525. data/ext/express-parser/antlrgen/ExpressLexer.tokens +0 -190
  526. data/ext/express-parser/antlrgen/ExpressListener.cpp +0 -7
  527. data/ext/express-parser/antlrgen/ExpressListener.h +0 -616
  528. data/ext/express-parser/antlrgen/ExpressParser.cpp +0 -17284
  529. data/ext/express-parser/antlrgen/ExpressParser.h +0 -3696
  530. data/ext/express-parser/antlrgen/ExpressVisitor.cpp +0 -7
  531. data/ext/express-parser/antlrgen/ExpressVisitor.h +0 -422
  532. data/ext/express-parser/express_parser.cpp +0 -17931
  533. data/ext/express-parser/extconf.rb +0 -34
  534. data/lib/express_parser.so +0 -0
@@ -1,12 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #include "atn/PlusBlockStartState.h"
7
-
8
- using namespace antlr4::atn;
9
-
10
- size_t PlusBlockStartState::getStateType() {
11
- return PLUS_BLOCK_START;
12
- }
@@ -1,25 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #pragma once
7
-
8
- #include "atn/BlockStartState.h"
9
-
10
- namespace antlr4 {
11
- namespace atn {
12
-
13
- /// Start of {@code (A|B|...)+} loop. Technically a decision state, but
14
- /// we don't use for code generation; somebody might need it, so I'm defining
15
- /// it for completeness. In reality, the <seealso cref="PlusLoopbackState"/> node is the
16
- /// real decision-making note for {@code A+}.
17
- class ANTLR4CPP_PUBLIC PlusBlockStartState final : public BlockStartState {
18
- public:
19
- PlusLoopbackState *loopBackState = nullptr;
20
-
21
- virtual size_t getStateType() override;
22
- };
23
-
24
- } // namespace atn
25
- } // namespace antlr4
@@ -1,12 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #include "atn/PlusLoopbackState.h"
7
-
8
- using namespace antlr4::atn;
9
-
10
- size_t PlusLoopbackState::getStateType() {
11
- return PLUS_LOOP_BACK;
12
- }
@@ -1,22 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #pragma once
7
-
8
- #include "atn/DecisionState.h"
9
-
10
- namespace antlr4 {
11
- namespace atn {
12
-
13
- /// Decision state for {@code A+} and {@code (A|B)+}. It has two transitions:
14
- /// one to the loop back to start of the block and one to exit.
15
- class ANTLR4CPP_PUBLIC PlusLoopbackState final : public DecisionState {
16
-
17
- public:
18
- virtual size_t getStateType() override;
19
- };
20
-
21
- } // namespace atn
22
- } // namespace antlr4
@@ -1,32 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #include "atn/PrecedencePredicateTransition.h"
7
-
8
- using namespace antlr4::atn;
9
-
10
- PrecedencePredicateTransition::PrecedencePredicateTransition(ATNState *target, int precedence)
11
- : AbstractPredicateTransition(target), precedence(precedence) {
12
- }
13
-
14
- Transition::SerializationType PrecedencePredicateTransition::getSerializationType() const {
15
- return PRECEDENCE;
16
- }
17
-
18
- bool PrecedencePredicateTransition::isEpsilon() const {
19
- return true;
20
- }
21
-
22
- bool PrecedencePredicateTransition::matches(size_t /*symbol*/, size_t /*minVocabSymbol*/, size_t /*maxVocabSymbol*/) const {
23
- return false;
24
- }
25
-
26
- Ref<SemanticContext::PrecedencePredicate> PrecedencePredicateTransition::getPredicate() const {
27
- return std::make_shared<SemanticContext::PrecedencePredicate>(precedence);
28
- }
29
-
30
- std::string PrecedencePredicateTransition::toString() const {
31
- return "PRECEDENCE " + Transition::toString() + " { precedence: " + std::to_string(precedence) + " }";
32
- }
@@ -1,29 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #pragma once
7
-
8
- #include "atn/AbstractPredicateTransition.h"
9
- #include "SemanticContext.h"
10
-
11
- namespace antlr4 {
12
- namespace atn {
13
-
14
- class ANTLR4CPP_PUBLIC PrecedencePredicateTransition final : public AbstractPredicateTransition {
15
- public:
16
- const int precedence;
17
-
18
- PrecedencePredicateTransition(ATNState *target, int precedence);
19
-
20
- virtual SerializationType getSerializationType() const override;
21
- virtual bool isEpsilon() const override;
22
- virtual bool matches(size_t symbol, size_t minVocabSymbol, size_t maxVocabSymbol) const override;
23
- Ref<SemanticContext::PrecedencePredicate> getPredicate() const;
24
- virtual std::string toString() const override;
25
-
26
- };
27
-
28
- } // namespace atn
29
- } // namespace antlr4
@@ -1,17 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #include "SemanticContext.h"
7
-
8
- #include "atn/PredicateEvalInfo.h"
9
-
10
- using namespace antlr4;
11
- using namespace antlr4::atn;
12
-
13
- PredicateEvalInfo::PredicateEvalInfo(size_t decision, TokenStream *input, size_t startIndex, size_t stopIndex,
14
- Ref<SemanticContext> const& semctx, bool evalResult, size_t predictedAlt, bool fullCtx)
15
- : DecisionEventInfo(decision, nullptr, input, startIndex, stopIndex, fullCtx),
16
- semctx(semctx), predictedAlt(predictedAlt), evalResult(evalResult) {
17
- }
@@ -1,62 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #pragma once
7
-
8
- #include "atn/DecisionEventInfo.h"
9
-
10
- namespace antlr4 {
11
- namespace atn {
12
-
13
- /// <summary>
14
- /// This class represents profiling event information for semantic predicate
15
- /// evaluations which occur during prediction.
16
- /// </summary>
17
- /// <seealso cref= ParserATNSimulator#evalSemanticContext
18
- ///
19
- /// @since 4.3 </seealso>
20
- class ANTLR4CPP_PUBLIC PredicateEvalInfo : public DecisionEventInfo {
21
- public:
22
- /// The semantic context which was evaluated.
23
- const Ref<SemanticContext> semctx;
24
-
25
- /// <summary>
26
- /// The alternative number for the decision which is guarded by the semantic
27
- /// context <seealso cref="#semctx"/>. Note that other ATN
28
- /// configurations may predict the same alternative which are guarded by
29
- /// other semantic contexts and/or <seealso cref="SemanticContext#NONE"/>.
30
- /// </summary>
31
- const size_t predictedAlt;
32
-
33
- /// The result of evaluating the semantic context <seealso cref="#semctx"/>.
34
- const bool evalResult;
35
-
36
- /// <summary>
37
- /// Constructs a new instance of the <seealso cref="PredicateEvalInfo"/> class with the
38
- /// specified detailed predicate evaluation information.
39
- /// </summary>
40
- /// <param name="decision"> The decision number </param>
41
- /// <param name="input"> The input token stream </param>
42
- /// <param name="startIndex"> The start index for the current prediction </param>
43
- /// <param name="stopIndex"> The index at which the predicate evaluation was
44
- /// triggered. Note that the input stream may be reset to other positions for
45
- /// the actual evaluation of individual predicates. </param>
46
- /// <param name="semctx"> The semantic context which was evaluated </param>
47
- /// <param name="evalResult"> The results of evaluating the semantic context </param>
48
- /// <param name="predictedAlt"> The alternative number for the decision which is
49
- /// guarded by the semantic context {@code semctx}. See <seealso cref="#predictedAlt"/>
50
- /// for more information. </param>
51
- /// <param name="fullCtx"> {@code true} if the semantic context was
52
- /// evaluated during LL prediction; otherwise, {@code false} if the semantic
53
- /// context was evaluated during SLL prediction
54
- /// </param>
55
- /// <seealso cref= ParserATNSimulator#evalSemanticContext(SemanticContext, ParserRuleContext, int, boolean) </seealso>
56
- /// <seealso cref= SemanticContext#eval(Recognizer, RuleContext) </seealso>
57
- PredicateEvalInfo(size_t decision, TokenStream *input, size_t startIndex, size_t stopIndex,
58
- Ref<SemanticContext> const& semctx, bool evalResult, size_t predictedAlt, bool fullCtx);
59
- };
60
-
61
- } // namespace atn
62
- } // namespace antlr4
@@ -1,34 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #include "atn/PredicateTransition.h"
7
-
8
- using namespace antlr4::atn;
9
-
10
- PredicateTransition::PredicateTransition(ATNState *target, size_t ruleIndex, size_t predIndex, bool isCtxDependent) : AbstractPredicateTransition(target), ruleIndex(ruleIndex), predIndex(predIndex), isCtxDependent(isCtxDependent) {
11
- }
12
-
13
- Transition::SerializationType PredicateTransition::getSerializationType() const {
14
- return PREDICATE;
15
- }
16
-
17
- bool PredicateTransition::isEpsilon() const {
18
- return true;
19
- }
20
-
21
- bool PredicateTransition::matches(size_t /*symbol*/, size_t /*minVocabSymbol*/, size_t /*maxVocabSymbol*/) const {
22
- return false;
23
- }
24
-
25
- Ref<SemanticContext::Predicate> PredicateTransition::getPredicate() const {
26
- return std::make_shared<SemanticContext::Predicate>(ruleIndex, predIndex, isCtxDependent);
27
- }
28
-
29
- std::string PredicateTransition::toString() const {
30
- return "PREDICATE " + Transition::toString() + " { ruleIndex: " + std::to_string(ruleIndex) +
31
- ", predIndex: " + std::to_string(predIndex) + ", isCtxDependent: " + std::to_string(isCtxDependent) + " }";
32
-
33
- // Generate and add a predicate context here?
34
- }
@@ -1,39 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #pragma once
7
-
8
- #include "atn/AbstractPredicateTransition.h"
9
- #include "SemanticContext.h"
10
-
11
- namespace antlr4 {
12
- namespace atn {
13
-
14
- /// TODO: this is old comment:
15
- /// A tree of semantic predicates from the grammar AST if label==SEMPRED.
16
- /// In the ATN, labels will always be exactly one predicate, but the DFA
17
- /// may have to combine a bunch of them as it collects predicates from
18
- /// multiple ATN configurations into a single DFA state.
19
- class ANTLR4CPP_PUBLIC PredicateTransition final : public AbstractPredicateTransition {
20
- public:
21
- const size_t ruleIndex;
22
- const size_t predIndex;
23
- const bool isCtxDependent; // e.g., $i ref in pred
24
-
25
- PredicateTransition(ATNState *target, size_t ruleIndex, size_t predIndex, bool isCtxDependent);
26
-
27
- virtual SerializationType getSerializationType() const override;
28
-
29
- virtual bool isEpsilon() const override;
30
- virtual bool matches(size_t symbol, size_t minVocabSymbol, size_t maxVocabSymbol) const override;
31
-
32
- Ref<SemanticContext::Predicate> getPredicate() const;
33
-
34
- virtual std::string toString() const override;
35
-
36
- };
37
-
38
- } // namespace atn
39
- } // namespace antlr4
@@ -1,662 +0,0 @@
1
- /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2
- * Use of this file is governed by the BSD 3-clause license that
3
- * can be found in the LICENSE.txt file in the project root.
4
- */
5
-
6
- #include "atn/EmptyPredictionContext.h"
7
- #include "misc/MurmurHash.h"
8
- #include "atn/ArrayPredictionContext.h"
9
- #include "RuleContext.h"
10
- #include "ParserRuleContext.h"
11
- #include "atn/RuleTransition.h"
12
- #include "support/Arrays.h"
13
- #include "support/CPPUtils.h"
14
-
15
- #include "atn/PredictionContext.h"
16
-
17
- using namespace antlr4;
18
- using namespace antlr4::misc;
19
- using namespace antlr4::atn;
20
-
21
- using namespace antlrcpp;
22
-
23
- size_t PredictionContext::globalNodeCount = 0;
24
- const Ref<PredictionContext> PredictionContext::EMPTY = std::make_shared<EmptyPredictionContext>();
25
-
26
- //----------------- PredictionContext ----------------------------------------------------------------------------------
27
-
28
- PredictionContext::PredictionContext(size_t cachedHashCode) : id(globalNodeCount++), cachedHashCode(cachedHashCode) {
29
- }
30
-
31
- PredictionContext::~PredictionContext() {
32
- }
33
-
34
- Ref<PredictionContext> PredictionContext::fromRuleContext(const ATN &atn, RuleContext *outerContext) {
35
- if (outerContext == nullptr) {
36
- return PredictionContext::EMPTY;
37
- }
38
-
39
- // if we are in RuleContext of start rule, s, then PredictionContext
40
- // is EMPTY. Nobody called us. (if we are empty, return empty)
41
- if (outerContext->parent == nullptr || outerContext == &ParserRuleContext::EMPTY) {
42
- return PredictionContext::EMPTY;
43
- }
44
-
45
- // If we have a parent, convert it to a PredictionContext graph
46
- Ref<PredictionContext> parent = PredictionContext::fromRuleContext(atn, dynamic_cast<RuleContext *>(outerContext->parent));
47
-
48
- ATNState *state = atn.states.at(outerContext->invokingState);
49
- RuleTransition *transition = (RuleTransition *)state->transitions[0];
50
- return SingletonPredictionContext::create(parent, transition->followState->stateNumber);
51
- }
52
-
53
- bool PredictionContext::isEmpty() const {
54
- return this == EMPTY.get();
55
- }
56
-
57
- bool PredictionContext::hasEmptyPath() const {
58
- // since EMPTY_RETURN_STATE can only appear in the last position, we check last one
59
- return getReturnState(size() - 1) == EMPTY_RETURN_STATE;
60
- }
61
-
62
- size_t PredictionContext::hashCode() const {
63
- return cachedHashCode;
64
- }
65
-
66
- size_t PredictionContext::calculateEmptyHashCode() {
67
- size_t hash = MurmurHash::initialize(INITIAL_HASH);
68
- hash = MurmurHash::finish(hash, 0);
69
- return hash;
70
- }
71
-
72
- size_t PredictionContext::calculateHashCode(Ref<PredictionContext> parent, size_t returnState) {
73
- size_t hash = MurmurHash::initialize(INITIAL_HASH);
74
- hash = MurmurHash::update(hash, parent);
75
- hash = MurmurHash::update(hash, returnState);
76
- hash = MurmurHash::finish(hash, 2);
77
- return hash;
78
- }
79
-
80
- size_t PredictionContext::calculateHashCode(const std::vector<Ref<PredictionContext>> &parents,
81
- const std::vector<size_t> &returnStates) {
82
- size_t hash = MurmurHash::initialize(INITIAL_HASH);
83
-
84
- for (auto parent : parents) {
85
- hash = MurmurHash::update(hash, parent);
86
- }
87
-
88
- for (auto returnState : returnStates) {
89
- hash = MurmurHash::update(hash, returnState);
90
- }
91
-
92
- return MurmurHash::finish(hash, parents.size() + returnStates.size());
93
- }
94
-
95
- Ref<PredictionContext> PredictionContext::merge(const Ref<PredictionContext> &a,
96
- const Ref<PredictionContext> &b, bool rootIsWildcard, PredictionContextMergeCache *mergeCache) {
97
- assert(a && b);
98
-
99
- // share same graph if both same
100
- if (a == b || *a == *b) {
101
- return a;
102
- }
103
-
104
- if (is<SingletonPredictionContext>(a) && is<SingletonPredictionContext>(b)) {
105
- return mergeSingletons(std::dynamic_pointer_cast<SingletonPredictionContext>(a),
106
- std::dynamic_pointer_cast<SingletonPredictionContext>(b), rootIsWildcard, mergeCache);
107
- }
108
-
109
- // At least one of a or b is array.
110
- // If one is $ and rootIsWildcard, return $ as * wildcard.
111
- if (rootIsWildcard) {
112
- if (is<EmptyPredictionContext>(a)) {
113
- return a;
114
- }
115
- if (is<EmptyPredictionContext>(b)) {
116
- return b;
117
- }
118
- }
119
-
120
- // convert singleton so both are arrays to normalize
121
- Ref<ArrayPredictionContext> left;
122
- if (is<SingletonPredictionContext>(a)) {
123
- left = std::make_shared<ArrayPredictionContext>(std::dynamic_pointer_cast<SingletonPredictionContext>(a));
124
- } else {
125
- left = std::dynamic_pointer_cast<ArrayPredictionContext>(a);
126
- }
127
- Ref<ArrayPredictionContext> right;
128
- if (is<SingletonPredictionContext>(b)) {
129
- right = std::make_shared<ArrayPredictionContext>(std::dynamic_pointer_cast<SingletonPredictionContext>(b));
130
- } else {
131
- right = std::dynamic_pointer_cast<ArrayPredictionContext>(b);
132
- }
133
- return mergeArrays(left, right, rootIsWildcard, mergeCache);
134
- }
135
-
136
- Ref<PredictionContext> PredictionContext::mergeSingletons(const Ref<SingletonPredictionContext> &a,
137
- const Ref<SingletonPredictionContext> &b, bool rootIsWildcard, PredictionContextMergeCache *mergeCache) {
138
-
139
- if (mergeCache != nullptr) { // Can be null if not given to the ATNState from which this call originates.
140
- auto existing = mergeCache->get(a, b);
141
- if (existing) {
142
- return existing;
143
- }
144
- existing = mergeCache->get(b, a);
145
- if (existing) {
146
- return existing;
147
- }
148
- }
149
-
150
- Ref<PredictionContext> rootMerge = mergeRoot(a, b, rootIsWildcard);
151
- if (rootMerge) {
152
- if (mergeCache != nullptr) {
153
- mergeCache->put(a, b, rootMerge);
154
- }
155
- return rootMerge;
156
- }
157
-
158
- Ref<PredictionContext> parentA = a->parent;
159
- Ref<PredictionContext> parentB = b->parent;
160
- if (a->returnState == b->returnState) { // a == b
161
- Ref<PredictionContext> parent = merge(parentA, parentB, rootIsWildcard, mergeCache);
162
-
163
- // If parent is same as existing a or b parent or reduced to a parent, return it.
164
- if (parent == parentA) { // ax + bx = ax, if a=b
165
- return a;
166
- }
167
- if (parent == parentB) { // ax + bx = bx, if a=b
168
- return b;
169
- }
170
-
171
- // else: ax + ay = a'[x,y]
172
- // merge parents x and y, giving array node with x,y then remainders
173
- // of those graphs. dup a, a' points at merged array
174
- // new joined parent so create new singleton pointing to it, a'
175
- Ref<PredictionContext> a_ = SingletonPredictionContext::create(parent, a->returnState);
176
- if (mergeCache != nullptr) {
177
- mergeCache->put(a, b, a_);
178
- }
179
- return a_;
180
- } else {
181
- // a != b payloads differ
182
- // see if we can collapse parents due to $+x parents if local ctx
183
- Ref<PredictionContext> singleParent;
184
- if (a == b || (*parentA == *parentB)) { // ax + bx = [a,b]x
185
- singleParent = parentA;
186
- }
187
- if (singleParent) { // parents are same, sort payloads and use same parent
188
- std::vector<size_t> payloads = { a->returnState, b->returnState };
189
- if (a->returnState > b->returnState) {
190
- payloads[0] = b->returnState;
191
- payloads[1] = a->returnState;
192
- }
193
- std::vector<Ref<PredictionContext>> parents = { singleParent, singleParent };
194
- Ref<PredictionContext> a_ = std::make_shared<ArrayPredictionContext>(parents, payloads);
195
- if (mergeCache != nullptr) {
196
- mergeCache->put(a, b, a_);
197
- }
198
- return a_;
199
- }
200
-
201
- // parents differ and can't merge them. Just pack together
202
- // into array; can't merge.
203
- // ax + by = [ax,by]
204
- Ref<PredictionContext> a_;
205
- if (a->returnState > b->returnState) { // sort by payload
206
- std::vector<size_t> payloads = { b->returnState, a->returnState };
207
- std::vector<Ref<PredictionContext>> parents = { b->parent, a->parent };
208
- a_ = std::make_shared<ArrayPredictionContext>(parents, payloads);
209
- } else {
210
- std::vector<size_t> payloads = {a->returnState, b->returnState};
211
- std::vector<Ref<PredictionContext>> parents = { a->parent, b->parent };
212
- a_ = std::make_shared<ArrayPredictionContext>(parents, payloads);
213
- }
214
-
215
- if (mergeCache != nullptr) {
216
- mergeCache->put(a, b, a_);
217
- }
218
- return a_;
219
- }
220
- }
221
-
222
- Ref<PredictionContext> PredictionContext::mergeRoot(const Ref<SingletonPredictionContext> &a,
223
- const Ref<SingletonPredictionContext> &b, bool rootIsWildcard) {
224
- if (rootIsWildcard) {
225
- if (a == EMPTY) { // * + b = *
226
- return EMPTY;
227
- }
228
- if (b == EMPTY) { // a + * = *
229
- return EMPTY;
230
- }
231
- } else {
232
- if (a == EMPTY && b == EMPTY) { // $ + $ = $
233
- return EMPTY;
234
- }
235
- if (a == EMPTY) { // $ + x = [$,x]
236
- std::vector<size_t> payloads = { b->returnState, EMPTY_RETURN_STATE };
237
- std::vector<Ref<PredictionContext>> parents = { b->parent, nullptr };
238
- Ref<PredictionContext> joined = std::make_shared<ArrayPredictionContext>(parents, payloads);
239
- return joined;
240
- }
241
- if (b == EMPTY) { // x + $ = [$,x] ($ is always first if present)
242
- std::vector<size_t> payloads = { a->returnState, EMPTY_RETURN_STATE };
243
- std::vector<Ref<PredictionContext>> parents = { a->parent, nullptr };
244
- Ref<PredictionContext> joined = std::make_shared<ArrayPredictionContext>(parents, payloads);
245
- return joined;
246
- }
247
- }
248
- return nullptr;
249
- }
250
-
251
- Ref<PredictionContext> PredictionContext::mergeArrays(const Ref<ArrayPredictionContext> &a,
252
- const Ref<ArrayPredictionContext> &b, bool rootIsWildcard, PredictionContextMergeCache *mergeCache) {
253
-
254
- if (mergeCache != nullptr) {
255
- auto existing = mergeCache->get(a, b);
256
- if (existing) {
257
- return existing;
258
- }
259
- existing = mergeCache->get(b, a);
260
- if (existing) {
261
- return existing;
262
- }
263
- }
264
-
265
- // merge sorted payloads a + b => M
266
- size_t i = 0; // walks a
267
- size_t j = 0; // walks b
268
- size_t k = 0; // walks target M array
269
-
270
- std::vector<size_t> mergedReturnStates(a->returnStates.size() + b->returnStates.size());
271
- std::vector<Ref<PredictionContext>> mergedParents(a->returnStates.size() + b->returnStates.size());
272
-
273
- // walk and merge to yield mergedParents, mergedReturnStates
274
- while (i < a->returnStates.size() && j < b->returnStates.size()) {
275
- Ref<PredictionContext> a_parent = a->parents[i];
276
- Ref<PredictionContext> b_parent = b->parents[j];
277
- if (a->returnStates[i] == b->returnStates[j]) {
278
- // same payload (stack tops are equal), must yield merged singleton
279
- size_t payload = a->returnStates[i];
280
- // $+$ = $
281
- bool both$ = payload == EMPTY_RETURN_STATE && !a_parent && !b_parent;
282
- bool ax_ax = (a_parent && b_parent) && *a_parent == *b_parent; // ax+ax -> ax
283
- if (both$ || ax_ax) {
284
- mergedParents[k] = a_parent; // choose left
285
- mergedReturnStates[k] = payload;
286
- }
287
- else { // ax+ay -> a'[x,y]
288
- Ref<PredictionContext> mergedParent = merge(a_parent, b_parent, rootIsWildcard, mergeCache);
289
- mergedParents[k] = mergedParent;
290
- mergedReturnStates[k] = payload;
291
- }
292
- i++; // hop over left one as usual
293
- j++; // but also skip one in right side since we merge
294
- } else if (a->returnStates[i] < b->returnStates[j]) { // copy a[i] to M
295
- mergedParents[k] = a_parent;
296
- mergedReturnStates[k] = a->returnStates[i];
297
- i++;
298
- }
299
- else { // b > a, copy b[j] to M
300
- mergedParents[k] = b_parent;
301
- mergedReturnStates[k] = b->returnStates[j];
302
- j++;
303
- }
304
- k++;
305
- }
306
-
307
- // copy over any payloads remaining in either array
308
- if (i < a->returnStates.size()) {
309
- for (std::vector<int>::size_type p = i; p < a->returnStates.size(); p++) {
310
- mergedParents[k] = a->parents[p];
311
- mergedReturnStates[k] = a->returnStates[p];
312
- k++;
313
- }
314
- } else {
315
- for (std::vector<int>::size_type p = j; p < b->returnStates.size(); p++) {
316
- mergedParents[k] = b->parents[p];
317
- mergedReturnStates[k] = b->returnStates[p];
318
- k++;
319
- }
320
- }
321
-
322
- // trim merged if we combined a few that had same stack tops
323
- if (k < mergedParents.size()) { // write index < last position; trim
324
- if (k == 1) { // for just one merged element, return singleton top
325
- Ref<PredictionContext> a_ = SingletonPredictionContext::create(mergedParents[0], mergedReturnStates[0]);
326
- if (mergeCache != nullptr) {
327
- mergeCache->put(a, b, a_);
328
- }
329
- return a_;
330
- }
331
- mergedParents.resize(k);
332
- mergedReturnStates.resize(k);
333
- }
334
-
335
- Ref<ArrayPredictionContext> M = std::make_shared<ArrayPredictionContext>(mergedParents, mergedReturnStates);
336
-
337
- // if we created same array as a or b, return that instead
338
- // TODO: track whether this is possible above during merge sort for speed
339
- if (*M == *a) {
340
- if (mergeCache != nullptr) {
341
- mergeCache->put(a, b, a);
342
- }
343
- return a;
344
- }
345
- if (*M == *b) {
346
- if (mergeCache != nullptr) {
347
- mergeCache->put(a, b, b);
348
- }
349
- return b;
350
- }
351
-
352
- // ml: this part differs from Java code. We have to recreate the context as the parents array is copied on creation.
353
- if (combineCommonParents(mergedParents)) {
354
- mergedReturnStates.resize(mergedParents.size());
355
- M = std::make_shared<ArrayPredictionContext>(mergedParents, mergedReturnStates);
356
- }
357
-
358
- if (mergeCache != nullptr) {
359
- mergeCache->put(a, b, M);
360
- }
361
- return M;
362
- }
363
-
364
- bool PredictionContext::combineCommonParents(std::vector<Ref<PredictionContext>> &parents) {
365
-
366
- std::set<Ref<PredictionContext>> uniqueParents;
367
- for (size_t p = 0; p < parents.size(); ++p) {
368
- Ref<PredictionContext> parent = parents[p];
369
- if (uniqueParents.find(parent) == uniqueParents.end()) { // don't replace
370
- uniqueParents.insert(parent);
371
- }
372
- }
373
-
374
- for (size_t p = 0; p < parents.size(); ++p) {
375
- parents[p] = *uniqueParents.find(parents[p]);
376
- }
377
-
378
- return true;
379
- }
380
-
381
- std::string PredictionContext::toDOTString(const Ref<PredictionContext> &context) {
382
- if (context == nullptr) {
383
- return "";
384
- }
385
-
386
- std::stringstream ss;
387
- ss << "digraph G {\n" << "rankdir=LR;\n";
388
-
389
- std::vector<Ref<PredictionContext>> nodes = getAllContextNodes(context);
390
- std::sort(nodes.begin(), nodes.end(), [](const Ref<PredictionContext> &o1, const Ref<PredictionContext> &o2) {
391
- return o1->id - o2->id;
392
- });
393
-
394
- for (auto current : nodes) {
395
- if (is<SingletonPredictionContext>(current)) {
396
- std::string s = std::to_string(current->id);
397
- ss << " s" << s;
398
- std::string returnState = std::to_string(current->getReturnState(0));
399
- if (is<EmptyPredictionContext>(current)) {
400
- returnState = "$";
401
- }
402
- ss << " [label=\"" << returnState << "\"];\n";
403
- continue;
404
- }
405
- Ref<ArrayPredictionContext> arr = std::static_pointer_cast<ArrayPredictionContext>(current);
406
- ss << " s" << arr->id << " [shape=box, label=\"" << "[";
407
- bool first = true;
408
- for (auto inv : arr->returnStates) {
409
- if (!first) {
410
- ss << ", ";
411
- }
412
- if (inv == EMPTY_RETURN_STATE) {
413
- ss << "$";
414
- } else {
415
- ss << inv;
416
- }
417
- first = false;
418
- }
419
- ss << "]";
420
- ss << "\"];\n";
421
- }
422
-
423
- for (auto current : nodes) {
424
- if (current == EMPTY) {
425
- continue;
426
- }
427
- for (size_t i = 0; i < current->size(); i++) {
428
- if (!current->getParent(i)) {
429
- continue;
430
- }
431
- ss << " s" << current->id << "->" << "s" << current->getParent(i)->id;
432
- if (current->size() > 1) {
433
- ss << " [label=\"parent[" << i << "]\"];\n";
434
- } else {
435
- ss << ";\n";
436
- }
437
- }
438
- }
439
-
440
- ss << "}\n";
441
- return ss.str();
442
- }
443
-
444
- // The "visited" map is just a temporary structure to control the retrieval process (which is recursive).
445
- Ref<PredictionContext> PredictionContext::getCachedContext(const Ref<PredictionContext> &context,
446
- PredictionContextCache &contextCache, std::map<Ref<PredictionContext>, Ref<PredictionContext>> &visited) {
447
- if (context->isEmpty()) {
448
- return context;
449
- }
450
-
451
- {
452
- auto iterator = visited.find(context);
453
- if (iterator != visited.end())
454
- return iterator->second; // Not necessarly the same as context.
455
- }
456
-
457
- auto iterator = contextCache.find(context);
458
- if (iterator != contextCache.end()) {
459
- visited[context] = *iterator;
460
-
461
- return *iterator;
462
- }
463
-
464
- bool changed = false;
465
-
466
- std::vector<Ref<PredictionContext>> parents(context->size());
467
- for (size_t i = 0; i < parents.size(); i++) {
468
- Ref<PredictionContext> parent = getCachedContext(context->getParent(i), contextCache, visited);
469
- if (changed || parent != context->getParent(i)) {
470
- if (!changed) {
471
- parents.clear();
472
- for (size_t j = 0; j < context->size(); j++) {
473
- parents.push_back(context->getParent(j));
474
- }
475
-
476
- changed = true;
477
- }
478
-
479
- parents[i] = parent;
480
- }
481
- }
482
-
483
- if (!changed) {
484
- contextCache.insert(context);
485
- visited[context] = context;
486
-
487
- return context;
488
- }
489
-
490
- Ref<PredictionContext> updated;
491
- if (parents.empty()) {
492
- updated = EMPTY;
493
- } else if (parents.size() == 1) {
494
- updated = SingletonPredictionContext::create(parents[0], context->getReturnState(0));
495
- contextCache.insert(updated);
496
- } else {
497
- updated = std::make_shared<ArrayPredictionContext>(parents, std::dynamic_pointer_cast<ArrayPredictionContext>(context)->returnStates);
498
- contextCache.insert(updated);
499
- }
500
-
501
- visited[updated] = updated;
502
- visited[context] = updated;
503
-
504
- return updated;
505
- }
506
-
507
- std::vector<Ref<PredictionContext>> PredictionContext::getAllContextNodes(const Ref<PredictionContext> &context) {
508
- std::vector<Ref<PredictionContext>> nodes;
509
- std::set<PredictionContext *> visited;
510
- getAllContextNodes_(context, nodes, visited);
511
- return nodes;
512
- }
513
-
514
-
515
- void PredictionContext::getAllContextNodes_(const Ref<PredictionContext> &context, std::vector<Ref<PredictionContext>> &nodes,
516
- std::set<PredictionContext *> &visited) {
517
-
518
- if (visited.find(context.get()) != visited.end()) {
519
- return; // Already done.
520
- }
521
-
522
- visited.insert(context.get());
523
- nodes.push_back(context);
524
-
525
- for (size_t i = 0; i < context->size(); i++) {
526
- getAllContextNodes_(context->getParent(i), nodes, visited);
527
- }
528
- }
529
-
530
- std::string PredictionContext::toString() const {
531
-
532
- return antlrcpp::toString(this);
533
- }
534
-
535
- std::string PredictionContext::toString(Recognizer * /*recog*/) const {
536
- return toString();
537
- }
538
-
539
- std::vector<std::string> PredictionContext::toStrings(Recognizer *recognizer, int currentState) {
540
- return toStrings(recognizer, EMPTY, currentState);
541
- }
542
-
543
- std::vector<std::string> PredictionContext::toStrings(Recognizer *recognizer, const Ref<PredictionContext> &stop, int currentState) {
544
-
545
- std::vector<std::string> result;
546
-
547
- for (size_t perm = 0; ; perm++) {
548
- size_t offset = 0;
549
- bool last = true;
550
- PredictionContext *p = this;
551
- size_t stateNumber = currentState;
552
-
553
- std::stringstream ss;
554
- ss << "[";
555
- bool outerContinue = false;
556
- while (!p->isEmpty() && p != stop.get()) {
557
- size_t index = 0;
558
- if (p->size() > 0) {
559
- size_t bits = 1;
560
- while ((1ULL << bits) < p->size()) {
561
- bits++;
562
- }
563
-
564
- size_t mask = (1 << bits) - 1;
565
- index = (perm >> offset) & mask;
566
- last &= index >= p->size() - 1;
567
- if (index >= p->size()) {
568
- outerContinue = true;
569
- break;
570
- }
571
- offset += bits;
572
- }
573
-
574
- if (recognizer != nullptr) {
575
- if (ss.tellp() > 1) {
576
- // first char is '[', if more than that this isn't the first rule
577
- ss << ' ';
578
- }
579
-
580
- const ATN &atn = recognizer->getATN();
581
- ATNState *s = atn.states[stateNumber];
582
- std::string ruleName = recognizer->getRuleNames()[s->ruleIndex];
583
- ss << ruleName;
584
- } else if (p->getReturnState(index) != EMPTY_RETURN_STATE) {
585
- if (!p->isEmpty()) {
586
- if (ss.tellp() > 1) {
587
- // first char is '[', if more than that this isn't the first rule
588
- ss << ' ';
589
- }
590
-
591
- ss << p->getReturnState(index);
592
- }
593
- }
594
- stateNumber = p->getReturnState(index);
595
- p = p->getParent(index).get();
596
- }
597
-
598
- if (outerContinue)
599
- continue;
600
-
601
- ss << "]";
602
- result.push_back(ss.str());
603
-
604
- if (last) {
605
- break;
606
- }
607
- }
608
-
609
- return result;
610
- }
611
-
612
- //----------------- PredictionContextMergeCache ------------------------------------------------------------------------
613
-
614
- Ref<PredictionContext> PredictionContextMergeCache::put(Ref<PredictionContext> const& key1, Ref<PredictionContext> const& key2,
615
- Ref<PredictionContext> const& value) {
616
- Ref<PredictionContext> previous;
617
-
618
- auto iterator = _data.find(key1);
619
- if (iterator == _data.end())
620
- _data[key1][key2] = value;
621
- else {
622
- auto iterator2 = iterator->second.find(key2);
623
- if (iterator2 != iterator->second.end())
624
- previous = iterator2->second;
625
- iterator->second[key2] = value;
626
- }
627
-
628
- return previous;
629
- }
630
-
631
- Ref<PredictionContext> PredictionContextMergeCache::get(Ref<PredictionContext> const& key1, Ref<PredictionContext> const& key2) {
632
- auto iterator = _data.find(key1);
633
- if (iterator == _data.end())
634
- return nullptr;
635
-
636
- auto iterator2 = iterator->second.find(key2);
637
- if (iterator2 == iterator->second.end())
638
- return nullptr;
639
-
640
- return iterator2->second;
641
- }
642
-
643
- void PredictionContextMergeCache::clear() {
644
- _data.clear();
645
- }
646
-
647
- std::string PredictionContextMergeCache::toString() const {
648
- std::string result;
649
- for (auto pair : _data)
650
- for (auto pair2 : pair.second)
651
- result += pair2.second->toString() + "\n";
652
-
653
- return result;
654
- }
655
-
656
- size_t PredictionContextMergeCache::count() const {
657
- size_t result = 0;
658
- for (auto entry : _data)
659
- result += entry.second.size();
660
- return result;
661
- }
662
-