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
@@ -1,29 +1,29 @@
1
1
  # frozen_string_literal: true
2
- # Generated by Ibex 4b30ee8200fd
2
+ # Generated by Ibex b85cd0e8a11c
3
3
 
4
4
 
5
5
  module Ibex
6
6
  module Frontend
7
7
  class GeneratedParser < Ibex::Frontend::GeneratedParserBase
8
8
  PARSER_TABLE_FORMAT_VERSION = 6
9
- GRAMMAR_DIGEST = "sha256:4b30ee8200fd78b1fd4a6438a0405514440a7c028e267a3af3c6e8d9a38c7b39".freeze
10
- STATE_COUNT = 220
11
- PRODUCTION_COUNT = 141
12
- TOKEN_IDS = { :CLASS => 2, :FRAGMENT => 3, :INCLUDE => 4, :IMPORT => 5, :TOKEN => 6, :PRECHIGH => 7, :PRECLOW => 8, :OPTIONS => 9, :EXPECT => 10, :EXPECT_RR => 11, :START => 12, :RECOVER => 13, :ON_ERROR_REDUCE => 14, :TEST => 15, :LEXER => 16, :CONVERT => 17, :DISPLAY => 18, :TYPE => 19, :PARAM => 20, :PRINTER => 21, :PRAGMA => 22, :RULE => 23, :END => 24, :LEFT => 25, :RIGHT => 26, :NONASSOC => 27, :PRECEDENCE => 28, :IDENTIFIER => 29, :LITERAL => 30, :INTEGER => 31, :ACTION => 32, :USER_CODE => 33, :INLINE => 34, :EMPTY => 35, :LHS => 36, :PARAMETERIZED_REFERENCE => 37, :TOKEN_ALIAS => 38, :NODE => 39, :SEPARATED_LIST => 40, :SEPARATED_NONEMPTY_LIST => 41, :STATE => 42, :DO => 43, :SKIP => 44, :ON => 45, :REGEXP => 46, '::' => 116, '<' => 117, ':' => 118, '(' => 119, ')' => 120, ',' => 121, ';' => 122, '|' => 123, '=' => 124, '?' => 125, '*' => 126, '+' => 127 }.freeze
13
- TOKEN_NAMES = { 0 => "$eof", 1 => "error", 2 => "CLASS", 3 => "FRAGMENT", 4 => "INCLUDE", 5 => "IMPORT", 6 => "TOKEN", 7 => "PRECHIGH", 8 => "PRECLOW", 9 => "OPTIONS", 10 => "EXPECT", 11 => "EXPECT_RR", 12 => "START", 13 => "RECOVER", 14 => "ON_ERROR_REDUCE", 15 => "TEST", 16 => "LEXER", 17 => "CONVERT", 18 => "DISPLAY", 19 => "TYPE", 20 => "PARAM", 21 => "PRINTER", 22 => "PRAGMA", 23 => "RULE", 24 => "END", 25 => "LEFT", 26 => "RIGHT", 27 => "NONASSOC", 28 => "PRECEDENCE", 29 => "IDENTIFIER", 30 => "LITERAL", 31 => "INTEGER", 32 => "ACTION", 33 => "USER_CODE", 34 => "INLINE", 35 => "EMPTY", 36 => "LHS", 37 => "PARAMETERIZED_REFERENCE", 38 => "TOKEN_ALIAS", 39 => "NODE", 40 => "SEPARATED_LIST", 41 => "SEPARATED_NONEMPTY_LIST", 42 => "STATE", 43 => "DO", 44 => "SKIP", 45 => "ON", 46 => "REGEXP", 116 => "'::'", 117 => "'<'", 118 => "':'", 119 => "'('", 120 => "')'", 121 => "','", 122 => "';'", 123 => "'|'", 124 => "'='", 125 => "'?'", 126 => "'*'", 127 => "'+'" }.freeze
14
- ACTIONS = Ibex::Tables::CompactActions.packed("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", row_count: 220, encoding: :signed, column_count: 128)
15
- GOTOS = Ibex::Tables::Compact.packed("AQEBAQEBAQEBBgEJAQEEDBAEAQEQASEBDSw8TgFXBAEBAQEBAQEBAQEBAQEBAQEBegEBAQFHARIBAQEBAWEBYgEBWQEBbAEBATgBAQEgAQEBAQEBAQEBbAEBb3BxAQF/AYEAgQEBAQEBAQEBAQEBAVsBcgExAXcBeQEBgQUBgQYBAQEBdhx8AQGBDQEBATwBAWRlATZ6ARcBAQEBAQEBOQEBAQEBbnkBAQEBAT2BAwEBAyApcAEBAQExAQEBAQEBAQEBAQEBAXFvAQEBAQF0PU1QAQEBYgFVdAEBAQEBAQEBAQ==", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBQAGAAgKSQkgISIxMyM2V1gkJSYnKCkqKzdkZYEPOGYsV1gtLi9CMCAhIjmBISNKS0wkJSYnKCkqKz6BNoE3gTiBOYE6LIEhgTstLi+BPDBwTIEhQIEiQ4EjgSSBJWRlgSFQZoEmgT2BJIElgSeBIYECS0yBJoE+gSSBJYEncExEgSGBJoFEgUWBK4EngRGBEoETgUZRgROBR4FIgTaBN4EhRYFUgSFogTuBM4E0gSGBPEdOaYFVgSSBJYFWgSSBJVtdgSaBRIFFgSaBJ4FXbYEngUZ1gViBR4FIdnd2enx9f4EAdoEDgQWBB4EMdoEQgRaBF4EZgS+BMoE1gT+BUYFSgVOBWQ==", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAAIIHwMJCQkKDAkPNzcJCQkJCQkJCRBCQoECEUIJODgJCQkZCU5OThKBLE4fHx9OTk5OTk5OThWBLIEsgSyBLIEsToETgSxOTk6BLE6BAoECgS0XgRMagROBE4ETgRCBEIEuNoEQgROBLYEtgS2BE4E0c3NzgS2BLoEugS6BLUpKG4FKgS6BNIE0gRuBLoEKgQqBG4E0NoEKgTSBNIFKgUqBSxyBSoFMQ4FKgSiBKIFSgUoeMUOBS4FLgUuBTIFMgUw+QIFLgVKBUoFMgUuBUEaBTIFSWIFQgVKBUltcXWBiY29xdXd6fIEBgQOBBoENgQ6BEYEhgSKBKYEvgUKBQ4FJgVM=", row_count: 220, dense_width: 116)
16
- DEFAULT_ACTIONS = [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, [:reduce, 82], [:reduce, 83], nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil].freeze
9
+ GRAMMAR_DIGEST = "sha256:b85cd0e8a11c519c1062b175163303d24ef1f41f483ae79283a02c7f4c98f538".freeze
10
+ STATE_COUNT = 227
11
+ PRODUCTION_COUNT = 146
12
+ TOKEN_IDS = { :CLASS => 2, :FRAGMENT => 3, :INCLUDE => 4, :IMPORT => 5, :TOKEN => 6, :PRECHIGH => 7, :PRECLOW => 8, :OPTIONS => 9, :EXPECT => 10, :EXPECT_RR => 11, :START => 12, :RECOVER => 13, :ON_ERROR_REDUCE => 14, :TEST => 15, :LEXER => 16, :CONVERT => 17, :DISPLAY => 18, :TYPE => 19, :PARAM => 20, :PRINTER => 21, :PARSER => 22, :PRAGMA => 23, :RULE => 24, :END => 25, :LEFT => 26, :RIGHT => 27, :NONASSOC => 28, :PRECEDENCE => 29, :IDENTIFIER => 30, :LITERAL => 31, :INTEGER => 32, :ACTION => 33, :USER_CODE => 34, :INLINE => 35, :EMPTY => 36, :LHS => 37, :PARAMETERIZED_REFERENCE => 38, :TOKEN_ALIAS => 39, :NODE => 40, :SEPARATED_LIST => 41, :SEPARATED_NONEMPTY_LIST => 42, :STATE => 43, :DO => 44, :SKIP => 45, :ON => 46, :REGEXP => 47, '::' => 120, '<' => 121, ':' => 122, '(' => 123, ')' => 124, ',' => 125, ';' => 126, '|' => 127, '=' => 128, '?' => 129, '*' => 130, '+' => 131 }.freeze
13
+ TOKEN_NAMES = { 0 => "$eof", 1 => "error", 2 => "CLASS", 3 => "FRAGMENT", 4 => "INCLUDE", 5 => "IMPORT", 6 => "TOKEN", 7 => "PRECHIGH", 8 => "PRECLOW", 9 => "OPTIONS", 10 => "EXPECT", 11 => "EXPECT_RR", 12 => "START", 13 => "RECOVER", 14 => "ON_ERROR_REDUCE", 15 => "TEST", 16 => "LEXER", 17 => "CONVERT", 18 => "DISPLAY", 19 => "TYPE", 20 => "PARAM", 21 => "PRINTER", 22 => "PARSER", 23 => "PRAGMA", 24 => "RULE", 25 => "END", 26 => "LEFT", 27 => "RIGHT", 28 => "NONASSOC", 29 => "PRECEDENCE", 30 => "IDENTIFIER", 31 => "LITERAL", 32 => "INTEGER", 33 => "ACTION", 34 => "USER_CODE", 35 => "INLINE", 36 => "EMPTY", 37 => "LHS", 38 => "PARAMETERIZED_REFERENCE", 39 => "TOKEN_ALIAS", 40 => "NODE", 41 => "SEPARATED_LIST", 42 => "SEPARATED_NONEMPTY_LIST", 43 => "STATE", 44 => "DO", 45 => "SKIP", 46 => "ON", 47 => "REGEXP", 120 => "'::'", 121 => "'<'", 122 => "':'", 123 => "'('", 124 => "')'", 125 => "','", 126 => "';'", 127 => "'|'", 128 => "'='", 129 => "'?'", 130 => "'*'", 131 => "'+'" }.freeze
14
+ ACTIONS = Ibex::Tables::CompactActions.packed("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", row_count: 227, encoding: :signed, column_count: 132)
15
+ GOTOS = Ibex::Tables::Compact.packed("AQIBAQEBAQIBBgEJAQEEFBgCAQEfASkBUlFMTwFXYgIBAQEBAQEBAQEBAQEBAQEBAQGBBAEBAQEOAUIBAQEBAWcBagEBQwEBdAFxAQE3AQEBIQEBAQEBAQEBAXABAXBxcgEBgQMBgQSBBQEBAQEBAQEBAQEBAQEBXAFzAS8BeAF6AQGBCQGBCgEBAQEBd1N9AQGBEQEBAToBAWVmAQN7ARUBAQEBAQEBFQEBAQEBb3oBAQEBATuBBAEBAR4ncQEBAQEvAQEBAQEBAQEBAQEBAXJwAQEBAQF1O0tOAQEBYAFTdQEBAQEBAQEBAQ==", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAUABgBMCAoJISIjMzUkOFpbJSYnKCkqKyxTZ2hnaGktaTkuLzA6MTIhIiM7gSgkTU5PJSYnKCkqKyxUgT2BPoE/gUCBQS2BKIFCLi8wgUMxMoEygShAgSmBGoEqgSuBLFpbgSiBFkKBLYFEgSuBLIEugSiBCU5PgS2BRYErgSyBLmt2T4EogS2BS4FMRIEugRiBGWyBTUWBGoFOgU+BPYE+gShGgVuBKEeBQoE6gTuBKIFDdk9JgVyBK4EsgV2BK4EsSlGBLYFLgUyBLYEugV5egS6BTWCBX4FOgU9wdHt8fXyBAIECgQOBBoEHfIEKgQyBDoETfIEXgR2BHoEggTaBOYE8gUaBWIFZgVqBYA==", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQAgAggDCQkJCgwJDzk5CQkJCQkJCQk4RESBF4EXRAmBFxAJCQkRCQlRUVESgTNRICAgUVFRUVFRUVE4gTOBM4EzgTOBM1GBGoEzUVFRgTNRUYEigTQVgRqBIoEagRqBGjo6gTWBCReBGoE0gTSBNIEagTt5eXmBNIE1gTWBNYE0RU1NgVGBNYE7gTsZgTWBEYERRYE7GoERgTuBO4FRgVGBUhuBUYFTHIFRgS+BL4FZgVGBCYEJHoFSgVKBUoFTgVOBUx8zgVKBWYFZgVOBUoFXQIFTgVlCgVeBWYFZSEpbXl9gY2VmdXd7fYEAgQKBCIEKgQ2BFIEVgRiBKIEpgTCBNoFJgUqBUIFa", row_count: 227, dense_width: 120)
16
+ DEFAULT_ACTIONS = [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, [:reduce, 87], [:reduce, 88], nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil].freeze
17
17
  eager_reductions = {} # @type var eager_reductions: Hash[Integer, [:reduce, Integer]]
