expressir 1.2.11-aarch64-linux → 2.4.29-aarch64-linux

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 (467) hide show
  1. checksums.yaml +4 -4
  2. data/.cargo/config.toml +3 -0
  3. data/.github/scripts/test_installed_gem.rb +34 -0
  4. data/.github/workflows/codeql.yml +35 -0
  5. data/.github/workflows/docs.yml +99 -0
  6. data/.github/workflows/links.yml +100 -0
  7. data/.github/workflows/native-gems.yml +201 -0
  8. data/.github/workflows/rake.yml +10 -296
  9. data/.github/workflows/release.yml +26 -114
  10. data/.github/workflows/rust-ext.yml +41 -0
  11. data/.github/workflows/stress.yml +36 -0
  12. data/.github/workflows/validate_schemas.yml +48 -0
  13. data/.github/workflows/verify_remarks.yml +33 -0
  14. data/.gitignore +33 -1
  15. data/.rubocop.yml +11 -11
  16. data/.rubocop_todo.yml +297 -0
  17. data/CHANGELOG.md +159 -0
  18. data/Gemfile +15 -1
  19. data/README.adoc +2675 -47
  20. data/Rakefile +34 -10
  21. data/TODO.bugs/01-stale-transformer-autoload.md +39 -0
  22. data/TODO.bugs/02-parser-class-instance-vars.md +36 -0
  23. data/TODO.bugs/03-builder-mutable-state.md +43 -0
  24. data/TODO.bugs/04-formatter-public-send-dispatch.md +53 -0
  25. data/TODO.bugs/05-anonymous-formatter-subclass.md +45 -0
  26. data/TODO.bugs/06-collection-registry-single-source.md +53 -0
  27. data/TODO.bugs/07-require-relative-cleanup.md +42 -0
  28. data/TODO.bugs/08-require-expressir-in-commands.md +34 -0
  29. data/TODO.bugs/09-parser-split.md +53 -0
  30. data/TODO.bugs/10-to-s-override.md +42 -0
  31. data/TODO.bugs/11-parser-class-variables.md +39 -0
  32. data/TODO.bugs/12-marker-modules-vs-registry.md +64 -0
  33. data/TODO.bugs/13-string-literal-scanner-limitation.md +52 -0
  34. data/TODO.bugs/14-model-formatting-leak.md +30 -0
  35. data/TODO.bugs/15-expression-children-macro.md +27 -0
  36. data/TODO.bugs/16-pretty-formatter-duplication.md +28 -0
  37. data/TODO.bugs/17-snake-case-cache-mutable-constant.md +28 -0
  38. data/TODO.bugs/18-const-get-private-constants.md +30 -0
  39. data/TODO.bugs/19-format-methods-public.md +22 -0
  40. data/TODO.bugs/20-coverage-nested-entities-dedup.md +20 -0
  41. data/TODO.bugs/21-operator-tokens-secondary-dispatch.md +21 -0
  42. data/TODO.bugs/22-builder-fast-path-wrappers.md +32 -0
  43. data/TODO.bugs/23-coverage-inverse-maps.md +21 -0
  44. data/TODO.bugs/24-streaming-builder-complexity.md +19 -0
  45. data/TODO.bugs/25-debug-puts-in-production.md +21 -0
  46. data/TODO.bugs/26-generic-entity-children-misplaced.md +21 -0
  47. data/TODO.bugs/27-package-build-god-method.md +19 -0
  48. data/TODO.bugs/28-package-god-class.md +30 -0
  49. data/TODO.bugs/29-validate-ascii-god-class.md +24 -0
  50. data/TODO.bugs/30-unicode-map-extraction.md +19 -0
  51. data/TODO.bugs/README.md +43 -0
  52. data/TODO.max-perf/01-restore-ci-green.md +36 -0
  53. data/TODO.max-perf/02-streaming-parse-path.md +31 -0
  54. data/TODO.max-perf/03-cli-parallel-opt-in.md +27 -0
  55. data/TODO.max-perf/04-benchmark-harness.md +28 -0
  56. data/TODO.max-perf/05-parallel-fidelity-specs.md +22 -0
  57. data/TODO.max-perf/06-builder-cpu-audit.md +41 -0
  58. data/TODO.max-perf/07-upstream-parsanol-roadmap.md +27 -0
  59. data/TODO.max-perf/08-builder-build-perf.md +45 -0
  60. data/TODO.max-perf/09-grammar-cold-start.md +25 -0
  61. data/TODO.max-perf/10-parser-facade-hygiene.md +23 -0
  62. data/TODO.max-perf/11-ci-green-closeout.md +25 -0
  63. data/TODO.max-perf/12-require-boot-profile.md +25 -0
  64. data/TODO.max-perf/13-key-conversion-specs.md +26 -0
  65. data/TODO.max-perf/14-builder-call-handler-audit.md +28 -0
  66. data/TODO.parity-ee/00-overview.md +76 -0
  67. data/TODO.parity-ee/01-annex-g-rule-extraction.md +41 -0
  68. data/TODO.parity-ee/02-eeng-algorithm-inventory.md +8 -0
  69. data/TODO.parity-ee/03-eeng-oracle-harness.md +33 -0
  70. data/TODO.parity-ee/04-shtolo-concatenate.md +44 -0
  71. data/TODO.parity-ee/05-shtolo-longform-flatten.md +53 -0
  72. data/TODO.parity-ee/06-interface-scheduling-parity.md +47 -0
  73. data/TODO.parity-ee/07-semantic-checks-port.md +35 -0
  74. data/TODO.parity-ee/08-pretty-roundtrip-gate.md +27 -0
  75. data/TODO.parity-ee/09-smrl-index-and-listing.md +22 -0
  76. data/TODO.parity-ee/10-interface-dot-graph.md +21 -0
  77. data/TODO.parity-ee/11-import-eeng-tests.md +79 -0
  78. data/TODO.parity-ee/12-full-check-catalog.md +67 -0
  79. data/TODO.parity-ee/13-population-p21.md +54 -0
  80. data/TODO.parity-ee/14-shtolo-completion.md +44 -0
  81. data/TODO.parity-ee/15-part28-xml.md +51 -0
  82. data/TODO.parity-ee/16-compare-patch.md +48 -0
  83. data/TODO.parity-ee/17-official-tests.md +42 -0
  84. data/TODO.parity-ee/18-mim-mapping.md +47 -0
  85. data/TODO.parity-ee/19-architecture.md +97 -0
  86. data/TODO.parity-ee/parity-matrix.md +108 -0
  87. data/TODO.refpath-v2/00-overview.md +64 -0
  88. data/TODO.suma-improvements/00-overview.md +23 -0
  89. data/TODO.suma-improvements/01-prebuilt-platform-gems.md +33 -0
  90. data/TODO.suma-improvements/02-suma-e2e.md +39 -0
  91. data/TODO.suma-improvements/03-item-graph.md +22 -0
  92. data/TODO.suma-improvements/04-compiled-set-default.md +16 -0
  93. data/TODO.suma-improvements/05-validation-in-docs.md +17 -0
  94. data/TODO.suma-improvements/06-memory-remeasure.md +36 -0
  95. data/TODO.suma-improvements/07-part28-xml.md +15 -0
  96. data/TODO.suma-improvements/08-windows-gnu-toolchain.md +15 -0
  97. data/TODO.suma-improvements/09-checker-tranche3.md +13 -0
  98. data/TODO.suma-improvements/10-expressdoc.md +8 -0
  99. data/benchmark/srl_benchmark.rb +458 -0
  100. data/benchmark/srl_native_benchmark.rb +146 -0
  101. data/benchmark/srl_ruby_benchmark.rb +132 -0
  102. data/bin/rspec +2 -1
  103. data/docs/Gemfile +12 -0
  104. data/docs/_config.yml +141 -0
  105. data/docs/_guides/changes/changes-format.adoc +778 -0
  106. data/docs/_guides/changes/importing-eengine.adoc +898 -0
  107. data/docs/_guides/changes/index.adoc +396 -0
  108. data/docs/_guides/changes/programmatic-usage.adoc +1038 -0
  109. data/docs/_guides/changes/validating-changes.adoc +681 -0
  110. data/docs/_guides/cli/benchmark-performance.adoc +834 -0
  111. data/docs/_guides/cli/coverage-analysis.adoc +921 -0
  112. data/docs/_guides/cli/format-schemas.adoc +547 -0
  113. data/docs/_guides/cli/index.adoc +8 -0
  114. data/docs/_guides/cli/managing-changes.adoc +927 -0
  115. data/docs/_guides/cli/validate-ascii.adoc +645 -0
  116. data/docs/_guides/cli/validate-schemas.adoc +534 -0
  117. data/docs/_guides/formatter/formatter-architecture.adoc +401 -0
  118. data/docs/_guides/index.adoc +165 -0
  119. data/docs/_guides/ler/creating-packages.adoc +664 -0
  120. data/docs/_guides/ler/index.adoc +305 -0
  121. data/docs/_guides/ler/loading-packages.adoc +707 -0
  122. data/docs/_guides/ler/package-formats.adoc +748 -0
  123. data/docs/_guides/ler/querying-packages.adoc +826 -0
  124. data/docs/_guides/ler/step-packages.adoc +385 -0
  125. data/docs/_guides/ler/validating-packages.adoc +750 -0
  126. data/docs/_guides/liquid/basic-templates.adoc +813 -0
  127. data/docs/_guides/liquid/documentation-generation.adoc +1042 -0
  128. data/docs/_guides/liquid/drops-reference.adoc +829 -0
  129. data/docs/_guides/liquid/filters-and-tags.adoc +912 -0
  130. data/docs/_guides/liquid/index.adoc +468 -0
  131. data/docs/_guides/manifests/creating-manifests.adoc +483 -0
  132. data/docs/_guides/manifests/index.adoc +307 -0
  133. data/docs/_guides/manifests/resolving-manifests.adoc +557 -0
  134. data/docs/_guides/manifests/validating-manifests.adoc +713 -0
  135. data/docs/_guides/ruby-api/formatting-schemas.adoc +605 -0
  136. data/docs/_guides/ruby-api/index.adoc +257 -0
  137. data/docs/_guides/ruby-api/parsing-files.adoc +421 -0
  138. data/docs/_guides/ruby-api/search-engine.adoc +609 -0
  139. data/docs/_guides/ruby-api/working-with-repository.adoc +577 -0
  140. data/docs/_pages/data-model.adoc +665 -0
  141. data/docs/_pages/express-language.adoc +506 -0
  142. data/docs/_pages/getting-started.adoc +414 -0
  143. data/docs/_pages/index.adoc +116 -0
  144. data/docs/_pages/introduction.adoc +256 -0
  145. data/docs/_pages/ler-packages.adoc +837 -0
  146. data/docs/_pages/parsers.adoc +709 -0
  147. data/docs/_pages/schema-manifests.adoc +431 -0
  148. data/docs/_references/index.adoc +228 -0
  149. data/docs/_tutorials/creating-ler-package.adoc +735 -0
  150. data/docs/_tutorials/documentation-coverage.adoc +795 -0
  151. data/docs/_tutorials/formatting-schemas.adoc +89 -0
  152. data/docs/_tutorials/index.adoc +231 -0
  153. data/docs/_tutorials/liquid-templates.adoc +806 -0
  154. data/docs/_tutorials/parsing-your-first-schema.adoc +522 -0
  155. data/docs/_tutorials/querying-schemas.adoc +751 -0
  156. data/docs/_tutorials/working-with-multiple-schemas.adoc +676 -0
  157. data/docs/index.adoc +242 -0
  158. data/docs/lychee.toml +90 -0
  159. data/examples/demo_ler_usage.sh +86 -0
  160. data/examples/ler/README.md +111 -0
  161. data/examples/ler/simple_example.ler +0 -0
  162. data/examples/ler/simple_schema.exp +33 -0
  163. data/examples/ler_build.rb +75 -0
  164. data/examples/ler_cli.rb +79 -0
  165. data/examples/ler_demo_complete.rb +276 -0
  166. data/examples/ler_query.rb +91 -0
  167. data/examples/ler_query_examples.rb +305 -0
  168. data/examples/ler_stats.rb +81 -0
  169. data/examples/phase3_demo.rb +159 -0
  170. data/examples/query_demo_simple.rb +131 -0
  171. data/exe/expressir +6 -17
  172. data/exe/expressir-format +14 -0
  173. data/exe/{format-test → expressir-format-test} +8 -7
  174. data/expressir.gemspec +50 -37
  175. data/lib/expressir/3.2/expressir_core.so +0 -0
  176. data/lib/expressir/3.3/expressir_core.so +0 -0
  177. data/lib/expressir/3.4/expressir_core.so +0 -0
  178. data/lib/expressir/4.0/expressir_core.so +0 -0
  179. data/lib/expressir/benchmark.rb +310 -0
  180. data/lib/expressir/changes/item_change.rb +20 -0
  181. data/lib/expressir/changes/mapping_change.rb +16 -0
  182. data/lib/expressir/changes/schema_change.rb +85 -0
  183. data/lib/expressir/changes/version_change.rb +26 -0
  184. data/lib/expressir/changes.rb +9 -0
  185. data/lib/expressir/cli.rb +138 -11
  186. data/lib/expressir/commands/base.rb +25 -0
  187. data/lib/expressir/commands/benchmark.rb +59 -0
  188. data/lib/expressir/commands/benchmark_cache.rb +80 -0
  189. data/lib/expressir/commands/changes.rb +34 -0
  190. data/lib/expressir/commands/changes_import_eengine.rb +146 -0
  191. data/lib/expressir/commands/changes_validate.rb +63 -0
  192. data/lib/expressir/commands/check.rb +56 -0
  193. data/lib/expressir/commands/clean.rb +20 -0
  194. data/lib/expressir/commands/coverage.rb +458 -0
  195. data/lib/expressir/commands/expand.rb +26 -0
  196. data/lib/expressir/commands/file_violations.rb +70 -0
  197. data/lib/expressir/commands/fix.rb +33 -0
  198. data/lib/expressir/commands/flatten.rb +29 -0
  199. data/lib/expressir/commands/format.rb +43 -0
  200. data/lib/expressir/commands/manifest.rb +420 -0
  201. data/lib/expressir/commands/mapping_validate.rb +68 -0
  202. data/lib/expressir/commands/non_ascii_character.rb +49 -0
  203. data/lib/expressir/commands/non_ascii_violation_collection.rb +301 -0
  204. data/lib/expressir/commands/package.rb +1222 -0
  205. data/lib/expressir/commands/parity_inputs.rb +160 -0
  206. data/lib/expressir/commands/validate.rb +106 -0
  207. data/lib/expressir/commands/validate_ascii.rb +94 -0
  208. data/lib/expressir/commands/validate_load.rb +91 -0
  209. data/lib/expressir/commands/version.rb +9 -0
  210. data/lib/expressir/commands/xsd.rb +23 -0
  211. data/lib/expressir/commands.rb +30 -0
  212. data/lib/expressir/config.rb +40 -3
  213. data/lib/expressir/coverage.rb +510 -0
  214. data/lib/expressir/eengine/arm_compare_report.rb +23 -0
  215. data/lib/expressir/eengine/changes_section.rb +16 -0
  216. data/lib/expressir/eengine/compare_report.rb +69 -0
  217. data/lib/expressir/eengine/mim_compare_report.rb +23 -0
  218. data/lib/expressir/eengine/modified_object.rb +21 -0
  219. data/lib/expressir/eengine.rb +9 -0
  220. data/lib/expressir/errors.rb +113 -0
  221. data/lib/expressir/express/adoc_hyperlink_formatter.rb +30 -0
  222. data/lib/expressir/express/adoc_source_formatter.rb +12 -0
  223. data/lib/expressir/express/ast_key_converter.rb +114 -0
  224. data/lib/expressir/express/builder.rb +277 -0
  225. data/lib/expressir/express/builder_context.rb +22 -0
  226. data/lib/expressir/express/builder_registry.rb +397 -0
  227. data/lib/expressir/express/builders/attribute_decl_builder.rb +32 -0
  228. data/lib/expressir/express/builders/built_in_builder.rb +75 -0
  229. data/lib/expressir/express/builders/constant_builder.rb +108 -0
  230. data/lib/expressir/express/builders/declaration_builder.rb +20 -0
  231. data/lib/expressir/express/builders/derive_clause_builder.rb +14 -0
  232. data/lib/expressir/express/builders/derived_attr_builder.rb +28 -0
  233. data/lib/expressir/express/builders/domain_rule_builder.rb +21 -0
  234. data/lib/expressir/express/builders/entity_decl_builder.rb +116 -0
  235. data/lib/expressir/express/builders/explicit_attr_builder.rb +49 -0
  236. data/lib/expressir/express/builders/expression_builder.rb +416 -0
  237. data/lib/expressir/express/builders/function_decl_builder.rb +86 -0
  238. data/lib/expressir/express/builders/helpers.rb +148 -0
  239. data/lib/expressir/express/builders/interface_builder.rb +151 -0
  240. data/lib/expressir/express/builders/inverse_attr_builder.rb +43 -0
  241. data/lib/expressir/express/builders/inverse_attr_type_builder.rb +30 -0
  242. data/lib/expressir/express/builders/inverse_clause_builder.rb +14 -0
  243. data/lib/expressir/express/builders/literal_builder.rb +93 -0
  244. data/lib/expressir/express/builders/procedure_decl_builder.rb +82 -0
  245. data/lib/expressir/express/builders/qualifier_builder.rb +102 -0
  246. data/lib/expressir/express/builders/reference_builder.rb +18 -0
  247. data/lib/expressir/express/builders/rule_decl_builder.rb +97 -0
  248. data/lib/expressir/express/builders/schema_body_decl_builder.rb +18 -0
  249. data/lib/expressir/express/builders/schema_decl_builder.rb +56 -0
  250. data/lib/expressir/express/builders/schema_version_builder.rb +34 -0
  251. data/lib/expressir/express/builders/simple_id_builder.rb +17 -0
  252. data/lib/expressir/express/builders/statement_builder.rb +243 -0
  253. data/lib/expressir/express/builders/subtype_constraint_builder.rb +166 -0
  254. data/lib/expressir/express/builders/syntax_builder.rb +30 -0
  255. data/lib/expressir/express/builders/type_builder.rb +238 -0
  256. data/lib/expressir/express/builders/type_decl_builder.rb +26 -0
  257. data/lib/expressir/express/builders/unique_clause_builder.rb +20 -0
  258. data/lib/expressir/express/builders/unique_rule_builder.rb +41 -0
  259. data/lib/expressir/express/builders/where_clause_builder.rb +20 -0
  260. data/lib/expressir/express/builders.rb +55 -0
  261. data/lib/expressir/express/cache.rb +43 -18
  262. data/lib/expressir/express/checker.rb +812 -0
  263. data/lib/expressir/express/concatenator.rb +79 -0
  264. data/lib/expressir/express/core.rb +95 -0
  265. data/lib/expressir/express/error.rb +124 -0
  266. data/lib/expressir/express/formatter.rb +89 -1548
  267. data/lib/expressir/express/formatters/data_types_formatter.rb +362 -0
  268. data/lib/expressir/express/formatters/declarations_formatter.rb +753 -0
  269. data/lib/expressir/express/formatters/expressions_formatter.rb +180 -0
  270. data/lib/expressir/express/formatters/literals_formatter.rb +55 -0
  271. data/lib/expressir/express/formatters/references_formatter.rb +53 -0
  272. data/lib/expressir/express/formatters/remark_formatter.rb +270 -0
  273. data/lib/expressir/express/formatters/remark_item_formatter.rb +28 -0
  274. data/lib/expressir/express/formatters/statements_formatter.rb +272 -0
  275. data/lib/expressir/express/formatters/supertype_expressions_formatter.rb +54 -0
  276. data/lib/expressir/express/formatters.rb +22 -0
  277. data/lib/expressir/express/grammar/parser.rb +712 -0
  278. data/lib/expressir/express/grammar.rb +11 -0
  279. data/lib/expressir/express/hyperlink_formatter.rb +4 -5
  280. data/lib/expressir/express/interface_dot.rb +105 -0
  281. data/lib/expressir/express/lazy_repository.rb +211 -0
  282. data/lib/expressir/express/line_map.rb +48 -0
  283. data/lib/expressir/express/listing.rb +174 -0
  284. data/lib/expressir/express/model_traversal.rb +42 -0
  285. data/lib/expressir/express/model_visitor.rb +11 -10
  286. data/lib/expressir/express/node_position_index.rb +342 -0
  287. data/lib/expressir/express/parallel_files.rb +229 -0
  288. data/lib/expressir/express/parser.rb +501 -62
  289. data/lib/expressir/express/pretty_formatter.rb +586 -0
  290. data/lib/expressir/express/pretty_gate.rb +61 -0
  291. data/lib/expressir/express/refs_overlay.rb +47 -0
  292. data/lib/expressir/express/remark_attacher.rb +1098 -0
  293. data/lib/expressir/express/remark_overlay.rb +86 -0
  294. data/lib/expressir/express/remark_scanner.rb +245 -0
  295. data/lib/expressir/express/resolve_references_model_visitor.rb +7 -9
  296. data/lib/expressir/express/schema_block_scanner.rb +137 -0
  297. data/lib/expressir/express/schema_head_formatter.rb +4 -5
  298. data/lib/expressir/express/schema_plain_source_formatter.rb +11 -0
  299. data/lib/expressir/express/schema_source_formatter.rb +15 -0
  300. data/lib/expressir/express/scope_resolver.rb +223 -0
  301. data/lib/expressir/express/self_schema_reference.rb +126 -0
  302. data/lib/expressir/express/shtolo.rb +679 -0
  303. data/lib/expressir/express/smrl_xml.rb +125 -0
  304. data/lib/expressir/express/source_formatter.rb +15 -0
  305. data/lib/expressir/express/streaming_builder.rb +435 -0
  306. data/lib/expressir/express/xsd.rb +259 -0
  307. data/lib/expressir/express.rb +53 -0
  308. data/lib/expressir/liquid.rb +1 -0
  309. data/lib/expressir/manifest/resolver.rb +210 -0
  310. data/lib/expressir/manifest/validator.rb +192 -0
  311. data/lib/expressir/manifest.rb +6 -0
  312. data/lib/expressir/mapping/refpath.rb +857 -0
  313. data/lib/expressir/mapping.rb +253 -0
  314. data/lib/expressir/model/cache.rb +10 -9
  315. data/lib/expressir/model/concerns.rb +42 -0
  316. data/lib/expressir/model/data_types/aggregate.rb +8 -13
  317. data/lib/expressir/model/data_types/array.rb +15 -21
  318. data/lib/expressir/model/data_types/bag.rb +11 -15
  319. data/lib/expressir/model/data_types/binary.rb +9 -12
  320. data/lib/expressir/model/data_types/boolean.rb +7 -2
  321. data/lib/expressir/model/data_types/enumeration.rb +11 -15
  322. data/lib/expressir/model/data_types/enumeration_item.rb +5 -7
  323. data/lib/expressir/model/data_types/generic.rb +6 -8
  324. data/lib/expressir/model/data_types/generic_entity.rb +11 -13
  325. data/lib/expressir/model/data_types/integer.rb +7 -2
  326. data/lib/expressir/model/data_types/list.rb +13 -18
  327. data/lib/expressir/model/data_types/logical.rb +7 -2
  328. data/lib/expressir/model/data_types/number.rb +7 -2
  329. data/lib/expressir/model/data_types/real.rb +7 -9
  330. data/lib/expressir/model/data_types/select.rb +13 -18
  331. data/lib/expressir/model/data_types/set.rb +11 -15
  332. data/lib/expressir/model/data_types/string.rb +9 -12
  333. data/lib/expressir/model/data_types.rb +25 -0
  334. data/lib/expressir/model/declarations/attribute.rb +19 -28
  335. data/lib/expressir/model/declarations/constant.rb +10 -16
  336. data/lib/expressir/model/declarations/derived_attribute.rb +25 -0
  337. data/lib/expressir/model/declarations/entity.rb +39 -30
  338. data/lib/expressir/model/declarations/function.rb +32 -40
  339. data/lib/expressir/model/declarations/informal_proposition_rule.rb +25 -0
  340. data/lib/expressir/model/declarations/interface.rb +25 -16
  341. data/lib/expressir/model/declarations/interface_item.rb +9 -11
  342. data/lib/expressir/model/declarations/interfaced_item.rb +15 -19
  343. data/lib/expressir/model/declarations/inverse_attribute.rb +25 -0
  344. data/lib/expressir/model/declarations/parameter.rb +10 -16
  345. data/lib/expressir/model/declarations/procedure.rb +30 -37
  346. data/lib/expressir/model/declarations/remark_item.rb +11 -11
  347. data/lib/expressir/model/declarations/rule.rb +38 -43
  348. data/lib/expressir/model/declarations/schema.rb +162 -64
  349. data/lib/expressir/model/declarations/schema_version.rb +8 -11
  350. data/lib/expressir/model/declarations/schema_version_item.rb +8 -11
  351. data/lib/expressir/model/declarations/subtype_constraint.rb +14 -22
  352. data/lib/expressir/model/declarations/type.rb +18 -18
  353. data/lib/expressir/model/declarations/unique_rule.rb +8 -13
  354. data/lib/expressir/model/declarations/variable.rb +10 -16
  355. data/lib/expressir/model/declarations/where_rule.rb +8 -13
  356. data/lib/expressir/model/declarations.rb +31 -0
  357. data/lib/expressir/model/dependency_resolver.rb +268 -0
  358. data/lib/expressir/model/exp_file.rb +42 -0
  359. data/lib/expressir/model/expressions/aggregate_initializer.rb +8 -9
  360. data/lib/expressir/model/expressions/aggregate_initializer_item.rb +10 -12
  361. data/lib/expressir/model/expressions/binary_expression.rb +42 -36
  362. data/lib/expressir/model/expressions/entity_constructor.rb +10 -12
  363. data/lib/expressir/model/expressions/function_call.rb +10 -12
  364. data/lib/expressir/model/expressions/interval.rb +18 -23
  365. data/lib/expressir/model/expressions/query_expression.rb +11 -15
  366. data/lib/expressir/model/expressions/unary_expression.rb +13 -15
  367. data/lib/expressir/model/expressions.rb +18 -0
  368. data/lib/expressir/model/identifier.rb +18 -26
  369. data/lib/expressir/model/indexes/entity_index.rb +103 -0
  370. data/lib/expressir/model/indexes/item_graph.rb +185 -0
  371. data/lib/expressir/model/indexes/reference_index.rb +148 -0
  372. data/lib/expressir/model/indexes/type_index.rb +149 -0
  373. data/lib/expressir/model/indexes.rb +12 -0
  374. data/lib/expressir/model/interface_validator.rb +384 -0
  375. data/lib/expressir/model/literals/binary.rb +7 -9
  376. data/lib/expressir/model/literals/integer.rb +7 -9
  377. data/lib/expressir/model/literals/logical.rb +10 -12
  378. data/lib/expressir/model/literals/real.rb +7 -9
  379. data/lib/expressir/model/literals/string.rb +10 -12
  380. data/lib/expressir/model/literals.rb +13 -0
  381. data/lib/expressir/model/model_element.rb +286 -117
  382. data/lib/expressir/model/references/attribute_reference.rb +9 -12
  383. data/lib/expressir/model/references/group_reference.rb +9 -12
  384. data/lib/expressir/model/references/index_reference.rb +11 -15
  385. data/lib/expressir/model/references/simple_reference.rb +11 -14
  386. data/lib/expressir/model/references.rb +12 -0
  387. data/lib/expressir/model/remark_format.rb +17 -0
  388. data/lib/expressir/model/remark_info.rb +92 -0
  389. data/lib/expressir/model/remark_placement.rb +42 -0
  390. data/lib/expressir/model/repository.rb +472 -12
  391. data/lib/expressir/model/repository_validator.rb +293 -0
  392. data/lib/expressir/model/search_engine.rb +551 -0
  393. data/lib/expressir/model/statements/alias.rb +12 -16
  394. data/lib/expressir/model/statements/assignment.rb +12 -11
  395. data/lib/expressir/model/statements/case.rb +31 -14
  396. data/lib/expressir/model/statements/case_action.rb +9 -11
  397. data/lib/expressir/model/statements/compound.rb +10 -8
  398. data/lib/expressir/model/statements/escape.rb +10 -2
  399. data/lib/expressir/model/statements/if.rb +15 -14
  400. data/lib/expressir/model/statements/null.rb +10 -2
  401. data/lib/expressir/model/statements/procedure_call.rb +11 -11
  402. data/lib/expressir/model/statements/repeat.rb +21 -28
  403. data/lib/expressir/model/statements/return.rb +9 -8
  404. data/lib/expressir/model/statements/skip.rb +10 -2
  405. data/lib/expressir/model/statements.rb +20 -0
  406. data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +13 -17
  407. data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +7 -9
  408. data/lib/expressir/model/supertype_expressions.rb +12 -0
  409. data/lib/expressir/model.rb +38 -78
  410. data/lib/expressir/package/builder.rb +231 -0
  411. data/lib/expressir/package/metadata.rb +79 -0
  412. data/lib/expressir/package/reader.rb +149 -0
  413. data/lib/expressir/package.rb +8 -0
  414. data/lib/expressir/schema_manifest.rb +159 -0
  415. data/lib/expressir/schema_manifest_entry.rb +15 -0
  416. data/lib/expressir/version.rb +6 -1
  417. data/lib/expressir.rb +79 -9
  418. data/lib/tasks/verify_remarks.rake +16 -0
  419. data/rakelib/native.rake +24 -0
  420. data/rakelib/oracle.rake +52 -0
  421. data/rakelib/verify_remarks.rake +16 -0
  422. metadata +431 -129
  423. data/.cross_rubies +0 -20
  424. data/.gitmodules +0 -6
  425. data/.yardopts +0 -11
  426. data/docs/development.md +0 -90
  427. data/exe/format +0 -18
  428. data/exe/generate-parser +0 -51
  429. data/lib/expressir/cli/ui.rb +0 -36
  430. data/lib/expressir/express/2.7/express_parser.so +0 -0
  431. data/lib/expressir/express/3.0/express_parser.so +0 -0
  432. data/lib/expressir/express/3.1/express_parser.so +0 -0
  433. data/lib/expressir/express/3.2/express_parser.so +0 -0
  434. data/lib/expressir/express/visitor.rb +0 -2588
  435. data/lib/expressir/model/data_type.rb +0 -9
  436. data/lib/expressir/model/declaration.rb +0 -9
  437. data/lib/expressir/model/expression.rb +0 -9
  438. data/lib/expressir/model/literal.rb +0 -9
  439. data/lib/expressir/model/reference.rb +0 -9
  440. data/lib/expressir/model/statement.rb +0 -9
  441. data/lib/expressir/model/supertype_expression.rb +0 -9
  442. data/rakelib/antlr4-native.rake +0 -161
  443. data/rakelib/cross-ruby.rake +0 -368
  444. data/spec/acceptance/version_spec.rb +0 -27
  445. data/spec/expressir/express/cache_spec.rb +0 -89
  446. data/spec/expressir/express/formatter_spec.rb +0 -173
  447. data/spec/expressir/express/parser_spec.rb +0 -141
  448. data/spec/expressir/model/model_element_spec.rb +0 -318
  449. data/spec/spec_helper.rb +0 -24
  450. data/spec/support/console_helper.rb +0 -29
  451. data/spec/syntax/multiple.exp +0 -23
  452. data/spec/syntax/multiple.yaml +0 -198
  453. data/spec/syntax/multiple_formatted.exp +0 -71
  454. data/spec/syntax/multiple_hyperlink_formatted.exp +0 -71
  455. data/spec/syntax/multiple_schema_head_hyperlink_formatted.exp +0 -13
  456. data/spec/syntax/remark.exp +0 -193
  457. data/spec/syntax/remark.yaml +0 -471
  458. data/spec/syntax/remark_formatted.exp +0 -228
  459. data/spec/syntax/single.exp +0 -4
  460. data/spec/syntax/single.yaml +0 -18
  461. data/spec/syntax/single_formatted.exp +0 -10
  462. data/spec/syntax/single_formatted.yaml +0 -36
  463. data/spec/syntax/syntax.exp +0 -333
  464. data/spec/syntax/syntax.yaml +0 -3509
  465. data/spec/syntax/syntax_formatted.exp +0 -902
  466. data/spec/syntax/syntax_hyperlink_formatted.exp +0 -902
  467. data/spec/syntax/syntax_schema_head_formatted.exp +0 -18
