ibex 0.1.0 → 0.2.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 (384) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +247 -104
  3. data/docs/architecture.md +322 -28
  4. data/docs/cst-migration.md +107 -0
  5. data/docs/cst.md +213 -0
  6. data/docs/development.md +129 -0
  7. data/docs/editor-setup.md +25 -0
  8. data/docs/error-ux.md +60 -0
  9. data/docs/grammar-reference.md +458 -18
  10. data/docs/lexer-migration.md +51 -0
  11. data/docs/racc-migration.md +34 -6
  12. data/docs/release-readiness.md +163 -0
  13. data/docs/stability.md +124 -0
  14. data/examples/README.md +60 -0
  15. data/examples/calculator.y +44 -0
  16. data/examples/csv.y +32 -0
  17. data/examples/ini.y +70 -0
  18. data/examples/json.y +48 -0
  19. data/examples/tiny_language.y +75 -0
  20. data/lib/ibex/analysis/sets.rb +5 -4
  21. data/lib/ibex/artifact_set.rb +63 -0
  22. data/lib/ibex/cli/ambiguity.rb +66 -0
  23. data/lib/ibex/cli/counterexample_options.rb +6 -2
  24. data/lib/ibex/cli/coverage.rb +173 -0
  25. data/lib/ibex/cli/debug.rb +106 -0
  26. data/lib/ibex/cli/diagnostics.rb +116 -0
  27. data/lib/ibex/cli/documentation.rb +67 -0
  28. data/lib/ibex/cli/error_messages.rb +177 -0
  29. data/lib/ibex/cli/explain.rb +76 -0
  30. data/lib/ibex/cli/formatting.rb +386 -0
  31. data/lib/ibex/cli/generation_artifacts.rb +138 -0
  32. data/lib/ibex/cli/generation_error_messages.rb +39 -0
  33. data/lib/ibex/cli/grammar_tests.rb +122 -0
  34. data/lib/ibex/cli/ir_tools.rb +184 -0
  35. data/lib/ibex/cli/lsp.rb +33 -0
  36. data/lib/ibex/cli/outputs.rb +91 -8
  37. data/lib/ibex/cli/racc_migration.rb +87 -0
  38. data/lib/ibex/cli/samples.rb +92 -0
  39. data/lib/ibex/cli/watch.rb +103 -0
  40. data/lib/ibex/cli.rb +506 -37
  41. data/lib/ibex/codegen/action_locations.rb +103 -0
  42. data/lib/ibex/codegen/action_method_source.rb +210 -0
  43. data/lib/ibex/codegen/action_source.rb +118 -0
  44. data/lib/ibex/codegen/ambiguity.rb +173 -0
  45. data/lib/ibex/codegen/cst_metadata.rb +171 -0
  46. data/lib/ibex/codegen/documentation.rb +170 -0
  47. data/lib/ibex/codegen/explain.rb +312 -0
  48. data/lib/ibex/codegen/generated_action_abi.rb +288 -0
  49. data/lib/ibex/codegen/html.rb +94 -10
  50. data/lib/ibex/codegen/mermaid.rb +43 -0
  51. data/lib/ibex/codegen/railroad.rb +197 -0
  52. data/lib/ibex/codegen/railroad_documentation.rb +59 -0
  53. data/lib/ibex/codegen/rbs.rb +323 -2
  54. data/lib/ibex/codegen/report.rb +46 -6
  55. data/lib/ibex/codegen/ruby.rb +334 -59
  56. data/lib/ibex/codegen/ruby_actions.rb +143 -0
  57. data/lib/ibex/codegen/ruby_ast.rb +121 -0
  58. data/lib/ibex/codegen/ruby_error_messages.rb +28 -0
  59. data/lib/ibex/codegen/ruby_lexer.rb +83 -0
  60. data/lib/ibex/codegen/ruby_syntax.rb +90 -0
  61. data/lib/ibex/codegen/ruby_table_metadata.rb +57 -0
  62. data/lib/ibex/codegen/ruby_value_printers.rb +56 -0
  63. data/lib/ibex/codegen/symbol_labels.rb +1 -1
  64. data/lib/ibex/coverage/collector.rb +188 -0
  65. data/lib/ibex/coverage/event_stream.rb +97 -0
  66. data/lib/ibex/coverage/report.rb +259 -0
  67. data/lib/ibex/coverage/runtime_event_validator.rb +160 -0
  68. data/lib/ibex/coverage.rb +13 -0
  69. data/lib/ibex/error_messages/parser.rb +159 -0
  70. data/lib/ibex/error_messages/parser_v2.rb +198 -0
  71. data/lib/ibex/error_messages/renderer.rb +65 -0
  72. data/lib/ibex/error_messages/sentence_search.rb +196 -0
  73. data/lib/ibex/error_messages/update.rb +169 -0
  74. data/lib/ibex/error_messages.rb +165 -0
  75. data/lib/ibex/frontend/ast.rb +145 -6
  76. data/lib/ibex/frontend/bootstrap_parser.rb +47 -4
  77. data/lib/ibex/frontend/diagnostic.rb +81 -0
  78. data/lib/ibex/frontend/diagnostic_recovery.rb +268 -0
  79. data/lib/ibex/frontend/dsl.rb +66 -7
  80. data/lib/ibex/frontend/formatter.rb +407 -0
  81. data/lib/ibex/frontend/generated_parser.rb +614 -190
  82. data/lib/ibex/frontend/generated_parser_base.rb +164 -30
  83. data/lib/ibex/frontend/generated_parser_includes.rb +61 -0
  84. data/lib/ibex/frontend/generated_parser_metadata.rb +61 -0
  85. data/lib/ibex/frontend/generated_parser_parameters.rb +60 -0
  86. data/lib/ibex/frontend/generation.rb +33 -0
  87. data/lib/ibex/frontend/lexer.rb +162 -10
  88. data/lib/ibex/frontend/lexer_recovery.rb +84 -0
  89. data/lib/ibex/frontend/parser/declarations.rb +247 -11
  90. data/lib/ibex/frontend/parser/parameters.rb +82 -0
  91. data/lib/ibex/frontend/parser/rules.rb +43 -6
  92. data/lib/ibex/frontend/parser.rb +182 -4
  93. data/lib/ibex/frontend/regenerator.rb +26 -1
  94. data/lib/ibex/frontend/resolution.rb +69 -0
  95. data/lib/ibex/frontend/resolver.rb +217 -0
  96. data/lib/ibex/frontend/rule_documentation.rb +103 -0
  97. data/lib/ibex/frontend/source_cursor.rb +132 -8
  98. data/lib/ibex/frontend/source_document.rb +229 -0
  99. data/lib/ibex/frontend/source_loader.rb +150 -0
  100. data/lib/ibex/frontend/source_span.rb +81 -0
  101. data/lib/ibex/frontend/token_adapter/declaration_document_state.rb +47 -0
  102. data/lib/ibex/frontend/token_adapter/declaration_lexer_state.rb +83 -0
  103. data/lib/ibex/frontend/token_adapter/declaration_state.rb +216 -26
  104. data/lib/ibex/frontend/token_adapter/delimiter_tracker.rb +8 -2
  105. data/lib/ibex/frontend/token_adapter/rule_state.rb +60 -2
  106. data/lib/ibex/frontend/token_adapter.rb +8 -3
  107. data/lib/ibex/frontend.rb +13 -2
  108. data/lib/ibex/generation_input.rb +57 -0
  109. data/lib/ibex/generation_manifest.rb +200 -0
  110. data/lib/ibex/generation_transaction.rb +261 -0
  111. data/lib/ibex/generation_transaction_recovery.rb +109 -0
  112. data/lib/ibex/generation_transaction_validation.rb +196 -0
  113. data/lib/ibex/grammar_tests.rb +206 -0
  114. data/lib/ibex/ir/automaton_ir.rb +38 -5
  115. data/lib/ibex/ir/grammar_ir.rb +137 -24
  116. data/lib/ibex/ir/lexer_ir.rb +76 -0
  117. data/lib/ibex/ir/migration.rb +120 -0
  118. data/lib/ibex/ir/serialize.rb +110 -19
  119. data/lib/ibex/ir/validator/automaton.rb +345 -0
  120. data/lib/ibex/ir/validator/base.rb +129 -0
  121. data/lib/ibex/ir/validator/grammar.rb +604 -0
  122. data/lib/ibex/ir/validator/lexer.rb +113 -0
  123. data/lib/ibex/ir/validator.rb +62 -0
  124. data/lib/ibex/ir.rb +57 -4
  125. data/lib/ibex/lalr/build_metrics.rb +23 -0
  126. data/lib/ibex/lalr/builder.rb +379 -52
  127. data/lib/ibex/lalr/conflict.rb +1 -0
  128. data/lib/ibex/lalr/conflict_search.rb +11 -5
  129. data/lib/ibex/lalr/counterexample.rb +20 -5
  130. data/lib/ibex/lalr/direct_lookaheads.rb +236 -0
  131. data/lib/ibex/lalr/ielr_partition.rb +152 -0
  132. data/lib/ibex/lalr/on_error_reductions.rb +74 -0
  133. data/lib/ibex/lalr.rb +7 -0
  134. data/lib/ibex/location.rb +129 -0
  135. data/lib/ibex/lsp/document_handlers.rb +66 -0
  136. data/lib/ibex/lsp/document_store.rb +264 -0
  137. data/lib/ibex/lsp/document_store_diagnostics.rb +44 -0
  138. data/lib/ibex/lsp/document_store_validation.rb +61 -0
  139. data/lib/ibex/lsp/initialization_handlers.rb +78 -0
  140. data/lib/ibex/lsp/navigation_handlers.rb +56 -0
  141. data/lib/ibex/lsp/position_codec.rb +109 -0
  142. data/lib/ibex/lsp/protocol_error.rb +33 -0
  143. data/lib/ibex/lsp/request_handlers.rb +45 -0
  144. data/lib/ibex/lsp/request_support.rb +87 -0
  145. data/lib/ibex/lsp/server.rb +146 -0
  146. data/lib/ibex/lsp/symbol_index.rb +241 -0
  147. data/lib/ibex/lsp/symbol_index_builder.rb +267 -0
  148. data/lib/ibex/lsp/symbol_index_precedence_references.rb +44 -0
  149. data/lib/ibex/lsp/symbol_index_source_queries.rb +61 -0
  150. data/lib/ibex/lsp/symbol_occurrence.rb +17 -0
  151. data/lib/ibex/lsp/transport.rb +118 -0
  152. data/lib/ibex/lsp/workspace.rb +127 -0
  153. data/lib/ibex/lsp/workspace_analyzer.rb +199 -0
  154. data/lib/ibex/lsp.rb +32 -0
  155. data/lib/ibex/normalize/declarations.rb +140 -7
  156. data/lib/ibex/normalize/diagnostics.rb +50 -5
  157. data/lib/ibex/normalize/expander.rb +59 -55
  158. data/lib/ibex/normalize/expression.rb +60 -39
  159. data/lib/ibex/normalize/inline_expansion.rb +414 -0
  160. data/lib/ibex/normalize/inline_validation.rb +174 -0
  161. data/lib/ibex/normalize/lexer.rb +131 -0
  162. data/lib/ibex/normalize/named_references.rb +60 -0
  163. data/lib/ibex/normalize/nodes.rb +46 -0
  164. data/lib/ibex/normalize/parameter_ebnf_lowering.rb +69 -0
  165. data/lib/ibex/normalize/parameter_lowering.rb +126 -0
  166. data/lib/ibex/normalize/parameter_substitution.rb +125 -0
  167. data/lib/ibex/normalize/parameter_validation.rb +140 -0
  168. data/lib/ibex/normalize/parameters.rb +199 -0
  169. data/lib/ibex/normalize/recovery_declarations.rb +84 -0
  170. data/lib/ibex/normalize.rb +179 -14
  171. data/lib/ibex/racc_migration/checker.rb +122 -0
  172. data/lib/ibex/racc_migration/harness.rb +177 -0
  173. data/lib/ibex/racc_migration/report.rb +94 -0
  174. data/lib/ibex/racc_migration.rb +12 -0
  175. data/lib/ibex/rake_task.rb +116 -0
  176. data/lib/ibex/samples.rb +186 -0
  177. data/lib/ibex/table_simulation/result.rb +51 -0
  178. data/lib/ibex/table_simulation/simulator.rb +253 -0
  179. data/lib/ibex/table_simulation/step.rb +60 -0
  180. data/lib/ibex/table_simulation/text.rb +31 -0
  181. data/lib/ibex/table_simulation.rb +13 -0
  182. data/lib/ibex/tables.rb +9 -70
  183. data/lib/ibex/version.rb +1 -1
  184. data/lib/ibex/watch/runner.rb +172 -0
  185. data/lib/ibex/watch/source_snapshot.rb +93 -0
  186. data/lib/ibex/watch.rb +11 -0
  187. data/lib/ibex.rb +25 -1
  188. data/schema/automaton-ir-v1.schema.json +401 -0
  189. data/schema/automaton-ir-v2.schema.json +58 -0
  190. data/schema/benchmark-v1.schema.json +212 -0
  191. data/schema/benchmark-v2.schema.json +61 -0
  192. data/schema/cst-v1.json +170 -0
  193. data/schema/error-ux-v1.schema.json +258 -0
  194. data/schema/explain-v1.schema.json +433 -0
  195. data/schema/frontend-diagnostics-v1.schema.json +154 -0
  196. data/schema/generation-manifest-v1.schema.json +115 -0
  197. data/schema/grammar-ir-v1.schema.json +426 -0
  198. data/schema/grammar-ir-v2.schema.json +779 -0
  199. data/schema/lexer-ir-v1.schema.json +215 -0
  200. data/schema/migration-check-v1.schema.json +60 -0
  201. data/schema/performance-comparison-v1.schema.json +395 -0
  202. data/schema/public-performance-comparison-v1.schema.json +506 -0
  203. data/schema/public-performance-profile-v1.schema.json +360 -0
  204. data/schema/runtime-coverage-v1.schema.json +86 -0
  205. data/schema/runtime-event-v1.schema.json +308 -0
  206. data/schema/table-simulation-v1.schema.json +70 -0
  207. data/sig/ibex/artifact_set.rbs +37 -0
  208. data/sig/ibex/cli/ambiguity.rbs +22 -0
  209. data/sig/ibex/cli/counterexample_options.rbs +2 -0
  210. data/sig/ibex/cli/coverage.rbs +53 -0
  211. data/sig/ibex/cli/debug.rbs +28 -0
  212. data/sig/ibex/cli/diagnostics.rbs +38 -0
  213. data/sig/ibex/cli/documentation.rbs +25 -0
  214. data/sig/ibex/cli/error_messages.rbs +57 -0
  215. data/sig/ibex/cli/explain.rbs +25 -0
  216. data/sig/ibex/cli/formatting.rbs +103 -0
  217. data/sig/ibex/cli/generation_artifacts.rbs +50 -0
  218. data/sig/ibex/cli/generation_error_messages.rbs +19 -0
  219. data/sig/ibex/cli/grammar_tests.rbs +36 -0
  220. data/sig/ibex/cli/ir_tools.rbs +51 -0
  221. data/sig/ibex/cli/lsp.rbs +14 -0
  222. data/sig/ibex/cli/outputs.rbs +17 -0
  223. data/sig/ibex/cli/racc_migration.rbs +30 -0
  224. data/sig/ibex/cli/samples.rbs +30 -0
  225. data/sig/ibex/cli/watch.rbs +43 -0
  226. data/sig/ibex/cli.rbs +104 -5
  227. data/sig/ibex/codegen/action_locations.rbs +45 -0
  228. data/sig/ibex/codegen/action_method_source.rbs +65 -0
  229. data/sig/ibex/codegen/action_source.rbs +50 -0
  230. data/sig/ibex/codegen/ambiguity.rbs +60 -0
  231. data/sig/ibex/codegen/cst_metadata.rbs +59 -0
  232. data/sig/ibex/codegen/documentation.rbs +50 -0
  233. data/sig/ibex/codegen/explain.rbs +85 -0
  234. data/sig/ibex/codegen/generated_action_abi.rbs +101 -0
  235. data/sig/ibex/codegen/html.rbs +18 -2
  236. data/sig/ibex/codegen/mermaid.rbs +16 -0
  237. data/sig/ibex/codegen/railroad.rbs +82 -0
  238. data/sig/ibex/codegen/railroad_documentation.rbs +31 -0
  239. data/sig/ibex/codegen/rbs.rbs +84 -4
  240. data/sig/ibex/codegen/report.rbs +8 -0
  241. data/sig/ibex/codegen/ruby.rbs +97 -23
  242. data/sig/ibex/codegen/ruby_actions.rbs +54 -0
  243. data/sig/ibex/codegen/ruby_ast.rbs +34 -0
  244. data/sig/ibex/codegen/ruby_error_messages.rbs +16 -0
  245. data/sig/ibex/codegen/ruby_lexer.rbs +25 -0
  246. data/sig/ibex/codegen/ruby_syntax.rbs +25 -0
  247. data/sig/ibex/codegen/ruby_table_metadata.rbs +26 -0
  248. data/sig/ibex/codegen/ruby_value_printers.rbs +28 -0
  249. data/sig/ibex/coverage/collector.rbs +76 -0
  250. data/sig/ibex/coverage/event_stream.rbs +42 -0
  251. data/sig/ibex/coverage/report.rbs +100 -0
  252. data/sig/ibex/coverage/runtime_event_validator.rbs +68 -0
  253. data/sig/ibex/coverage.rbs +7 -0
  254. data/sig/ibex/error_messages/parser.rbs +58 -0
  255. data/sig/ibex/error_messages/parser_v2.rbs +67 -0
  256. data/sig/ibex/error_messages/renderer.rbs +23 -0
  257. data/sig/ibex/error_messages/sentence_search.rbs +80 -0
  258. data/sig/ibex/error_messages/update.rbs +43 -0
  259. data/sig/ibex/error_messages.rbs +85 -0
  260. data/sig/ibex/frontend/ast.rbs +208 -19
  261. data/sig/ibex/frontend/bootstrap_parser.rbs +11 -0
  262. data/sig/ibex/frontend/diagnostic.rbs +53 -0
  263. data/sig/ibex/frontend/diagnostic_recovery.rbs +98 -0
  264. data/sig/ibex/frontend/dsl.rbs +33 -4
  265. data/sig/ibex/frontend/formatter.rbs +135 -0
  266. data/sig/ibex/frontend/generated_parser.rbs +218 -68
  267. data/sig/ibex/frontend/generated_parser_base.rbs +61 -10
  268. data/sig/ibex/frontend/generated_parser_includes.rbs +23 -0
  269. data/sig/ibex/frontend/generated_parser_metadata.rbs +23 -0
  270. data/sig/ibex/frontend/generated_parser_parameters.rbs +24 -0
  271. data/sig/ibex/frontend/generation.rbs +6 -0
  272. data/sig/ibex/frontend/lexer.rbs +49 -2
  273. data/sig/ibex/frontend/lexer_recovery.rbs +25 -0
  274. data/sig/ibex/frontend/parser/declarations.rbs +54 -0
  275. data/sig/ibex/frontend/parser/parameters.rbs +28 -0
  276. data/sig/ibex/frontend/parser/rules.rbs +3 -0
  277. data/sig/ibex/frontend/parser.rbs +66 -0
  278. data/sig/ibex/frontend/regenerator.rbs +11 -0
  279. data/sig/ibex/frontend/resolution.rbs +33 -0
  280. data/sig/ibex/frontend/resolver.rbs +91 -0
  281. data/sig/ibex/frontend/rule_documentation.rbs +42 -0
  282. data/sig/ibex/frontend/source_cursor.rbs +36 -3
  283. data/sig/ibex/frontend/source_document.rbs +119 -0
  284. data/sig/ibex/frontend/source_loader.rbs +66 -0
  285. data/sig/ibex/frontend/source_span.rbs +53 -0
  286. data/sig/ibex/frontend/token_adapter/declaration_document_state.rbs +21 -0
  287. data/sig/ibex/frontend/token_adapter/declaration_lexer_state.rbs +27 -0
  288. data/sig/ibex/frontend/token_adapter/declaration_state.rbs +73 -5
  289. data/sig/ibex/frontend/token_adapter/rule_state.rbs +20 -0
  290. data/sig/ibex/frontend/token_adapter.rbs +5 -2
  291. data/sig/ibex/frontend.rbs +1 -1
  292. data/sig/ibex/generation_input.rbs +37 -0
  293. data/sig/ibex/generation_manifest.rbs +67 -0
  294. data/sig/ibex/generation_transaction.rbs +82 -0
  295. data/sig/ibex/generation_transaction_recovery.rbs +36 -0
  296. data/sig/ibex/generation_transaction_validation.rbs +65 -0
  297. data/sig/ibex/grammar_tests.rbs +93 -0
  298. data/sig/ibex/ir/automaton_ir.rbs +8 -2
  299. data/sig/ibex/ir/grammar_ir.rbs +75 -15
  300. data/sig/ibex/ir/lexer_ir.rbs +57 -0
  301. data/sig/ibex/ir/migration.rbs +34 -0
  302. data/sig/ibex/ir/serialize.rbs +23 -6
  303. data/sig/ibex/ir/validator/automaton.rbs +109 -0
  304. data/sig/ibex/ir/validator/base.rbs +65 -0
  305. data/sig/ibex/ir/validator/grammar.rbs +184 -0
  306. data/sig/ibex/ir/validator/lexer.rbs +37 -0
  307. data/sig/ibex/ir/validator.rbs +16 -0
  308. data/sig/ibex/ir.rbs +38 -4
  309. data/sig/ibex/lalr/build_metrics.rbs +20 -0
  310. data/sig/ibex/lalr/builder.rbs +95 -15
  311. data/sig/ibex/lalr/conflict_search.rbs +7 -3
  312. data/sig/ibex/lalr/counterexample.rbs +5 -2
  313. data/sig/ibex/lalr/direct_lookaheads.rbs +86 -0
  314. data/sig/ibex/lalr/ielr_partition.rbs +59 -0
  315. data/sig/ibex/lalr/on_error_reductions.rbs +22 -0
  316. data/sig/ibex/lalr.rbs +6 -0
  317. data/sig/ibex/location.rbs +67 -0
  318. data/sig/ibex/lsp/document_handlers.rbs +24 -0
  319. data/sig/ibex/lsp/document_store.rbs +94 -0
  320. data/sig/ibex/lsp/document_store_diagnostics.rbs +20 -0
  321. data/sig/ibex/lsp/document_store_validation.rbs +26 -0
  322. data/sig/ibex/lsp/initialization_handlers.rbs +30 -0
  323. data/sig/ibex/lsp/navigation_handlers.rbs +30 -0
  324. data/sig/ibex/lsp/position_codec.rbs +40 -0
  325. data/sig/ibex/lsp/protocol_error.rbs +32 -0
  326. data/sig/ibex/lsp/request_handlers.rbs +26 -0
  327. data/sig/ibex/lsp/request_support.rbs +40 -0
  328. data/sig/ibex/lsp/server.rbs +55 -0
  329. data/sig/ibex/lsp/symbol_index.rbs +78 -0
  330. data/sig/ibex/lsp/symbol_index_builder.rbs +87 -0
  331. data/sig/ibex/lsp/symbol_index_precedence_references.rbs +18 -0
  332. data/sig/ibex/lsp/symbol_index_source_queries.rbs +26 -0
  333. data/sig/ibex/lsp/symbol_occurrence.rbs +25 -0
  334. data/sig/ibex/lsp/transport.rbs +35 -0
  335. data/sig/ibex/lsp/workspace.rbs +41 -0
  336. data/sig/ibex/lsp/workspace_analyzer.rbs +69 -0
  337. data/sig/ibex/lsp.rbs +7 -0
  338. data/sig/ibex/normalize/declarations.rbs +31 -0
  339. data/sig/ibex/normalize/diagnostics.rbs +9 -0
  340. data/sig/ibex/normalize/expander.rbs +20 -14
  341. data/sig/ibex/normalize/expression.rbs +10 -10
  342. data/sig/ibex/normalize/inline_expansion.rbs +120 -0
  343. data/sig/ibex/normalize/inline_validation.rbs +40 -0
  344. data/sig/ibex/normalize/lexer.rbs +37 -0
  345. data/sig/ibex/normalize/named_references.rbs +20 -0
  346. data/sig/ibex/normalize/nodes.rbs +14 -0
  347. data/sig/ibex/normalize/parameter_ebnf_lowering.rbs +32 -0
  348. data/sig/ibex/normalize/parameter_lowering.rbs +35 -0
  349. data/sig/ibex/normalize/parameter_substitution.rbs +42 -0
  350. data/sig/ibex/normalize/parameter_validation.rbs +44 -0
  351. data/sig/ibex/normalize/parameters.rbs +46 -0
  352. data/sig/ibex/normalize/recovery_declarations.rbs +24 -0
  353. data/sig/ibex/normalize.rbs +123 -18
  354. data/sig/ibex/racc_migration/checker.rbs +36 -0
  355. data/sig/ibex/racc_migration/harness.rbs +16 -0
  356. data/sig/ibex/racc_migration/report.rbs +53 -0
  357. data/sig/ibex/racc_migration.rbs +8 -0
  358. data/sig/ibex/rake_task.rbs +51 -0
  359. data/sig/ibex/samples.rbs +51 -0
  360. data/sig/ibex/table_simulation/result.rbs +32 -0
  361. data/sig/ibex/table_simulation/simulator.rbs +98 -0
  362. data/sig/ibex/table_simulation/step.rbs +40 -0
  363. data/sig/ibex/table_simulation/text.rbs +14 -0
  364. data/sig/ibex/table_simulation.rbs +7 -0
  365. data/sig/ibex/tables.rbs +0 -26
  366. data/sig/ibex/watch/runner.rbs +48 -0
  367. data/sig/ibex/watch/source_snapshot.rbs +42 -0
  368. data/sig/ibex/watch.rbs +7 -0
  369. data/sig/ibex.rbs +2 -0
  370. metadata +301 -16
  371. data/.rubocop.yml +0 -43
  372. data/CHANGELOG.md +0 -30
  373. data/Rakefile +0 -25
  374. data/Steepfile +0 -10
  375. data/docs/compat-notes.md +0 -37
  376. data/docs/lexer-coverage.md +0 -14
  377. data/docs/phase10-extensions.md +0 -27
  378. data/gemfiles/Gemfile +0 -7
  379. data/gemfiles/Gemfile.lock +0 -98
  380. data/lib/ibex/frontend/grammar.y +0 -156
  381. data/lib/ibex/runtime/parser.rb +0 -360
  382. data/lib/ibex/runtime.rb +0 -8
  383. data/sig/ibex/runtime/parser.rbs +0 -167
  384. data/sig/ibex/runtime.rbs +0 -6