18
18
  EAGER_REDUCTIONS = eager_reductions.freeze #: Hash[Integer, [:reduce, Integer]]
19
- PRODUCTIONS = Ibex::Tables::CompactProductions.packed("MDAxMTIzNDQ1NTY2Nzc4ODk5OTk5OTk5OTk5OTk5OTk6Ojs8PD09Pj4/P0BBQUFBQkNERUZHSElKSktLTExMTU1OTk9QUVFSU1RVVlZXWFhZWVpaW1tcXV1eXl9fYGBhYWJjY2RkZWVmZmdnZ2dnZ2hpampra2xsbGxtbW5ubm5vcHBxcXJycnJzc3R0", "AgIKCQMHAQICBAEDAQQBAwICAgICAgICAgICAgICAgIDAwMBAwIDBAQBAwMCAgICAwMDBAYEBAQBAwICBAQEAgIBAgYEAQMDBAQEAQIEAQMBAwICAgMHAQIBBAIEAQICBAQBBgECAQMBAwICAgICAgQHAQICBAICAgIBAwEDAwMFAgQBAwICAgIHBwED", "EREEBBEEERERERERAQEREREREREREREREREREREREREREREREREREREREREREREREREREQQREREREREREREREREREQQREREREREREREREREREREREREEERERERERAQERERERBBEREREREREREREREREEEREREREREREREREREREREREREREREREEBBER", metadata: Hash.new.freeze).freeze
19
+ PRODUCTIONS = Ibex::Tables::CompactProductions.packed("MTEyMjM0NTU2Njc3ODg5OTo6Ojo6Ojo6Ojo6Ojo6Ojo6Ozs8PT0+Pj8/QEBBQkJCQkNERUZHSElKS0tMTE1NTU5OT09QUVJSU1RVVldXWFlaWltcXF1dXl5fX2BhYWJiY2NkZGVlZmdnaGhpaWpqa2tra2trbG1ubm9vcHBwcHFxcnJycnN0dHV1dnZ2dnd3eHg=", "AgIKCQMHAQICBAEDAQQBAwICAgICAgICAgICAgICAgICAwMDAQMCAwQEAQMDAgICAgMDAwQGBAQEAQMCAgQEBAICAQIGBAEDAwQEBAECBAQBAwMBAwEDAgICAwcBAgEEAgQBAgIEBAEGAQIBAwEDAgICAgICBAcBAgIEAgICAgEDAQMDAwUCBAEDAgICAgcHAQM=", "EREEBBEEERERERERAQEREREREREREREREREREREREREREREREREREREREREREREREREREREEEREREREREREREREREREEEREREREREREREREREREREREREREREQQREREREREBAREREREEEREREREREREREREREQQREREREREREREREREREREREREREREREQQEERE=", metadata: Hash.new.freeze).freeze
20
20
  error_messages = {} # @type var error_messages: Hash[Integer, String | { id: String, message: String }]
