ibex 0.2.0 → 0.3.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 (437) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +95 -272
  3. data/docs/architecture.md +187 -35
  4. data/docs/bison-import.md +103 -0
  5. data/docs/comparison-policy.md +127 -0
  6. data/docs/configuration-model.md +59 -0
  7. data/docs/configuration-report.md +28 -0
  8. data/docs/conflict-explanation-reviews/v1/records/README.md +28 -0
  9. data/docs/conflict-explanation-study.md +62 -0
  10. data/docs/construction-profiling.md +157 -0
  11. data/docs/cst-migration.md +3 -4
  12. data/docs/cst.md +24 -0
  13. data/docs/decisions/0000-template.md +24 -0
  14. data/docs/decisions/0001-separate-ir-pipeline.md +34 -0
  15. data/docs/decisions/0002-opaque-user-code-boundary.md +32 -0
  16. data/docs/decisions/0003-self-hosted-grammar-frontend.md +32 -0
  17. data/docs/decisions/0004-shared-semantic-and-lossless-source-model.md +33 -0
  18. data/docs/decisions/0005-contained-grammar-composition.md +34 -0
  19. data/docs/decisions/0006-bounded-structural-grammar-lowering.md +32 -0
  20. data/docs/decisions/0007-shared-parser-construction-pipeline.md +33 -0
  21. data/docs/decisions/0008-versioned-runtime-package-boundary.md +36 -0
  22. data/docs/decisions/0009-isolated-parser-sessions.md +34 -0
  23. data/docs/decisions/0010-committed-runtime-observation.md +34 -0
  24. data/docs/decisions/0011-versioned-semantic-action-boundary.md +37 -0
  25. data/docs/decisions/0012-bounded-nonexecuting-analysis.md +37 -0
  26. data/docs/decisions/0013-transactional-generation-publication.md +37 -0
  27. data/docs/decisions/0014-versioned-generated-lexer.md +35 -0
  28. data/docs/decisions/0015-worker-isolated-browser-analysis.md +32 -0
  29. data/docs/decisions/0016-red-green-concrete-syntax.md +34 -0
  30. data/docs/decisions/0017-persistent-syntax-artifacts.md +35 -0
  31. data/docs/decisions/0018-conservative-incremental-syntax-reuse.md +38 -0
  32. data/docs/decisions/0019-runtime-syntax-session-boundary.md +51 -0
  33. data/docs/decisions/0020-grammar-ir-parser-contract.md +65 -0
  34. data/docs/decisions/0021-data-only-parser-table-sidecar.md +50 -0
  35. data/docs/decisions/0022-manifest-bound-verification-report.md +77 -0
  36. data/docs/decisions/0023-syntax-only-repair-results.md +48 -0
  37. data/docs/decisions/0024-direct-ielr-construction.md +42 -0
  38. data/docs/decisions/README.md +74 -0
  39. data/docs/declarative-configuration.md +262 -0
  40. data/docs/development.md +179 -2
  41. data/docs/direct-ielr-decision.md +120 -0
  42. data/docs/direct-multi-entry-decision.md +82 -0
  43. data/docs/editor-setup.md +2 -1
  44. data/docs/error-ux-review-rubric-v1.md +117 -0
  45. data/docs/error-ux-reviews/v1/records/README.md +22 -0
  46. data/docs/error-ux-round2-review-status-v1.json +27 -0
  47. data/docs/error-ux-round2-reviews/v1/records/README.md +30 -0
  48. data/docs/error-ux-round2-v1.json +1581 -0
  49. data/docs/error-ux-round2.md +111 -0
  50. data/docs/error-ux.md +54 -0
  51. data/docs/getting-started.md +80 -0
  52. data/docs/grammar-reference.md +184 -13
  53. data/docs/ielr-design.md +43 -0
  54. data/docs/ielr.md +92 -0
  55. data/docs/ja/bison-import.md +51 -0
  56. data/docs/ja/stable-api.md +53 -0
  57. data/docs/lexer-construction-profile.md +109 -0
  58. data/docs/lexer-migration.md +5 -0
  59. data/docs/maturity.md +128 -0
  60. data/docs/project-site-strategy.md +54 -0
  61. data/docs/racc-migration-evidence.md +45 -0
  62. data/docs/racc-migration.md +11 -0
  63. data/docs/release-readiness.md +126 -68
  64. data/docs/repair-semantics.md +123 -0
  65. data/docs/runtime-abi-evolution.md +307 -0
  66. data/docs/stability.md +144 -34
  67. data/docs/status.md +43 -0
  68. data/docs/syntax-sessions.md +183 -0
  69. data/docs/table-artifact.md +125 -0
  70. data/docs/test-interactions.md +219 -0
  71. data/docs/verification-report.md +137 -0
  72. data/docs/verifier-trust-boundary.md +199 -0
  73. data/docs/workloads.md +132 -0
  74. data/lib/ibex/analysis/digraph.rb +128 -0
  75. data/lib/ibex/analysis.rb +1 -0
  76. data/lib/ibex/bison_import/importer.rb +516 -0
  77. data/lib/ibex/bison_import/tokenizer.rb +260 -0
  78. data/lib/ibex/bison_import.rb +200 -0
  79. data/lib/ibex/bounded_subprocess.rb +171 -0
  80. data/lib/ibex/cli/ambiguity.rb +14 -5
  81. data/lib/ibex/cli/analysis.rb +134 -0
  82. data/lib/ibex/cli/bison_import.rb +121 -0
  83. data/lib/ibex/cli/config.rb +128 -0
  84. data/lib/ibex/cli/diagnostics.rb +31 -11
  85. data/lib/ibex/cli/documentation.rb +11 -8
  86. data/lib/ibex/cli/equiv.rb +169 -0
  87. data/lib/ibex/cli/error_messages.rb +11 -4
  88. data/lib/ibex/cli/explain.rb +14 -5
  89. data/lib/ibex/cli/fix.rb +203 -0
  90. data/lib/ibex/cli/formatting.rb +11 -10
  91. data/lib/ibex/cli/fuzz.rb +200 -0
  92. data/lib/ibex/cli/fuzz_regressions.rb +145 -0
  93. data/lib/ibex/cli/generation_artifacts.rb +53 -2
  94. data/lib/ibex/cli/generation_error_messages.rb +1 -1
  95. data/lib/ibex/cli/grammar_tests.rb +32 -14
  96. data/lib/ibex/cli/ir_tools.rb +5 -61
  97. data/lib/ibex/cli/outputs.rb +60 -33
  98. data/lib/ibex/cli/reduce.rb +202 -0
  99. data/lib/ibex/cli/reduce_reporting.rb +71 -0
  100. data/lib/ibex/cli/samples.rb +49 -23
  101. data/lib/ibex/cli/verify.rb +116 -0
  102. data/lib/ibex/cli/watch.rb +6 -5
  103. data/lib/ibex/cli.rb +357 -56
  104. data/lib/ibex/codegen/action_locations.rb +1 -1
  105. data/lib/ibex/codegen/action_method_source.rb +5 -6
  106. data/lib/ibex/codegen/action_source.rb +3 -2
  107. data/lib/ibex/codegen/ambiguity.rb +5 -4
  108. data/lib/ibex/codegen/explain.rb +123 -55
  109. data/lib/ibex/codegen/generated_action_abi.rb +10 -5
  110. data/lib/ibex/codegen/rbs.rb +15 -7
  111. data/lib/ibex/codegen/report.rb +25 -13
  112. data/lib/ibex/codegen/ruby.rb +28 -64
  113. data/lib/ibex/codegen/ruby_actions.rb +9 -6
  114. data/lib/ibex/codegen/ruby_syntax.rb +15 -9
  115. data/lib/ibex/configuration/analysis_grammar.rb +35 -0
  116. data/lib/ibex/configuration/explanation.rb +421 -0
  117. data/lib/ibex/configuration/inspector.rb +232 -0
  118. data/lib/ibex/configuration.rb +580 -0
  119. data/lib/ibex/coverage/collector.rb +21 -11
  120. data/lib/ibex/coverage/event_stream.rb +13 -7
  121. data/lib/ibex/coverage/report.rb +26 -18
  122. data/lib/ibex/coverage/runtime_event_validator.rb +30 -21
  123. data/lib/ibex/delta_reducer.rb +99 -0
  124. data/lib/ibex/diff.rb +140 -0
  125. data/lib/ibex/equiv/machine.rb +135 -0
  126. data/lib/ibex/equiv.rb +373 -0
  127. data/lib/ibex/fix.rb +557 -0
  128. data/lib/ibex/frontend/ast.rb +22 -2
  129. data/lib/ibex/frontend/bootstrap_parser.rb +6 -13
  130. data/lib/ibex/frontend/diagnostic.rb +1 -1
  131. data/lib/ibex/frontend/formatter.rb +72 -26
  132. data/lib/ibex/frontend/generated_parser.rb +147 -117
  133. data/lib/ibex/frontend/generated_parser_base.rb +7 -3
  134. data/lib/ibex/frontend/generated_parser_includes.rb +1 -11
  135. data/lib/ibex/frontend/generation.rb +1 -1
  136. data/lib/ibex/frontend/parser/declarations.rb +17 -2
  137. data/lib/ibex/frontend/parser_configuration_support.rb +56 -0
  138. data/lib/ibex/frontend/regenerator.rb +1 -0
  139. data/lib/ibex/frontend/resolution.rb +2 -1
  140. data/lib/ibex/frontend/resolver.rb +1 -1
  141. data/lib/ibex/frontend/rule_documentation.rb +2 -1
  142. data/lib/ibex/frontend/source_cursor.rb +2 -2
  143. data/lib/ibex/frontend/source_span.rb +9 -1
  144. data/lib/ibex/frontend/token_adapter/declaration_state.rb +38 -6
  145. data/lib/ibex/frontend/token_adapter.rb +10 -0
  146. data/lib/ibex/frontend.rb +1 -0
  147. data/lib/ibex/fuzz.rb +219 -0
  148. data/lib/ibex/generation_input.rb +1 -1
  149. data/lib/ibex/generation_manifest.rb +36 -25
  150. data/lib/ibex/generation_transaction.rb +1 -1
  151. data/lib/ibex/generation_transaction_recovery.rb +4 -4
  152. data/lib/ibex/generation_transaction_validation.rb +2 -2
  153. data/lib/ibex/grammar_tests.rb +1 -1
  154. data/lib/ibex/ir/automaton_ir.rb +61 -19
  155. data/lib/ibex/ir/grammar_ir.rb +76 -45
  156. data/lib/ibex/ir/lexer_ir.rb +5 -5
  157. data/lib/ibex/ir/parser_contract.rb +135 -0
  158. data/lib/ibex/ir/serialize.rb +203 -76
  159. data/lib/ibex/ir/validator/automaton.rb +64 -34
  160. data/lib/ibex/ir/validator/base.rb +51 -33
  161. data/lib/ibex/ir/validator/grammar.rb +113 -83
  162. data/lib/ibex/ir/validator/lexer.rb +2 -2
  163. data/lib/ibex/ir/validator.rb +2 -1
  164. data/lib/ibex/ir.rb +16 -3
  165. data/lib/ibex/lalr/build_metrics.rb +50 -2
  166. data/lib/ibex/lalr/builder.rb +191 -56
  167. data/lib/ibex/lalr/conflict_search.rb +15 -4
  168. data/lib/ibex/lalr/counterexample.rb +19 -14
  169. data/lib/ibex/lalr/direct_lookaheads.rb +110 -57
  170. data/lib/ibex/lalr/goto_follows.rb +229 -0
  171. data/lib/ibex/lalr/ielr/annotator.rb +214 -0
  172. data/lib/ibex/lalr/ielr/bits.rb +28 -0
  173. data/lib/ibex/lalr/ielr/inadequacy.rb +47 -0
  174. data/lib/ibex/lalr/ielr/item_lookaheads.rb +78 -0
  175. data/lib/ibex/lalr/ielr/pipeline.rb +75 -0
  176. data/lib/ibex/lalr/ielr/split_stability.rb +78 -0
  177. data/lib/ibex/lalr/ielr/split_state.rb +20 -0
  178. data/lib/ibex/lalr/ielr/state_splitter.rb +258 -0
  179. data/lib/ibex/lalr/ielr_partition.rb +22 -8
  180. data/lib/ibex/lalr/inadequacy_report.rb +50 -0
  181. data/lib/ibex/lalr/lookahead_propagation.rb +111 -0
  182. data/lib/ibex/lalr/lr0_collection.rb +121 -0
  183. data/lib/ibex/lalr/unreachable_states.rb +80 -0
  184. data/lib/ibex/lalr.rb +52 -1
  185. data/lib/ibex/location.rb +3 -3
  186. data/lib/ibex/lsp/document_handlers.rb +9 -7
  187. data/lib/ibex/lsp/initialization_handlers.rb +9 -7
  188. data/lib/ibex/lsp/navigation_handlers.rb +25 -11
  189. data/lib/ibex/lsp/parser_configuration_assistance.rb +149 -0
  190. data/lib/ibex/lsp/position_codec.rb +6 -2
  191. data/lib/ibex/lsp/request_handlers.rb +3 -2
  192. data/lib/ibex/lsp/request_support.rb +14 -7
  193. data/lib/ibex/lsp/server.rb +13 -11
  194. data/lib/ibex/lsp/symbol_index.rb +13 -13
  195. data/lib/ibex/lsp/symbol_index_builder.rb +30 -20
  196. data/lib/ibex/lsp/symbol_occurrence.rb +8 -2
  197. data/lib/ibex/lsp/transport.rb +13 -3
  198. data/lib/ibex/lsp/workspace.rb +5 -4
  199. data/lib/ibex/lsp/workspace_analyzer.rb +1 -1
  200. data/lib/ibex/lsp.rb +1 -0
  201. data/lib/ibex/messages/en.yml +28 -0
  202. data/lib/ibex/messages/ja.yml +28 -0
  203. data/lib/ibex/messages.rb +68 -0
  204. data/lib/ibex/metrics.rb +175 -0
  205. data/lib/ibex/normalize/declarations.rb +2 -0
  206. data/lib/ibex/normalize/diagnostics.rb +63 -38
  207. data/lib/ibex/normalize/expander.rb +5 -4
  208. data/lib/ibex/normalize/expression.rb +8 -6
  209. data/lib/ibex/normalize/grammar_builder.rb +26 -0
  210. data/lib/ibex/normalize/inline_expansion.rb +100 -49
  211. data/lib/ibex/normalize/lexer.rb +3 -3
  212. data/lib/ibex/normalize/parameter_ebnf_lowering.rb +11 -10
  213. data/lib/ibex/normalize/parameter_lowering.rb +40 -23
  214. data/lib/ibex/normalize/parameters.rb +31 -4
  215. data/lib/ibex/normalize/parser_configuration.rb +70 -0
  216. data/lib/ibex/normalize.rb +10 -20
  217. data/lib/ibex/racc_migration/report.rb +6 -3
  218. data/lib/ibex/rake_task.rb +1 -1
  219. data/lib/ibex/samples.rb +43 -13
  220. data/lib/ibex/table_artifact/builder.rb +266 -0
  221. data/lib/ibex/table_artifact/cst_projection.rb +70 -0
  222. data/lib/ibex/table_artifact/document.rb +39 -0
  223. data/lib/ibex/table_artifact/executor.rb +187 -0
  224. data/lib/ibex/table_artifact/serializer.rb +57 -0
  225. data/lib/ibex/table_artifact/validator/metadata.rb +179 -0
  226. data/lib/ibex/table_artifact/validator/support.rb +86 -0
  227. data/lib/ibex/table_artifact/validator/tables.rb +238 -0
  228. data/lib/ibex/table_artifact/validator.rb +253 -0
  229. data/lib/ibex/table_artifact.rb +88 -0
  230. data/lib/ibex/table_simulation/result.rb +6 -2
  231. data/lib/ibex/table_simulation/step.rb +3 -1
  232. data/lib/ibex/tables.rb +14 -0
  233. data/lib/ibex/verifiable_generation_bundle.rb +86 -0
  234. data/lib/ibex/verification_report/builder.rb +159 -0
  235. data/lib/ibex/verification_report/canonical_ir.rb +123 -0
  236. data/lib/ibex/verification_report/logical_path.rb +68 -0
  237. data/lib/ibex/verification_report/validator.rb +329 -0
  238. data/lib/ibex/verification_report.rb +69 -0
  239. data/lib/ibex/verify/action_correspondence.rb +138 -0
  240. data/lib/ibex/verify/language_witness.rb +295 -0
  241. data/lib/ibex/verify/reference_collection.rb +190 -0
  242. data/lib/ibex/verify/result.rb +73 -0
  243. data/lib/ibex/verify/verifier.rb +598 -0
  244. data/lib/ibex/verify.rb +15 -0
  245. data/lib/ibex/version.rb +1 -1
  246. data/lib/ibex/watch/runner.rb +10 -1
  247. data/lib/ibex/watch/source_snapshot.rb +13 -8
  248. data/lib/ibex.rb +10 -0
  249. data/schema/{automaton-ir-v1.schema.json → automaton-ir-definitions.schema.json} +6 -6
  250. data/schema/{automaton-ir-v2.schema.json → automaton-ir.schema.json} +14 -7
  251. data/schema/bison-import-v1.schema.json +106 -0
  252. data/schema/conflict-explanation-review-v1.schema.json +196 -0
  253. data/schema/conflict-explanation-study-v1.schema.json +528 -0
  254. data/schema/construction-profile-v1.schema.json +779 -0
  255. data/schema/diff-v1.schema.json +41 -0
  256. data/schema/direct-ielr-decision-v1.schema.json +200 -0
  257. data/schema/equiv-v1.schema.json +64 -0
  258. data/schema/error-ux-review-v1.schema.json +609 -0
  259. data/schema/error-ux-round2-review-v1.schema.json +191 -0
  260. data/schema/error-ux-round2-v1.schema.json +519 -0
  261. data/schema/explain-v1.schema.json +63 -1
  262. data/schema/fix-v1.schema.json +64 -0
  263. data/schema/fix-v2.schema.json +66 -0
  264. data/schema/fix-v3.schema.json +101 -0
  265. data/schema/fuzz-regression-v1.schema.json +79 -0
  266. data/schema/fuzz-v1.schema.json +114 -0
  267. data/schema/{grammar-ir-v2.schema.json → grammar-ir-extensions.schema.json} +20 -65
  268. data/schema/{grammar-ir-v1.schema.json → grammar-ir-foundation.schema.json} +3 -3
  269. data/schema/grammar-ir.schema.json +271 -0
  270. data/schema/ielr-benchmark-v1.schema.json +85 -0
  271. data/schema/lexer-profile-v1.schema.json +491 -0
  272. data/schema/metrics-v1.schema.json +60 -0
  273. data/schema/reduce-v1.schema.json +22 -0
  274. data/schema/reduce-v2.schema.json +63 -0
  275. data/schema/table-artifact-v1.schema.json +377 -0
  276. data/schema/verification-report-v1.schema.json +222 -0
  277. data/schema/verify-v1.schema.json +42 -0
  278. data/sig/ibex/analysis/digraph.rbs +19 -0
  279. data/sig/ibex/bison_import/importer.rbs +140 -0
  280. data/sig/ibex/bison_import/tokenizer.rbs +91 -0
  281. data/sig/ibex/bison_import.rbs +95 -0
  282. data/sig/ibex/bounded_subprocess.rbs +76 -0
  283. data/sig/ibex/cli/ambiguity.rbs +6 -0
  284. data/sig/ibex/cli/analysis.rbs +43 -0
  285. data/sig/ibex/cli/bison_import.rbs +32 -0
  286. data/sig/ibex/cli/config.rbs +35 -0
  287. data/sig/ibex/cli/diagnostics.rbs +16 -3
  288. data/sig/ibex/cli/documentation.rbs +5 -1
  289. data/sig/ibex/cli/equiv.rbs +49 -0
  290. data/sig/ibex/cli/error_messages.rbs +6 -0
  291. data/sig/ibex/cli/explain.rbs +6 -0
  292. data/sig/ibex/cli/fix.rbs +53 -0
  293. data/sig/ibex/cli/formatting.rbs +5 -1
  294. data/sig/ibex/cli/fuzz.rbs +47 -0
  295. data/sig/ibex/cli/fuzz_regressions.rbs +40 -0
  296. data/sig/ibex/cli/generation_artifacts.rbs +21 -2
  297. data/sig/ibex/cli/generation_error_messages.rbs +2 -2
  298. data/sig/ibex/cli/grammar_tests.rbs +15 -3
  299. data/sig/ibex/cli/ir_tools.rbs +7 -19
  300. data/sig/ibex/cli/outputs.rbs +9 -3
  301. data/sig/ibex/cli/reduce.rbs +60 -0
  302. data/sig/ibex/cli/reduce_reporting.rbs +27 -0
  303. data/sig/ibex/cli/samples.rbs +8 -0
  304. data/sig/ibex/cli/verify.rbs +28 -0
  305. data/sig/ibex/cli/watch.rbs +2 -2
  306. data/sig/ibex/cli.rbs +79 -5
  307. data/sig/ibex/codegen/action_method_source.rbs +4 -4
  308. data/sig/ibex/codegen/explain.rbs +45 -25
  309. data/sig/ibex/codegen/generated_action_abi.rbs +14 -10
  310. data/sig/ibex/codegen/rbs.rbs +12 -10
  311. data/sig/ibex/codegen/report.rbs +12 -12
  312. data/sig/ibex/codegen/ruby.rbs +18 -15
  313. data/sig/ibex/codegen/ruby_actions.rbs +6 -6
  314. data/sig/ibex/codegen/ruby_syntax.rbs +10 -8
  315. data/sig/ibex/configuration/analysis_grammar.rbs +13 -0
  316. data/sig/ibex/configuration/explanation.rbs +195 -0
  317. data/sig/ibex/configuration/inspector.rbs +53 -0
  318. data/sig/ibex/configuration.rbs +242 -0
  319. data/sig/ibex/coverage/collector.rbs +16 -14
  320. data/sig/ibex/coverage/event_stream.rbs +12 -10
  321. data/sig/ibex/coverage/report.rbs +20 -18
  322. data/sig/ibex/coverage/runtime_event_validator.rbs +38 -36
  323. data/sig/ibex/delta_reducer.rbs +38 -0
  324. data/sig/ibex/diff.rbs +47 -0
  325. data/sig/ibex/equiv/machine.rbs +54 -0
  326. data/sig/ibex/equiv.rbs +129 -0
  327. data/sig/ibex/fix.rbs +138 -0
  328. data/sig/ibex/frontend/ast.rbs +33 -7
  329. data/sig/ibex/frontend/bootstrap_parser.rbs +2 -0
  330. data/sig/ibex/frontend/diagnostic.rbs +2 -2
  331. data/sig/ibex/frontend/formatter.rbs +38 -30
  332. data/sig/ibex/frontend/generated_parser.rbs +87 -77
  333. data/sig/ibex/frontend/generated_parser_base.rbs +4 -2
  334. data/sig/ibex/frontend/parser/declarations.rbs +3 -0
  335. data/sig/ibex/frontend/parser_configuration_support.rbs +27 -0
  336. data/sig/ibex/frontend/resolution.rbs +3 -2
  337. data/sig/ibex/frontend/source_cursor.rbs +2 -2
  338. data/sig/ibex/frontend/source_span.rbs +5 -2
  339. data/sig/ibex/frontend/token_adapter/declaration_state.rbs +13 -1
  340. data/sig/ibex/frontend/token_adapter.rbs +6 -0
  341. data/sig/ibex/fuzz.rbs +71 -0
  342. data/sig/ibex/generation_input.rbs +2 -2
  343. data/sig/ibex/generation_manifest.rbs +35 -32
  344. data/sig/ibex/generation_transaction_recovery.rbs +2 -2
  345. data/sig/ibex/generation_transaction_validation.rbs +2 -2
  346. data/sig/ibex/grammar_tests.rbs +2 -2
  347. data/sig/ibex/ir/automaton_ir.rbs +30 -11
  348. data/sig/ibex/ir/grammar_ir.rbs +41 -27
  349. data/sig/ibex/ir/lexer_ir.rbs +8 -8
  350. data/sig/ibex/ir/parser_contract.rbs +69 -0
  351. data/sig/ibex/ir/serialize.rbs +63 -28
  352. data/sig/ibex/ir/validator/automaton.rbs +47 -44
  353. data/sig/ibex/ir/validator/base.rbs +35 -31
  354. data/sig/ibex/ir/validator/grammar.rbs +78 -67
  355. data/sig/ibex/ir/validator/lexer.rbs +4 -4
  356. data/sig/ibex/ir.rbs +9 -3
  357. data/sig/ibex/lalr/build_metrics.rbs +42 -2
  358. data/sig/ibex/lalr/builder.rbs +75 -24
  359. data/sig/ibex/lalr/conflict_search.rbs +5 -2
  360. data/sig/ibex/lalr/counterexample.rbs +17 -14
  361. data/sig/ibex/lalr/direct_lookaheads.rbs +35 -28
  362. data/sig/ibex/lalr/goto_follows.rbs +89 -0
  363. data/sig/ibex/lalr/ielr/annotator.rbs +67 -0
  364. data/sig/ibex/lalr/ielr/bits.rbs +14 -0
  365. data/sig/ibex/lalr/ielr/inadequacy.rbs +24 -0
  366. data/sig/ibex/lalr/ielr/item_lookaheads.rbs +35 -0
  367. data/sig/ibex/lalr/ielr/pipeline.rbs +17 -0
  368. data/sig/ibex/lalr/ielr/split_stability.rbs +27 -0
  369. data/sig/ibex/lalr/ielr/split_state.rbs +14 -0
  370. data/sig/ibex/lalr/ielr/state_splitter.rbs +76 -0
  371. data/sig/ibex/lalr/ielr_partition.rbs +17 -5
  372. data/sig/ibex/lalr/inadequacy_report.rbs +21 -0
  373. data/sig/ibex/lalr/lookahead_propagation.rbs +38 -0
  374. data/sig/ibex/lalr/lr0_collection.rbs +50 -0
  375. data/sig/ibex/lalr/unreachable_states.rbs +25 -0
  376. data/sig/ibex/lalr.rbs +11 -1
  377. data/sig/ibex/location.rbs +6 -6
  378. data/sig/ibex/lsp/document_handlers.rbs +8 -8
  379. data/sig/ibex/lsp/initialization_handlers.rbs +12 -12
  380. data/sig/ibex/lsp/navigation_handlers.rbs +15 -12
  381. data/sig/ibex/lsp/parser_configuration_assistance.rbs +49 -0
  382. data/sig/ibex/lsp/position_codec.rbs +8 -4
  383. data/sig/ibex/lsp/request_handlers.rbs +4 -4
  384. data/sig/ibex/lsp/request_support.rbs +8 -8
  385. data/sig/ibex/lsp/server.rbs +16 -16
  386. data/sig/ibex/lsp/symbol_index.rbs +20 -21
  387. data/sig/ibex/lsp/symbol_index_builder.rbs +9 -8
  388. data/sig/ibex/lsp/symbol_occurrence.rbs +11 -5
  389. data/sig/ibex/lsp/transport.rbs +18 -6
  390. data/sig/ibex/lsp/workspace.rbs +3 -2
  391. data/sig/ibex/lsp/workspace_analyzer.rbs +1 -1
  392. data/sig/ibex/messages.rbs +26 -0
  393. data/sig/ibex/metrics.rbs +50 -0
  394. data/sig/ibex/normalize/diagnostics.rbs +4 -4
  395. data/sig/ibex/normalize/expander.rbs +2 -2
  396. data/sig/ibex/normalize/expression.rbs +10 -8
  397. data/sig/ibex/normalize/grammar_builder.rbs +11 -0
  398. data/sig/ibex/normalize/inline_expansion.rbs +59 -50
  399. data/sig/ibex/normalize/lexer.rbs +4 -4
  400. data/sig/ibex/normalize/parameter_ebnf_lowering.rbs +15 -14
  401. data/sig/ibex/normalize/parameter_lowering.rbs +18 -18
  402. data/sig/ibex/normalize/parameters.rbs +13 -8
  403. data/sig/ibex/normalize/parser_configuration.rbs +23 -0
  404. data/sig/ibex/normalize.rbs +11 -5
  405. data/sig/ibex/racc_migration/report.rbs +8 -6
  406. data/sig/ibex/rake_task.rbs +1 -1
  407. data/sig/ibex/samples.rbs +13 -4
  408. data/sig/ibex/table_artifact/builder.rbs +93 -0
  409. data/sig/ibex/table_artifact/cst_projection.rbs +20 -0
  410. data/sig/ibex/table_artifact/document.rbs +27 -0
  411. data/sig/ibex/table_artifact/executor.rbs +66 -0
  412. data/sig/ibex/table_artifact/serializer.rbs +25 -0
  413. data/sig/ibex/table_artifact/validator/metadata.rbs +52 -0
  414. data/sig/ibex/table_artifact/validator/support.rbs +46 -0
  415. data/sig/ibex/table_artifact/validator/tables.rbs +63 -0
  416. data/sig/ibex/table_artifact/validator.rbs +66 -0
  417. data/sig/ibex/table_artifact.rbs +32 -0
  418. data/sig/ibex/table_simulation/result.rbs +8 -4
  419. data/sig/ibex/table_simulation/step.rbs +4 -2
  420. data/sig/ibex/tables.rbs +10 -9
  421. data/sig/ibex/verifiable_generation_bundle.rbs +24 -0
  422. data/sig/ibex/verification_report/builder.rbs +53 -0
  423. data/sig/ibex/verification_report/canonical_ir.rbs +41 -0
  424. data/sig/ibex/verification_report/logical_path.rbs +34 -0
  425. data/sig/ibex/verification_report/validator.rbs +114 -0
  426. data/sig/ibex/verification_report.rbs +44 -0
  427. data/sig/ibex/verify/action_correspondence.rbs +50 -0
  428. data/sig/ibex/verify/language_witness.rbs +112 -0
  429. data/sig/ibex/verify/reference_collection.rbs +63 -0
  430. data/sig/ibex/verify/result.rbs +52 -0
  431. data/sig/ibex/verify/verifier.rbs +170 -0
  432. data/sig/ibex/verify.rbs +6 -0
  433. data/sig/ibex/watch/runner.rbs +12 -2
  434. data/sig/ibex/watch/source_snapshot.rbs +13 -9
  435. metadata +232 -12
  436. data/lib/ibex/ir/migration.rb +0 -120
  437. data/sig/ibex/ir/migration.rbs +0 -34