@@ -0,0 +1,36 @@
1
+ # Generated from lib/ibex/racc_migration/checker.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module RaccMigration
5
+ # Checks syntax, normalization, superclass, and runtime-coupling hazards.
6
+ # Semantic action code is treated as opaque data and never executed.
7
+ class Checker
8
+ RACC_REQUIRE: Regexp
9
+
10
+ RACC_CONSTANT: Regexp
11
+
12
+ # @rbs (String source, file: String) -> Report
13
+ def check: (String source, file: String) -> Report
14
+
15
+ private
16
+
17
+ # @rbs (Frontend::Diagnostic diagnostic) -> Finding
18
+ def syntax_finding: (Frontend::Diagnostic diagnostic) -> Finding
19
+
20
+ # @rbs (Frontend::AST::Root ast) -> Array[Finding]
21
+ def superclass_findings: (Frontend::AST::Root ast) -> Array[Finding]
22
+
23
+ # @rbs (Frontend::AST::Root ast) -> Array[Finding]
24
+ def user_code_findings: (Frontend::AST::Root ast) -> Array[Finding]
25
+
26
+ # @rbs (Frontend::AST::Root ast) -> Array[Finding]
27
+ def normalization_findings: (Frontend::AST::Root ast) -> Array[Finding]
28
+
29
+ # @rbs (String message, Frontend::Location fallback) -> [Frontend::Location, String]
30
+ def error_location: (String message, Frontend::Location fallback) -> [ Frontend::Location, String ]
31
+
32
+ # @rbs (Array[Finding] findings) -> Array[Finding]
33
+ def sort_findings: (Array[Finding] findings) -> Array[Finding]
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,16 @@
1
+ # Generated from lib/ibex/racc_migration/harness.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module RaccMigration
5
+ # Emits, but never executes, a subprocess-separated differential harness.
6
+ class Harness
7
+ CLASS_NAME: Regexp
8
+
9
+ # @rbs (String class_name) -> String
10
+ def self.generate: (String class_name) -> String
11
+
12
+ # @rbs () -> String
13
+ def self.template: () -> String
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,53 @@
1
+ # Generated from lib/ibex/racc_migration/report.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module RaccMigration
5
+ # One immutable migration compatibility observation.
6
+ class Finding
7
+ SEVERITIES: Array[Symbol]
8
+
9
+ attr_reader code: String
10
+
11
+ attr_reader severity: Symbol
12
+
13
+ attr_reader message: String
14
+
15
+ attr_reader location: Frontend::Location?
16
+
17
+ attr_reader suggestion: String
18
+
19
+ # @rbs (code: String, severity: Symbol, message: String, location: Frontend::Location?,
20
+ # suggestion: String) -> void
21
+ def initialize: (code: String, severity: Symbol, message: String, location: Frontend::Location?, suggestion: String) -> void
22
+
23
+ # @rbs () -> Hash[String, untyped]
24
+ def to_h: () -> Hash[String, untyped]
25
+ end
26
+
27
+ # Versioned result of checking one grammar without executing its code.
28
+ class Report
29
+ SCHEMA_VERSION: Integer
30
+
31
+ attr_reader file: String
32
+
33
+ attr_reader class_name: String?
34
+
35
+ attr_reader findings: Array[Finding]
36
+
37
+ # @rbs (file: String, class_name: String?, findings: Array[Finding]) -> void
38
+ def initialize: (file: String, class_name: String?, findings: Array[Finding]) -> void
39
+
40
+ # @rbs () -> bool
41
+ def compatible?: () -> bool
42
+
43
+ # @rbs () -> Hash[String, untyped]
44
+ def to_h: () -> Hash[String, untyped]
45
+
46
+ # @rbs (*untyped) -> String
47
+ def to_json: (*untyped) -> String
48
+
49
+ # @rbs () -> String
50
+ def to_text: () -> String
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,8 @@
1
+ # Generated from lib/ibex/racc_migration.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ # Static checks and explicitly generated differential tooling for migration
5
+ # from racc grammar files.
6
+ module RaccMigration
7
+ end
8
+ end
@@ -0,0 +1,51 @@
1
+ # Generated from lib/ibex/rake_task.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ # Declares grammar-to-parser generation in a Rakefile.
5
+ class RakeTask < Rake::TaskLib
6
+ attr_accessor grammar: String?
7
+
8
+ attr_accessor output: String?
9
+
10
+ attr_accessor options: Array[String]
11
+
12
+ attr_accessor action_source: String | true | nil
13
+
14
+ # @rbs (String | Symbol name) ?{ (RakeTask) -> void } -> void
15
+ def initialize: (String | Symbol name) ?{ (RakeTask) -> void } -> void
16
+
17
+ private
18
+
19
+ # @rbs () -> void
20
+ def define: () -> void
21
+
22
+ # @rbs () -> void
23
+ def reject_watch_option!: () -> void
24
+
25
+ # @rbs (String target) -> String?
26
+ def configured_action_source: (String target) -> String?
27
+
28
+ # @rbs (String target) -> String
29
+ def default_action_source_path: (String target) -> String
30
+
31
+ # @rbs (String source) -> Array[String]
32
+ def grammar_prerequisites: (String source) -> Array[String]
33
+
34
+ # @rbs () -> Symbol
35
+ def configured_mode: () -> Symbol
36
+ end
37
+ end
38
+
39
+ module Rake
40
+ class TaskLib
41
+ def initialize: () -> void
42
+ end
43
+
44
+ class Task
45
+ def self.define_task: (Hash[String | Symbol, String | Array[String]]) -> Task
46
+ | (Hash[String | Symbol, String | Array[String]]) { (untyped, untyped) -> void } -> Task
47
+ end
48
+
49
+ class FileTask < Task
50
+ end
51
+ end
@@ -0,0 +1,51 @@
1
+ # Generated from lib/ibex/samples.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ # Generates bounded terminal sentences from Grammar IR.
5
+ class Samples
6
+ DEFAULT_MAX_EXPANSIONS: Integer
7
+
8
+ # @rbs (IR::Grammar grammar, ?seed: Integer, ?max_tokens: Integer, ?max_depth: Integer,
9
+ # ?max_expansions: Integer) -> void
10
+ def initialize: (IR::Grammar grammar, ?seed: Integer, ?max_tokens: Integer, ?max_depth: Integer, ?max_expansions: Integer) -> void
11
+
12
+ # @rbs (?count: Integer) -> Array[Array[String]]
13
+ def generate: (?count: Integer) -> Array[Array[String]]
14
+
15
+ private
16
+
17
+ # @rbs () -> Hash[Integer, Integer?]
18
+ def compute_minimum_costs: () -> Hash[Integer, Integer?]
19
+
20
+ # @rbs () -> Hash[Integer, Integer?]
21
+ def compute_minimum_heights: () -> Hash[Integer, Integer?]
22
+
23
+ # @rbs (Integer terminal_value) { (IR::Production, Hash[Integer, Integer?]) -> Integer? }
24
+ # -> Hash[Integer, Integer?]
25
+ def compute_minimum_values: (Integer terminal_value) { (IR::Production, Hash[Integer, Integer?]) -> Integer? } -> Hash[Integer, Integer?]
26
+
27
+ # @rbs (Hash[Integer, Integer?] values, Integer terminal_value) -> Array[Integer]
28
+ def seed_terminal_values: (Hash[Integer, Integer?] values, Integer terminal_value) -> Array[Integer]
29
+
30
+ # @rbs (Hash[Integer, Integer?] values, Array[Integer] queue, Integer symbol_id, Integer? candidate) -> void
31
+ def update_minimum: (Hash[Integer, Integer?] values, Array[Integer] queue, Integer symbol_id, Integer? candidate) -> void
32
+
33
+ # @rbs (IR::Production production, Hash[Integer, Integer?] values) -> Array[Integer]?
34
+ def resolved_rhs_values: (IR::Production production, Hash[Integer, Integer?] values) -> Array[Integer]?
35
+
36
+ # @rbs (IR::GrammarSymbol start, Integer remaining_expansions) -> [Array[String], Integer]
37
+ def expand: (IR::GrammarSymbol start, Integer remaining_expansions) -> [ Array[String], Integer ]
38
+
39
+ # @rbs (Integer nonterminal_id, Integer budget, Integer depth) -> IR::Production
40
+ def choose_production: (Integer nonterminal_id, Integer budget, Integer depth) -> IR::Production
41
+
42
+ # @rbs (Integer symbol_id) -> Integer
43
+ def minimum_cost!: (Integer symbol_id) -> Integer
44
+
45
+ # @rbs (IR::Production production) -> Integer?
46
+ def production_cost: (IR::Production production) -> Integer?
47
+
48
+ # @rbs (IR::Production production) -> Integer?
49
+ def production_height: (IR::Production production) -> Integer?
50
+ end
51
+ end
@@ -0,0 +1,32 @@
1
+ # Generated from lib/ibex/table_simulation/result.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module TableSimulation
5
+ # Final immutable simulation document.
6
+ class Result
7
+ IDENTIFIER: String
8
+
9
+ SCHEMA_VERSION: Integer
10
+
11
+ attr_reader grammar_digest: String
12
+
13
+ attr_reader algorithm: String
14
+
15
+ attr_reader tokens: Array[String]
16
+
17
+ attr_reader status: Symbol
18
+
19
+ attr_reader steps: Array[Step]
20
+
21
+ # @rbs (grammar_digest: String, algorithm: String, tokens: Array[String], status: Symbol,
22
+ # steps: Array[Step]) -> void
23
+ def initialize: (grammar_digest: String, algorithm: String, tokens: Array[String], status: Symbol, steps: Array[Step]) -> void
24
+
25
+ # @rbs () -> Hash[String, untyped]
26
+ def to_h: () -> Hash[String, untyped]
27
+
28
+ # @rbs (*untyped) -> String
29
+ def to_json: (*untyped) -> String
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,98 @@
1
+ # Generated from lib/ibex/table_simulation/simulator.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module TableSimulation
5
+ # Deterministic, semantic-action-free table interpreter.
6
+ class Simulator
7
+ DEFAULT_MAX_STEPS: Integer
8
+
9
+ DEFAULT_MAX_STACK: Integer
10
+
11
+ EOF_NAME: String
12
+
13
+ ERROR_NAME: String
14
+
15
+ IMPLICIT_ERROR: IR::error_action
16
+
17
+ attr_reader automaton: IR::Automaton
18
+
19
+ attr_reader max_steps: Integer
20
+
21
+ attr_reader max_stack: Integer
22
+
23
+ attr_reader eof: IR::GrammarSymbol
24
+
25
+ # @rbs (IR::Automaton automaton, ?max_steps: Integer, ?max_stack: Integer) -> void
26
+ def initialize: (IR::Automaton automaton, ?max_steps: Integer, ?max_stack: Integer) -> void
27
+
28
+ # @rbs () -> Session
29
+ def start: () -> Session
30
+
31
+ # @rbs (Array[String] tokens) -> Result
32
+ def simulate: (Array[String] tokens) -> Result
33
+
34
+ # @rbs (String spelling) -> IR::GrammarSymbol
35
+ def terminal: (String spelling) -> IR::GrammarSymbol
36
+
37
+ private
38
+
39
+ # @rbs (Array[IR::GrammarSymbol] terminals) -> Hash[String, Array[IR::GrammarSymbol]]
40
+ def terminal_aliases: (Array[IR::GrammarSymbol] terminals) -> Hash[String, Array[IR::GrammarSymbol]]
41
+ end
42
+
43
+ # Stateful token-at-a-time table simulation session.
44
+ class Session
45
+ @tokens: Array[String]
46
+
47
+ @steps: Array[Step]
48
+
49
+ attr_reader status: Symbol?
50
+
51
+ # @rbs (Simulator simulator) -> void
52
+ def initialize: (Simulator simulator) -> void
53
+
54
+ # @rbs (String spelling) -> Array[Step]
55
+ def push: (String spelling) -> Array[Step]
56
+
57
+ # @rbs () -> Array[Step]
58
+ def steps: () -> Array[Step]
59
+
60
+ # @rbs () -> Array[String]
61
+ def tokens: () -> Array[String]
62
+
63
+ # @rbs () -> Result
64
+ def finish: () -> Result
65
+
66
+ private
67
+
68
+ # @rbs (IR::GrammarSymbol terminal, eof: bool) -> Array[Step]
69
+ def process: (IR::GrammarSymbol terminal, eof: bool) -> Array[Step]
70
+
71
+ # @rbs (IR::AutomatonState state, Integer token_id) -> [IR::parser_action, String]
72
+ def action_for: (IR::AutomatonState state, Integer token_id) -> [ IR::parser_action, String ]
73
+
74
+ # @rbs (IR::AutomatonState state, IR::GrammarSymbol terminal, IR::parser_action action, String source) -> void
75
+ def record_shift: (IR::AutomatonState state, IR::GrammarSymbol terminal, IR::parser_action action, String source) -> void
76
+
77
+ # @rbs (IR::AutomatonState state, IR::GrammarSymbol terminal, IR::parser_action action, String source) -> void
78
+ def record_reduce: (IR::AutomatonState state, IR::GrammarSymbol terminal, IR::parser_action action, String source) -> void
79
+
80
+ # @rbs (IR::AutomatonState state, IR::GrammarSymbol terminal, String action, String source) -> void
81
+ def record_terminal: (IR::AutomatonState state, IR::GrammarSymbol terminal, String action, String source) -> void
82
+
83
+ # @rbs (IR::AutomatonState state, IR::GrammarSymbol terminal, String action, String source,
84
+ # before: Integer, ?production_id: Integer?, ?lhs: String?, ?rhs_length: Integer?,
85
+ # ?target_state: Integer?) -> void
86
+ def append_step: (IR::AutomatonState state, IR::GrammarSymbol terminal, String action, String source, before: Integer, ?production_id: Integer?, ?lhs: String?, ?rhs_length: Integer?, ?target_state: Integer?) -> void
87
+
88
+ # @rbs () -> IR::AutomatonState
89
+ def current_state: () -> IR::AutomatonState
90
+
91
+ # @rbs () -> void
92
+ def enforce_stack_budget!: () -> void
93
+
94
+ # @rbs () -> void
95
+ def ensure_active!: () -> void
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,40 @@
1
+ # Generated from lib/ibex/table_simulation/step.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module TableSimulation
5
+ # One immutable parser-table action.
6
+ class Step
7
+ attr_reader sequence: Integer
8
+
9
+ attr_reader state: Integer
10
+
11
+ attr_reader token_id: Integer
12
+
13
+ attr_reader token: String
14
+
15
+ attr_reader action: String
16
+
17
+ attr_reader action_source: String
18
+
19
+ attr_reader production_id: Integer?
20
+
21
+ attr_reader lhs: String?
22
+
23
+ attr_reader rhs_length: Integer?
24
+
25
+ attr_reader target_state: Integer?
26
+
27
+ attr_reader stack_depth_before: Integer
28
+
29
+ attr_reader stack_depth_after: Integer
30
+
31
+ # @rbs (sequence: Integer, state: Integer, token_id: Integer, token: String, action: String,
32
+ # action_source: String, production_id: Integer?, lhs: String?, rhs_length: Integer?,
33
+ # target_state: Integer?, stack_depth_before: Integer, stack_depth_after: Integer) -> void
34
+ def initialize: (sequence: Integer, state: Integer, token_id: Integer, token: String, action: String, action_source: String, production_id: Integer?, lhs: String?, rhs_length: Integer?, target_state: Integer?, stack_depth_before: Integer, stack_depth_after: Integer) -> void
35
+
36
+ # @rbs () -> Hash[String, untyped]
37
+ def to_h: () -> Hash[String, untyped]
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,14 @@
1
+ # Generated from lib/ibex/table_simulation/text.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module TableSimulation
5
+ # Stable one-line renderer for simulation steps.
6
+ module Text
7
+ # @rbs (Step step) -> String
8
+ def self.render_step: (Step step) -> String
9
+
10
+ # @rbs (Result result) -> String
11
+ def self.render: (Result result) -> String
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ # Generated from lib/ibex/table_simulation.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ # Safe LR table simulation over validated Automaton IR.
5
+ module TableSimulation
6
+ end
7
+ end
data/sig/ibex/tables.rbs CHANGED
@@ -18,32 +18,6 @@ module Ibex
18
18
  | ({ ?actions: untyped, ?gotos: untyped, ?default_actions: untyped }) -> instance