metadata CHANGED
@@ -1,260 +1,561 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.11
4
+ version: 2.4.29
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-12 00:00:00.000000000 Z
11
+ date: 2026-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: thor
14
+ name: base64
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: antlr4-native
28
+ name: benchmark
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2.1.0
34
- type: :development
33
+ version: '0'
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 2.1.0
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: asciidoctor
42
+ name: benchmark-ips
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 2.0.13
48
- type: :development
47
+ version: '0'
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 2.0.13
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
56
+ name: csv
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '2.3'
62
- type: :development
61
+ version: '0'
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '2.3'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: byebug
70
+ name: liquid
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '11.1'
76
- type: :development
75
+ version: '0'
76
+ type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '11.1'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: pry
84
+ name: lutaml-model
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.12.2
90
- type: :development
89
+ version: 0.8.76
90
+ type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.12.2
96
+ version: 0.8.76
97
97
  - !ruby/object:Gem::Dependency
98
- name: rake
98
+ name: moxml
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '13.0'
104
- type: :development
103
+ version: '0'
104
+ type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '13.0'
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rake-compiler
112
+ name: nokogiri
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: paint
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
116
130
  - !ruby/object:Gem::Version
117
- version: '1.2'
118
- type: :development
131
+ version: '0'
132
+ type: :runtime
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - "~>"
136
+ - - ">="
123
137
  - !ruby/object:Gem::Version