@@ -0,0 +1,6 @@
1
+ # Generated from lib/ibex/verify.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module Verify
5
+ end
6
+ end
@@ -2,6 +2,16 @@
2
2
 
3
3
  module Ibex
4
4
  module Watch
5
+ interface _BuildResult
6
+ def source_paths: () -> Array[String]
7
+
8
+ def attempted_paths: () -> Array[String]
9
+ end
10
+
11
+ interface _Output
12
+ def puts: (*Object?) -> Object?
13
+ end
14
+
5
15
  # Polls source fingerprints, debounces changes, and publishes stable builds.
6
16
  class Runner
7
17
  DEFAULT_INTERVAL: Float
@@ -9,8 +19,8 @@ module Ibex
9
19
  DEFAULT_DEBOUNCE: Float
10
20
 
11
21
  # rubocop:disable Layout/LineLength
12
- # @rbs (paths: Array[String], build: ^() -> untyped, publish: ^(untyped, SourceSnapshot, ^() -> bool) -> void, failure_paths: ^() -> Array[String], stderr: untyped, clock: ^() -> Float, sleeper: ^(Float) -> void, iteration_hook: ^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil), ?interval: Float, ?debounce: Float) -> void
13
- def initialize: (paths: Array[String], build: ^() -> untyped, publish: ^(untyped, SourceSnapshot, ^() -> bool) -> void, failure_paths: ^() -> Array[String], stderr: untyped, clock: ^() -> Float, sleeper: ^(Float) -> void, iteration_hook: ^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil), ?interval: Float, ?debounce: Float) -> void
22
+ # @rbs (paths: Array[String], build: ^() -> _BuildResult, publish: ^(_BuildResult, SourceSnapshot, ^() -> bool) -> void, failure_paths: ^() -> Array[String], stderr: _Output, clock: ^() -> Float, sleeper: ^(Float) -> void, iteration_hook: ^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil), ?interval: Float, ?debounce: Float) -> void
23
+ def initialize: (paths: Array[String], build: ^() -> _BuildResult, publish: ^(_BuildResult, SourceSnapshot, ^() -> bool) -> void, failure_paths: ^() -> Array[String], stderr: _Output, clock: ^() -> Float, sleeper: ^(Float) -> void, iteration_hook: ^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil), ?interval: Float, ?debounce: Float) -> void
14
24
 
