expressir 1.4.3 → 2.1.0

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 (482) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codeql.yml +2 -14
  3. data/.github/workflows/rake.yml +6 -364
  4. data/.github/workflows/release.yml +15 -178
  5. data/.github/workflows/stress.yml +1 -18
  6. data/.rubocop.yml +1 -0
  7. data/.rubocop_todo.yml +21 -0
  8. data/Gemfile +12 -0
  9. data/README.adoc +6 -19
  10. data/Rakefile +6 -7
  11. data/exe/{format-test → expressir-format-test} +1 -1
  12. data/expressir.gemspec +23 -32
  13. data/expressir_wrapped.txt +23068 -0
  14. data/lib/expressir/cli.rb +1 -1
  15. data/lib/expressir/express/formatter.rb +661 -661
  16. data/lib/expressir/express/parser.rb +299 -33
  17. data/lib/expressir/express/visitor.rb +238 -133
  18. data/lib/expressir/liquid/cache_drop.rb +20 -0
  19. data/lib/expressir/liquid/data_type_drop.rb +8 -0
  20. data/lib/expressir/liquid/data_types/aggregate_drop.rb +21 -0
  21. data/lib/expressir/liquid/data_types/array_drop.rb +34 -0
  22. data/lib/expressir/liquid/data_types/bag_drop.rb +26 -0
  23. data/lib/expressir/liquid/data_types/binary_drop.rb +22 -0
  24. data/lib/expressir/liquid/data_types/boolean_drop.rb +10 -0
  25. data/lib/expressir/liquid/data_types/enumeration_drop.rb +30 -0
  26. data/lib/expressir/liquid/data_types/enumeration_item_drop.rb +17 -0
  27. data/lib/expressir/liquid/data_types/generic_drop.rb +17 -0
  28. data/lib/expressir/liquid/data_types/generic_entity_drop.rb +17 -0
  29. data/lib/expressir/liquid/data_types/integer_drop.rb +10 -0
  30. data/lib/expressir/liquid/data_types/list_drop.rb +30 -0
  31. data/lib/expressir/liquid/data_types/logical_drop.rb +10 -0
  32. data/lib/expressir/liquid/data_types/number_drop.rb +10 -0
  33. data/lib/expressir/liquid/data_types/real_drop.rb +18 -0
  34. data/lib/expressir/liquid/data_types/select_drop.rb +34 -0
  35. data/lib/expressir/liquid/data_types/set_drop.rb +26 -0
  36. data/lib/expressir/liquid/data_types/string_drop.rb +22 -0
  37. data/lib/expressir/liquid/declaration_drop.rb +8 -0
  38. data/lib/expressir/liquid/declarations/attribute_drop.rb +37 -0
  39. data/lib/expressir/liquid/declarations/constant_drop.rb +25 -0
  40. data/lib/expressir/liquid/declarations/entity_drop.rb +65 -0
  41. data/lib/expressir/liquid/declarations/function_drop.rb +93 -0
  42. data/lib/expressir/liquid/declarations/interface_drop.rb +30 -0
  43. data/lib/expressir/liquid/declarations/interface_item_drop.rb +22 -0
  44. data/lib/expressir/liquid/declarations/interfaced_item_drop.rb +34 -0
  45. data/lib/expressir/liquid/declarations/parameter_drop.rb +25 -0
  46. data/lib/expressir/liquid/declarations/procedure_drop.rb +89 -0
  47. data/lib/expressir/liquid/declarations/remark_item_drop.rb +22 -0
  48. data/lib/expressir/liquid/declarations/rule_drop.rb +105 -0
  49. data/lib/expressir/liquid/declarations/schema_drop.rb +91 -0
  50. data/lib/expressir/liquid/declarations/schema_version_drop.rb +26 -0
  51. data/lib/expressir/liquid/declarations/schema_version_item_drop.rb +22 -0
  52. data/lib/expressir/liquid/declarations/subtype_constraint_drop.rb +37 -0
  53. data/lib/expressir/liquid/declarations/type_drop.rb +37 -0
  54. data/lib/expressir/liquid/declarations/unique_rule_drop.rb +21 -0
  55. data/lib/expressir/liquid/declarations/variable_drop.rb +25 -0
  56. data/lib/expressir/liquid/declarations/where_rule_drop.rb +21 -0
  57. data/lib/expressir/liquid/expression_drop.rb +8 -0
  58. data/lib/expressir/liquid/expressions/aggregate_initializer_drop.rb +24 -0
  59. data/lib/expressir/liquid/expressions/aggregate_initializer_item_drop.rb +22 -0
  60. data/lib/expressir/liquid/expressions/binary_expression_drop.rb +26 -0
  61. data/lib/expressir/liquid/expressions/entity_constructor_drop.rb +26 -0
  62. data/lib/expressir/liquid/expressions/function_call_drop.rb +26 -0
  63. data/lib/expressir/liquid/expressions/interval_drop.rb +34 -0
  64. data/lib/expressir/liquid/expressions/query_expression_drop.rb +25 -0
  65. data/lib/expressir/liquid/expressions/unary_expression_drop.rb +22 -0
  66. data/lib/expressir/liquid/identifier_drop.rb +33 -0
  67. data/lib/expressir/liquid/literal_drop.rb +8 -0
  68. data/lib/expressir/liquid/literals/binary_drop.rb +18 -0
  69. data/lib/expressir/liquid/literals/integer_drop.rb +18 -0
  70. data/lib/expressir/liquid/literals/logical_drop.rb +18 -0
  71. data/lib/expressir/liquid/literals/real_drop.rb +18 -0
  72. data/lib/expressir/liquid/literals/string_drop.rb +22 -0
  73. data/lib/expressir/liquid/model_element_drop.rb +33 -0
  74. data/lib/expressir/liquid/reference_drop.rb +8 -0
  75. data/lib/expressir/liquid/references/attribute_reference_drop.rb +22 -0
  76. data/lib/expressir/liquid/references/group_reference_drop.rb +22 -0
  77. data/lib/expressir/liquid/references/index_reference_drop.rb +26 -0
  78. data/lib/expressir/liquid/references/simple_reference_drop.rb +22 -0
  79. data/lib/expressir/liquid/repository_drop.rb +22 -0
  80. data/lib/expressir/liquid/statement_drop.rb +8 -0
  81. data/lib/expressir/liquid/statements/alias_drop.rb +29 -0
  82. data/lib/expressir/liquid/statements/assignment_drop.rb +22 -0
  83. data/lib/expressir/liquid/statements/case_action_drop.rb +26 -0
  84. data/lib/expressir/liquid/statements/case_drop.rb +30 -0
  85. data/lib/expressir/liquid/statements/compound_drop.rb +22 -0
  86. data/lib/expressir/liquid/statements/escape_drop.rb +10 -0
  87. data/lib/expressir/liquid/statements/if_drop.rb +34 -0
  88. data/lib/expressir/liquid/statements/null_drop.rb +10 -0
  89. data/lib/expressir/liquid/statements/procedure_call_drop.rb +26 -0
  90. data/lib/expressir/liquid/statements/repeat_drop.rb +45 -0
  91. data/lib/expressir/liquid/statements/return_drop.rb +18 -0
  92. data/lib/expressir/liquid/statements/skip_drop.rb +10 -0
  93. data/lib/expressir/liquid/supertype_expression_drop.rb +8 -0
  94. data/lib/expressir/liquid/supertype_expressions/binary_supertype_expression_drop.rb +26 -0
  95. data/lib/expressir/liquid/supertype_expressions/oneof_supertype_expression_drop.rb +22 -0
  96. data/lib/expressir/liquid.rb +18 -0
  97. data/lib/expressir/model/declarations/interface_item.rb +1 -1
  98. data/lib/expressir/model/model_element.rb +7 -0
  99. data/lib/expressir/version.rb +1 -1
  100. data/lib/expressir.rb +2 -0
  101. metadata +101 -569
  102. data/.cross_rubies +0 -28
  103. data/.gitmodules +0 -6
  104. data/.yardopts +0 -11
  105. data/exe/generate-parser +0 -51
  106. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +0 -191
  107. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +0 -652
  108. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +0 -948
  109. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2022.vcxproj +0 -652
  110. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2022.vcxproj.filters +0 -948
  111. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +0 -26
  112. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +0 -17
  113. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +0 -3040
  114. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  115. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  116. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +0 -76
  117. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +0 -76
  118. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +0 -76
  119. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.nuspec +0 -23
  120. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.noarch.targets +0 -8
  121. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.nuspec +0 -30
  122. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.props +0 -21
  123. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.shared.targets +0 -44
  124. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.nuspec +0 -29
  125. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/ANTLR4.Runtime.cpp.static.targets +0 -44
  126. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/antlr4.jpg +0 -0
  127. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/nuget/pack.cmd +0 -93
  128. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +0 -10
  129. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +0 -167
  130. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +0 -10
  131. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +0 -121
  132. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +0 -23
  133. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +0 -30
  134. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +0 -180
  135. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +0 -79
  136. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +0 -61
  137. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +0 -59
  138. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +0 -25
  139. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +0 -36
  140. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +0 -414
  141. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +0 -200
  142. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +0 -11
  143. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +0 -37
  144. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +0 -193
  145. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +0 -158
  146. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +0 -39
  147. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +0 -74
  148. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +0 -78
  149. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +0 -79
  150. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +0 -15
  151. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +0 -35
  152. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +0 -336
  153. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +0 -466
  154. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +0 -84
  155. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +0 -80
  156. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +0 -64
  157. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +0 -99
  158. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +0 -52
  159. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +0 -32
  160. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashMap.h +0 -57
  161. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/FlatHashSet.h +0 -57
  162. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +0 -18
  163. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +0 -24
  164. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +0 -12
  165. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +0 -218
  166. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +0 -19
  167. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +0 -45
  168. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +0 -294
  169. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +0 -196
  170. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +0 -60
  171. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +0 -46
  172. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +0 -36
  173. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +0 -31
  174. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +0 -92
  175. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +0 -88
  176. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +0 -46
  177. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +0 -42
  178. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +0 -670
  179. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +0 -461
  180. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +0 -294
  181. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +0 -173
  182. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +0 -138
  183. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +0 -147
  184. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +0 -53
  185. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +0 -38
  186. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +0 -65
  187. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +0 -98
  188. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +0 -157
  189. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +0 -160
  190. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +0 -144
  191. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +0 -141
  192. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +0 -27
  193. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +0 -32
  194. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +0 -54
  195. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +0 -155
  196. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +0 -9
  197. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +0 -92
  198. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +0 -30
  199. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +0 -9
  200. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +0 -85
  201. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +0 -11
  202. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +0 -137
  203. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +0 -425
  204. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +0 -295
  205. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +0 -208
  206. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +0 -117
  207. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +0 -270
  208. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +0 -115
  209. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Version.h +0 -42
  210. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +0 -64
  211. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +0 -177
  212. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +0 -9
  213. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +0 -23
  214. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +0 -101
  215. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +0 -168
  216. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +0 -159
  217. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +0 -133
  218. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +0 -106
  219. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +0 -157
  220. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +0 -233
  221. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +0 -157
  222. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +0 -39
  223. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +0 -48
  224. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +0 -628
  225. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +0 -32
  226. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +0 -33
  227. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +0 -71
  228. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +0 -56
  229. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +0 -139
  230. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.cpp +0 -33
  231. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNStateType.h +0 -36
  232. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +0 -20
  233. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +0 -29
  234. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +0 -35
  235. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +0 -16
  236. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +0 -68
  237. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +0 -129
  238. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +0 -51
  239. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +0 -27
  240. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +0 -33
  241. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +0 -24
  242. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +0 -23
  243. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +0 -26
  244. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +0 -30
  245. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +0 -14
  246. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +0 -47
  247. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +0 -14
  248. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +0 -70
  249. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +0 -25
  250. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +0 -227
  251. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +0 -12
  252. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +0 -34
  253. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +0 -31
  254. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +0 -42
  255. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +0 -15
  256. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +0 -43
  257. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/HashUtils.h +0 -18
  258. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +0 -189
  259. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +0 -76
  260. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +0 -67
  261. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +0 -44
  262. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +0 -621
  263. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +0 -199
  264. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +0 -15
  265. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +0 -100
  266. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +0 -108
  267. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +0 -128
  268. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +0 -57
  269. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +0 -43
  270. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +0 -59
  271. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +0 -45
  272. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +0 -75
  273. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +0 -50
  274. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +0 -76
  275. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +0 -43
  276. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +0 -57
  277. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +0 -36
  278. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +0 -53
  279. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +0 -36
  280. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +0 -53
  281. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +0 -43
  282. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +0 -57
  283. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +0 -36
  284. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +0 -51
  285. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +0 -43
  286. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +0 -51
  287. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +0 -16
  288. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +0 -42
  289. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +0 -26
  290. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +0 -22
  291. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +0 -27
  292. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +0 -16
  293. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +0 -25
  294. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +0 -102
  295. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +0 -102
  296. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +0 -1413
  297. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +0 -911
  298. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulatorOptions.h +0 -50
  299. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +0 -29
  300. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +0 -25
  301. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +0 -23
  302. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +0 -35
  303. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +0 -17
  304. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +0 -62
  305. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +0 -24
  306. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +0 -50
  307. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +0 -601
  308. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +0 -225
  309. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.cpp +0 -56
  310. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextCache.h +0 -63
  311. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.cpp +0 -167
  312. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCache.h +0 -101
  313. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextMergeCacheOptions.h +0 -71
  314. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContextType.h +0 -21
  315. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +0 -202
  316. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +0 -436
  317. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +0 -179
  318. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +0 -60
  319. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +0 -26
  320. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +0 -31
  321. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +0 -26
  322. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +0 -27
  323. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +0 -33
  324. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +0 -42
  325. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +0 -418
  326. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +0 -237
  327. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContextType.h +0 -23
  328. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SerializedATNView.h +0 -101
  329. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +0 -28
  330. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +0 -38
  331. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +0 -79
  332. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +0 -43
  333. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +0 -24
  334. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +0 -37
  335. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +0 -19
  336. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +0 -25
  337. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +0 -24
  338. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +0 -36
  339. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +0 -65
  340. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.cpp +0 -27
  341. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TransitionType.h +0 -33
  342. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +0 -21
  343. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +0 -27
  344. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +0 -115
  345. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +0 -96
  346. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +0 -60
  347. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +0 -32
  348. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +0 -59
  349. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +0 -154
  350. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +0 -17
  351. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +0 -22
  352. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.cpp +0 -100
  353. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/internal/Synchronization.h +0 -154
  354. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +0 -124
  355. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +0 -33
  356. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +0 -61
  357. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +0 -84
  358. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +0 -508
  359. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +0 -190
  360. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +0 -120
  361. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +0 -102
  362. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +0 -4
  363. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +0 -21
  364. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +0 -8
  365. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +0 -16
  366. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +0 -43
  367. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +0 -149
  368. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +0 -76
  369. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +0 -207
  370. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +0 -65
  371. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Casts.h +0 -34
  372. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +0 -161
  373. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +0 -38
  374. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +0 -16
  375. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Unicode.h +0 -28
  376. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.cpp +0 -242
  377. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Utf8.h +0 -54
  378. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +0 -129
  379. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +0 -24
  380. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +0 -54
  381. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +0 -43
  382. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +0 -66
  383. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +0 -53
  384. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +0 -12
  385. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +0 -111
  386. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +0 -9
  387. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +0 -39
  388. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +0 -50
  389. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeType.h +0 -22
  390. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +0 -9
  391. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +0 -57
  392. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +0 -48
  393. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +0 -55
  394. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +0 -40
  395. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +0 -54
  396. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +0 -32
  397. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +0 -241
  398. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +0 -78
  399. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +0 -9
  400. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +0 -44
  401. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +0 -69
  402. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +0 -132
  403. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +0 -64
  404. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +0 -105
  405. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +0 -370
  406. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +0 -185
  407. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +0 -77
  408. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +0 -117
  409. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +0 -39
  410. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +0 -86
  411. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +0 -28
  412. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +0 -51
  413. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +0 -36
  414. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +0 -80
  415. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +0 -154
  416. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +0 -86
  417. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +0 -31
  418. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +0 -40
  419. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +0 -180
  420. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +0 -64
  421. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +0 -53
  422. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +0 -12
  423. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +0 -13
  424. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +0 -22
  425. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +0 -20
  426. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +0 -27
  427. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +0 -30
  428. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +0 -26
  429. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +0 -20
  430. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +0 -25
  431. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +0 -33
  432. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +0 -26
  433. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +0 -23
  434. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +0 -23
  435. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +0 -24
  436. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +0 -23
  437. data/ext/express_parser/antlr4-upstream/runtime/Cpp/runtime/tests/Utf8Test.cpp +0 -110
  438. data/ext/express_parser/antlrgen/Express.interp +0 -532
  439. data/ext/express_parser/antlrgen/Express.tokens +0 -190
  440. data/ext/express_parser/antlrgen/ExpressBaseListener.cpp +0 -7
  441. data/ext/express_parser/antlrgen/ExpressBaseListener.h +0 -623
  442. data/ext/express_parser/antlrgen/ExpressBaseVisitor.cpp +0 -7
  443. data/ext/express_parser/antlrgen/ExpressBaseVisitor.h +0 -816
  444. data/ext/express_parser/antlrgen/ExpressLexer.cpp +0 -685
  445. data/ext/express_parser/antlrgen/ExpressLexer.h +0 -78
  446. data/ext/express_parser/antlrgen/ExpressLexer.interp +0 -534
  447. data/ext/express_parser/antlrgen/ExpressLexer.tokens +0 -190
  448. data/ext/express_parser/antlrgen/ExpressListener.cpp +0 -7
  449. data/ext/express_parser/antlrgen/ExpressListener.h +0 -616
  450. data/ext/express_parser/antlrgen/ExpressParser.cpp +0 -17591
  451. data/ext/express_parser/antlrgen/ExpressParser.h +0 -3692
  452. data/ext/express_parser/antlrgen/ExpressVisitor.cpp +0 -7
  453. data/ext/express_parser/antlrgen/ExpressVisitor.h +0 -422
  454. data/ext/express_parser/express_parser.cpp +0 -19405
  455. data/ext/express_parser/extconf.rb +0 -63
  456. data/rakelib/antlr4-native.rake +0 -173
  457. data/rakelib/cross-ruby.rake +0 -403
  458. data/spec/acceptance/version_spec.rb +0 -30
  459. data/spec/expressir/express/cache_spec.rb +0 -89
  460. data/spec/expressir/express/formatter_spec.rb +0 -171
  461. data/spec/expressir/express/parser_spec.rb +0 -141
  462. data/spec/expressir/model/model_element_spec.rb +0 -343
  463. data/spec/spec_helper.rb +0 -24
  464. data/spec/support/console_helper.rb +0 -29
  465. data/spec/syntax/multiple.exp +0 -23
  466. data/spec/syntax/multiple.yaml +0 -198
  467. data/spec/syntax/multiple_formatted.exp +0 -71
  468. data/spec/syntax/multiple_hyperlink_formatted.exp +0 -71
  469. data/spec/syntax/multiple_schema_head_hyperlink_formatted.exp +0 -13
  470. data/spec/syntax/remark.exp +0 -193
  471. data/spec/syntax/remark.yaml +0 -471
  472. data/spec/syntax/remark_formatted.exp +0 -228
  473. data/spec/syntax/single.exp +0 -4
  474. data/spec/syntax/single.yaml +0 -18
  475. data/spec/syntax/single_formatted.exp +0 -10
  476. data/spec/syntax/single_formatted.yaml +0 -36
  477. data/spec/syntax/syntax.exp +0 -333
  478. data/spec/syntax/syntax.yaml +0 -3509
  479. data/spec/syntax/syntax_formatted.exp +0 -902
  480. data/spec/syntax/syntax_hyperlink_formatted.exp +0 -902
  481. data/spec/syntax/syntax_schema_head_formatted.exp +0 -18
  482. /data/exe/{format → expressir-format} +0 -0