21
21
  ERROR_MESSAGES = error_messages.freeze #: Hash[Integer, String | { id: String, message: String }]
22
22
  PARSER_TABLES = { format_version: PARSER_TABLE_FORMAT_VERSION,
23
23
  grammar_digest: GRAMMAR_DIGEST,
24
24
  state_count: STATE_COUNT, production_count: PRODUCTION_COUNT,
25
25
  uses_locations: false,
26
- compact_fast_driver: true, compact_action_encoding: :signed, compact_default_actions: [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, -84, -85, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil].freeze,
26
+ compact_fast_driver: true, compact_action_encoding: :signed, compact_default_actions: [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, -89, -90, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil].freeze,
27
27
  tokens: TOKEN_IDS, token_names: TOKEN_NAMES, actions: ACTIONS,
28
28
  gotos: GOTOS, default_actions: DEFAULT_ACTIONS,
29
29
  productions: PRODUCTIONS, eager_reductions: EAGER_REDUCTIONS, error_messages: ERROR_MESSAGES }.freeze
@@ -211,9 +211,9 @@ class GeneratedParser < Ibex::Frontend::GeneratedParserBase
211
211
  result
212
212
  end
213
213
 
214
- private def _ibex_action_32(v0, v1)
214
+ private def _ibex_action_32(v0)
215
215
  result = v0