15
25
  # @rbs () -> Integer
16
26
  def run: () -> Integer
@@ -4,6 +4,10 @@ module Ibex
4
4
  module Watch
5
5
  # Stable metadata and content fingerprints for watched source paths.
6
6
  class SourceSnapshot
7
+ type fingerprint_value = Symbol | String | Integer | nil | Hash[Symbol, fingerprint_value]
8
+
9
+ type fingerprint = Hash[Symbol, fingerprint_value]
10
+
7
11
  attr_reader paths: Array[String]
8
12
 
9
13
  # @rbs (Array[String] paths) -> void
@@ -16,18 +20,18 @@ module Ibex
16
20
  # @rbs (SourceSnapshot older) -> bool
17
21
  def unchanged_since?: (SourceSnapshot older) -> bool
18
22
 
19
- attr_reader entries: Hash[String, Hash[Symbol, untyped]]
23
+ attr_reader entries: Hash[String, fingerprint]
20
24
 
21
- # @rbs (String path) -> Hash[Symbol, untyped]?
22
- def entry: (String path) -> Hash[Symbol, untyped]?
25
+ # @rbs (String path) -> fingerprint?
26
+ def entry: (String path) -> fingerprint?
23
27
 
24
28
  private
25
29
 
26
- # @rbs (String path) -> Hash[Symbol, untyped]
27
- def fingerprint: (String path) -> Hash[Symbol, untyped]
30
+ # @rbs (String path) -> fingerprint
31
+ def fingerprint: (String path) -> fingerprint
28
32
 