124
- version: '1.2'
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
- name: rake-compiler-dock
140
+ name: parsanol
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '1.3'
132
- type: :development
145
+ version: 1.3.9
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 1.3.9
149
+ type: :runtime
133
150
  prerelease: false
134
151
  version_requirements: !ruby/object:Gem::Requirement
135
152
  requirements:
136
153
  - - "~>"
137
154
  - !ruby/object:Gem::Version
138
- version: '1.3'
155
+ version: 1.3.9
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: 1.3.9
139
159
  - !ruby/object:Gem::Dependency
140
- name: rspec
160
+ name: ruby-progressbar
141
161
  requirement: !ruby/object:Gem::Requirement
142
162
  requirements:
143
163
  - - "~>"
144
164
  - !ruby/object:Gem::Version
145
- version: '3.11'
146
- type: :development
165
+ version: '1.11'
166
+ type: :runtime
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
149
169
  requirements:
150
170
  - - "~>"
151
171
  - !ruby/object:Gem::Version
152
- version: '3.11'
172
+ version: '1.11'
153
173
  - !ruby/object:Gem::Dependency
154
- name: rubocop
174
+ name: rubyzip
155
175
  requirement: !ruby/object:Gem::Requirement
156
176
  requirements:
157
- - - '='
177
+ - - ">="
158
178
  - !ruby/object:Gem::Version
