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,508 +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 "misc/MurmurHash.h"
7
- #include "Lexer.h"
8
- #include "Exceptions.h"
9
- #include "Vocabulary.h"
10
-
11
- #include "misc/IntervalSet.h"
12
-
13
- using namespace antlr4;
14
- using namespace antlr4::misc;
15
-
16
- IntervalSet const IntervalSet::COMPLETE_CHAR_SET =
17
- IntervalSet::of(Lexer::MIN_CHAR_VALUE, Lexer::MAX_CHAR_VALUE);
18
-
19
- IntervalSet const IntervalSet::EMPTY_SET;
20
-
21
- IntervalSet::IntervalSet() : _intervals() {
22
- }
23
-
24
- IntervalSet::IntervalSet(const IntervalSet &set) : IntervalSet() {
25
- _intervals = set._intervals;
26
- }
27
-
28
- IntervalSet::IntervalSet(IntervalSet&& set) : IntervalSet(std::move(set._intervals)) {
29
- }
30
-
31
- IntervalSet::IntervalSet(std::vector<Interval>&& intervals) : _intervals(std::move(intervals)) {
32
- }
33
-
34
- IntervalSet& IntervalSet::operator=(const IntervalSet& other) {
35
- _intervals = other._intervals;
36
- return *this;
37
- }
38
-
39
- IntervalSet& IntervalSet::operator=(IntervalSet&& other) {
40
- _intervals = std::move(other._intervals);
41
- return *this;
42
- }
43
-
44
- IntervalSet IntervalSet::of(ssize_t a) {
45
- return IntervalSet({ Interval(a, a) });
46
- }
47
-
48
- IntervalSet IntervalSet::of(ssize_t a, ssize_t b) {
49
- return IntervalSet({ Interval(a, b) });
50
- }
51
-
52
- void IntervalSet::clear() {
53
- _intervals.clear();
54
- }
55
-
56
- void IntervalSet::add(ssize_t el) {
57
- add(el, el);
58
- }
59
-
60
- void IntervalSet::add(ssize_t a, ssize_t b) {
61
- add(Interval(a, b));
62
- }
63
-
64
- void IntervalSet::add(const Interval &addition) {
65
- if (addition.b < addition.a) {
66
- return;
67
- }
68
-
69
- // find position in list
70
- for (auto iterator = _intervals.begin(); iterator != _intervals.end(); ++iterator) {
71
- Interval r = *iterator;
72
- if (addition == r) {
73
- return;
74
- }
75
-
76
- if (addition.adjacent(r) || !addition.disjoint(r)) {
77
- // next to each other, make a single larger interval
78
- Interval bigger = addition.Union(r);
79
- *iterator = bigger;
80
-
81
- // make sure we didn't just create an interval that
82
- // should be merged with next interval in list
83
- while (iterator + 1 != _intervals.end()) {
84
- Interval next = *++iterator;
85
- if (!bigger.adjacent(next) && bigger.disjoint(next)) {
86
- break;
87
- }
88
-
89
- // if we bump up against or overlap next, merge
90
- iterator = _intervals.erase(iterator);// remove this one
91
- --iterator; // move backwards to what we just set
92
- *iterator = bigger.Union(next); // set to 3 merged ones
93
- // ml: no need to advance iterator, we do that in the next round anyway. ++iterator; // first call to next after previous duplicates the result
94
- }
95
- return;
96
- }
97
-
98
- if (addition.startsBeforeDisjoint(r)) {
99
- // insert before r
100
- //--iterator;
101
- _intervals.insert(iterator, addition);
102
- return;
103
- }
104
-
105
- // if disjoint and after r, a future iteration will handle it
106
- }
107
-
108
- // ok, must be after last interval (and disjoint from last interval)
109
- // just add it
110
- _intervals.push_back(addition);
111
- }
112
-
113
- IntervalSet IntervalSet::Or(const std::vector<IntervalSet> &sets) {
114
- IntervalSet result;
115
- for (const auto &s : sets) {
116
- result.addAll(s);
117
- }
118
- return result;
119
- }
120
-
121
- IntervalSet& IntervalSet::addAll(const IntervalSet &set) {
122
- // walk set and add each interval
123
- for (auto const& interval : set._intervals) {
124
- add(interval);
125
- }
126
- return *this;
127
- }
128
-
129
- IntervalSet IntervalSet::complement(ssize_t minElement, ssize_t maxElement) const {
130
- return complement(IntervalSet::of(minElement, maxElement));
131
- }
132
-
133
- IntervalSet IntervalSet::complement(const IntervalSet &vocabulary) const {
134
- return vocabulary.subtract(*this);
135
- }
136
-
137
- IntervalSet IntervalSet::subtract(const IntervalSet &other) const {
138
- return subtract(*this, other);
139
- }
140
-
141
- IntervalSet IntervalSet::subtract(const IntervalSet &left, const IntervalSet &right) {
142
- if (left.isEmpty()) {
143
- return IntervalSet();
144
- }
145
-
146
- if (right.isEmpty()) {
147
- // right set has no elements; just return the copy of the current set
148
- return left;
149
- }
150
-
151
- IntervalSet result(left);
152
- size_t resultI = 0;
153
- size_t rightI = 0;
154
- while (resultI < result._intervals.size() && rightI < right._intervals.size()) {
155
- Interval &resultInterval = result._intervals[resultI];
156
- const Interval &rightInterval = right._intervals[rightI];
157
-
158
- // operation: (resultInterval - rightInterval) and update indexes
159
-
160
- if (rightInterval.b < resultInterval.a) {
161
- rightI++;
162
- continue;
163
- }
164
-
165
- if (rightInterval.a > resultInterval.b) {
166
- resultI++;
167
- continue;
168
- }
169
-
170
- Interval beforeCurrent;
171
- Interval afterCurrent;
172
- if (rightInterval.a > resultInterval.a) {
173
- beforeCurrent = Interval(resultInterval.a, rightInterval.a - 1);
174
- }
175
-
176
- if (rightInterval.b < resultInterval.b) {
177
- afterCurrent = Interval(rightInterval.b + 1, resultInterval.b);
178
- }
179
-
180
- if (beforeCurrent.a > -1) { // -1 is the default value
181
- if (afterCurrent.a > -1) {
182
- // split the current interval into two
183
- result._intervals[resultI] = beforeCurrent;
184
- result._intervals.insert(result._intervals.begin() + resultI + 1, afterCurrent);
185
- resultI++;
186
- rightI++;
187
- } else {
188
- // replace the current interval
189
- result._intervals[resultI] = beforeCurrent;
190
- resultI++;
191
- }
192
- } else {
193
- if (afterCurrent.a > -1) {
194
- // replace the current interval
195
- result._intervals[resultI] = afterCurrent;
196
- rightI++;
197
- } else {
198
- // remove the current interval (thus no need to increment resultI)
199
- result._intervals.erase(result._intervals.begin() + resultI);
200
- }
201
- }
202
- }
203
-
204
- // If rightI reached right.intervals.size(), no more intervals to subtract from result.
205
- // If resultI reached result.intervals.size(), we would be subtracting from an empty set.
206
- // Either way, we are done.
207
- return result;
208
- }
209
-
210
- IntervalSet IntervalSet::Or(const IntervalSet &a) const {
211
- IntervalSet result;
212
- result.addAll(*this);
213
- result.addAll(a);
214
- return result;
215
- }
216
-
217
- IntervalSet IntervalSet::And(const IntervalSet &other) const {
218
- IntervalSet intersection;
219
- size_t i = 0;
220
- size_t j = 0;
221
-
222
- // iterate down both interval lists looking for nondisjoint intervals
223
- while (i < _intervals.size() && j < other._intervals.size()) {
224
- Interval mine = _intervals[i];
225
- Interval theirs = other._intervals[j];
226
-
227
- if (mine.startsBeforeDisjoint(theirs)) {
228
- // move this iterator looking for interval that might overlap
229
- i++;
230
- } else if (theirs.startsBeforeDisjoint(mine)) {
231
- // move other iterator looking for interval that might overlap
232
- j++;
233
- } else if (mine.properlyContains(theirs)) {
234
- // overlap, add intersection, get next theirs
235
- intersection.add(mine.intersection(theirs));
236
- j++;
237
- } else if (theirs.properlyContains(mine)) {
238
- // overlap, add intersection, get next mine
239
- intersection.add(mine.intersection(theirs));
240
- i++;
241
- } else if (!mine.disjoint(theirs)) {
242
- // overlap, add intersection
243
- intersection.add(mine.intersection(theirs));
244
-
245
- // Move the iterator of lower range [a..b], but not
246
- // the upper range as it may contain elements that will collide
247
- // with the next iterator. So, if mine=[0..115] and
248
- // theirs=[115..200], then intersection is 115 and move mine
249
- // but not theirs as theirs may collide with the next range
250
- // in thisIter.
251
- // move both iterators to next ranges
252
- if (mine.startsAfterNonDisjoint(theirs)) {
253
- j++;
254
- } else if (theirs.startsAfterNonDisjoint(mine)) {
255
- i++;
256
- }
257
- }
258
- }
259
-
260
- return intersection;
261
- }
262
-
263
- bool IntervalSet::contains(size_t el) const {
264
- return contains(symbolToNumeric(el));
265
- }
266
-
267
- bool IntervalSet::contains(ssize_t el) const {
268
- if (_intervals.empty() || el < _intervals.front().a || el > _intervals.back().b) {
269
- return false;
270
- }
271
-
272
- return std::binary_search(_intervals.begin(), _intervals.end(), Interval(el, el), [](const Interval &lhs, const Interval &rhs) {
273
- return lhs.b < rhs.a;
274
- });
275
- }
276
-
277
- bool IntervalSet::isEmpty() const {
278
- return _intervals.empty();
279
- }
280
-
281
- ssize_t IntervalSet::getSingleElement() const {
282
- if (_intervals.size() == 1) {
283
- if (_intervals[0].a == _intervals[0].b) {
284
- return _intervals[0].a;
285
- }
286
- }
287
-
288
- return Token::INVALID_TYPE; // XXX: this value is 0, but 0 is a valid interval range, how can that work?
289
- }
290
-
291
- ssize_t IntervalSet::getMaxElement() const {
292
- if (_intervals.empty()) {
293
- return Token::INVALID_TYPE;
294
- }
295
-
296
- return _intervals.back().b;
297
- }
298
-
299
- ssize_t IntervalSet::getMinElement() const {
300
- if (_intervals.empty()) {
301
- return Token::INVALID_TYPE;
302
- }
303
-
304
- return _intervals.front().a;
305
- }
306
-
307
- std::vector<Interval> const& IntervalSet::getIntervals() const {
308
- return _intervals;
309
- }
310
-
311
- size_t IntervalSet::hashCode() const {
312
- size_t hash = MurmurHash::initialize();
313
- for (const auto &interval : _intervals) {
314
- hash = MurmurHash::update(hash, interval.a);
315
- hash = MurmurHash::update(hash, interval.b);
316
- }
317
-
318
- return MurmurHash::finish(hash, _intervals.size() * 2);
319
- }
320
-
321
- bool IntervalSet::operator == (const IntervalSet &other) const {
322
- if (_intervals.empty() && other._intervals.empty())
323
- return true;
324
-
325
- if (_intervals.size() != other._intervals.size())
326
- return false;
327
-
328
- return std::equal(_intervals.begin(), _intervals.end(), other._intervals.begin());
329
- }
330
-
331
- std::string IntervalSet::toString() const {
332
- return toString(false);
333
- }
334
-
335
- std::string IntervalSet::toString(bool elemAreChar) const {
336
- if (_intervals.empty()) {
337
- return "{}";
338
- }
339
-
340
- std::stringstream ss;
341
- size_t effectiveSize = size();
342
- if (effectiveSize > 1) {
343
- ss << "{";
344
- }
345
-
346
- bool firstEntry = true;
347
- for (const auto &interval : _intervals) {
348
- if (!firstEntry)
349
- ss << ", ";
350
- firstEntry = false;
351
-
352
- ssize_t a = interval.a;
353
- ssize_t b = interval.b;
354
- if (a == b) {
355
- if (a == -1) {
356
- ss << "<EOF>";
357
- } else if (elemAreChar) {
358
- ss << "'" << static_cast<char>(a) << "'";
359
- } else {
360
- ss << a;
361
- }
362
- } else {
363
- if (elemAreChar) {
364
- ss << "'" << static_cast<char>(a) << "'..'" << static_cast<char>(b) << "'";
365
- } else {
366
- ss << a << ".." << b;
367
- }
368
- }
369
- }
370
- if (effectiveSize > 1) {
371
- ss << "}";
372
- }
373
-
374
- return ss.str();
375
- }
376
-
377
- std::string IntervalSet::toString(const dfa::Vocabulary &vocabulary) const {
378
- if (_intervals.empty()) {
379
- return "{}";
380
- }
381
-
382
- std::stringstream ss;
383
- size_t effectiveSize = size();
384
- if (effectiveSize > 1) {
385
- ss << "{";
386
- }
387
-
388
- bool firstEntry = true;
389
- for (const auto &interval : _intervals) {
390
- if (!firstEntry)
391
- ss << ", ";
392
- firstEntry = false;
393
-
394
- ssize_t a = interval.a;
395
- ssize_t b = interval.b;
396
- if (a == b) {
397
- ss << elementName(vocabulary, a);
398
- } else {
399
- for (ssize_t i = a; i <= b; i++) {
400
- if (i > a) {
401
- ss << ", ";
402
- }
403
- ss << elementName(vocabulary, i);
404
- }
405
- }
406
- }
407
- if (effectiveSize > 1) {
408
- ss << "}";
409
- }
410
-
411
- return ss.str();
412
- }
413
-
414
- std::string IntervalSet::elementName(const dfa::Vocabulary &vocabulary, ssize_t a) const {
415
- if (a == -1) {
416
- return "<EOF>";
417
- } else if (a == -2) {
418
- return "<EPSILON>";
419
- } else {
420
- return vocabulary.getDisplayName(a);
421
- }
422
- }
423
-
424
- size_t IntervalSet::size() const {
425
- size_t result = 0;
426
- for (const auto &interval : _intervals) {
427
- result += size_t(interval.b - interval.a + 1);
428
- }
429
- return result;
430
- }
431
-
432
- std::vector<ssize_t> IntervalSet::toList() const {
433
- std::vector<ssize_t> result;
434
- for (const auto &interval : _intervals) {
435
- ssize_t a = interval.a;
436
- ssize_t b = interval.b;
437
- for (ssize_t v = a; v <= b; v++) {
438
- result.push_back(v);
439
- }
440
- }
441
- return result;
442
- }
443
-
444
- std::set<ssize_t> IntervalSet::toSet() const {
445
- std::set<ssize_t> result;
446
- for (const auto &interval : _intervals) {
447
- ssize_t a = interval.a;
448
- ssize_t b = interval.b;
449
- for (ssize_t v = a; v <= b; v++) {
450
- result.insert(v);
451
- }
452
- }
453
- return result;
454
- }
455
-
456
- ssize_t IntervalSet::get(size_t i) const {
457
- size_t index = 0;
458
- for (const auto &interval : _intervals) {
459
- ssize_t a = interval.a;
460
- ssize_t b = interval.b;
461
- for (ssize_t v = a; v <= b; v++) {
462
- if (index == i) {
463
- return v;
464
- }
465
- index++;
466
- }
467
- }
468
- return -1;
469
- }
470
-
471
- void IntervalSet::remove(size_t el) {
472
- remove(symbolToNumeric(el));
473
- }
474
-
475
- void IntervalSet::remove(ssize_t el) {
476
- for (size_t i = 0; i < _intervals.size(); ++i) {
477
- Interval &interval = _intervals[i];
478
- ssize_t a = interval.a;
479
- ssize_t b = interval.b;
480
- if (el < a) {
481
- break; // list is sorted and el is before this interval; not here
482
- }
483
-
484
- // if whole interval x..x, rm
485
- if (el == a && el == b) {
486
- _intervals.erase(_intervals.begin() + (long)i);
487
- break;
488
- }
489
- // if on left edge x..b, adjust left
490
- if (el == a) {
491
- interval.a++;
492
- break;
493
- }
494
- // if on right edge a..x, adjust right
495
- if (el == b) {
496
- interval.b--;
497
- break;
498
- }
499
- // if in middle a..x..b, split interval
500
- if (el > a && el < b) { // found in this interval
501
- ssize_t oldb = interval.b;
502
- interval.b = el - 1; // [a..x-1]
503
- add(el + 1, oldb); // add [x+1..b]
504
-
505
- break; // ml: not in the Java code but I believe we also should stop searching here, as we found x.
506
- }
507
- }
508
- }
@@ -1,190 +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 "misc/Interval.h"
9
- #include "Exceptions.h"
10
-
11
- namespace antlr4 {
12
- namespace misc {
13
-
14
- /**
15
- * This class implements the {@link IntSet} backed by a sorted array of
16
- * non-overlapping intervals. It is particularly efficient for representing
17
- * large collections of numbers, where the majority of elements appear as part
18
- * of a sequential range of numbers that are all part of the set. For example,
19
- * the set { 1, 2, 3, 4, 7, 8 } may be represented as { [1, 4], [7, 8] }.
20
- *
21
- * <p>
22
- * This class is able to represent sets containing any combination of values in
23
- * the range {@link Integer#MIN_VALUE} to {@link Integer#MAX_VALUE}
24
- * (inclusive).</p>
25
- */
26
- class ANTLR4CPP_PUBLIC IntervalSet final {
27
- public:
28
- static IntervalSet const COMPLETE_CHAR_SET;
29
- static IntervalSet const EMPTY_SET;
30
-
31
- private:
32
- /// The list of sorted, disjoint intervals.
33
- std::vector<Interval> _intervals;
34
-
35
- explicit IntervalSet(std::vector<Interval>&& intervals);
36
-
37
- public:
38
- IntervalSet();
39
- IntervalSet(IntervalSet const& set);
40
- IntervalSet(IntervalSet&& set);
41
-
42
- template<typename T1, typename... T_NEXT>
43
- IntervalSet(int, T1 t1, T_NEXT&&... next) : IntervalSet() {
44
- // The first int argument is an ignored count for compatibility
45
- // with the previous varargs based interface.
46
- addItems(t1, std::forward<T_NEXT>(next)...);
47
- }
48
-
49
- IntervalSet& operator=(IntervalSet const& set);
50
- IntervalSet& operator=(IntervalSet&& set);
51
-
52
- /// Create a set with a single element, el.
53
- static IntervalSet of(ssize_t a);
54
-
55
- /// Create a set with all ints within range [a..b] (inclusive)
56
- static IntervalSet of(ssize_t a, ssize_t b);
57
-
58
- void clear();
59
-
60
- /// Add a single element to the set. An isolated element is stored
61
- /// as a range el..el.
62
- void add(ssize_t el);
63
-
64
- /// Add interval; i.e., add all integers from a to b to set.
65
- /// If b<a, do nothing.
66
- /// Keep list in sorted order (by left range value).
67
- /// If overlap, combine ranges. For example,
68
- /// If this is {1..5, 10..20}, adding 6..7 yields
69
- /// {1..5, 6..7, 10..20}. Adding 4..8 yields {1..8, 10..20}.
70
- void add(ssize_t a, ssize_t b);
71
-
72
- /// combine all sets in the array returned the or'd value
73
- static IntervalSet Or(const std::vector<IntervalSet> &sets);
74
-
75
- // Copy on write so we can cache a..a intervals and sets of that.
76
- void add(const Interval &addition);
77
- IntervalSet& addAll(const IntervalSet &set);
78
-
79
- template<typename T1, typename... T_NEXT>
80
- void addItems(T1 t1, T_NEXT&&... next) {
81
- add(t1);
82
- addItems(std::forward<T_NEXT>(next)...);
83
- }
84
-
85
- IntervalSet complement(ssize_t minElement, ssize_t maxElement) const;
86
-
87
- /// Given the set of possible values (rather than, say UNICODE or MAXINT),
88
- /// return a new set containing all elements in vocabulary, but not in
89
- /// this. The computation is (vocabulary - this).
90
- ///
91
- /// 'this' is assumed to be either a subset or equal to vocabulary.
92
- IntervalSet complement(const IntervalSet &vocabulary) const;
93
-
94
- /// Compute this-other via this&~other.
95
- /// Return a new set containing all elements in this but not in other.
96
- /// other is assumed to be a subset of this;
97
- /// anything that is in other but not in this will be ignored.
98
- IntervalSet subtract(const IntervalSet &other) const;
99
-
100
- /**
101
- * Compute the set difference between two interval sets. The specific
102
- * operation is {@code left - right}. If either of the input sets is
103
- * {@code null}, it is treated as though it was an empty set.
104
- */
105
- static IntervalSet subtract(const IntervalSet &left, const IntervalSet &right);
106
-
107
- IntervalSet Or(const IntervalSet &a) const;
108
-
109
- /// Return a new set with the intersection of this set with other. Because
110
- /// the intervals are sorted, we can use an iterator for each list and
111
- /// just walk them together. This is roughly O(min(n,m)) for interval
112
- /// list lengths n and m.
113
- IntervalSet And(const IntervalSet &other) const;
114
-
115
- /// Is el in any range of this set?
116
- bool contains(size_t el) const; // For mapping of e.g. Token::EOF to -1 etc.
117
- bool contains(ssize_t el) const;
118
-
119
- /// return true if this set has no members
120
- bool isEmpty() const;
121
-
122
- /// If this set is a single integer, return it otherwise Token.INVALID_TYPE.
123
- ssize_t getSingleElement() const;
124
-
125
- /**
126
- * Returns the maximum value contained in the set.
127
- *
128
- * @return the maximum value contained in the set. If the set is empty, this
129
- * method returns {@link Token#INVALID_TYPE}.
130
- */
131
- ssize_t getMaxElement() const;
132
-
133
- /**
134
- * Returns the minimum value contained in the set.
135
- *
136
- * @return the minimum value contained in the set. If the set is empty, this
137
- * method returns {@link Token#INVALID_TYPE}.
138
- */
139
- ssize_t getMinElement() const;
140
-
141
- /// <summary>
142
- /// Return a list of Interval objects. </summary>
143
- std::vector<Interval> const& getIntervals() const;
144
-
145
- size_t hashCode() const;
146
-
147
- /// Are two IntervalSets equal? Because all intervals are sorted
148
- /// and disjoint, equals is a simple linear walk over both lists
149
- /// to make sure they are the same.
150
- bool operator == (const IntervalSet &other) const;
151
- std::string toString() const;
152
- std::string toString(bool elemAreChar) const;
153
-
154
- std::string toString(const dfa::Vocabulary &vocabulary) const;
155
-
156
- protected:
157
- std::string elementName(const dfa::Vocabulary &vocabulary, ssize_t a) const;
158
-
159
- public:
160
- size_t size() const;
161
- std::vector<ssize_t> toList() const;
162
- std::set<ssize_t> toSet() const;
163
-
164
- /// Get the ith element of ordered set. Used only by RandomPhrase so
165
- /// don't bother to implement if you're not doing that for a new
166
- /// ANTLR code gen target.
167
- ssize_t get(size_t i) const;
168
- void remove(size_t el); // For mapping of e.g. Token::EOF to -1 etc.
169
- void remove(ssize_t el);
170
-
171
- private:
172
- void addItems() { /* No-op */ }
173
- };
174
-
175
- } // namespace atn
176
- } // namespace antlr4
177
-
178
- // Hash function for IntervalSet.
179
-
180
- namespace std {
181
- using antlr4::misc::IntervalSet;
182
-
183
- template <> struct hash<IntervalSet>
184
- {
185
- size_t operator() (const IntervalSet &x) const
186
- {
187
- return x.hashCode();
188
- }
189
- };
190
- }