29
- # @rbs (File::Stat stat) -> Hash[Symbol, untyped]
30
- def stat_signature: (File::Stat stat) -> Hash[Symbol, untyped]
33
+ # @rbs (File::Stat stat) -> fingerprint
34
+ def stat_signature: (File::Stat stat) -> fingerprint
31
35
 
32
36
  # @rbs (File::Stat stat) -> Symbol
33
37
  def file_kind: (File::Stat stat) -> Symbol
@@ -35,8 +39,8 @@ module Ibex
35
39
  # @rbs (Time time) -> Integer
36
40
  def nanoseconds: (Time time) -> Integer
37
41
 
38
- # @rbs (Hash[Symbol, untyped] value, String path) -> void
39
- def add_resolved_target: (Hash[Symbol, untyped] value, String path) -> void
42
+ # @rbs (fingerprint value, String path) -> void
43
+ def add_resolved_target: (fingerprint value, String path) -> void
40
44
  end
41
45
  end
42
46
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yudai Takada
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 0.2.0
18
+ version: 0.3.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 0.2.0
25
+ version: 0.3.0
26
26
  description: Ibex generates LR parsers from racc-compatible grammars without native
27
27
  extensions.
28
28
  email:
@@ -35,16 +35,76 @@ files:
35
35
  - LICENSE.txt