19
19
  end
20
20
 
21
- # Sparse table represented by per-row offsets and ownership checks.
22
- class Compact
23
- attr_reader offsets: Array[Integer]
24
-
25
- attr_reader values: Array[untyped]
26
-
27
- attr_reader checks: Array[Integer?]
28
-
29
- attr_reader row_count: Integer
30
-
31
- # @rbs (Array[Hash[Integer, untyped]] rows) -> Compact
32
- def self.build: (Array[Hash[Integer, untyped]] rows) -> Compact
33
-
34
- # @rbs (Array[Integer] columns, Array[Integer?] checks) -> Integer
35
- private def self.find_offset: (Array[Integer] columns, Array[Integer?] checks) -> Integer
36
-
37
- # @rbs (offsets: Array[Integer], values: Array[untyped], checks: Array[Integer?], row_count: Integer) -> void
38
- def initialize: (offsets: Array[Integer], values: Array[untyped], checks: Array[Integer?], row_count: Integer) -> void
39
-
40
- # @rbs (Integer row, Integer column) -> untyped
41
- def lookup: (Integer row, Integer column) -> untyped
42
-
43
- # @rbs (Integer row) -> Hash[Integer, untyped]
44
- def row: (Integer row) -> Hash[Integer, untyped]
45
- end
46
-
47
21
  # @rbs (IR::Automaton automaton, ?format: Symbol | String) -> TableSet