159
- version: '1.58'
160
- type: :development
179
+ version: '0'
180
+ type: :runtime
161
181
  prerelease: false
162
182
  version_requirements: !ruby/object:Gem::Requirement
163
183
  requirements:
164
- - - '='
184
+ - - ">="
165
185
  - !ruby/object:Gem::Version
166
- version: '1.58'
186
+ version: '0'
167
187
  - !ruby/object:Gem::Dependency
168
- name: rubocop-performance
188
+ name: table_tennis
169
189
  requirement: !ruby/object:Gem::Requirement
170
190
  requirements:
171
- - - "~>"
191
+ - - ">="
172
192
  - !ruby/object:Gem::Version
173
- version: '1.19'
174
- type: :development
193
+ version: '0'
194
+ type: :runtime
175
195
  prerelease: false
176
196
  version_requirements: !ruby/object:Gem::Requirement
177
197
  requirements:
178
- - - "~>"
198
+ - - ">="
179
199
  - !ruby/object:Gem::Version
180
- version: '1.19'
200
+ version: '0'
181
201
  - !ruby/object:Gem::Dependency
182
- name: webrick
202
+ name: thor
183
203
  requirement: !ruby/object:Gem::Requirement
184
204
  requirements:
185
205
  - - "~>"
186
206
  - !ruby/object:Gem::Version