36
36
  - README.md
37
37
  - docs/architecture.md
38
+ - docs/bison-import.md
39
+ - docs/comparison-policy.md
40
+ - docs/configuration-model.md
41
+ - docs/configuration-report.md
42
+ - docs/conflict-explanation-reviews/v1/records/README.md
43
+ - docs/conflict-explanation-study.md
44
+ - docs/construction-profiling.md
38
45
  - docs/cst-migration.md
39
46
  - docs/cst.md
47
+ - docs/decisions/0000-template.md
48
+ - docs/decisions/0001-separate-ir-pipeline.md
49
+ - docs/decisions/0002-opaque-user-code-boundary.md
50
+ - docs/decisions/0003-self-hosted-grammar-frontend.md
51
+ - docs/decisions/0004-shared-semantic-and-lossless-source-model.md
52
+ - docs/decisions/0005-contained-grammar-composition.md
53
+ - docs/decisions/0006-bounded-structural-grammar-lowering.md
54
+ - docs/decisions/0007-shared-parser-construction-pipeline.md
55
+ - docs/decisions/0008-versioned-runtime-package-boundary.md
56
+ - docs/decisions/0009-isolated-parser-sessions.md
57
+ - docs/decisions/0010-committed-runtime-observation.md
58
+ - docs/decisions/0011-versioned-semantic-action-boundary.md
59
+ - docs/decisions/0012-bounded-nonexecuting-analysis.md
60
+ - docs/decisions/0013-transactional-generation-publication.md
61
+ - docs/decisions/0014-versioned-generated-lexer.md
62
+ - docs/decisions/0015-worker-isolated-browser-analysis.md
63
+ - docs/decisions/0016-red-green-concrete-syntax.md
64
+ - docs/decisions/0017-persistent-syntax-artifacts.md
65
+ - docs/decisions/0018-conservative-incremental-syntax-reuse.md
66
+ - docs/decisions/0019-runtime-syntax-session-boundary.md
67
+ - docs/decisions/0020-grammar-ir-parser-contract.md
68
+ - docs/decisions/0021-data-only-parser-table-sidecar.md
69
+ - docs/decisions/0022-manifest-bound-verification-report.md
70
+ - docs/decisions/0023-syntax-only-repair-results.md
71
+ - docs/decisions/0024-direct-ielr-construction.md
72
+ - docs/decisions/README.md
73
+ - docs/declarative-configuration.md
40
74
  - docs/development.md
75
+ - docs/direct-ielr-decision.md
76
+ - docs/direct-multi-entry-decision.md
41
77
  - docs/editor-setup.md
78
+ - docs/error-ux-review-rubric-v1.md
79
+ - docs/error-ux-reviews/v1/records/README.md
80
+ - docs/error-ux-round2-review-status-v1.json
81
+ - docs/error-ux-round2-reviews/v1/records/README.md
82
+ - docs/error-ux-round2-v1.json
83
+ - docs/error-ux-round2.md
42
84
  - docs/error-ux.md
85
+ - docs/getting-started.md
43
86
  - docs/grammar-reference.md
87
+ - docs/ielr-design.md
88
+ - docs/ielr.md
89
+ - docs/ja/bison-import.md
90
+ - docs/ja/stable-api.md
91
+ - docs/lexer-construction-profile.md
44
92
  - docs/lexer-migration.md
93
+ - docs/maturity.md
94
+ - docs/project-site-strategy.md
95
+ - docs/racc-migration-evidence.md
45
96
  - docs/racc-migration.md
46
97
  - docs/release-readiness.md
98
+ - docs/repair-semantics.md
99
+ - docs/runtime-abi-evolution.md
47
100
  - docs/stability.md
101
+ - docs/status.md
102
+ - docs/syntax-sessions.md
103
+ - docs/table-artifact.md
104
+ - docs/test-interactions.md
105
+ - docs/verification-report.md
106
+ - docs/verifier-trust-boundary.md
107
+ - docs/workloads.md
48
108
  - examples/README.md
49
109
  - examples/calculator.y
50
110
  - examples/csv.y
@@ -54,18 +114,30 @@ files:
54
114
  - exe/ibex
55
115
  - lib/ibex.rb
56
116
  - lib/ibex/analysis.rb
117
+ - lib/ibex/analysis/digraph.rb
57
118
  - lib/ibex/analysis/sets.rb
58
119
  - lib/ibex/artifact_set.rb
120
+ - lib/ibex/bison_import.rb
121
+ - lib/ibex/bison_import/importer.rb
122
+ - lib/ibex/bison_import/tokenizer.rb
123
+ - lib/ibex/bounded_subprocess.rb
59
124
  - lib/ibex/cli.rb
60
125
  - lib/ibex/cli/ambiguity.rb
126
+ - lib/ibex/cli/analysis.rb
127
+ - lib/ibex/cli/bison_import.rb
128
+ - lib/ibex/cli/config.rb
61
129
  - lib/ibex/cli/counterexample_options.rb