@@ -1,418 +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 <functional>
7
- #include <unordered_set>
8
-
9
- #include "misc/MurmurHash.h"
10
- #include "support/Casts.h"
11
- #include "support/CPPUtils.h"
12
- #include "support/Arrays.h"
13
-
14
- #include "SemanticContext.h"
15
-
16
- using namespace antlr4;
17
- using namespace antlr4::atn;
18
- using namespace antlrcpp;
19
-
20
- namespace {
21
-
22
- struct SemanticContextHasher final {
23
- size_t operator()(const SemanticContext *semanticContext) const {
24
- return semanticContext->hashCode();
25
- }
26
- };
27
-
28
- struct SemanticContextComparer final {
29
- bool operator()(const SemanticContext *lhs, const SemanticContext *rhs) const {
30
- return *lhs == *rhs;
31
- }
32
- };
33
-
34
- template <typename Comparer>
35
- void insertSemanticContext(const Ref<const SemanticContext> &semanticContext,
36
- std::unordered_set<const SemanticContext*, SemanticContextHasher, SemanticContextComparer> &operandSet,
37
- std::vector<Ref<const SemanticContext>> &operandList,
38
- Ref<const SemanticContext::PrecedencePredicate> &precedencePredicate,
39
- Comparer comparer) {
40
- if (semanticContext != nullptr) {
41
- if (semanticContext->getContextType() == SemanticContextType::PRECEDENCE) {
42
- if (precedencePredicate == nullptr || comparer(downCast<const SemanticContext::PrecedencePredicate*>(semanticContext.get())->precedence, precedencePredicate->precedence)) {
43
- precedencePredicate = std::static_pointer_cast<const SemanticContext::PrecedencePredicate>(semanticContext);
44
- }
45
- } else {
46
- auto [existing, inserted] = operandSet.insert(semanticContext.get());
47
- if (inserted) {
48
- operandList.push_back(semanticContext);
49
- }
50
- }
51
- }
52
- }
53
-
54
- template <typename Comparer>
55
- void insertSemanticContext(Ref<const SemanticContext> &&semanticContext,
56
- std::unordered_set<const SemanticContext*, SemanticContextHasher, SemanticContextComparer> &operandSet,
57
- std::vector<Ref<const SemanticContext>> &operandList,
58
- Ref<const SemanticContext::PrecedencePredicate> &precedencePredicate,
59
- Comparer comparer) {
60
- if (semanticContext != nullptr) {
61
- if (semanticContext->getContextType() == SemanticContextType::PRECEDENCE) {
62
- if (precedencePredicate == nullptr || comparer(downCast<const SemanticContext::PrecedencePredicate*>(semanticContext.get())->precedence, precedencePredicate->precedence)) {
63
- precedencePredicate = std::static_pointer_cast<const SemanticContext::PrecedencePredicate>(std::move(semanticContext));
64
- }
65
- } else {
66
- auto [existing, inserted] = operandSet.insert(semanticContext.get());
67
- if (inserted) {
68
- operandList.push_back(std::move(semanticContext));
69
- }
70
- }
71
- }
72
- }
73
-
74
- size_t predictOperandCapacity(const Ref<const SemanticContext> &x) {
75
- switch (x->getContextType()) {
76
- case SemanticContextType::AND:
77
- return downCast<const SemanticContext::AND&>(*x).getOperands().size();
78
- case SemanticContextType::OR:
79
- return downCast<const SemanticContext::OR&>(*x).getOperands().size();
80
- default:
81
- return 1;
82
- }
83
- }
84
-
85
- size_t predictOperandCapacity(const Ref<const SemanticContext> &a, const Ref<const SemanticContext> &b) {
86
- return predictOperandCapacity(a) + predictOperandCapacity(b);
87
- }
88
-
89
- }
90
-
91
- //------------------ Predicate -----------------------------------------------------------------------------------------
92
-
93
- SemanticContext::Predicate::Predicate(size_t ruleIndex, size_t predIndex, bool isCtxDependent)
94
- : SemanticContext(SemanticContextType::PREDICATE), ruleIndex(ruleIndex), predIndex(predIndex), isCtxDependent(isCtxDependent) {}
95
-
96
- bool SemanticContext::Predicate::eval(Recognizer *parser, RuleContext *parserCallStack) const {
97
- RuleContext *localctx = nullptr;
98
- if (isCtxDependent) {
99
- localctx = parserCallStack;
100
- }
101
- return parser->sempred(localctx, ruleIndex, predIndex);
102
- }
103
-
104
- size_t SemanticContext::Predicate::hashCode() const {
105
- size_t hashCode = misc::MurmurHash::initialize();
106
- hashCode = misc::MurmurHash::update(hashCode, static_cast<size_t>(getContextType()));
107
- hashCode = misc::MurmurHash::update(hashCode, ruleIndex);
108
- hashCode = misc::MurmurHash::update(hashCode, predIndex);
109
- hashCode = misc::MurmurHash::update(hashCode, isCtxDependent ? 1 : 0);
110
- hashCode = misc::MurmurHash::finish(hashCode, 4);
111
- return hashCode;
112
- }
113
-
114
- bool SemanticContext::Predicate::equals(const SemanticContext &other) const {
115
- if (this == &other) {
116
- return true;
117
- }
118
- if (getContextType() != other.getContextType()) {
119
- return false;
120
- }
121
- const Predicate &p = downCast<const Predicate&>(other);
122
- return ruleIndex == p.ruleIndex && predIndex == p.predIndex && isCtxDependent == p.isCtxDependent;
123
- }
124
-
125
- std::string SemanticContext::Predicate::toString() const {
126
- return std::string("{") + std::to_string(ruleIndex) + std::string(":") + std::to_string(predIndex) + std::string("}?");
127
- }
128
-
129
- //------------------ PrecedencePredicate -------------------------------------------------------------------------------
130
-
131
- SemanticContext::PrecedencePredicate::PrecedencePredicate(int precedence) : SemanticContext(SemanticContextType::PRECEDENCE), precedence(precedence) {}
132
-
133
- bool SemanticContext::PrecedencePredicate::eval(Recognizer *parser, RuleContext *parserCallStack) const {
134
- return parser->precpred(parserCallStack, precedence);
135
- }
136
-
137
- Ref<const SemanticContext> SemanticContext::PrecedencePredicate::evalPrecedence(Recognizer *parser,
138
- RuleContext *parserCallStack) const {
139
- if (parser->precpred(parserCallStack, precedence)) {
140
- return SemanticContext::Empty::Instance;
141
- }
142
- return nullptr;
143
- }
144
-
145
- size_t SemanticContext::PrecedencePredicate::hashCode() const {
146
- size_t hashCode = misc::MurmurHash::initialize();
147
- hashCode = misc::MurmurHash::update(hashCode, static_cast<size_t>(getContextType()));
148
- hashCode = misc::MurmurHash::update(hashCode, static_cast<size_t>(precedence));
149
- return misc::MurmurHash::finish(hashCode, 2);
150
- }
151
-
152
- bool SemanticContext::PrecedencePredicate::equals(const SemanticContext &other) const {
153
- if (this == &other) {
154
- return true;
155
- }
156
- if (getContextType() != other.getContextType()) {
157
- return false;
158
- }
159
- const PrecedencePredicate &predicate = downCast<const PrecedencePredicate&>(other);
160
- return precedence == predicate.precedence;
161
- }
162
-
163
- std::string SemanticContext::PrecedencePredicate::toString() const {
164
- return "{" + std::to_string(precedence) + ">=prec}?";
165
- }
166
-
167
- //------------------ AND -----------------------------------------------------------------------------------------------
168
-
169
- SemanticContext::AND::AND(Ref<const SemanticContext> a, Ref<const SemanticContext> b) : Operator(SemanticContextType::AND) {
170
- std::unordered_set<const SemanticContext*, SemanticContextHasher, SemanticContextComparer> operands;
171
- Ref<const SemanticContext::PrecedencePredicate> precedencePredicate;
172
-
173
- _opnds.reserve(predictOperandCapacity(a, b) + 1);
174
-
175
- if (a->getContextType() == SemanticContextType::AND) {
176
- for (const auto &operand : downCast<const AND*>(a.get())->getOperands()) {
177
- insertSemanticContext(operand, operands, _opnds, precedencePredicate, std::less<int>{});
178
- }
179
- } else {
180
- insertSemanticContext(std::move(a), operands, _opnds, precedencePredicate, std::less<int>{});
181
- }
182
-
183
- if (b->getContextType() == SemanticContextType::AND) {
184
- for (const auto &operand : downCast<const AND*>(b.get())->getOperands()) {
185
- insertSemanticContext(operand, operands, _opnds, precedencePredicate, std::less<int>{});
186
- }
187
- } else {
188
- insertSemanticContext(std::move(b), operands, _opnds, precedencePredicate, std::less<int>{});
189
- }
190
-
191
- if (precedencePredicate != nullptr) {
192
- // interested in the transition with the lowest precedence
193
- auto [existing, inserted] = operands.insert(precedencePredicate.get());
194
- if (inserted) {
195
- _opnds.push_back(std::move(precedencePredicate));
196
- }
197
- }
198
- }
199
-
200
- const std::vector<Ref<const SemanticContext>>& SemanticContext::AND::getOperands() const {
201
- return _opnds;
202
- }
203
-
204
- bool SemanticContext::AND::equals(const SemanticContext &other) const {
205
- if (this == &other) {
206
- return true;
207
- }
208
- if (getContextType() != other.getContextType()) {
209
- return false;
210
- }
211
- const AND &context = downCast<const AND&>(other);
212
- return Arrays::equals(getOperands(), context.getOperands());
213
- }
214
-
215
- size_t SemanticContext::AND::hashCode() const {
216
- size_t hash = misc::MurmurHash::initialize();
217
- hash = misc::MurmurHash::update(hash, static_cast<size_t>(getContextType()));
218
- return misc::MurmurHash::hashCode(getOperands(), hash);
219
- }
220
-
221
- bool SemanticContext::AND::eval(Recognizer *parser, RuleContext *parserCallStack) const {
222
- for (const auto &opnd : getOperands()) {
223
- if (!opnd->eval(parser, parserCallStack)) {
224
- return false;
225
- }
226
- }
227
- return true;
228
- }
229
-
230
- Ref<const SemanticContext> SemanticContext::AND::evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const {
231
- bool differs = false;
232
- std::vector<Ref<const SemanticContext>> operands;
233
- for (const auto &context : getOperands()) {
234
- auto evaluated = context->evalPrecedence(parser, parserCallStack);
235
- differs |= (evaluated != context);
236
- if (evaluated == nullptr) {
237
- // The AND context is false if any element is false.
238
- return nullptr;
239
- }
240
- if (evaluated != Empty::Instance) {
241
- // Reduce the result by skipping true elements.
242
- operands.push_back(std::move(evaluated));
243
- }
244
- }
245
-
246
- if (!differs) {
247
- return shared_from_this();
248
- }
249
-
250
- if (operands.empty()) {
251
- // All elements were true, so the AND context is true.
252
- return Empty::Instance;
253
- }
254
-
255
- Ref<const SemanticContext> result = std::move(operands[0]);
256
- for (size_t i = 1; i < operands.size(); ++i) {
257
- result = SemanticContext::And(std::move(result), std::move(operands[i]));
258
- }
259
-
260
- return result;
261
- }
262
-
263
- std::string SemanticContext::AND::toString() const {
264
- std::string tmp;
265
- for (const auto &var : getOperands()) {
266
- tmp += var->toString() + " && ";
267
- }
268
- return tmp;
269
- }
270
-
271
- //------------------ OR ------------------------------------------------------------------------------------------------
272
-
273
- SemanticContext::OR::OR(Ref<const SemanticContext> a, Ref<const SemanticContext> b) : Operator(SemanticContextType::OR) {
274
- std::unordered_set<const SemanticContext*, SemanticContextHasher, SemanticContextComparer> operands;
275
- Ref<const SemanticContext::PrecedencePredicate> precedencePredicate;
276
-
277
- _opnds.reserve(predictOperandCapacity(a, b) + 1);
278
-
279
- if (a->getContextType() == SemanticContextType::OR) {
280
- for (const auto &operand : downCast<const OR*>(a.get())->getOperands()) {
281
- insertSemanticContext(operand, operands, _opnds, precedencePredicate, std::greater<int>{});
282
- }
283
- } else {
284
- insertSemanticContext(std::move(a), operands, _opnds, precedencePredicate, std::greater<int>{});
285
- }
286
-
287
- if (b->getContextType() == SemanticContextType::OR) {
288
- for (const auto &operand : downCast<const OR*>(b.get())->getOperands()) {
289
- insertSemanticContext(operand, operands, _opnds, precedencePredicate, std::greater<int>{});
290
- }
291
- } else {
292
- insertSemanticContext(std::move(b), operands, _opnds, precedencePredicate, std::greater<int>{});
293
- }
294
-
295
- if (precedencePredicate != nullptr) {
296
- // interested in the transition with the highest precedence
297
- auto [existing, inserted] = operands.insert(precedencePredicate.get());
298
- if (inserted) {
299
- _opnds.push_back(std::move(precedencePredicate));
300
- }
301
- }
302
- }
303
-
304
- const std::vector<Ref<const SemanticContext>>& SemanticContext::OR::getOperands() const {
305
- return _opnds;
306
- }
307
-
308
- bool SemanticContext::OR::equals(const SemanticContext &other) const {
309
- if (this == &other) {
310
- return true;
311
- }
312
- if (getContextType() != other.getContextType()) {
313
- return false;
314
- }
315
- const OR &context = downCast<const OR&>(other);
316
- return Arrays::equals(getOperands(), context.getOperands());
317
- }
318
-
319
- size_t SemanticContext::OR::hashCode() const {
320
- size_t hash = misc::MurmurHash::initialize();
321
- hash = misc::MurmurHash::update(hash, static_cast<size_t>(getContextType()));
322
- return misc::MurmurHash::hashCode(getOperands(), hash);
323
- }
324
-
325
- bool SemanticContext::OR::eval(Recognizer *parser, RuleContext *parserCallStack) const {
326
- for (const auto &opnd : getOperands()) {
327
- if (opnd->eval(parser, parserCallStack)) {
328
- return true;
329
- }
330
- }
331
- return false;
332
- }
333
-
334
- Ref<const SemanticContext> SemanticContext::OR::evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const {
335
- bool differs = false;
336
- std::vector<Ref<const SemanticContext>> operands;
337
- for (const auto &context : getOperands()) {
338
- auto evaluated = context->evalPrecedence(parser, parserCallStack);
339
- differs |= (evaluated != context);
340
- if (evaluated == Empty::Instance) {
341
- // The OR context is true if any element is true.
342
- return Empty::Instance;
343
- }
344
- if (evaluated != nullptr) {
345
- // Reduce the result by skipping false elements.
346
- operands.push_back(std::move(evaluated));
347
- }
348
- }
349
-
350
- if (!differs) {
351
- return shared_from_this();
352
- }
353
-
354
- if (operands.empty()) {
355
- // All elements were false, so the OR context is false.
356
- return nullptr;
357
- }
358
-
359
- Ref<const SemanticContext> result = std::move(operands[0]);
360
- for (size_t i = 1; i < operands.size(); ++i) {
361
- result = SemanticContext::Or(std::move(result), std::move(operands[i]));
362
- }
363
-
364
- return result;
365
- }
366
-
367
- std::string SemanticContext::OR::toString() const {
368
- std::string tmp;
369
- for(const auto &var : getOperands()) {
370
- tmp += var->toString() + " || ";
371
- }
372
- return tmp;
373
- }
374
-
375
- //------------------ SemanticContext -----------------------------------------------------------------------------------
376
-
377
- const Ref<const SemanticContext> SemanticContext::Empty::Instance = std::make_shared<Predicate>(INVALID_INDEX, INVALID_INDEX, false);
378
-
379
- Ref<const SemanticContext> SemanticContext::evalPrecedence(Recognizer * /*parser*/, RuleContext * /*parserCallStack*/) const {
380
- return shared_from_this();
381
- }
382
-
383
- Ref<const SemanticContext> SemanticContext::And(Ref<const SemanticContext> a, Ref<const SemanticContext> b) {
384
- if (!a || a == Empty::Instance) {
385
- return b;
386
- }
387
-
388
- if (!b || b == Empty::Instance) {
389
- return a;
390
- }
391
-
392
- Ref<AND> result = std::make_shared<AND>(std::move(a), std::move(b));
393
- if (result->getOperands().size() == 1) {
394
- return result->getOperands()[0];
395
- }
396
-
397
- return result;
398
- }
399
-
400
- Ref<const SemanticContext> SemanticContext::Or(Ref<const SemanticContext> a, Ref<const SemanticContext> b) {
401
- if (!a) {
402
- return b;
403
- }
404
- if (!b) {
405
- return a;
406
- }
407
-
408
- if (a == Empty::Instance || b == Empty::Instance) {
409
- return Empty::Instance;
410
- }
411
-
412
- Ref<OR> result = std::make_shared<OR>(std::move(a), std::move(b));
413
- if (result->getOperands().size() == 1) {
414
- return result->getOperands()[0];
415
- }
416
-
417
- return result;
418
- }
@@ -1,237 +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 "Recognizer.h"
9
- #include "support/CPPUtils.h"
10
- #include "atn/SemanticContextType.h"
11
-
12
- namespace antlr4 {
13
- namespace atn {
14
-
15
- /// A tree structure used to record the semantic context in which
16
- /// an ATN configuration is valid. It's either a single predicate,
17
- /// a conjunction "p1 && p2", or a sum of products "p1||p2".
18
- ///
19
- /// I have scoped the AND, OR, and Predicate subclasses of
20
- /// SemanticContext within the scope of this outer class.
21
- class ANTLR4CPP_PUBLIC SemanticContext : public std::enable_shared_from_this<SemanticContext> {
22
- public:
23
- virtual ~SemanticContext() = default;
24
-
25
- SemanticContextType getContextType() const { return _contextType; }
26
-
27
- /// <summary>
28
- /// For context independent predicates, we evaluate them without a local
29
- /// context (i.e., null context). That way, we can evaluate them without
30
- /// having to create proper rule-specific context during prediction (as
31
- /// opposed to the parser, which creates them naturally). In a practical
32
- /// sense, this avoids a cast exception from RuleContext to myruleContext.
33
- /// <p/>
34
- /// For context dependent predicates, we must pass in a local context so that
35
- /// references such as $arg evaluate properly as _localctx.arg. We only
36
- /// capture context dependent predicates in the context in which we begin
37
- /// prediction, so we passed in the outer context here in case of context
38
- /// dependent predicate evaluation.
39
- /// </summary>
40
- virtual bool eval(Recognizer *parser, RuleContext *parserCallStack) const = 0;
41
-
42
- /**
43
- * Evaluate the precedence predicates for the context and reduce the result.
44
- *
45
- * @param parser The parser instance.
46
- * @param parserCallStack
47
- * @return The simplified semantic context after precedence predicates are
48
- * evaluated, which will be one of the following values.
49
- * <ul>
50
- * <li>{@link #NONE}: if the predicate simplifies to {@code true} after
51
- * precedence predicates are evaluated.</li>
52
- * <li>{@code null}: if the predicate simplifies to {@code false} after
53
- * precedence predicates are evaluated.</li>
54
- * <li>{@code this}: if the semantic context is not changed as a result of
55
- * precedence predicate evaluation.</li>
56
- * <li>A non-{@code null} {@link SemanticContext}: the new simplified
57
- * semantic context after precedence predicates are evaluated.</li>
58
- * </ul>
59
- */
60
- virtual Ref<const SemanticContext> evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const;
61
-
62
- virtual size_t hashCode() const = 0;
63
-
64
- virtual bool equals(const SemanticContext &other) const = 0;
65
-
66
- virtual std::string toString() const = 0;
67
-
68
- static Ref<const SemanticContext> And(Ref<const SemanticContext> a, Ref<const SemanticContext> b);
69
-
70
- /// See also: ParserATNSimulator::getPredsForAmbigAlts.
71
- static Ref<const SemanticContext> Or(Ref<const SemanticContext> a, Ref<const SemanticContext> b);
72
-
73
- class Empty;
74
- class Predicate;
75
- class PrecedencePredicate;
76
- class Operator;
77
- class AND;
78
- class OR;
79
-
80
- protected:
81
- explicit SemanticContext(SemanticContextType contextType) : _contextType(contextType) {}
82
-
83
- private:
84
- const SemanticContextType _contextType;
85
- };
86
-
87
- inline bool operator==(const SemanticContext &lhs, const SemanticContext &rhs) {
88
- return lhs.equals(rhs);
89
- }
90
-
91
- inline bool operator!=(const SemanticContext &lhs, const SemanticContext &rhs) {
92
- return !operator==(lhs, rhs);
93
- }
94
-
95
- class ANTLR4CPP_PUBLIC SemanticContext::Empty : public SemanticContext{
96
- public:
97
- /**
98
- * The default {@link SemanticContext}, which is semantically equivalent to
99
- * a predicate of the form {@code {true}?}.
100
- */
101
- static const Ref<const SemanticContext> Instance;
102
- };
103
-
104
- class ANTLR4CPP_PUBLIC SemanticContext::Predicate final : public SemanticContext {
105
- public:
106
- static bool is(const SemanticContext &semanticContext) { return semanticContext.getContextType() == SemanticContextType::PREDICATE; }
107
-
108
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
109
-
110
- const size_t ruleIndex;
111
- const size_t predIndex;
112
- const bool isCtxDependent; // e.g., $i ref in pred
113
-
114
- Predicate(size_t ruleIndex, size_t predIndex, bool isCtxDependent);
115
-
116
- bool eval(Recognizer *parser, RuleContext *parserCallStack) const override;
117
- size_t hashCode() const override;
118
- bool equals(const SemanticContext &other) const override;
119
- std::string toString() const override;
120
- };
121
-
122
- class ANTLR4CPP_PUBLIC SemanticContext::PrecedencePredicate final : public SemanticContext {
123
- public:
124
- static bool is(const SemanticContext &semanticContext) { return semanticContext.getContextType() == SemanticContextType::PRECEDENCE; }
125
-
126
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
127
-
128
- const int precedence;
129
-
130
- explicit PrecedencePredicate(int precedence);
131
-
132
- bool eval(Recognizer *parser, RuleContext *parserCallStack) const override;
133
- Ref<const SemanticContext> evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const override;
134
- size_t hashCode() const override;
135
- bool equals(const SemanticContext &other) const override;
136
- std::string toString() const override;
137
- };
138
-
139
- /**
140
- * This is the base class for semantic context "operators", which operate on
141
- * a collection of semantic context "operands".
142
- *
143
- * @since 4.3
144
- */
145
- class ANTLR4CPP_PUBLIC SemanticContext::Operator : public SemanticContext {
146
- public:
147
- static bool is(const SemanticContext &semanticContext) {
148
- const auto contextType = semanticContext.getContextType();
149
- return contextType == SemanticContextType::AND || contextType == SemanticContextType::OR;
150
- }
151
-
152
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
153
-
154
- /**
155
- * Gets the operands for the semantic context operator.
156
- *
157
- * @return a collection of {@link SemanticContext} operands for the
158
- * operator.
159
- *
160
- * @since 4.3
161
- */
162
-
163
- virtual const std::vector<Ref<const SemanticContext>>& getOperands() const = 0;
164
-
165
- protected:
166
- using SemanticContext::SemanticContext;
167
- };
168
-
169
- /**
170
- * A semantic context which is true whenever none of the contained contexts
171
- * is false.
172
- */
173
- class ANTLR4CPP_PUBLIC SemanticContext::AND final : public SemanticContext::Operator {
174
- public:
175
- static bool is(const SemanticContext &semanticContext) { return semanticContext.getContextType() == SemanticContextType::AND; }
176
-
177
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
178
-
179
- AND(Ref<const SemanticContext> a, Ref<const SemanticContext> b) ;
180
-
181
- const std::vector<Ref<const SemanticContext>>& getOperands() const override;
182
-
183
- /**
184
- * The evaluation of predicates by this context is short-circuiting, but
185
- * unordered.</p>
186
- */
187
- bool eval(Recognizer *parser, RuleContext *parserCallStack) const override;
188
- Ref<const SemanticContext> evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const override;
189
- size_t hashCode() const override;
190
- bool equals(const SemanticContext &other) const override;
191
- std::string toString() const override;
192
-
193
- private:
194
- std::vector<Ref<const SemanticContext>> _opnds;
195
- };
196
-
197
- /**
198
- * A semantic context which is true whenever at least one of the contained
199
- * contexts is true.
200
- */
201
- class ANTLR4CPP_PUBLIC SemanticContext::OR final : public SemanticContext::Operator {
202
- public:
203
- static bool is(const SemanticContext &semanticContext) { return semanticContext.getContextType() == SemanticContextType::OR; }
204
-
205
- static bool is(const SemanticContext *semanticContext) { return semanticContext != nullptr && is(*semanticContext); }
206
-
207
- OR(Ref<const SemanticContext> a, Ref<const SemanticContext> b);
208
-
209
- const std::vector<Ref<const SemanticContext>>& getOperands() const override;
210
-
211
- /**
212
- * The evaluation of predicates by this context is short-circuiting, but
213
- * unordered.
214
- */
215
- bool eval(Recognizer *parser, RuleContext *parserCallStack) const override;
216
- Ref<const SemanticContext> evalPrecedence(Recognizer *parser, RuleContext *parserCallStack) const override;
217
- size_t hashCode() const override;
218
- bool equals(const SemanticContext &other) const override;
219
- std::string toString() const override;
220
-
221
- private:
222
- std::vector<Ref<const SemanticContext>> _opnds;
223
- };
224
-
225
- } // namespace atn
226
- } // namespace antlr4
227
-
228
- namespace std {
229
-
230
- template <>
231
- struct hash<::antlr4::atn::SemanticContext> {
232
- size_t operator()(const ::antlr4::atn::SemanticContext &semanticContext) const {
233
- return semanticContext.hashCode();
234
- }
235
- };
236
-
237
- } // namespace std
@@ -1,23 +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 <cstddef>
9
-
10
- #include "antlr4-common.h"
11
-
12
- namespace antlr4 {
13
- namespace atn {
14
-
15
- enum class SemanticContextType : size_t {
16
- PREDICATE = 1,
17
- PRECEDENCE = 2,
18
- AND = 3,
19
- OR = 4,
20
- };
21
-
22
- } // namespace atn
23
- } // namespace antlr4