216
- result = build_include(v0, v1)
216
+ result = v0
217
217
  result
218
218
  end
219
219
 
@@ -224,630 +224,660 @@ class GeneratedParser < Ibex::Frontend::GeneratedParserBase
224
224
  end
225
225
 
226
226
  private def _ibex_action_34(v0, v1)
227
+ result = v0
228
+ result = build_include(v0, v1)
229
+ result
230
+ end
231
+
232
+ private def _ibex_action_35(v0, v1)
227
233
  result = v0
228
234
  result = build_tokens(v0, v1)
229
235
  result
230
236
  end
231
237
 
232
- private def _ibex_action_35()
238
+ private def _ibex_action_36()
233
239
  result = nil
234
240
  result = Array.new(0)
235
241
  result
236
242
  end
237
243
 
238
- private def _ibex_action_36(v0, v1)
244
+ private def _ibex_action_37(v0, v1)
239
245
  result = v0
240
246
  result = v0 + [v1]
241
247
  result
242
248
  end
243
249
 
244
- private def _ibex_action_37(v0)
250
+ private def _ibex_action_38(v0)
245
251
  result = v0
246
252
  result = build_token_entry(v0)
247
253
  result
248
254
  end
249
255
 
250
- private def _ibex_action_38(v0, v1)
256
+ private def _ibex_action_39(v0, v1)
251
257
  result = v0
252
258
  result = build_token_alias(v0, v1)
253
259
  result
254
260
  end
255
261
 
256
- private def _ibex_action_39(v0, v1, v2)
262
+ private def _ibex_action_40(v0, v1, v2)
257
263
  result = v0
258
264
  result = build_precedence(v0, :high_to_low, v1)
259
265
  result
260
266
  end
261
267
 
262
- private def _ibex_action_40(v0, v1, v2)
268
+ private def _ibex_action_41(v0, v1, v2)
263
269
  result = v0
264
270
  result = build_precedence(v0, :low_to_high, v1)
265
271
  result
266
272
  end
267
273
 
268
- private def _ibex_action_41()
274
+ private def _ibex_action_42()
269
275
  result = nil
270
276
  result = Array.new(0)
271
277
  result
272
278
  end
273
279
 
274
- private def _ibex_action_42(v0, v1)
280
+ private def _ibex_action_43(v0, v1)
275
281
  result = v0
276
282
  result = v0 + [v1]
277
283
  result
278
284
  end
279
285
 
280
- private def _ibex_action_43(v0, v1)
286
+ private def _ibex_action_44(v0, v1)
281
287
  result = v0
282
288
  result = build_precedence_level(v0, v1)
283
289
  result
284
290
  end
285
291
 
286
- private def _ibex_action_44(v0)
292
+ private def _ibex_action_45(v0)
287
293
  result = v0
288
294
  result = v0
289
295
  result
290
296
  end
291
297
 
292
- private def _ibex_action_45(v0)
298
+ private def _ibex_action_46(v0)
293
299
  result = v0
294
300
  result = v0
295
301
  result
296
302
  end
297
303
 
298
- private def _ibex_action_46(v0)
304
+ private def _ibex_action_47(v0)
299
305
  result = v0
300
306
  result = v0
301
307
  result