62
130
  - lib/ibex/cli/coverage.rb
63
131
  - lib/ibex/cli/debug.rb
64
132
  - lib/ibex/cli/diagnostics.rb
65
133
  - lib/ibex/cli/documentation.rb
134
+ - lib/ibex/cli/equiv.rb
66
135
  - lib/ibex/cli/error_messages.rb
67
136
  - lib/ibex/cli/explain.rb
137
+ - lib/ibex/cli/fix.rb
68
138
  - lib/ibex/cli/formatting.rb
139
+ - lib/ibex/cli/fuzz.rb
140
+ - lib/ibex/cli/fuzz_regressions.rb
69
141
  - lib/ibex/cli/generation_artifacts.rb
70
142
  - lib/ibex/cli/generation_error_messages.rb
71
143
  - lib/ibex/cli/grammar_tests.rb
@@ -73,7 +145,10 @@ files:
73
145
  - lib/ibex/cli/lsp.rb
74
146
  - lib/ibex/cli/outputs.rb
75
147
  - lib/ibex/cli/racc_migration.rb
148
+ - lib/ibex/cli/reduce.rb
149
+ - lib/ibex/cli/reduce_reporting.rb
76
150
  - lib/ibex/cli/samples.rb
151
+ - lib/ibex/cli/verify.rb
77
152
  - lib/ibex/cli/watch.rb
78
153
  - lib/ibex/codegen/action_locations.rb
79
154
  - lib/ibex/codegen/action_method_source.rb
@@ -99,11 +174,19 @@ files:
99
174
  - lib/ibex/codegen/ruby_table_metadata.rb
100
175
  - lib/ibex/codegen/ruby_value_printers.rb
101
176
  - lib/ibex/codegen/symbol_labels.rb
177
+ - lib/ibex/configuration.rb
178
+ - lib/ibex/configuration/analysis_grammar.rb
179
+ - lib/ibex/configuration/explanation.rb
180
+ - lib/ibex/configuration/inspector.rb
102
181
  - lib/ibex/coverage.rb
103
182
  - lib/ibex/coverage/collector.rb
104
183
  - lib/ibex/coverage/event_stream.rb
105
184
  - lib/ibex/coverage/report.rb
106
185
  - lib/ibex/coverage/runtime_event_validator.rb
186
+ - lib/ibex/delta_reducer.rb
187
+ - lib/ibex/diff.rb
188
+ - lib/ibex/equiv.rb
189
+ - lib/ibex/equiv/machine.rb
107
190
  - lib/ibex/error.rb
108
191
  - lib/ibex/error_messages.rb
109
192
  - lib/ibex/error_messages/parser.rb
@@ -111,6 +194,7 @@ files:
111
194
  - lib/ibex/error_messages/renderer.rb
112
195
  - lib/ibex/error_messages/sentence_search.rb
113
196
  - lib/ibex/error_messages/update.rb
197
+ - lib/ibex/fix.rb
114
198
  - lib/ibex/frontend.rb
115
199
  - lib/ibex/frontend/action_scanner.rb
116
200
  - lib/ibex/frontend/ast.rb
@@ -131,6 +215,7 @@ files:
131
215
  - lib/ibex/frontend/parser/declarations.rb
132
216
  - lib/ibex/frontend/parser/parameters.rb
133
217
  - lib/ibex/frontend/parser/rules.rb
218
+ - lib/ibex/frontend/parser_configuration_support.rb
134
219
  - lib/ibex/frontend/regenerator.rb
135
220
  - lib/ibex/frontend/resolution.rb
136
221
  - lib/ibex/frontend/resolver.rb
@@ -145,6 +230,7 @@ files:
145
230
  - lib/ibex/frontend/token_adapter/declaration_state.rb
146
231
  - lib/ibex/frontend/token_adapter/delimiter_tracker.rb
147
232
  - lib/ibex/frontend/token_adapter/rule_state.rb
233
+ - lib/ibex/fuzz.rb
148
234
  - lib/ibex/generation_input.rb
149
235
  - lib/ibex/generation_manifest.rb
150
236
  - lib/ibex/generation_transaction.rb
@@ -155,7 +241,7 @@ files:
155
241
  - lib/ibex/ir/automaton_ir.rb
156
242
  - lib/ibex/ir/grammar_ir.rb
157
243
  - lib/ibex/ir/lexer_ir.rb
158
- - lib/ibex/ir/migration.rb
244
+ - lib/ibex/ir/parser_contract.rb
159
245
  - lib/ibex/ir/serialize.rb
160
246
  - lib/ibex/ir/validator.rb
161
247
  - lib/ibex/ir/validator/automaton.rb
@@ -171,8 +257,21 @@ files:
171
257
  - lib/ibex/lalr/counterexample.rb
172
258
  - lib/ibex/lalr/default_reductions.rb
173
259
  - lib/ibex/lalr/direct_lookaheads.rb
260
+ - lib/ibex/lalr/goto_follows.rb
261
+ - lib/ibex/lalr/ielr/annotator.rb
262
+ - lib/ibex/lalr/ielr/bits.rb
263
+ - lib/ibex/lalr/ielr/inadequacy.rb
264
+ - lib/ibex/lalr/ielr/item_lookaheads.rb
265
+ - lib/ibex/lalr/ielr/pipeline.rb
266
+ - lib/ibex/lalr/ielr/split_stability.rb
267
+ - lib/ibex/lalr/ielr/split_state.rb
268
+ - lib/ibex/lalr/ielr/state_splitter.rb
174
269
  - lib/ibex/lalr/ielr_partition.rb
270
+ - lib/ibex/lalr/inadequacy_report.rb
271
+ - lib/ibex/lalr/lookahead_propagation.rb
272
+ - lib/ibex/lalr/lr0_collection.rb
175
273
  - lib/ibex/lalr/on_error_reductions.rb
274
+ - lib/ibex/lalr/unreachable_states.rb
176
275
  - lib/ibex/location.rb
177
276
  - lib/ibex/lsp.rb
178
277
  - lib/ibex/lsp/document_handlers.rb
@@ -181,6 +280,7 @@ files:
181
280
  - lib/ibex/lsp/document_store_validation.rb
182
281
  - lib/ibex/lsp/initialization_handlers.rb
183
282
  - lib/ibex/lsp/navigation_handlers.rb
283
+ - lib/ibex/lsp/parser_configuration_assistance.rb
184
284
  - lib/ibex/lsp/position_codec.rb
185
285
  - lib/ibex/lsp/protocol_error.rb
186
286
  - lib/ibex/lsp/request_handlers.rb
@@ -194,11 +294,16 @@ files:
194
294
  - lib/ibex/lsp/transport.rb
195
295
  - lib/ibex/lsp/workspace.rb
196
296
  - lib/ibex/lsp/workspace_analyzer.rb
297
+ - lib/ibex/messages.rb
298
+ - lib/ibex/messages/en.yml
299
+ - lib/ibex/messages/ja.yml
300
+ - lib/ibex/metrics.rb
197
301
  - lib/ibex/normalize.rb
198
302
  - lib/ibex/normalize/declarations.rb
199
303
  - lib/ibex/normalize/diagnostics.rb
200
304
  - lib/ibex/normalize/expander.rb
201
305
  - lib/ibex/normalize/expression.rb
306
+ - lib/ibex/normalize/grammar_builder.rb
202
307
  - lib/ibex/normalize/inline_expansion.rb
203
308
  - lib/ibex/normalize/inline_validation.rb
204
309
  - lib/ibex/normalize/lexer.rb
@@ -209,6 +314,7 @@ files:
209
314
  - lib/ibex/normalize/parameter_substitution.rb
210
315
  - lib/ibex/normalize/parameter_validation.rb
211
316
  - lib/ibex/normalize/parameters.rb
317
+ - lib/ibex/normalize/parser_configuration.rb
212
318
  - lib/ibex/normalize/recovery_declarations.rb
213
319
  - lib/ibex/racc_migration.rb
214
320
  - lib/ibex/racc_migration/checker.rb
@@ -216,49 +322,107 @@ files:
216
322
  - lib/ibex/racc_migration/report.rb
217
323
  - lib/ibex/rake_task.rb
