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,110 +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 "support/BitSet.h"
9
- #include "atn/PredictionContext.h"
10
-
11
- namespace antlr4 {
12
- namespace atn {
13
-
14
- /// Specialized set that can track info about the set, with support for combining similar configurations using a
15
- /// graph-structured stack.
16
- class ANTLR4CPP_PUBLIC ATNConfigSet {
17
- public:
18
- /// Track the elements as they are added to the set; supports get(i)
19
- std::vector<Ref<ATNConfig>> configs;
20
-
21
- // TODO: these fields make me pretty uncomfortable but nice to pack up info together, saves recomputation
22
- // TODO: can we track conflicts as they are added to save scanning configs later?
23
- size_t uniqueAlt;
24
-
25
- /** Currently this is only used when we detect SLL conflict; this does
26
- * not necessarily represent the ambiguous alternatives. In fact,
27
- * I should also point out that this seems to include predicated alternatives
28
- * that have predicates that evaluate to false. Computed in computeTargetState().
29
- */
30
- antlrcpp::BitSet conflictingAlts;
31
-
32
- // Used in parser and lexer. In lexer, it indicates we hit a pred
33
- // while computing a closure operation. Don't make a DFA state from this.
34
- bool hasSemanticContext;
35
- bool dipsIntoOuterContext;
36
-
37
- /// Indicates that this configuration set is part of a full context
38
- /// LL prediction. It will be used to determine how to merge $. With SLL
39
- /// it's a wildcard whereas it is not for LL context merge.
40
- const bool fullCtx;
41
-
42
- ATNConfigSet(bool fullCtx = true);
43
- ATNConfigSet(const Ref<ATNConfigSet> &old);
44
-
45
- virtual ~ATNConfigSet();
46
-
47
- virtual bool add(const Ref<ATNConfig> &config);
48
-
49
- /// <summary>
50
- /// Adding a new config means merging contexts with existing configs for
51
- /// {@code (s, i, pi, _)}, where {@code s} is the
52
- /// <seealso cref="ATNConfig#state"/>, {@code i} is the <seealso cref="ATNConfig#alt"/>, and
53
- /// {@code pi} is the <seealso cref="ATNConfig#semanticContext"/>. We use
54
- /// {@code (s,i,pi)} as key.
55
- /// <p/>
56
- /// This method updates <seealso cref="#dipsIntoOuterContext"/> and
57
- /// <seealso cref="#hasSemanticContext"/> when necessary.
58
- /// </summary>
59
- virtual bool add(const Ref<ATNConfig> &config, PredictionContextMergeCache *mergeCache);
60
-
61
- virtual std::vector<ATNState *> getStates();
62
-
63
- /**
64
- * Gets the complete set of represented alternatives for the configuration
65
- * set.
66
- *
67
- * @return the set of represented alternatives in this configuration set
68
- *
69
- * @since 4.3
70
- */
71
- antlrcpp::BitSet getAlts();
72
- virtual std::vector<Ref<SemanticContext>> getPredicates();
73
-
74
- virtual Ref<ATNConfig> get(size_t i) const;
75
-
76
- virtual void optimizeConfigs(ATNSimulator *interpreter);
77
-
78
- bool addAll(const Ref<ATNConfigSet> &other);
79
-
80
- bool operator == (const ATNConfigSet &other);
81
- virtual size_t hashCode();
82
- virtual size_t size();
83
- virtual bool isEmpty();
84
- virtual void clear();
85
- virtual bool isReadonly();
86
- virtual void setReadonly(bool readonly);
87
- virtual std::string toString();
88
-
89
- protected:
90
- /// Indicates that the set of configurations is read-only. Do not
91
- /// allow any code to manipulate the set; DFA states will point at
92
- /// the sets and they must not change. This does not protect the other
93
- /// fields; in particular, conflictingAlts is set after
94
- /// we've made this readonly.
95
- bool _readonly;
96
-
97
- virtual size_t getHash(ATNConfig *c); // Hash differs depending on set type.
98
-
99
- private:
100
- size_t _cachedHashCode;
101
-
102
- /// All configs but hashed by (s, i, _, pi) not including context. Wiped out
103
- /// when we go readonly as this set becomes a DFA state.
104
- std::unordered_map<size_t, ATNConfig *> _configLookup;
105
-
106
- void InitializeInstanceFields();
107
- };
108
-
109
- } // namespace atn
110
- } // namespace antlr4
@@ -1,64 +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/ATNDeserializationOptions.h"
7
-
8
- using namespace antlr4::atn;
9
-
10
- ATNDeserializationOptions ATNDeserializationOptions::defaultOptions;
11
-
12
- ATNDeserializationOptions::ATNDeserializationOptions() {
13
- InitializeInstanceFields();
14
- }
15
-
16
- ATNDeserializationOptions::ATNDeserializationOptions(ATNDeserializationOptions *options) : ATNDeserializationOptions() {
17
- this->verifyATN = options->verifyATN;
18
- this->generateRuleBypassTransitions = options->generateRuleBypassTransitions;
19
- }
20
-
21
- ATNDeserializationOptions::~ATNDeserializationOptions() {
22
- }
23
-
24
- const ATNDeserializationOptions& ATNDeserializationOptions::getDefaultOptions() {
25
- return defaultOptions;
26
- }
27
-
28
- bool ATNDeserializationOptions::isReadOnly() {
29
- return readOnly;
30
- }
31
-
32
- void ATNDeserializationOptions::makeReadOnly() {
33
- readOnly = true;
34
- }
35
-
36
- bool ATNDeserializationOptions::isVerifyATN() {
37
- return verifyATN;
38
- }
39
-
40
- void ATNDeserializationOptions::setVerifyATN(bool verify) {
41
- throwIfReadOnly();
42
- verifyATN = verify;
43
- }
44
-
45
- bool ATNDeserializationOptions::isGenerateRuleBypassTransitions() {
46
- return generateRuleBypassTransitions;
47
- }
48
-
49
- void ATNDeserializationOptions::setGenerateRuleBypassTransitions(bool generate) {
50
- throwIfReadOnly();
51
- generateRuleBypassTransitions = generate;
52
- }
53
-
54
- void ATNDeserializationOptions::throwIfReadOnly() {
55
- if (isReadOnly()) {
56
- throw "The object is read only.";
57
- }
58
- }
59
-
60
- void ATNDeserializationOptions::InitializeInstanceFields() {
61
- readOnly = false;
62
- verifyATN = true;
63
- generateRuleBypassTransitions = false;
64
- }
@@ -1,50 +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 "antlr4-common.h"
9
-
10
- namespace antlr4 {
11
- namespace atn {
12
-
13
- class ANTLR4CPP_PUBLIC ATNDeserializationOptions {
14
- private:
15
- static ATNDeserializationOptions defaultOptions;
16
-
17
- bool readOnly;
18
- bool verifyATN;
19
- bool generateRuleBypassTransitions;
20
-
21
- public:
22
- ATNDeserializationOptions();
23
- ATNDeserializationOptions(ATNDeserializationOptions *options);
24
- ATNDeserializationOptions(ATNDeserializationOptions const&) = default;
25
- virtual ~ATNDeserializationOptions();
26
- ATNDeserializationOptions& operator=(ATNDeserializationOptions const&) = default;
27
-
28
- static const ATNDeserializationOptions& getDefaultOptions();
29
-
30
- bool isReadOnly();
31
-
32
- void makeReadOnly();
33
-
34
- bool isVerifyATN();
35
-
36
- void setVerifyATN(bool verify);
37
-
38
- bool isGenerateRuleBypassTransitions();
39
-
40
- void setGenerateRuleBypassTransitions(bool generate);
41
-
42
- protected:
43
- virtual void throwIfReadOnly();
44
-
45
- private:
46
- void InitializeInstanceFields();
47
- };
48
-
49
- } // namespace atn
50
- } // namespace antlr4
@@ -1,758 +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/ATNDeserializationOptions.h"
7
-
8
- #include "atn/ATNType.h"
9
- #include "atn/ATNState.h"
10
- #include "atn/ATN.h"
11
-
12
- #include "atn/LoopEndState.h"
13
- #include "atn/DecisionState.h"
14
- #include "atn/RuleStartState.h"
15
- #include "atn/RuleStopState.h"
16
- #include "atn/TokensStartState.h"
17
- #include "atn/RuleTransition.h"
18
- #include "atn/EpsilonTransition.h"
19
- #include "atn/PlusLoopbackState.h"
20
- #include "atn/PlusBlockStartState.h"
21
- #include "atn/StarLoopbackState.h"
22
- #include "atn/BasicBlockStartState.h"
23
- #include "atn/BasicState.h"
24
- #include "atn/BlockEndState.h"
25
- #include "atn/StarLoopEntryState.h"
26
-
27
- #include "atn/AtomTransition.h"
28
- #include "atn/StarBlockStartState.h"
29
- #include "atn/RangeTransition.h"
30
- #include "atn/PredicateTransition.h"
31
- #include "atn/PrecedencePredicateTransition.h"
32
- #include "atn/ActionTransition.h"
33
- #include "atn/SetTransition.h"
34
- #include "atn/NotSetTransition.h"
35
- #include "atn/WildcardTransition.h"
36
- #include "Token.h"
37
-
38
- #include "misc/IntervalSet.h"
39
- #include "Exceptions.h"
40
- #include "support/CPPUtils.h"
41
- #include "support/StringUtils.h"
42
-
43
- #include "atn/LexerCustomAction.h"
44
- #include "atn/LexerChannelAction.h"
45
- #include "atn/LexerModeAction.h"
46
- #include "atn/LexerMoreAction.h"
47
- #include "atn/LexerPopModeAction.h"
48
- #include "atn/LexerPushModeAction.h"
49
- #include "atn/LexerSkipAction.h"
50
- #include "atn/LexerTypeAction.h"
51
-
52
- #include "atn/ATNDeserializer.h"
53
-
54
- #include <string>
55
-
56
- using namespace antlr4;
57
- using namespace antlr4::atn;
58
- using namespace antlrcpp;
59
-
60
- const size_t ATNDeserializer::SERIALIZED_VERSION = 3;
61
-
62
- namespace {
63
-
64
- uint32_t deserializeInt32(const std::vector<uint16_t>& data, size_t offset) {
65
- return (uint32_t)data[offset] | ((uint32_t)data[offset + 1] << 16);
66
- }
67
-
68
- ssize_t readUnicodeInt(const std::vector<uint16_t>& data, int& p) {
69
- return static_cast<ssize_t>(data[p++]);
70
- }
71
-
72
- ssize_t readUnicodeInt32(const std::vector<uint16_t>& data, int& p) {
73
- auto result = deserializeInt32(data, p);
74
- p += 2;
75
- return static_cast<ssize_t>(result);
76
- }
77
-
78
- // We templatize this on the function type so the optimizer can inline
79
- // the 16- or 32-bit readUnicodeInt/readUnicodeInt32 as needed.
80
- template <typename F>
81
- void deserializeSets(
82
- const std::vector<uint16_t>& data,
83
- int& p,
84
- std::vector<misc::IntervalSet>& sets,
85
- F readUnicode) {
86
- int nsets = data[p++];
87
- for (int i = 0; i < nsets; i++) {
88
- int nintervals = data[p++];
89
- misc::IntervalSet set;
90
-
91
- bool containsEof = data[p++] != 0;
92
- if (containsEof) {
93
- set.add(-1);
94
- }
95
-
96
- for (int j = 0; j < nintervals; j++) {
97
- auto a = readUnicode(data, p);
98
- auto b = readUnicode(data, p);
99
- set.add(a, b);
100
- }
101
- sets.push_back(set);
102
- }
103
- }
104
-
105
- }
106
-
107
- ATNDeserializer::ATNDeserializer(): ATNDeserializer(ATNDeserializationOptions::getDefaultOptions()) {
108
- }
109
-
110
- ATNDeserializer::ATNDeserializer(const ATNDeserializationOptions& dso): deserializationOptions(dso) {
111
- }
112
-
113
- ATNDeserializer::~ATNDeserializer() {
114
- }
115
-
116
- /**
117
- * This value should never change. Updates following this version are
118
- * reflected as change in the unique ID SERIALIZED_UUID.
119
- */
120
- Guid ATNDeserializer::ADDED_PRECEDENCE_TRANSITIONS() {
121
- return Guid("1DA0C57D-6C06-438A-9B27-10BCB3CE0F61");
122
- }
123
-
124
- Guid ATNDeserializer::ADDED_LEXER_ACTIONS() {
125
- return Guid("AADB8D7E-AEEF-4415-AD2B-8204D6CF042E");
126
- }
127
-
128
- Guid ATNDeserializer::ADDED_UNICODE_SMP() {
129
- return Guid("59627784-3BE5-417A-B9EB-8131A7286089");
130
- }
131
-
132
- Guid ATNDeserializer::SERIALIZED_UUID() {
133
- return ADDED_UNICODE_SMP();
134
- }
135
-
136
- Guid ATNDeserializer::BASE_SERIALIZED_UUID() {
137
- return Guid("33761B2D-78BB-4A43-8B0B-4F5BEE8AACF3");
138
- }
139
-
140
- std::vector<Guid>& ATNDeserializer::SUPPORTED_UUIDS() {
141
- static std::vector<Guid> singleton = { BASE_SERIALIZED_UUID(), ADDED_PRECEDENCE_TRANSITIONS(), ADDED_LEXER_ACTIONS(), ADDED_UNICODE_SMP() };
142
- return singleton;
143
- }
144
-
145
- bool ATNDeserializer::isFeatureSupported(const Guid &feature, const Guid &actualUuid) {
146
- auto featureIterator = std::find(SUPPORTED_UUIDS().begin(), SUPPORTED_UUIDS().end(), feature);
147
- if (featureIterator == SUPPORTED_UUIDS().end()) {
148
- return false;
149
- }
150
- auto actualIterator = std::find(SUPPORTED_UUIDS().begin(), SUPPORTED_UUIDS().end(), actualUuid);
151
- if (actualIterator == SUPPORTED_UUIDS().end()) {
152
- return false;
153
- }
154
-
155
- return std::distance(featureIterator, actualIterator) >= 0;
156
- }
157
-
158
- ATN ATNDeserializer::deserialize(const std::vector<uint16_t>& input) {
159
- // Don't adjust the first value since that's the version number.
160
- std::vector<uint16_t> data(input.size());
161
- data[0] = input[0];
162
- for (size_t i = 1; i < input.size(); ++i) {
163
- data[i] = input[i] - 2;
164
- }
165
-
166
- int p = 0;
167
- int version = data[p++];
168
- if (version != SERIALIZED_VERSION) {
169
- std::string reason = "Could not deserialize ATN with version" + std::to_string(version) + "(expected " + std::to_string(SERIALIZED_VERSION) + ").";
170
-
171
- throw UnsupportedOperationException(reason);
172
- }
173
-
174
- Guid uuid = toUUID(data.data(), p);
175
- p += 8;
176
- auto uuidIterator = std::find(SUPPORTED_UUIDS().begin(), SUPPORTED_UUIDS().end(), uuid);
177
- if (uuidIterator == SUPPORTED_UUIDS().end()) {
178
- std::string reason = "Could not deserialize ATN with UUID " + uuid.toString() + " (expected " +
179
- SERIALIZED_UUID().toString() + " or a legacy UUID).";
180
-
181
- throw UnsupportedOperationException(reason);
182
- }
183
-
184
- bool supportsPrecedencePredicates = isFeatureSupported(ADDED_PRECEDENCE_TRANSITIONS(), uuid);
185
- bool supportsLexerActions = isFeatureSupported(ADDED_LEXER_ACTIONS(), uuid);
186
-
187
- ATNType grammarType = (ATNType)data[p++];
188
- size_t maxTokenType = data[p++];
189
- ATN atn(grammarType, maxTokenType);
190
-
191
- //
192
- // STATES
193
- //
194
- std::vector<std::pair<LoopEndState*, size_t>> loopBackStateNumbers;
195
- std::vector<std::pair<BlockStartState*, size_t>> endStateNumbers;
196
- size_t nstates = data[p++];
197
- for (size_t i = 0; i < nstates; i++) {
198
- size_t stype = data[p++];
199
- // ignore bad type of states
200
- if (stype == ATNState::ATN_INVALID_TYPE) {
201
- atn.addState(nullptr);
202
- continue;
203
- }
204
-
205
- size_t ruleIndex = data[p++];
206
- if (ruleIndex == 0xFFFF) {
207
- ruleIndex = INVALID_INDEX;
208
- }
209
-
210
- ATNState *s = stateFactory(stype, ruleIndex);
211
- if (stype == ATNState::LOOP_END) { // special case
212
- int loopBackStateNumber = data[p++];
213
- loopBackStateNumbers.push_back({ (LoopEndState*)s, loopBackStateNumber });
214
- } else if (is<BlockStartState*>(s)) {
215
- int endStateNumber = data[p++];
216
- endStateNumbers.push_back({ (BlockStartState*)s, endStateNumber });
217
- }
218
- atn.addState(s);
219
- }
220
-
221
- // delay the assignment of loop back and end states until we know all the state instances have been initialized
222
- for (auto &pair : loopBackStateNumbers) {
223
- pair.first->loopBackState = atn.states[pair.second];
224
- }
225
-
226
- for (auto &pair : endStateNumbers) {
227
- pair.first->endState = (BlockEndState*)atn.states[pair.second];
228
- }
229
-
230
- size_t numNonGreedyStates = data[p++];
231
- for (size_t i = 0; i < numNonGreedyStates; i++) {
232
- size_t stateNumber = data[p++];
233
- // The serialized ATN must be specifying the right states, so that the
234
- // cast below is correct.
235
- ((DecisionState *)atn.states[stateNumber])->nonGreedy = true;
236
- }
237
-
238
- if (supportsPrecedencePredicates) {
239
- size_t numPrecedenceStates = data[p++];
240
- for (size_t i = 0; i < numPrecedenceStates; i++) {
241
- size_t stateNumber = data[p++];
242
- ((RuleStartState *)atn.states[stateNumber])->isLeftRecursiveRule = true;
243
- }
244
- }
245
-
246
- //
247
- // RULES
248
- //
249
- size_t nrules = data[p++];
250
- for (size_t i = 0; i < nrules; i++) {
251
- size_t s = data[p++];
252
- // Also here, the serialized atn must ensure to point to the correct class type.
253
- RuleStartState *startState = (RuleStartState*)atn.states[s];
254
- atn.ruleToStartState.push_back(startState);
255
- if (atn.grammarType == ATNType::LEXER) {
256
- size_t tokenType = data[p++];
257
- if (tokenType == 0xFFFF) {
258
- tokenType = Token::EOF;
259
- }
260
-
261
- atn.ruleToTokenType.push_back(tokenType);
262
-
263
- if (!isFeatureSupported(ADDED_LEXER_ACTIONS(), uuid)) {
264
- // this piece of unused metadata was serialized prior to the
265
- // addition of LexerAction
266
- //int actionIndexIgnored = data[p++];
267
- p++;
268
- }
269
- }
270
- }
271
-
272
- atn.ruleToStopState.resize(nrules);
273
- for (ATNState *state : atn.states) {
274
- if (!is<RuleStopState*>(state)) {
275
- continue;
276
- }
277
-
278
- RuleStopState *stopState = static_cast<RuleStopState*>(state);
279
- atn.ruleToStopState[state->ruleIndex] = stopState;
280
- atn.ruleToStartState[state->ruleIndex]->stopState = stopState;
281
- }
282
-
283
- //
284
- // MODES
285
- //
286
- size_t nmodes = data[p++];
287
- for (size_t i = 0; i < nmodes; i++) {
288
- size_t s = data[p++];
289
- atn.modeToStartState.push_back(static_cast<TokensStartState*>(atn.states[s]));
290
- }
291
-
292
- //
293
- // SETS
294
- //
295
- std::vector<misc::IntervalSet> sets;
296
-
297
- // First, deserialize sets with 16-bit arguments <= U+FFFF.
298
- deserializeSets(data, p, sets, readUnicodeInt);
299
-
300
- // Next, if the ATN was serialized with the Unicode SMP feature,
301
- // deserialize sets with 32-bit arguments <= U+10FFFF.
302
- if (isFeatureSupported(ADDED_UNICODE_SMP(), uuid)) {
303
- deserializeSets(data, p, sets, readUnicodeInt32);
304
- }
305
-
306
- //
307
- // EDGES
308
- //
309
- int nedges = data[p++];
310
- for (int i = 0; i < nedges; i++) {
311
- size_t src = data[p];
312
- size_t trg = data[p + 1];
313
- size_t ttype = data[p + 2];
314
- size_t arg1 = data[p + 3];
315
- size_t arg2 = data[p + 4];
316
- size_t arg3 = data[p + 5];
317
- Transition *trans = edgeFactory(atn, ttype, src, trg, arg1, arg2, arg3, sets);
318
- ATNState *srcState = atn.states[src];
319
- srcState->addTransition(trans);
320
- p += 6;
321
- }
322
-
323
- // edges for rule stop states can be derived, so they aren't serialized
324
- for (ATNState *state : atn.states) {
325
- for (size_t i = 0; i < state->transitions.size(); i++) {
326
- Transition *t = state->transitions[i];
327
- if (!is<RuleTransition*>(t)) {
328
- continue;
329
- }
330
-
331
- RuleTransition *ruleTransition = static_cast<RuleTransition*>(t);
332
- size_t outermostPrecedenceReturn = INVALID_INDEX;
333
- if (atn.ruleToStartState[ruleTransition->target->ruleIndex]->isLeftRecursiveRule) {
334
- if (ruleTransition->precedence == 0) {
335
- outermostPrecedenceReturn = ruleTransition->target->ruleIndex;
336
- }
337
- }
338
-
339
- EpsilonTransition *returnTransition = new EpsilonTransition(ruleTransition->followState, outermostPrecedenceReturn); /* mem check: freed in ANTState d-tor */
340
- atn.ruleToStopState[ruleTransition->target->ruleIndex]->addTransition(returnTransition);
341
- }
342
- }
343
-
344
- for (ATNState *state : atn.states) {
345
- if (is<BlockStartState *>(state)) {
346
- BlockStartState *startState = static_cast<BlockStartState *>(state);
347
-
348
- // we need to know the end state to set its start state
349
- if (startState->endState == nullptr) {
350
- throw IllegalStateException();
351
- }
352
-
353
- // block end states can only be associated to a single block start state
354
- if (startState->endState->startState != nullptr) {
355
- throw IllegalStateException();
356
- }
357
-
358
- startState->endState->startState = static_cast<BlockStartState*>(state);
359
- }
360
-
361
- if (is<PlusLoopbackState*>(state)) {
362
- PlusLoopbackState *loopbackState = static_cast<PlusLoopbackState *>(state);
363
- for (size_t i = 0; i < loopbackState->transitions.size(); i++) {
364
- ATNState *target = loopbackState->transitions[i]->target;
365
- if (is<PlusBlockStartState *>(target)) {
366
- (static_cast<PlusBlockStartState *>(target))->loopBackState = loopbackState;
367
- }
368
- }
369
- } else if (is<StarLoopbackState *>(state)) {
370
- StarLoopbackState *loopbackState = static_cast<StarLoopbackState *>(state);
371
- for (size_t i = 0; i < loopbackState->transitions.size(); i++) {
372
- ATNState *target = loopbackState->transitions[i]->target;
373
- if (is<StarLoopEntryState *>(target)) {
374
- (static_cast<StarLoopEntryState*>(target))->loopBackState = loopbackState;
375
- }
376
- }
377
- }
378
- }
379
-
380
- //
381
- // DECISIONS
382
- //
383
- size_t ndecisions = data[p++];
384
- for (size_t i = 1; i <= ndecisions; i++) {
385
- size_t s = data[p++];
386
- DecisionState *decState = dynamic_cast<DecisionState*>(atn.states[s]);
387
- if (decState == nullptr)
388
- throw IllegalStateException();
389
-
390
- atn.decisionToState.push_back(decState);
391
- decState->decision = (int)i - 1;
392
- }
393
-
394
- //
395
- // LEXER ACTIONS
396
- //
397
- if (atn.grammarType == ATNType::LEXER) {
398
- if (supportsLexerActions) {
399
- atn.lexerActions.resize(data[p++]);
400
- for (size_t i = 0; i < atn.lexerActions.size(); i++) {
401
- LexerActionType actionType = (LexerActionType)data[p++];
402
- int data1 = data[p++];
403
- if (data1 == 0xFFFF) {
404
- data1 = -1;
405
- }
406
-
407
- int data2 = data[p++];
408
- if (data2 == 0xFFFF) {
409
- data2 = -1;
410
- }
411
-
412
- atn.lexerActions[i] = lexerActionFactory(actionType, data1, data2);
413
- }
414
- } else {
415
- // for compatibility with older serialized ATNs, convert the old
416
- // serialized action index for action transitions to the new
417
- // form, which is the index of a LexerCustomAction
418
- for (ATNState *state : atn.states) {
419
- for (size_t i = 0; i < state->transitions.size(); i++) {
420
- Transition *transition = state->transitions[i];
421
- if (!is<ActionTransition *>(transition)) {
422
- continue;
423
- }
424
-
425
- size_t ruleIndex = static_cast<ActionTransition *>(transition)->ruleIndex;
426
- size_t actionIndex = static_cast<ActionTransition *>(transition)->actionIndex;
427
- Ref<LexerCustomAction> lexerAction = std::make_shared<LexerCustomAction>(ruleIndex, actionIndex);
428
- state->transitions[i] = new ActionTransition(transition->target, ruleIndex, atn.lexerActions.size(), false); /* mem-check freed in ATNState d-tor */
429
- delete transition; // ml: no longer needed since we just replaced it.
430
- atn.lexerActions.push_back(lexerAction);
431
- }
432
- }
433
- }
434
- }
435
-
436
- markPrecedenceDecisions(atn);
437
-
438
- if (deserializationOptions.isVerifyATN()) {
439
- verifyATN(atn);
440
- }
441
-
442
- if (deserializationOptions.isGenerateRuleBypassTransitions() && atn.grammarType == ATNType::PARSER) {
443
- atn.ruleToTokenType.resize(atn.ruleToStartState.size());
444
- for (size_t i = 0; i < atn.ruleToStartState.size(); i++) {
445
- atn.ruleToTokenType[i] = int(atn.maxTokenType + i + 1);
446
- }
447
-
448
- for (std::vector<RuleStartState*>::size_type i = 0; i < atn.ruleToStartState.size(); i++) {
449
- BasicBlockStartState *bypassStart = new BasicBlockStartState(); /* mem check: freed in ATN d-tor */
450
- bypassStart->ruleIndex = (int)i;
451
- atn.addState(bypassStart);
452
-
453
- BlockEndState *bypassStop = new BlockEndState(); /* mem check: freed in ATN d-tor */
454
- bypassStop->ruleIndex = (int)i;
455
- atn.addState(bypassStop);
456
-
457
- bypassStart->endState = bypassStop;
458
- atn.defineDecisionState(bypassStart);
459
-
460
- bypassStop->startState = bypassStart;
461
-
462
- ATNState *endState;
463
- Transition *excludeTransition = nullptr;
464
- if (atn.ruleToStartState[i]->isLeftRecursiveRule) {
465
- // wrap from the beginning of the rule to the StarLoopEntryState
466
- endState = nullptr;
467
- for (ATNState *state : atn.states) {
468
- if (state->ruleIndex != i) {
469
- continue;
470
- }
471
-
472
- if (!is<StarLoopEntryState*>(state)) {
473
- continue;
474
- }
475
-
476
- ATNState *maybeLoopEndState = state->transitions[state->transitions.size() - 1]->target;
477
- if (!is<LoopEndState*>(maybeLoopEndState)) {
478
- continue;
479
- }
480
-
481
- if (maybeLoopEndState->epsilonOnlyTransitions && is<RuleStopState*>(maybeLoopEndState->transitions[0]->target)) {
482
- endState = state;
483
- break;
484
- }
485
- }
486
-
487
- if (endState == nullptr) {
488
- throw UnsupportedOperationException("Couldn't identify final state of the precedence rule prefix section.");
489
-
490
- }
491
-
492
- excludeTransition = (static_cast<StarLoopEntryState*>(endState))->loopBackState->transitions[0];
493
- } else {
494
- endState = atn.ruleToStopState[i];
495
- }
496
-
497
- // all non-excluded transitions that currently target end state need to target blockEnd instead
498
- for (ATNState *state : atn.states) {
499
- for (Transition *transition : state->transitions) {
500
- if (transition == excludeTransition) {
501
- continue;
502
- }
503
-
504
- if (transition->target == endState) {
505
- transition->target = bypassStop;
506
- }
507
- }
508
- }
509
-
510
- // all transitions leaving the rule start state need to leave blockStart instead
511
- while (atn.ruleToStartState[i]->transitions.size() > 0) {
512
- Transition *transition = atn.ruleToStartState[i]->removeTransition(atn.ruleToStartState[i]->transitions.size() - 1);
513
- bypassStart->addTransition(transition);
514
- }
515
-
516
- // link the new states
517
- atn.ruleToStartState[i]->addTransition(new EpsilonTransition(bypassStart)); /* mem check: freed in ATNState d-tor */
518
- bypassStop->addTransition(new EpsilonTransition(endState)); /* mem check: freed in ATNState d-tor */
519
-
520
- ATNState *matchState = new BasicState(); /* mem check: freed in ATN d-tor */
521
- atn.addState(matchState);
522
- matchState->addTransition(new AtomTransition(bypassStop, atn.ruleToTokenType[i])); /* mem check: freed in ATNState d-tor */
523
- bypassStart->addTransition(new EpsilonTransition(matchState)); /* mem check: freed in ATNState d-tor */
524
- }
525
-
526
- if (deserializationOptions.isVerifyATN()) {
527
- // reverify after modification
528
- verifyATN(atn);
529
- }
530
- }
531
-
532
- return atn;
533
- }
534
-
535
- /**
536
- * Analyze the {@link StarLoopEntryState} states in the specified ATN to set
537
- * the {@link StarLoopEntryState#isPrecedenceDecision} field to the
538
- * correct value.
539
- *
540
- * @param atn The ATN.
541
- */
542
- void ATNDeserializer::markPrecedenceDecisions(const ATN &atn) {
543
- for (ATNState *state : atn.states) {
544
- if (!is<StarLoopEntryState *>(state)) {
545
- continue;
546
- }
547
-
548
- /* We analyze the ATN to determine if this ATN decision state is the
549
- * decision for the closure block that determines whether a
550
- * precedence rule should continue or complete.
551
- */
552
- if (atn.ruleToStartState[state->ruleIndex]->isLeftRecursiveRule) {
553
- ATNState *maybeLoopEndState = state->transitions[state->transitions.size() - 1]->target;
554
- if (is<LoopEndState *>(maybeLoopEndState)) {
555
- if (maybeLoopEndState->epsilonOnlyTransitions && is<RuleStopState *>(maybeLoopEndState->transitions[0]->target)) {
556
- static_cast<StarLoopEntryState *>(state)->isPrecedenceDecision = true;
557
- }
558
- }
559
- }
560
- }
561
- }
562
-
563
- void ATNDeserializer::verifyATN(const ATN &atn) {
564
- // verify assumptions
565
- for (ATNState *state : atn.states) {
566
- if (state == nullptr) {
567
- continue;
568
- }
569
-
570
- checkCondition(state->epsilonOnlyTransitions || state->transitions.size() <= 1);
571
-
572
- if (is<PlusBlockStartState *>(state)) {
573
- checkCondition((static_cast<PlusBlockStartState *>(state))->loopBackState != nullptr);
574
- }
575
-
576
- if (is<StarLoopEntryState *>(state)) {
577
- StarLoopEntryState *starLoopEntryState = static_cast<StarLoopEntryState*>(state);
578
- checkCondition(starLoopEntryState->loopBackState != nullptr);
579
- checkCondition(starLoopEntryState->transitions.size() == 2);
580
-
581
- if (is<StarBlockStartState *>(starLoopEntryState->transitions[0]->target)) {
582
- checkCondition(static_cast<LoopEndState *>(starLoopEntryState->transitions[1]->target) != nullptr);
583
- checkCondition(!starLoopEntryState->nonGreedy);
584
- } else if (is<LoopEndState *>(starLoopEntryState->transitions[0]->target)) {
585
- checkCondition(is<StarBlockStartState *>(starLoopEntryState->transitions[1]->target));
586
- checkCondition(starLoopEntryState->nonGreedy);
587
- } else {
588
- throw IllegalStateException();
589
-
590
- }
591
- }
592
-
593
- if (is<StarLoopbackState *>(state)) {
594
- checkCondition(state->transitions.size() == 1);
595
- checkCondition(is<StarLoopEntryState *>(state->transitions[0]->target));
596
- }
597
-
598
- if (is<LoopEndState *>(state)) {
599
- checkCondition((static_cast<LoopEndState *>(state))->loopBackState != nullptr);
600
- }
601
-
602
- if (is<RuleStartState *>(state)) {
603
- checkCondition((static_cast<RuleStartState *>(state))->stopState != nullptr);
604
- }
605
-
606
- if (is<BlockStartState *>(state)) {
607
- checkCondition((static_cast<BlockStartState *>(state))->endState != nullptr);
608
- }
609
-
610
- if (is<BlockEndState *>(state)) {
611
- checkCondition((static_cast<BlockEndState *>(state))->startState != nullptr);
612
- }
613
-
614
- if (is<DecisionState *>(state)) {
615
- DecisionState *decisionState = static_cast<DecisionState *>(state);
616
- checkCondition(decisionState->transitions.size() <= 1 || decisionState->decision >= 0);
617
- } else {
618
- checkCondition(state->transitions.size() <= 1 || is<RuleStopState *>(state));
619
- }
620
- }
621
- }
622
-
623
- void ATNDeserializer::checkCondition(bool condition) {
624
- checkCondition(condition, "");
625
- }
626
-
627
- void ATNDeserializer::checkCondition(bool condition, const std::string &message) {
628
- if (!condition) {
629
- throw IllegalStateException(message);
630
- }
631
- }
632
-
633
- Guid ATNDeserializer::toUUID(const unsigned short *data, size_t offset) {
634
- return Guid((uint16_t *)data + offset, true);
635
- }
636
-
637
- /* mem check: all created instances are freed in the d-tor of the ATNState they are added to. */
638
- Transition *ATNDeserializer::edgeFactory(const ATN &atn, size_t type, size_t /*src*/, size_t trg, size_t arg1,
639
- size_t arg2, size_t arg3,
640
- const std::vector<misc::IntervalSet> &sets) {
641
-
642
- ATNState *target = atn.states[trg];
643
- switch (type) {
644
- case Transition::EPSILON:
645
- return new EpsilonTransition(target);
646
- case Transition::RANGE:
647
- if (arg3 != 0) {
648
- return new RangeTransition(target, Token::EOF, arg2);
649
- } else {
650
- return new RangeTransition(target, arg1, arg2);
651
- }
652
- case Transition::RULE:
653
- return new RuleTransition(static_cast<RuleStartState*>(atn.states[arg1]), arg2, (int)arg3, target);
654
- case Transition::PREDICATE:
655
- return new PredicateTransition(target, arg1, arg2, arg3 != 0);
656
- case Transition::PRECEDENCE:
657
- return new PrecedencePredicateTransition(target, (int)arg1);
658
- case Transition::ATOM:
659
- if (arg3 != 0) {
660
- return new AtomTransition(target, Token::EOF);
661
- } else {
662
- return new AtomTransition(target, arg1);
663
- }
664
- case Transition::ACTION:
665
- return new ActionTransition(target, arg1, arg2, arg3 != 0);
666
- case Transition::SET:
667
- return new SetTransition(target, sets[arg1]);
668
- case Transition::NOT_SET:
669
- return new NotSetTransition(target, sets[arg1]);
670
- case Transition::WILDCARD:
671
- return new WildcardTransition(target);
672
- }
673
-
674
- throw IllegalArgumentException("The specified transition type is not valid.");
675
- }
676
-
677
- /* mem check: all created instances are freed in the d-tor of the ATN. */
678
- ATNState* ATNDeserializer::stateFactory(size_t type, size_t ruleIndex) {
679
- ATNState *s;
680
- switch (type) {
681
- case ATNState::ATN_INVALID_TYPE:
682
- return nullptr;
683
- case ATNState::BASIC :
684
- s = new BasicState();
685
- break;
686
- case ATNState::RULE_START :
687
- s = new RuleStartState();
688
- break;
689
- case ATNState::BLOCK_START :
690
- s = new BasicBlockStartState();
691
- break;
692
- case ATNState::PLUS_BLOCK_START :
693
- s = new PlusBlockStartState();
694
- break;
695
- case ATNState::STAR_BLOCK_START :
696
- s = new StarBlockStartState();
697
- break;
698
- case ATNState::TOKEN_START :
699
- s = new TokensStartState();
700
- break;
701
- case ATNState::RULE_STOP :
702
- s = new RuleStopState();
703
- break;
704
- case ATNState::BLOCK_END :
705
- s = new BlockEndState();
706
- break;
707
- case ATNState::STAR_LOOP_BACK :
708
- s = new StarLoopbackState();
709
- break;
710
- case ATNState::STAR_LOOP_ENTRY :
711
- s = new StarLoopEntryState();
712
- break;
713
- case ATNState::PLUS_LOOP_BACK :
714
- s = new PlusLoopbackState();
715
- break;
716
- case ATNState::LOOP_END :
717
- s = new LoopEndState();
718
- break;
719
- default :
720
- std::string message = "The specified state type " + std::to_string(type) + " is not valid.";
721
- throw IllegalArgumentException(message);
722
- }
723
-
724
- s->ruleIndex = ruleIndex;
725
- return s;
726
- }
727
-
728
- Ref<LexerAction> ATNDeserializer::lexerActionFactory(LexerActionType type, int data1, int data2) {
729
- switch (type) {
730
- case LexerActionType::CHANNEL:
731
- return std::make_shared<LexerChannelAction>(data1);
732
-
733
- case LexerActionType::CUSTOM:
734
- return std::make_shared<LexerCustomAction>(data1, data2);
735
-
736
- case LexerActionType::MODE:
737
- return std::make_shared< LexerModeAction>(data1);
738
-
739
- case LexerActionType::MORE:
740
- return LexerMoreAction::getInstance();
741
-
742
- case LexerActionType::POP_MODE:
743
- return LexerPopModeAction::getInstance();
744
-
745
- case LexerActionType::PUSH_MODE:
746
- return std::make_shared<LexerPushModeAction>(data1);
747
-
748
- case LexerActionType::SKIP:
749
- return LexerSkipAction::getInstance();
750
-
751
- case LexerActionType::TYPE:
752
- return std::make_shared<LexerTypeAction>(data1);
753
-
754
- default:
755
- throw IllegalArgumentException("The specified lexer action type " + std::to_string(static_cast<size_t>(type)) +
756
- " is not valid.");
757
- }
758
- }