302
308
  end
303
309
 
304
- private def _ibex_action_47(v0)
310
+ private def _ibex_action_48(v0)
305
311
  result = v0
306
312
  result = v0
307
313
  result
308
314
  end
309
315
 
310
- private def _ibex_action_48(v0, v1)
316
+ private def _ibex_action_49(v0, v1)
311
317
  result = v0
312
318
  result = build_options(v0, v1)
313
319
  result
314
320
  end
315
321
 
316
- private def _ibex_action_49(v0, v1)
322
+ private def _ibex_action_50(v0, v1)
317
323
  result = v0
318
324
  result = build_expect(v0, v1)
319
325
  result
320
326
  end
321
327
 
322
- private def _ibex_action_50(v0, v1)
328
+ private def _ibex_action_51(v0, v1)
323
329
  result = v0
324
330
  result = build_expect_rr(v0, v1)
325
331
  result
326
332
  end
327
333
 
328
- private def _ibex_action_51(v0, v1, v2)
334
+ private def _ibex_action_52(v0, v1, v2)
329
335
  result = v0
330
336
  result = build_start(v0, [v1.value] + v2)
331
337
  result
332
338
  end
333
339
 
334
- private def _ibex_action_52(val)
340
+ private def _ibex_action_53(val)
335
341
  result = val[0]
336
342
  result = build_recovery(val[0], val[1], [val[3].value] + val[4])
337
343
  result
338
344
  end
339
345
 
340
- private def _ibex_action_53(v0, v1, v2)
346
+ private def _ibex_action_54(v0, v1, v2)
341
347
  result = v0
342
348
  result = build_on_error_reduce(v0, [v1.value] + v2)
343
349
  result
344
350
  end
345
351
 
346
- private def _ibex_action_54(v0, v1, v2)
352
+ private def _ibex_action_55(v0, v1, v2)
347
353
  result = v0
348
354
  result = build_grammar_test(v0, v1, v2)
349
355
  result
350
356
  end
351
357
 
352
- private def _ibex_action_55(v0, v1, v2)
358
+ private def _ibex_action_56(v0, v1, v2)
353
359
  result = v0
354
360
  result = build_lexer(v0, v1)
355
361
  result
356
362
  end
357
363
 
358
- private def _ibex_action_56()
364
+ private def _ibex_action_57()
359
365
  result = nil
360
366
  result = Array.new(0)
361
367
  result
362
368
  end
363
369
 
364
- private def _ibex_action_57(v0, v1)
370
+ private def _ibex_action_58(v0, v1)
365
371
  result = v0
366
372
  result = v0 + [v1]
367
373
  result
368
374
  end
369
375
 
370
- private def _ibex_action_58(v0)
376
+ private def _ibex_action_59(v0)
371
377
  result = v0
372
378
  result = v0
373
379
  result
374
380
  end
375
381
 
376
- private def _ibex_action_59(v0)
382
+ private def _ibex_action_60(v0)
377
383
  result = v0
378
384
  result = v0
379
385
  result
380
386
  end
381
387
 
382
- private def _ibex_action_60(v0, v1, v2)
388
+ private def _ibex_action_61(v0, v1, v2)
383
389
  result = v0
384
390
  result = build_lexer_rule(:skip, nil, v1, v2, v0)
385
391
  result
386
392
  end
387
393
 
388
- private def _ibex_action_61(v0, v1, v2)
394
+ private def _ibex_action_62(v0, v1, v2)
389
395
  result = v0
390
396
  result = build_lexer_rule(:token, v0, v1, v2, v0)
391
397
  result
392
398
  end
393
399
 
394
- private def _ibex_action_62(v0, v1, v2)
400
+ private def _ibex_action_63(v0, v1, v2)
395
401
  result = v0
396
402
  result = build_lexer_rule(:on, nil, v1, v2, v0)
397
403
  result
398
404
  end
399
405
 
400
- private def _ibex_action_63(v0)
406
+ private def _ibex_action_64(v0)
401
407
  result = v0
402
408
  result = v0
403
409
  result
404
410
  end
405
411
 
406
- private def _ibex_action_64(v0)
412
+ private def _ibex_action_65(v0)
407
413
  result = v0
408
414
  result = v0
409
415
  result
410
416
  end
411
417
 
412
- private def _ibex_action_65()
418
+ private def _ibex_action_66()
413
419
  result = nil
414
420
  result = nil
415
421
  result
416
422
  end
417
423
 
418
- private def _ibex_action_66(v0)
424
+ private def _ibex_action_67(v0)
419
425
  result = v0
420
426
  result = v0
421
427
  result
422
428
  end
423
429
 
424
- private def _ibex_action_67(val)
430
+ private def _ibex_action_68(val)
425
431
  result = val[0]
426
432
  result = build_lexer_state(val[0], val[1], val[3])
427
433
  result
428
434
  end
429
435
 
430
- private def _ibex_action_68(v0, v1, v2)
436
+ private def _ibex_action_69(v0, v1, v2)
431
437
  result = v0
432
438
  result = build_convert(v0, v1)
433
439
  result
434
440
  end
435
441
 
436
- private def _ibex_action_69()
442
+ private def _ibex_action_70()
437
443
  result = nil
438
444
  result = Array.new(0)
439
445
  result
440
446
  end
441
447
 
442
- private def _ibex_action_70(v0, v1)
448
+ private def _ibex_action_71(v0, v1)
443
449
  result = v0
444
450
  result = v0 + [v1]
445
451
  result
446
452
  end
447
453
 
448
- private def _ibex_action_71(v0, v1)
454
+ private def _ibex_action_72(v0, v1)
449
455
  result = v0
450
456
  result = build_conversion(v0, v1)
451
457
  result
452
458
  end
453
459
 
454
- private def _ibex_action_72(v0, v1, v2)
460
+ private def _ibex_action_73(v0, v1, v2)
455
461
  result = v0
456
462
  result = build_display_name(v0, v1, v2)
457
463
  result
458
464
  end
459
465
 
460
- private def _ibex_action_73(v0, v1, v2)
466
+ private def _ibex_action_74(v0, v1, v2)
461
467
  result = v0
462
468
  result = build_semantic_type(v0, v1, v2)
463
469
  result
464
470
  end
465
471
 
466
- private def _ibex_action_74(v0, v1, v2)
472
+ private def _ibex_action_75(v0, v1, v2)
467
473
  result = v0
468
474
  result = build_parameter(v0, v1, v2)
469
475
  result
470
476
  end
471
477
 
472
- private def _ibex_action_75()
478
+ private def _ibex_action_76()
473
479
  result = nil
474
480
  result = nil
475
481
  result
476
482
  end
477
483
 
478
- private def _ibex_action_76(v0)
484
+ private def _ibex_action_77(v0)
479
485
  result = v0
480
486
  result = v0
481
487
  result
482
488
  end
483
489
 
484
- private def _ibex_action_77(v0, v1, v2)
490
+ private def _ibex_action_78(v0, v1, v2)
485
491
  result = v0
486
492
  result = build_printer(v0, v1, v2)
487
493
  result
488
494
  end
489
495
 
490
- private def _ibex_action_78()
496
+ private def _ibex_action_79(v0, v1, v2)
497
+ result = v0
498
+ result = build_parser_configuration(v0, v1)
499
+ result
500
+ end
501
+
502
+ private def _ibex_action_80()
491
503
  result = nil
492
504
  result = Array.new(0)
493
505
  result
494
506
  end
495
507
 
496
- private def _ibex_action_79(v0, v1)
508
+ private def _ibex_action_81(v0, v1)
509
+ result = v0
510
+ result = v0 + [v1]
511
+ result
512
+ end
513
+
514
+ private def _ibex_action_82(v0, v1)
515
+ result = v0
516
+ result = build_parser_setting(v0, v1)
517
+ result
518
+ end
519
+
520
+ private def _ibex_action_83()
521
+ result = nil
522
+ result = Array.new(0)
523
+ result
524
+ end
525
+
526
+ private def _ibex_action_84(v0, v1)
497
527
  result = v0
498
528
  result = v0 + [v1.value]
499
529
  result
500
530
  end
501
531
 
502
- private def _ibex_action_80()
532
+ private def _ibex_action_85()
503
533
  result = nil
504
534
  result = Array.new(0)
505
535
  result
506
536
  end
507
537
 
508
- private def _ibex_action_81(v0, v1)
538
+ private def _ibex_action_86(v0, v1)
509
539
  result = v0
510
540
  result = v0 + [v1.value]
511
541
  result
512
542
  end
513
543
 
514
- private def _ibex_action_82(v0)
544
+ private def _ibex_action_87(v0)
515
545
  result = v0
516
546
  result = v0
517
547
  result
518
548
  end
519
549
 
520
- private def _ibex_action_83(v0)
550
+ private def _ibex_action_88(v0)
521
551
  result = v0
522
552
  result = v0
523
553
  result
524
554
  end
525
555
 
526
- private def _ibex_action_84(v0)
556
+ private def _ibex_action_89(v0)
527
557
  result = v0
528
558
  result = [v0]
529
559
  result
530
560
  end
531
561
 
532
- private def _ibex_action_85(v0, v1)
562
+ private def _ibex_action_90(v0, v1)
533
563
  result = v0
534
564
  result = v0 + [v1]
535
565
  result
536
566
  end
537
567
 
538
- private def _ibex_action_86(val)
568
+ private def _ibex_action_91(val)
539
569
  result = val[0]
540
570
  result = build_rule(val[0], val[1], val[2], val[4])
541
571
  result
542
572
  end
543
573
 
544
- private def _ibex_action_87()
574
+ private def _ibex_action_92()
545
575
  result = nil
546
576
  result = nil
547
577
  result
548
578
  end
549
579
 
550
- private def _ibex_action_88(v0)
580
+ private def _ibex_action_93(v0)
551
581
  result = v0
552
582
  result = v0
553
583
  result
554
584
  end
555
585
 
556
- private def _ibex_action_89()
586
+ private def _ibex_action_94()
557
587
  result = nil
558
588
  result = nil
559
589
  result
560
590
  end
561
591
 