48
22
  def self?.build: (IR::Automaton automaton, ?format: Symbol | String) -> TableSet
49
23
  end
@@ -0,0 +1,48 @@
1
+ # Generated from lib/ibex/watch/runner.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module Watch
5
+ # Polls source fingerprints, debounces changes, and publishes stable builds.
6
+ class Runner
7
+ DEFAULT_INTERVAL: Float
8
+
9
+ DEFAULT_DEBOUNCE: Float
10
+
11
+ # 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
14
+
15
+ # @rbs () -> Integer
16
+ def run: () -> Integer
17
+
18
+ private
19
+
20
+ # @rbs (SourceSnapshot before) -> [SourceSnapshot, bool]
21
+ def build_once: (SourceSnapshot before) -> [ SourceSnapshot, bool ]
22
+
23
+ # @rbs (SourceSnapshot snapshot) -> SourceSnapshot
24
+ def wait_for_change: (SourceSnapshot snapshot) -> SourceSnapshot
25
+
26
+ # @rbs (SourceSnapshot changed) -> SourceSnapshot
27
+ def debounce: (SourceSnapshot changed) -> SourceSnapshot
28
+
29
+ # @rbs (Exception error) -> void
30
+ def report_failure: (Exception error) -> void
31
+
32
+ # @rbs (SourceSnapshot before, Exception error) -> [SourceSnapshot, bool]
33
+ def failed_build: (SourceSnapshot before, Exception error) -> [ SourceSnapshot, bool ]
34
+
35
+ # @rbs (Exception error, SourceSnapshot snapshot) -> void
36
+ def report_failure_once: (Exception error, SourceSnapshot snapshot) -> void
37
+
38
+ # @rbs (Symbol event) -> Integer?
39
+ def stop_status: (Symbol event) -> Integer?
40
+
41
+ # @rbs (Array[String] paths) -> Array[String]
42
+ def normalize_paths: (Array[String] paths) -> Array[String]
43
+
44
+ # @rbs () { () -> Integer } -> Integer
45
+ def with_signal_handlers: () { () -> Integer } -> Integer
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,42 @@
1
+ # Generated from lib/ibex/watch/source_snapshot.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ module Watch
5
+ # Stable metadata and content fingerprints for watched source paths.
6
+ class SourceSnapshot
7
+ attr_reader paths: Array[String]
8
+
9
+ # @rbs (Array[String] paths) -> void
10
+ def initialize: (Array[String] paths) -> void
11
+
12
+ # @rbs (SourceSnapshot other) -> bool
13
+ def ==: (SourceSnapshot other) -> bool
14
+
15
+ # Every path in this snapshot must have had the same value in the older snapshot.
16
+ # @rbs (SourceSnapshot older) -> bool
17
+ def unchanged_since?: (SourceSnapshot older) -> bool
18
+
19
+ attr_reader entries: Hash[String, Hash[Symbol, untyped]]
20
+
21
+ # @rbs (String path) -> Hash[Symbol, untyped]?
22
+ def entry: (String path) -> Hash[Symbol, untyped]?
23
+
24
+ private
25
+
26
+ # @rbs (String path) -> Hash[Symbol, untyped]
27
+ def fingerprint: (String path) -> Hash[Symbol, untyped]
28
+
29
+ # @rbs (File::Stat stat) -> Hash[Symbol, untyped]
30
+ def stat_signature: (File::Stat stat) -> Hash[Symbol, untyped]
31
+
32
+ # @rbs (File::Stat stat) -> Symbol
33
+ def file_kind: (File::Stat stat) -> Symbol
34
+
35
+ # @rbs (Time time) -> Integer
36
+ def nanoseconds: (Time time) -> Integer
37
+
38
+ # @rbs (Hash[Symbol, untyped] value, String path) -> void
39
+ def add_resolved_target: (Hash[Symbol, untyped] value, String path) -> void
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,7 @@
1
+ # Generated from lib/ibex/watch.rb with RBS::Inline
2
+
3
+ module Ibex
4
+ # Portable polling support for repeatable parser generation.
5
+ module Watch
6
+ end
7
+ end
data/sig/ibex.rbs CHANGED
@@ -3,4 +3,6 @@
3
3
  # Ibex generates and runs Pure Ruby LR parsers.
4
4
  module Ibex
5
5
  ParseError: singleton(Runtime::ParseError)
6
+
7
+ ResourceLimitError: singleton(Runtime::ResourceLimitError)
6
8
  end