218
324
  - lib/ibex/samples.rb
325
+ - lib/ibex/table_artifact.rb
326
+ - lib/ibex/table_artifact/builder.rb
327
+ - lib/ibex/table_artifact/cst_projection.rb
328
+ - lib/ibex/table_artifact/document.rb
329
+ - lib/ibex/table_artifact/executor.rb
330
+ - lib/ibex/table_artifact/serializer.rb
331
+ - lib/ibex/table_artifact/validator.rb
332
+ - lib/ibex/table_artifact/validator/metadata.rb
333
+ - lib/ibex/table_artifact/validator/support.rb
334
+ - lib/ibex/table_artifact/validator/tables.rb
219
335
  - lib/ibex/table_simulation.rb
220
336
  - lib/ibex/table_simulation/result.rb
221
337
  - lib/ibex/table_simulation/simulator.rb
222
338
  - lib/ibex/table_simulation/step.rb
223
339
  - lib/ibex/table_simulation/text.rb
224
340
  - lib/ibex/tables.rb
341
+ - lib/ibex/verifiable_generation_bundle.rb
342
+ - lib/ibex/verification_report.rb
343
+ - lib/ibex/verification_report/builder.rb
344
+ - lib/ibex/verification_report/canonical_ir.rb
345
+ - lib/ibex/verification_report/logical_path.rb
346
+ - lib/ibex/verification_report/validator.rb
347
+ - lib/ibex/verify.rb
348
+ - lib/ibex/verify/action_correspondence.rb
349
+ - lib/ibex/verify/language_witness.rb
350
+ - lib/ibex/verify/reference_collection.rb
351
+ - lib/ibex/verify/result.rb
352
+ - lib/ibex/verify/verifier.rb
225
353
  - lib/ibex/version.rb
226
354
  - lib/ibex/watch.rb
227
355
  - lib/ibex/watch/runner.rb
228
356
  - lib/ibex/watch/source_snapshot.rb
229
- - schema/automaton-ir-v1.schema.json
230
- - schema/automaton-ir-v2.schema.json
357
+ - schema/automaton-ir-definitions.schema.json
358
+ - schema/automaton-ir.schema.json
231
359
  - schema/benchmark-v1.schema.json
232
360
  - schema/benchmark-v2.schema.json
361
+ - schema/bison-import-v1.schema.json
362
+ - schema/conflict-explanation-review-v1.schema.json
363
+ - schema/conflict-explanation-study-v1.schema.json
364
+ - schema/construction-profile-v1.schema.json
233
365
  - schema/cst-v1.json
366
+ - schema/diff-v1.schema.json
367
+ - schema/direct-ielr-decision-v1.schema.json
368
+ - schema/equiv-v1.schema.json
369
+ - schema/error-ux-review-v1.schema.json
370
+ - schema/error-ux-round2-review-v1.schema.json
371
+ - schema/error-ux-round2-v1.schema.json
234
372
  - schema/error-ux-v1.schema.json
235
373
  - schema/explain-v1.schema.json
374
+ - schema/fix-v1.schema.json
375
+ - schema/fix-v2.schema.json
376
+ - schema/fix-v3.schema.json
236
377
  - schema/frontend-diagnostics-v1.schema.json
378
+ - schema/fuzz-regression-v1.schema.json
379
+ - schema/fuzz-v1.schema.json
237
380
  - schema/generation-manifest-v1.schema.json
238
- - schema/grammar-ir-v1.schema.json
239
- - schema/grammar-ir-v2.schema.json
381
+ - schema/grammar-ir-extensions.schema.json
382
+ - schema/grammar-ir-foundation.schema.json
383
+ - schema/grammar-ir.schema.json
384
+ - schema/ielr-benchmark-v1.schema.json
240
385
  - schema/lexer-ir-v1.schema.json
386
+ - schema/lexer-profile-v1.schema.json
387
+ - schema/metrics-v1.schema.json
241
388
  - schema/migration-check-v1.schema.json
242
389
  - schema/performance-comparison-v1.schema.json
243
390
  - schema/public-performance-comparison-v1.schema.json
244
391
  - schema/public-performance-profile-v1.schema.json
392
+ - schema/reduce-v1.schema.json
393
+ - schema/reduce-v2.schema.json
245
394
  - schema/runtime-coverage-v1.schema.json
246
395
  - schema/runtime-event-v1.schema.json
396
+ - schema/table-artifact-v1.schema.json
247
397
  - schema/table-simulation-v1.schema.json
398
+ - schema/verification-report-v1.schema.json
399
+ - schema/verify-v1.schema.json
248
400
  - sig/ibex.rbs
249
401
  - sig/ibex/analysis.rbs
402
+ - sig/ibex/analysis/digraph.rbs
250
403
  - sig/ibex/analysis/sets.rbs
251
404
  - sig/ibex/artifact_set.rbs
405
+ - sig/ibex/bison_import.rbs
406
+ - sig/ibex/bison_import/importer.rbs
407
+ - sig/ibex/bison_import/tokenizer.rbs
408
+ - sig/ibex/bounded_subprocess.rbs
252
409
  - sig/ibex/cli.rbs
253
410
  - sig/ibex/cli/ambiguity.rbs
411
+ - sig/ibex/cli/analysis.rbs
412
+ - sig/ibex/cli/bison_import.rbs
413
+ - sig/ibex/cli/config.rbs
254
414
  - sig/ibex/cli/counterexample_options.rbs
255
415
  - sig/ibex/cli/coverage.rbs
256
416
  - sig/ibex/cli/debug.rbs
257
417
  - sig/ibex/cli/diagnostics.rbs
258
418
  - sig/ibex/cli/documentation.rbs
419
+ - sig/ibex/cli/equiv.rbs
259
420
  - sig/ibex/cli/error_messages.rbs
260
421
  - sig/ibex/cli/explain.rbs
422
+ - sig/ibex/cli/fix.rbs
261
423
  - sig/ibex/cli/formatting.rbs
424
+ - sig/ibex/cli/fuzz.rbs
425
+ - sig/ibex/cli/fuzz_regressions.rbs
262
426
  - sig/ibex/cli/generation_artifacts.rbs
263
427
  - sig/ibex/cli/generation_error_messages.rbs
264
428
  - sig/ibex/cli/grammar_tests.rbs
@@ -266,7 +430,10 @@ files:
266
430
  - sig/ibex/cli/lsp.rbs
267
431
  - sig/ibex/cli/outputs.rbs
268
432
  - sig/ibex/cli/racc_migration.rbs
433
+ - sig/ibex/cli/reduce.rbs
434
+ - sig/ibex/cli/reduce_reporting.rbs
269
435
  - sig/ibex/cli/samples.rbs
436
+ - sig/ibex/cli/verify.rbs
270
437
  - sig/ibex/cli/watch.rbs
271
438
  - sig/ibex/codegen/action_locations.rbs
272
439
  - sig/ibex/codegen/action_method_source.rbs
@@ -292,11 +459,19 @@ files:
292
459
  - sig/ibex/codegen/ruby_table_metadata.rbs
293
460
  - sig/ibex/codegen/ruby_value_printers.rbs
294
461
  - sig/ibex/codegen/symbol_labels.rbs
462
+ - sig/ibex/configuration.rbs
463
+ - sig/ibex/configuration/analysis_grammar.rbs
464
+ - sig/ibex/configuration/explanation.rbs
465
+ - sig/ibex/configuration/inspector.rbs
295
466
  - sig/ibex/coverage.rbs
296
467
  - sig/ibex/coverage/collector.rbs
297
468
  - sig/ibex/coverage/event_stream.rbs
298
469
  - sig/ibex/coverage/report.rbs
299
470
  - sig/ibex/coverage/runtime_event_validator.rbs
471
+ - sig/ibex/delta_reducer.rbs
472
+ - sig/ibex/diff.rbs
473
+ - sig/ibex/equiv.rbs
474
+ - sig/ibex/equiv/machine.rbs
300
475
  - sig/ibex/error.rbs
301
476
  - sig/ibex/error_messages.rbs
302
477
  - sig/ibex/error_messages/parser.rbs
@@ -304,6 +479,7 @@ files:
304
479
  - sig/ibex/error_messages/renderer.rbs