562
- private def _ibex_action_90(v0, v1, v2)
592
+ private def _ibex_action_95(v0, v1, v2)
563
593
  result = v0
564
594
  result = build_rule_parameters(v0, v1)
565
595
  result
566
596
  end
567
597
 
568
- private def _ibex_action_91(v0)
598
+ private def _ibex_action_96(v0)
569
599
  result = v0
570
600
  result = [v0]
571
601
  result
572
602
  end
573
603
 
574
- private def _ibex_action_92(v0, v1, v2)
604
+ private def _ibex_action_97(v0, v1, v2)
575
605
  result = v0
576
606
  result = v0 + [v2]
577
607
  result
578
608
  end
579
609
 
580
- private def _ibex_action_95(v0)
610
+ private def _ibex_action_100(v0)
581
611
  result = v0
582
612
  result = [v0]
583
613
  result
584
614
  end
585
615
 
586
- private def _ibex_action_96(v0, v1, v2)
616
+ private def _ibex_action_101(v0, v1, v2)
587
617
  result = v0
588
618
  result = v0 + [v2]
589
619
  result
590
620
  end
591
621
 
592
- private def _ibex_action_97(v0, v1, v2)
622
+ private def _ibex_action_102(v0, v1, v2)
593
623
  result = v0
594
624
  result = build_alternative(v0, v1, v2)
595
625
  result
596
626
  end
597
627
 
598
- private def _ibex_action_98()
628
+ private def _ibex_action_103()
599
629
  result = nil
600
630
  result = nil
601
631
  result
602
632
  end
603
633
 
604
- private def _ibex_action_99(val)
634
+ private def _ibex_action_104(val)
605
635
  result = val[0]
606
636
  result = build_node_annotation(val[0], val[1], val[3])
607
637
  result
608
638
  end
609
639
 
610
- private def _ibex_action_100()
640
+ private def _ibex_action_105()
611
641
  result = nil
612
642
  result = Array.new(0)
613
643
  result
614
644
  end
615
645
 
616
- private def _ibex_action_101(v0)
646
+ private def _ibex_action_106(v0)
617
647
  result = v0
618
648
  result = v0
619
649
  result
620
650
  end
621
651
 
622
- private def _ibex_action_102()
652
+ private def _ibex_action_107()
623
653
  result = nil
624
654
  result = nil
625
655
  result
626
656
  end
627
657
 
628
- private def _ibex_action_103(v0, v1)
658
+ private def _ibex_action_108(v0, v1)
629
659
  result = v0
630
660
  result = v1
631
661
  result
632
662
  end
633
663
 
634
- private def _ibex_action_104()
664
+ private def _ibex_action_109()
635
665
  result = nil
636
666
  result = Array.new(0)
637
667
  result
638
668
  end
639
669
 
640
- private def _ibex_action_105(v0, v1)
670
+ private def _ibex_action_110(v0, v1)
641
671
  result = v0
642
672
  result = v0 + [v1]
643
673
  result
644
674
  end
645
675
 
646
- private def _ibex_action_106(v0)
676
+ private def _ibex_action_111(v0)
647
677
  result = v0
648
678
  result = v0
649
679
  result
650
680
  end
651
681
 
652
- private def _ibex_action_107(v0)
682
+ private def _ibex_action_112(v0)
653
683
  result = v0
654
684
  result = v0
655
685
  result
656
686
  end
657
687
 
658
- private def _ibex_action_108(v0)
688
+ private def _ibex_action_113(v0)
659
689
  result = v0
660
690
  result = build_action(v0)
661
691
  result
662
692
  end
663
693
 
664
- private def _ibex_action_109(v0)
694
+ private def _ibex_action_114(v0)
665
695
  result = v0
666
696
  result = build_empty(v0)
667
697
  result
668
698
  end
669
699
 
670
- private def _ibex_action_110(v0)
700
+ private def _ibex_action_115(v0)
671
701
  result = v0
672
702
  result = v0
673
703
  result
674
704
  end
675
705
 
676
- private def _ibex_action_111(v0)
706
+ private def _ibex_action_116(v0)
677
707
  result = v0
678
708
  result = v0
679
709
  result
680
710
  end
681
711
 
682
- private def _ibex_action_112(v0, v1, v2)
712
+ private def _ibex_action_117(v0, v1, v2)
683
713
  result = v0
684
714
  result = build_symbol_reference(v0, v1, v2)
685
715
  result
686
716
  end
687
717
 
688
- private def _ibex_action_113(val)
718
+ private def _ibex_action_118(val)
689
719
  result = val[0]
690
720
  result = build_parameterized_reference(val[0], val[1], val[2], val[4], val[5])
691
721
  result
692
722
  end
693
723
 
694
- private def _ibex_action_114()
724
+ private def _ibex_action_119()
695
725
  result = nil
696
726
  result = Array.new(0)
697
727
  result
698
728
  end
699
729
 
700
- private def _ibex_action_115(v0)
730
+ private def _ibex_action_120(v0)
701
731
  result = v0
702
732
  result = v0
703
733
  result
704
734
  end
705
735
 
706
- private def _ibex_action_116(v0)
736
+ private def _ibex_action_121(v0)
707
737
  result = v0
708
738
  result = [v0]
709
739
  result
710
740
  end
711
741
 
712
- private def _ibex_action_117(v0, v1, v2)
742
+ private def _ibex_action_122(v0, v1, v2)
713
743
  result = v0
714
744
  result = v0 + [v2]
715
745
  result
716
746
  end
717
747
 
718
- private def _ibex_action_118(v0)
748
+ private def _ibex_action_123(v0)
719
749
  result = v0
720
750
  result = v0
721
751
  result
722
752
  end
723
753
 
724
- private def _ibex_action_119(v0)
754
+ private def _ibex_action_124(v0)
725
755
  result = v0
726
756
  result = v0
727
757
  result
728
758
  end
729
759
 
730
- private def _ibex_action_120(v0)
760
+ private def _ibex_action_125(v0)
731
761
  result = v0
732
762
  result = v0
733
763
  result
734
764
  end
735
765
 
736
- private def _ibex_action_121(v0)
766
+ private def _ibex_action_126(v0)
737
767
  result = v0
738
768
  result = v0
739
769
  result
740
770
  end
741
771
 
742
- private def _ibex_action_122()
772
+ private def _ibex_action_127()
743
773
  result = nil
744
774
  result = nil
745
775
  result
746
776
  end
747
777
 
748
- private def _ibex_action_123(v0, v1)
778
+ private def _ibex_action_128(v0, v1)
749
779
  result = v0
750
780
  result = [v0, v1]
751
781
  result
752
782
  end
753
783
 
754
- private def _ibex_action_124()
784
+ private def _ibex_action_129()
755
785
  result = nil
756
786
  result = Array.new(0)
757
787
  result
758
788
  end
759
789
 
760
- private def _ibex_action_125(v0, v1)
790
+ private def _ibex_action_130(v0, v1)
761
791
  result = v0
762
792
  result = v0 + [v1]
763
793
  result
764
794
  end
765
795
 
766
- private def _ibex_action_126(v0, v1)
796
+ private def _ibex_action_131(v0, v1)
767
797
  result = v0
768
798
  result = v0 + [v1]
769
799
  result
770
800
  end
771
801
 
772
- private def _ibex_action_127(v0, v1)
802
+ private def _ibex_action_132(v0, v1)
773
803
  result = v0
774
804
  result = v0 + [v1]
775
805
  result
776
806
  end
777
807
 
778
- private def _ibex_action_128(v0, v1, v2, v3)
808
+ private def _ibex_action_133(v0, v1, v2, v3)
779
809
  result = v0
780
810
  result = build_group(v0, v1, v3)
781
811
  result
782
812
  end
783
813
 
784
- private def _ibex_action_129(v0)
814
+ private def _ibex_action_134(v0)
785
815
  result = v0
786
816
  result = [v0]
787
817
  result
788
818
  end
789
819
 
790
- private def _ibex_action_130(v0, v1, v2)
820
+ private def _ibex_action_135(v0, v1, v2)
791
821
  result = v0
792
822
  result = v0 + [v2]
793
823
  result
794
824
  end
795
825
 
796
- private def _ibex_action_131()
826
+ private def _ibex_action_136()
797
827
  result = nil
798
828
  result = Array.new(0)
799
829
  result
800
830
  end
801
831
 
802
- private def _ibex_action_132(v0, v1)
832
+ private def _ibex_action_137(v0, v1)
803
833
  result = v0
804
834
  result = v0 + [v1]
805
835
  result
806
836
  end
807
837
 
808
- private def _ibex_action_133(v0)
838
+ private def _ibex_action_138(v0)
809
839
  result = v0
810
840
  result = v0
811
841
  result
812
842
  end
813
843
 
814
- private def _ibex_action_134(v0)
844
+ private def _ibex_action_139(v0)
815
845
  result = v0
816
846
  result = v0
817
847
  result
818
848
  end
819
849
 
820
- private def _ibex_action_135(v0)
850
+ private def _ibex_action_140(v0)
821
851
  result = v0
822
852
  result = v0
823
853
  result
824
854
  end
825
855
 
826
- private def _ibex_action_136(v0)
856
+ private def _ibex_action_141(v0)
827
857
  result = v0
828
858
  result = v0
829
859
  result
830
860
  end
831
861
 
832
- private def _ibex_action_137(val)
862
+ private def _ibex_action_142(val)
833
863
  result = val[0]
834
864
  result = build_separated_list(val[0], val[2], val[4])
835
865
  result
836
866
  end
837
867
 
838
- private def _ibex_action_138(val)
868
+ private def _ibex_action_143(val)
839
869
  result = val[0]
840
870
  result = build_separated_list(val[0], val[2], val[4])
841
871
  result
842
872
  end
843
873
 
844
- private def _ibex_action_139()
874
+ private def _ibex_action_144()
845
875
  result = nil
846
876
  result = empty_user_code
847
877
  result
848
878
  end
849
879
 
850
- private def _ibex_action_140(v0, v1)
880
+ private def _ibex_action_145(v0, v1)
851
881
  result = v0
852
882
  result = append_user_code(v0, v1)
853
883
  result