187
- version: 1.7.0
188
- type: :development
207
+ version: '1.0'
208
+ type: :runtime
189
209
  prerelease: false
190
210
  version_requirements: !ruby/object:Gem::Requirement
191
211
  requirements:
192
212
  - - "~>"
193
213
  - !ruby/object:Gem::Version
194
- version: 1.7.0
214
+ version: '1.0'
195
215
  - !ruby/object:Gem::Dependency
196
- name: yard
216
+ name: yeptris
197
217
  requirement: !ruby/object:Gem::Requirement
198
218
  requirements:
199
219
  - - "~>"
200
220
  - !ruby/object:Gem::Version
201
- version: 0.9.26
202
- type: :development
221
+ version: 0.6.1
222
+ type: :runtime
203
223
  prerelease: false
204
224
  version_requirements: !ruby/object:Gem::Requirement
205
225
  requirements:
206
226
  - - "~>"
207
227
  - !ruby/object:Gem::Version
208
- version: 0.9.26
209
- description: Expressir (“EXPRESS in Ruby”) is a Ruby parser for EXPRESS and a set
210
- of Ruby tools for accessing ISO EXPRESS data models.
228
+ version: 0.6.1
229
+ description: Expressir ("EXPRESS in Ruby") is a Ruby parser for EXPRESS and a set
230
+ of tools for accessing EXPRESS data models.
211
231
  email:
212
- - open.source@ribose.com'
232
+ - open.source@ribose.com
213
233
  executables:
214
234
  - expressir
215
235
  extensions: []
216
236
  extra_rdoc_files: []
217
237
  files:
218
- - ".cross_rubies"
238
+ - ".cargo/config.toml"
239
+ - ".github/scripts/test_installed_gem.rb"
240
+ - ".github/workflows/codeql.yml"
241
+ - ".github/workflows/docs.yml"
242
+ - ".github/workflows/links.yml"
243
+ - ".github/workflows/native-gems.yml"
219
244
  - ".github/workflows/rake.yml"
220
245
  - ".github/workflows/release.yml"
246
+ - ".github/workflows/rust-ext.yml"
247
+ - ".github/workflows/stress.yml"
248
+ - ".github/workflows/validate_schemas.yml"
249
+ - ".github/workflows/verify_remarks.yml"
221
250
  - ".gitignore"
222
- - ".gitmodules"
223
251
  - ".hound.yml"
224
252
  - ".rspec"
225
253
  - ".rubocop.yml"
226
- - ".yardopts"
254
+ - ".rubocop_todo.yml"
255
+ - CHANGELOG.md
227
256
  - Gemfile
228
257
  - README.adoc
229
258
  - Rakefile
259
+ - TODO.bugs/01-stale-transformer-autoload.md
260
+ - TODO.bugs/02-parser-class-instance-vars.md
261
+ - TODO.bugs/03-builder-mutable-state.md
262
+ - TODO.bugs/04-formatter-public-send-dispatch.md
263
+ - TODO.bugs/05-anonymous-formatter-subclass.md
264
+ - TODO.bugs/06-collection-registry-single-source.md
265
+ - TODO.bugs/07-require-relative-cleanup.md
266
+ - TODO.bugs/08-require-expressir-in-commands.md
267
+ - TODO.bugs/09-parser-split.md
268
+ - TODO.bugs/10-to-s-override.md
269
+ - TODO.bugs/11-parser-class-variables.md
270
+ - TODO.bugs/12-marker-modules-vs-registry.md
271
+ - TODO.bugs/13-string-literal-scanner-limitation.md
272
+ - TODO.bugs/14-model-formatting-leak.md
273
+ - TODO.bugs/15-expression-children-macro.md
274
+ - TODO.bugs/16-pretty-formatter-duplication.md
275
+ - TODO.bugs/17-snake-case-cache-mutable-constant.md
276
+ - TODO.bugs/18-const-get-private-constants.md
277
+ - TODO.bugs/19-format-methods-public.md
278
+ - TODO.bugs/20-coverage-nested-entities-dedup.md
279
+ - TODO.bugs/21-operator-tokens-secondary-dispatch.md
280
+ - TODO.bugs/22-builder-fast-path-wrappers.md
281
+ - TODO.bugs/23-coverage-inverse-maps.md
282
+ - TODO.bugs/24-streaming-builder-complexity.md
283
+ - TODO.bugs/25-debug-puts-in-production.md
284
+ - TODO.bugs/26-generic-entity-children-misplaced.md
285
+ - TODO.bugs/27-package-build-god-method.md
286
+ - TODO.bugs/28-package-god-class.md
287
+ - TODO.bugs/29-validate-ascii-god-class.md
288
+ - TODO.bugs/30-unicode-map-extraction.md
289
+ - TODO.bugs/README.md
290
+ - TODO.max-perf/01-restore-ci-green.md
291
+ - TODO.max-perf/02-streaming-parse-path.md
292
+ - TODO.max-perf/03-cli-parallel-opt-in.md
293
+ - TODO.max-perf/04-benchmark-harness.md
294
+ - TODO.max-perf/05-parallel-fidelity-specs.md
295
+ - TODO.max-perf/06-builder-cpu-audit.md
296
+ - TODO.max-perf/07-upstream-parsanol-roadmap.md
297
+ - TODO.max-perf/08-builder-build-perf.md
298
+ - TODO.max-perf/09-grammar-cold-start.md
299
+ - TODO.max-perf/10-parser-facade-hygiene.md
300
+ - TODO.max-perf/11-ci-green-closeout.md
301
+ - TODO.max-perf/12-require-boot-profile.md
302
+ - TODO.max-perf/13-key-conversion-specs.md
303
+ - TODO.max-perf/14-builder-call-handler-audit.md
304
+ - TODO.parity-ee/00-overview.md
305
+ - TODO.parity-ee/01-annex-g-rule-extraction.md
306
+ - TODO.parity-ee/02-eeng-algorithm-inventory.md
307
+ - TODO.parity-ee/03-eeng-oracle-harness.md
308
+ - TODO.parity-ee/04-shtolo-concatenate.md
309
+ - TODO.parity-ee/05-shtolo-longform-flatten.md
310
+ - TODO.parity-ee/06-interface-scheduling-parity.md
311
+ - TODO.parity-ee/07-semantic-checks-port.md
312
+ - TODO.parity-ee/08-pretty-roundtrip-gate.md
313
+ - TODO.parity-ee/09-smrl-index-and-listing.md
314
+ - TODO.parity-ee/10-interface-dot-graph.md
315
+ - TODO.parity-ee/11-import-eeng-tests.md
316
+ - TODO.parity-ee/12-full-check-catalog.md
317
+ - TODO.parity-ee/13-population-p21.md
318
+ - TODO.parity-ee/14-shtolo-completion.md
319
+ - TODO.parity-ee/15-part28-xml.md
320
+ - TODO.parity-ee/16-compare-patch.md
321
+ - TODO.parity-ee/17-official-tests.md
322
+ - TODO.parity-ee/18-mim-mapping.md
323
+ - TODO.parity-ee/19-architecture.md
324
+ - TODO.parity-ee/parity-matrix.md
325
+ - TODO.refpath-v2/00-overview.md
326
+ - TODO.suma-improvements/00-overview.md
327
+ - TODO.suma-improvements/01-prebuilt-platform-gems.md
328
+ - TODO.suma-improvements/02-suma-e2e.md
329
+ - TODO.suma-improvements/03-item-graph.md
330
+ - TODO.suma-improvements/04-compiled-set-default.md
331
+ - TODO.suma-improvements/05-validation-in-docs.md
332
+ - TODO.suma-improvements/06-memory-remeasure.md
333
+ - TODO.suma-improvements/07-part28-xml.md
334
+ - TODO.suma-improvements/08-windows-gnu-toolchain.md
335
+ - TODO.suma-improvements/09-checker-tranche3.md
336
+ - TODO.suma-improvements/10-expressdoc.md
337
+ - benchmark/srl_benchmark.rb
338
+ - benchmark/srl_native_benchmark.rb
339
+ - benchmark/srl_ruby_benchmark.rb
230
340
  - bin/console
231
341
  - bin/rspec
232
342
  - bin/setup
233
- - docs/development.md
343
+ - docs/Gemfile
344
+ - docs/_config.yml
345
+ - docs/_guides/changes/changes-format.adoc
346
+ - docs/_guides/changes/importing-eengine.adoc
347
+ - docs/_guides/changes/index.adoc
348
+ - docs/_guides/changes/programmatic-usage.adoc
349
+ - docs/_guides/changes/validating-changes.adoc
350
+ - docs/_guides/cli/benchmark-performance.adoc
351
+ - docs/_guides/cli/coverage-analysis.adoc
352
+ - docs/_guides/cli/format-schemas.adoc
353
+ - docs/_guides/cli/index.adoc
354
+ - docs/_guides/cli/managing-changes.adoc
355
+ - docs/_guides/cli/validate-ascii.adoc
356
+ - docs/_guides/cli/validate-schemas.adoc
357
+ - docs/_guides/formatter/formatter-architecture.adoc
358
+ - docs/_guides/index.adoc
359
+ - docs/_guides/ler/creating-packages.adoc
360
+ - docs/_guides/ler/index.adoc
361
+ - docs/_guides/ler/loading-packages.adoc
362
+ - docs/_guides/ler/package-formats.adoc
363
+ - docs/_guides/ler/querying-packages.adoc
364
+ - docs/_guides/ler/step-packages.adoc
365
+ - docs/_guides/ler/validating-packages.adoc
366
+ - docs/_guides/liquid/basic-templates.adoc
367
+ - docs/_guides/liquid/documentation-generation.adoc
368
+ - docs/_guides/liquid/drops-reference.adoc
369
+ - docs/_guides/liquid/filters-and-tags.adoc
370
+ - docs/_guides/liquid/index.adoc
371
+ - docs/_guides/manifests/creating-manifests.adoc
372
+ - docs/_guides/manifests/index.adoc
373
+ - docs/_guides/manifests/resolving-manifests.adoc
374
+ - docs/_guides/manifests/validating-manifests.adoc
375
+ - docs/_guides/ruby-api/formatting-schemas.adoc
376
+ - docs/_guides/ruby-api/index.adoc
377
+ - docs/_guides/ruby-api/parsing-files.adoc
378
+ - docs/_guides/ruby-api/search-engine.adoc
379
+ - docs/_guides/ruby-api/working-with-repository.adoc
380
+ - docs/_pages/data-model.adoc
381
+ - docs/_pages/express-language.adoc
382
+ - docs/_pages/getting-started.adoc
383
+ - docs/_pages/index.adoc
384
+ - docs/_pages/introduction.adoc
385
+ - docs/_pages/ler-packages.adoc
386
+ - docs/_pages/parsers.adoc
387
+ - docs/_pages/schema-manifests.adoc
388
+ - docs/_references/index.adoc
389
+ - docs/_tutorials/creating-ler-package.adoc
390
+ - docs/_tutorials/documentation-coverage.adoc
391
+ - docs/_tutorials/formatting-schemas.adoc
392
+ - docs/_tutorials/index.adoc
393
+ - docs/_tutorials/liquid-templates.adoc
394
+ - docs/_tutorials/parsing-your-first-schema.adoc
395
+ - docs/_tutorials/querying-schemas.adoc
396
+ - docs/_tutorials/working-with-multiple-schemas.adoc
397
+ - docs/index.adoc
398
+ - docs/lychee.toml
399
+ - examples/demo_ler_usage.sh
400
+ - examples/ler/README.md
401
+ - examples/ler/simple_example.ler
402
+ - examples/ler/simple_schema.exp
403
+ - examples/ler_build.rb
404
+ - examples/ler_cli.rb
405
+ - examples/ler_demo_complete.rb
406
+ - examples/ler_query.rb
407
+ - examples/ler_query_examples.rb
408
+ - examples/ler_stats.rb
409
+ - examples/phase3_demo.rb
410
+ - examples/query_demo_simple.rb
234
411
  - exe/expressir
235
- - exe/format
236
- - exe/format-test
237
- - exe/generate-parser
412
+ - exe/expressir-format
413
+ - exe/expressir-format-test
238
414
  - expressir.gemspec
239
415
  - lib/expressir.rb
416
+ - lib/expressir/3.2/expressir_core.so
417
+ - lib/expressir/3.3/expressir_core.so
418
+ - lib/expressir/3.4/expressir_core.so
419
+ - lib/expressir/4.0/expressir_core.so
420
+ - lib/expressir/benchmark.rb
421
+ - lib/expressir/changes.rb
422
+ - lib/expressir/changes/item_change.rb
423
+ - lib/expressir/changes/mapping_change.rb
424
+ - lib/expressir/changes/schema_change.rb
425
+ - lib/expressir/changes/version_change.rb
240
426
  - lib/expressir/cli.rb
241
- - lib/expressir/cli/ui.rb
427
+ - lib/expressir/commands.rb
428
+ - lib/expressir/commands/base.rb
429
+ - lib/expressir/commands/benchmark.rb
430
+ - lib/expressir/commands/benchmark_cache.rb
431
+ - lib/expressir/commands/changes.rb
432
+ - lib/expressir/commands/changes_import_eengine.rb
433
+ - lib/expressir/commands/changes_validate.rb
434
+ - lib/expressir/commands/check.rb
435
+ - lib/expressir/commands/clean.rb
436
+ - lib/expressir/commands/coverage.rb
437
+ - lib/expressir/commands/expand.rb
438
+ - lib/expressir/commands/file_violations.rb
439
+ - lib/expressir/commands/fix.rb
440
+ - lib/expressir/commands/flatten.rb
441
+ - lib/expressir/commands/format.rb
442
+ - lib/expressir/commands/manifest.rb
443
+ - lib/expressir/commands/mapping_validate.rb
444
+ - lib/expressir/commands/non_ascii_character.rb
445
+ - lib/expressir/commands/non_ascii_violation_collection.rb
446
+ - lib/expressir/commands/package.rb
447
+ - lib/expressir/commands/parity_inputs.rb
448
+ - lib/expressir/commands/validate.rb
449
+ - lib/expressir/commands/validate_ascii.rb
450
+ - lib/expressir/commands/validate_load.rb
451
+ - lib/expressir/commands/version.rb
452
+ - lib/expressir/commands/xsd.rb
242
453
  - lib/expressir/config.rb
243
- - lib/expressir/express/2.7/express_parser.so
244
- - lib/expressir/express/3.0/express_parser.so
245
- - lib/expressir/express/3.1/express_parser.so
246
- - lib/expressir/express/3.2/express_parser.so
454
+ - lib/expressir/coverage.rb
455
+ - lib/expressir/eengine.rb
456
+ - lib/expressir/eengine/arm_compare_report.rb
457
+ - lib/expressir/eengine/changes_section.rb
458
+ - lib/expressir/eengine/compare_report.rb
459
+ - lib/expressir/eengine/mim_compare_report.rb
460
+ - lib/expressir/eengine/modified_object.rb
461
+ - lib/expressir/errors.rb
462
+ - lib/expressir/express.rb
463
+ - lib/expressir/express/adoc_hyperlink_formatter.rb
464
+ - lib/expressir/express/adoc_source_formatter.rb
465
+ - lib/expressir/express/ast_key_converter.rb
466
+ - lib/expressir/express/builder.rb
467
+ - lib/expressir/express/builder_context.rb
468
+ - lib/expressir/express/builder_registry.rb
469
+ - lib/expressir/express/builders.rb
470
+ - lib/expressir/express/builders/attribute_decl_builder.rb
471
+ - lib/expressir/express/builders/built_in_builder.rb
472
+ - lib/expressir/express/builders/constant_builder.rb
473
+ - lib/expressir/express/builders/declaration_builder.rb
474
+ - lib/expressir/express/builders/derive_clause_builder.rb
475
+ - lib/expressir/express/builders/derived_attr_builder.rb
476
+ - lib/expressir/express/builders/domain_rule_builder.rb
477
+ - lib/expressir/express/builders/entity_decl_builder.rb
478
+ - lib/expressir/express/builders/explicit_attr_builder.rb
479
+ - lib/expressir/express/builders/expression_builder.rb
480
+ - lib/expressir/express/builders/function_decl_builder.rb
481
+ - lib/expressir/express/builders/helpers.rb
482
+ - lib/expressir/express/builders/interface_builder.rb
483
+ - lib/expressir/express/builders/inverse_attr_builder.rb
484
+ - lib/expressir/express/builders/inverse_attr_type_builder.rb
485
+ - lib/expressir/express/builders/inverse_clause_builder.rb
486
+ - lib/expressir/express/builders/literal_builder.rb
487
+ - lib/expressir/express/builders/procedure_decl_builder.rb
488
+ - lib/expressir/express/builders/qualifier_builder.rb
489
+ - lib/expressir/express/builders/reference_builder.rb
490
+ - lib/expressir/express/builders/rule_decl_builder.rb
491
+ - lib/expressir/express/builders/schema_body_decl_builder.rb
492
+ - lib/expressir/express/builders/schema_decl_builder.rb
493
+ - lib/expressir/express/builders/schema_version_builder.rb
494
+ - lib/expressir/express/builders/simple_id_builder.rb
495
+ - lib/expressir/express/builders/statement_builder.rb
496
+ - lib/expressir/express/builders/subtype_constraint_builder.rb
497
+ - lib/expressir/express/builders/syntax_builder.rb
498
+ - lib/expressir/express/builders/type_builder.rb
499
+ - lib/expressir/express/builders/type_decl_builder.rb
500
+ - lib/expressir/express/builders/unique_clause_builder.rb
501
+ - lib/expressir/express/builders/unique_rule_builder.rb
502
+ - lib/expressir/express/builders/where_clause_builder.rb
247
503
  - lib/expressir/express/cache.rb
504
+ - lib/expressir/express/checker.rb
505
+ - lib/expressir/express/concatenator.rb
506
+ - lib/expressir/express/core.rb
507
+ - lib/expressir/express/error.rb
248
508
  - lib/expressir/express/formatter.rb
509
+ - lib/expressir/express/formatters.rb
510
+ - lib/expressir/express/formatters/data_types_formatter.rb
511
+ - lib/expressir/express/formatters/declarations_formatter.rb
512
+ - lib/expressir/express/formatters/expressions_formatter.rb
513
+ - lib/expressir/express/formatters/literals_formatter.rb
514
+ - lib/expressir/express/formatters/references_formatter.rb
515
+ - lib/expressir/express/formatters/remark_formatter.rb
516
+ - lib/expressir/express/formatters/remark_item_formatter.rb
517
+ - lib/expressir/express/formatters/statements_formatter.rb
518
+ - lib/expressir/express/formatters/supertype_expressions_formatter.rb
519
+ - lib/expressir/express/grammar.rb
520
+ - lib/expressir/express/grammar/parser.rb
249
521
  - lib/expressir/express/hyperlink_formatter.rb
522
+ - lib/expressir/express/interface_dot.rb
523
+ - lib/expressir/express/lazy_repository.rb
524
+ - lib/expressir/express/line_map.rb
525
+ - lib/expressir/express/listing.rb
526
+ - lib/expressir/express/model_traversal.rb
250
527
  - lib/expressir/express/model_visitor.rb
528
+ - lib/expressir/express/node_position_index.rb
529
+ - lib/expressir/express/parallel_files.rb
251
530
  - lib/expressir/express/parser.rb
531
+ - lib/expressir/express/pretty_formatter.rb
532
+ - lib/expressir/express/pretty_gate.rb
533
+ - lib/expressir/express/refs_overlay.rb
534
+ - lib/expressir/express/remark_attacher.rb
535
+ - lib/expressir/express/remark_overlay.rb
536
+ - lib/expressir/express/remark_scanner.rb
252
537
  - lib/expressir/express/resolve_references_model_visitor.rb
538
+ - lib/expressir/express/schema_block_scanner.rb
253
539
  - lib/expressir/express/schema_head_formatter.rb
254
- - lib/expressir/express/visitor.rb
540
+ - lib/expressir/express/schema_plain_source_formatter.rb
541
+ - lib/expressir/express/schema_source_formatter.rb
542
+ - lib/expressir/express/scope_resolver.rb
543
+ - lib/expressir/express/self_schema_reference.rb
544
+ - lib/expressir/express/shtolo.rb
545
+ - lib/expressir/express/smrl_xml.rb
546
+ - lib/expressir/express/source_formatter.rb
547
+ - lib/expressir/express/streaming_builder.rb
548
+ - lib/expressir/express/xsd.rb
549
+ - lib/expressir/liquid.rb
550
+ - lib/expressir/manifest.rb
551
+ - lib/expressir/manifest/resolver.rb
552
+ - lib/expressir/manifest/validator.rb
553
+ - lib/expressir/mapping.rb
554
+ - lib/expressir/mapping/refpath.rb
255
555
  - lib/expressir/model.rb
256
556
  - lib/expressir/model/cache.rb
257
- - lib/expressir/model/data_type.rb
557
+ - lib/expressir/model/concerns.rb
558
+ - lib/expressir/model/data_types.rb
258
559
  - lib/expressir/model/data_types/aggregate.rb
259
560
  - lib/expressir/model/data_types/array.rb
260
561
  - lib/expressir/model/data_types/bag.rb
@@ -272,14 +573,17 @@ files:
272
573
  - lib/expressir/model/data_types/select.rb
273
574
  - lib/expressir/model/data_types/set.rb
274
575
  - lib/expressir/model/data_types/string.rb
275
- - lib/expressir/model/declaration.rb
576
+ - lib/expressir/model/declarations.rb
276
577
  - lib/expressir/model/declarations/attribute.rb
277
578
  - lib/expressir/model/declarations/constant.rb
579
+ - lib/expressir/model/declarations/derived_attribute.rb
278
580
  - lib/expressir/model/declarations/entity.rb
279
581
  - lib/expressir/model/declarations/function.rb
582
+ - lib/expressir/model/declarations/informal_proposition_rule.rb
280
583
  - lib/expressir/model/declarations/interface.rb
281
584
  - lib/expressir/model/declarations/interface_item.rb
282
585
  - lib/expressir/model/declarations/interfaced_item.rb
586
+ - lib/expressir/model/declarations/inverse_attribute.rb
283
587
  - lib/expressir/model/declarations/parameter.rb
284
588
  - lib/expressir/model/declarations/procedure.rb
285
589
  - lib/expressir/model/declarations/remark_item.rb
@@ -292,7 +596,9 @@ files:
292
596
  - lib/expressir/model/declarations/unique_rule.rb
293
597
  - lib/expressir/model/declarations/variable.rb
294
598
  - lib/expressir/model/declarations/where_rule.rb
295
- - lib/expressir/model/expression.rb
599
+ - lib/expressir/model/dependency_resolver.rb
600
+ - lib/expressir/model/exp_file.rb
601
+ - lib/expressir/model/expressions.rb
296
602
  - lib/expressir/model/expressions/aggregate_initializer.rb
297
603
  - lib/expressir/model/expressions/aggregate_initializer_item.rb
298
604
  - lib/expressir/model/expressions/binary_expression.rb
@@ -302,20 +608,31 @@ files:
302
608
  - lib/expressir/model/expressions/query_expression.rb
303
609
  - lib/expressir/model/expressions/unary_expression.rb
304
610
  - lib/expressir/model/identifier.rb
305
- - lib/expressir/model/literal.rb
611
+ - lib/expressir/model/indexes.rb
612
+ - lib/expressir/model/indexes/entity_index.rb
613
+ - lib/expressir/model/indexes/item_graph.rb
614
+ - lib/expressir/model/indexes/reference_index.rb
615
+ - lib/expressir/model/indexes/type_index.rb
616
+ - lib/expressir/model/interface_validator.rb
617
+ - lib/expressir/model/literals.rb
306
618
  - lib/expressir/model/literals/binary.rb
307
619
  - lib/expressir/model/literals/integer.rb
308
620
  - lib/expressir/model/literals/logical.rb
309
621
  - lib/expressir/model/literals/real.rb
310
622
  - lib/expressir/model/literals/string.rb
311
623
  - lib/expressir/model/model_element.rb
312
- - lib/expressir/model/reference.rb
624
+ - lib/expressir/model/references.rb
313
625
  - lib/expressir/model/references/attribute_reference.rb
314
626
  - lib/expressir/model/references/group_reference.rb
315
627
  - lib/expressir/model/references/index_reference.rb
316
628
  - lib/expressir/model/references/simple_reference.rb
629
+ - lib/expressir/model/remark_format.rb
630
+ - lib/expressir/model/remark_info.rb
631
+ - lib/expressir/model/remark_placement.rb
317
632
  - lib/expressir/model/repository.rb
318
- - lib/expressir/model/statement.rb
633
+ - lib/expressir/model/repository_validator.rb
634
+ - lib/expressir/model/search_engine.rb
635
+ - lib/expressir/model/statements.rb
319
636
  - lib/expressir/model/statements/alias.rb
320
637
  - lib/expressir/model/statements/assignment.rb
321
638
  - lib/expressir/model/statements/case.rb
@@ -328,43 +645,28 @@ files:
328
645
  - lib/expressir/model/statements/repeat.rb
329
646
  - lib/expressir/model/statements/return.rb
330
647
  - lib/expressir/model/statements/skip.rb
331
- - lib/expressir/model/supertype_expression.rb
648
+ - lib/expressir/model/supertype_expressions.rb
332
649
  - lib/expressir/model/supertype_expressions/binary_supertype_expression.rb
333
650
  - lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb
651
+ - lib/expressir/package.rb
652
+ - lib/expressir/package/builder.rb
653
+ - lib/expressir/package/metadata.rb
654
+ - lib/expressir/package/reader.rb
655
+ - lib/expressir/schema_manifest.rb
656
+ - lib/expressir/schema_manifest_entry.rb
334
657
  - lib/expressir/version.rb
335
- - rakelib/antlr4-native.rake
336
- - rakelib/cross-ruby.rake
337
- - spec/acceptance/version_spec.rb
338
- - spec/expressir/express/cache_spec.rb
339
- - spec/expressir/express/formatter_spec.rb
340
- - spec/expressir/express/parser_spec.rb
341
- - spec/expressir/model/model_element_spec.rb
342
- - spec/spec_helper.rb
343
- - spec/support/console_helper.rb
344
- - spec/syntax/multiple.exp
345
- - spec/syntax/multiple.yaml
346
- - spec/syntax/multiple_formatted.exp
347
- - spec/syntax/multiple_hyperlink_formatted.exp
348
- - spec/syntax/multiple_schema_head_hyperlink_formatted.exp
349
- - spec/syntax/remark.exp
350
- - spec/syntax/remark.yaml
351
- - spec/syntax/remark_formatted.exp
352
- - spec/syntax/single.exp
353
- - spec/syntax/single.yaml
354
- - spec/syntax/single_formatted.exp
355
- - spec/syntax/single_formatted.yaml
356
- - spec/syntax/syntax.exp
357
- - spec/syntax/syntax.yaml
358
- - spec/syntax/syntax_formatted.exp
359
- - spec/syntax/syntax_hyperlink_formatted.exp
360
- - spec/syntax/syntax_schema_head_formatted.exp
658
+ - lib/tasks/verify_remarks.rake
659
+ - rakelib/native.rake
660
+ - rakelib/oracle.rake
661
+ - rakelib/verify_remarks.rake
361
662
  homepage: https://github.com/lutaml/expressir
362
663
  licenses:
363
- - MIT
664
+ - BSD-2-Clause
364
665
  metadata:
365
666
  homepage_uri: https://github.com/lutaml/expressir
366
667
  source_code_uri: https://github.com/lutaml/expressir
367
668
  changelog_uri: https://github.com/lutaml/expressir/releases
669
+ rubygems_mfa_required: 'true'
368
670
  post_install_message:
369
671
  rdoc_options: []
370
672
  require_paths:
@@ -373,18 +675,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
373
675
  requirements:
374
676
  - - ">="
375
677
  - !ruby/object:Gem::Version
376
- version: '2.7'
678
+ version: '3.2'
377
679
  - - "<"
378
680
  - !ruby/object:Gem::Version
379
- version: 3.3.dev
681
+ version: 4.1.dev
380
682
  required_rubygems_version: !ruby/object:Gem::Requirement
381
683
  requirements:
382
684
  - - ">="
383
685
  - !ruby/object:Gem::Version
384
686
  version: '0'
385
687
  requirements: []
386
- rubygems_version: 3.3.26
688
+ rubygems_version: 3.5.23
387
689
  signing_key:
388
690
  specification_version: 4
389
- summary: ISO EXPRESS parser and tools in Ruby.
691
+ summary: EXPRESS parser and toolkit for Ruby
390
692
  test_files: []