305
480
  - sig/ibex/error_messages/sentence_search.rbs
306
481
  - sig/ibex/error_messages/update.rbs
482
+ - sig/ibex/fix.rbs
307
483
  - sig/ibex/frontend.rbs
308
484
  - sig/ibex/frontend/action_scanner.rbs
309
485
  - sig/ibex/frontend/ast.rbs
@@ -324,6 +500,7 @@ files:
324
500
  - sig/ibex/frontend/parser/declarations.rbs
325
501
  - sig/ibex/frontend/parser/parameters.rbs
326
502
  - sig/ibex/frontend/parser/rules.rbs
503
+ - sig/ibex/frontend/parser_configuration_support.rbs
327
504
  - sig/ibex/frontend/regenerator.rbs
328
505
  - sig/ibex/frontend/resolution.rbs
329
506
  - sig/ibex/frontend/resolver.rbs
@@ -338,6 +515,7 @@ files:
338
515
  - sig/ibex/frontend/token_adapter/declaration_state.rbs
339
516
  - sig/ibex/frontend/token_adapter/delimiter_tracker.rbs
340
517
  - sig/ibex/frontend/token_adapter/rule_state.rbs
518
+ - sig/ibex/fuzz.rbs
341
519
  - sig/ibex/generation_input.rbs
342
520
  - sig/ibex/generation_manifest.rbs
343
521
  - sig/ibex/generation_transaction.rbs
@@ -348,7 +526,7 @@ files:
348
526
  - sig/ibex/ir/automaton_ir.rbs
349
527
  - sig/ibex/ir/grammar_ir.rbs
350
528
  - sig/ibex/ir/lexer_ir.rbs
351
- - sig/ibex/ir/migration.rbs
529
+ - sig/ibex/ir/parser_contract.rbs
352
530
  - sig/ibex/ir/serialize.rbs
353
531
  - sig/ibex/ir/validator.rbs
354
532
  - sig/ibex/ir/validator/automaton.rbs
@@ -364,8 +542,21 @@ files:
364
542
  - sig/ibex/lalr/counterexample.rbs
365
543
  - sig/ibex/lalr/default_reductions.rbs
366
544
  - sig/ibex/lalr/direct_lookaheads.rbs
545
+ - sig/ibex/lalr/goto_follows.rbs
546
+ - sig/ibex/lalr/ielr/annotator.rbs
547
+ - sig/ibex/lalr/ielr/bits.rbs
548
+ - sig/ibex/lalr/ielr/inadequacy.rbs
549
+ - sig/ibex/lalr/ielr/item_lookaheads.rbs
550
+ - sig/ibex/lalr/ielr/pipeline.rbs
551
+ - sig/ibex/lalr/ielr/split_stability.rbs
552
+ - sig/ibex/lalr/ielr/split_state.rbs
553
+ - sig/ibex/lalr/ielr/state_splitter.rbs
367
554
  - sig/ibex/lalr/ielr_partition.rbs
555
+ - sig/ibex/lalr/inadequacy_report.rbs
556
+ - sig/ibex/lalr/lookahead_propagation.rbs
557
+ - sig/ibex/lalr/lr0_collection.rbs
368
558
  - sig/ibex/lalr/on_error_reductions.rbs
559
+ - sig/ibex/lalr/unreachable_states.rbs
369
560
  - sig/ibex/location.rbs
370
561
  - sig/ibex/lsp.rbs
371
562
  - sig/ibex/lsp/document_handlers.rbs
@@ -374,6 +565,7 @@ files:
374
565
  - sig/ibex/lsp/document_store_validation.rbs
375
566
  - sig/ibex/lsp/initialization_handlers.rbs
376
567
  - sig/ibex/lsp/navigation_handlers.rbs
568
+ - sig/ibex/lsp/parser_configuration_assistance.rbs
377
569
  - sig/ibex/lsp/position_codec.rbs
378
570
  - sig/ibex/lsp/protocol_error.rbs
379
571
  - sig/ibex/lsp/request_handlers.rbs
@@ -387,11 +579,14 @@ files:
387
579
  - sig/ibex/lsp/transport.rbs
388
580
  - sig/ibex/lsp/workspace.rbs
389
581
  - sig/ibex/lsp/workspace_analyzer.rbs
582
+ - sig/ibex/messages.rbs
583
+ - sig/ibex/metrics.rbs
390
584
  - sig/ibex/normalize.rbs
391
585
  - sig/ibex/normalize/declarations.rbs
392
586
  - sig/ibex/normalize/diagnostics.rbs
393
587
  - sig/ibex/normalize/expander.rbs
394
588
  - sig/ibex/normalize/expression.rbs
589
+ - sig/ibex/normalize/grammar_builder.rbs
395
590
  - sig/ibex/normalize/inline_expansion.rbs
396
591
  - sig/ibex/normalize/inline_validation.rbs
397
592
  - sig/ibex/normalize/lexer.rbs
@@ -402,6 +597,7 @@ files:
402
597
  - sig/ibex/normalize/parameter_substitution.rbs
403
598
  - sig/ibex/normalize/parameter_validation.rbs
404
599
  - sig/ibex/normalize/parameters.rbs
600
+ - sig/ibex/normalize/parser_configuration.rbs
405
601
  - sig/ibex/normalize/recovery_declarations.rbs
406
602
  - sig/ibex/racc_migration.rbs
407
603
  - sig/ibex/racc_migration/checker.rbs
@@ -409,22 +605,46 @@ files:
409
605
  - sig/ibex/racc_migration/report.rbs
410
606
  - sig/ibex/rake_task.rbs
411
607
  - sig/ibex/samples.rbs
608
+ - sig/ibex/table_artifact.rbs
609
+ - sig/ibex/table_artifact/builder.rbs
610
+ - sig/ibex/table_artifact/cst_projection.rbs
611
+ - sig/ibex/table_artifact/document.rbs
612
+ - sig/ibex/table_artifact/executor.rbs
613
+ - sig/ibex/table_artifact/serializer.rbs
614
+ - sig/ibex/table_artifact/validator.rbs
615
+ - sig/ibex/table_artifact/validator/metadata.rbs
616
+ - sig/ibex/table_artifact/validator/support.rbs
617
+ - sig/ibex/table_artifact/validator/tables.rbs
412
618
  - sig/ibex/table_simulation.rbs
413
619
  - sig/ibex/table_simulation/result.rbs
414
620
  - sig/ibex/table_simulation/simulator.rbs
415
621
  - sig/ibex/table_simulation/step.rbs
416
622
  - sig/ibex/table_simulation/text.rbs
417
623
  - sig/ibex/tables.rbs
624
+ - sig/ibex/verifiable_generation_bundle.rbs
625
+ - sig/ibex/verification_report.rbs
626
+ - sig/ibex/verification_report/builder.rbs
627
+ - sig/ibex/verification_report/canonical_ir.rbs
628
+ - sig/ibex/verification_report/logical_path.rbs
629
+ - sig/ibex/verification_report/validator.rbs
630
+ - sig/ibex/verify.rbs
631
+ - sig/ibex/verify/action_correspondence.rbs
632
+ - sig/ibex/verify/language_witness.rbs
633
+ - sig/ibex/verify/reference_collection.rbs
634
+ - sig/ibex/verify/result.rbs
635
+ - sig/ibex/verify/verifier.rbs
418
636
  - sig/ibex/version.rbs
419
637
  - sig/ibex/watch.rbs
420
638
  - sig/ibex/watch/runner.rbs
421
639
  - sig/ibex/watch/source_snapshot.rbs
422
- homepage: https://github.com/ydah/ibex
640
+ homepage: https://ydah.github.io/ibex/
423
641
  licenses:
424
642
  - MIT
425
643
  metadata:
426
- homepage_uri: https://github.com/ydah/ibex
427
- source_code_uri: https://github.com/ydah/ibex/tree/main
644
+ homepage_uri: https://ydah.github.io/ibex/
645
+ source_code_uri: https://github.com/ydah/ibex
646
+ documentation_uri: https://ydah.github.io/ibex/api/
647
+ bug_tracker_uri: https://github.com/ydah/ibex/issues
428
648
  rubygems_mfa_required: 'true'
429
649
  rdoc_options: []
430
650
  require_paths: