ibex 0.1.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 (603) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +89 -123
  3. data/docs/architecture.md +477 -31
  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 +106 -0
  12. data/docs/cst.md +237 -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 +306 -0
  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 +26 -0
  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 +114 -0
  51. data/docs/getting-started.md +80 -0
  52. data/docs/grammar-reference.md +629 -18
  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 +56 -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 +45 -6
  63. data/docs/release-readiness.md +221 -0
  64. data/docs/repair-semantics.md +123 -0
  65. data/docs/runtime-abi-evolution.md +307 -0
  66. data/docs/stability.md +234 -0
  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/examples/README.md +60 -0
  75. data/examples/calculator.y +44 -0
  76. data/examples/csv.y +32 -0
  77. data/examples/ini.y +70 -0
  78. data/examples/json.y +48 -0
  79. data/examples/tiny_language.y +75 -0
  80. data/lib/ibex/analysis/digraph.rb +128 -0
  81. data/lib/ibex/analysis/sets.rb +5 -4
  82. data/lib/ibex/analysis.rb +1 -0
  83. data/lib/ibex/artifact_set.rb +63 -0
  84. data/lib/ibex/bison_import/importer.rb +516 -0
  85. data/lib/ibex/bison_import/tokenizer.rb +260 -0
  86. data/lib/ibex/bison_import.rb +200 -0
  87. data/lib/ibex/bounded_subprocess.rb +171 -0
  88. data/lib/ibex/cli/ambiguity.rb +75 -0
  89. data/lib/ibex/cli/analysis.rb +134 -0
  90. data/lib/ibex/cli/bison_import.rb +121 -0
  91. data/lib/ibex/cli/config.rb +128 -0
  92. data/lib/ibex/cli/counterexample_options.rb +6 -2
  93. data/lib/ibex/cli/coverage.rb +173 -0
  94. data/lib/ibex/cli/debug.rb +106 -0
  95. data/lib/ibex/cli/diagnostics.rb +136 -0
  96. data/lib/ibex/cli/documentation.rb +70 -0
  97. data/lib/ibex/cli/equiv.rb +169 -0
  98. data/lib/ibex/cli/error_messages.rb +184 -0
  99. data/lib/ibex/cli/explain.rb +85 -0
  100. data/lib/ibex/cli/fix.rb +203 -0
  101. data/lib/ibex/cli/formatting.rb +387 -0
  102. data/lib/ibex/cli/fuzz.rb +200 -0
  103. data/lib/ibex/cli/fuzz_regressions.rb +145 -0
  104. data/lib/ibex/cli/generation_artifacts.rb +189 -0
  105. data/lib/ibex/cli/generation_error_messages.rb +39 -0
  106. data/lib/ibex/cli/grammar_tests.rb +140 -0
  107. data/lib/ibex/cli/ir_tools.rb +128 -0
  108. data/lib/ibex/cli/lsp.rb +33 -0
  109. data/lib/ibex/cli/outputs.rb +133 -23
  110. data/lib/ibex/cli/racc_migration.rb +87 -0
  111. data/lib/ibex/cli/reduce.rb +202 -0
  112. data/lib/ibex/cli/reduce_reporting.rb +71 -0
  113. data/lib/ibex/cli/samples.rb +118 -0
  114. data/lib/ibex/cli/verify.rb +116 -0
  115. data/lib/ibex/cli/watch.rb +104 -0
  116. data/lib/ibex/cli.rb +825 -55
  117. data/lib/ibex/codegen/action_locations.rb +103 -0
  118. data/lib/ibex/codegen/action_method_source.rb +209 -0
  119. data/lib/ibex/codegen/action_source.rb +119 -0
  120. data/lib/ibex/codegen/ambiguity.rb +174 -0
  121. data/lib/ibex/codegen/cst_metadata.rb +171 -0
  122. data/lib/ibex/codegen/documentation.rb +170 -0
  123. data/lib/ibex/codegen/explain.rb +380 -0
  124. data/lib/ibex/codegen/generated_action_abi.rb +293 -0
  125. data/lib/ibex/codegen/html.rb +94 -10
  126. data/lib/ibex/codegen/mermaid.rb +43 -0
  127. data/lib/ibex/codegen/railroad.rb +197 -0
  128. data/lib/ibex/codegen/railroad_documentation.rb +59 -0
  129. data/lib/ibex/codegen/rbs.rb +331 -2
  130. data/lib/ibex/codegen/report.rb +67 -15
  131. data/lib/ibex/codegen/ruby.rb +305 -66
  132. data/lib/ibex/codegen/ruby_actions.rb +146 -0
  133. data/lib/ibex/codegen/ruby_ast.rb +121 -0
  134. data/lib/ibex/codegen/ruby_error_messages.rb +28 -0
  135. data/lib/ibex/codegen/ruby_lexer.rb +83 -0
  136. data/lib/ibex/codegen/ruby_syntax.rb +96 -0
  137. data/lib/ibex/codegen/ruby_table_metadata.rb +57 -0
  138. data/lib/ibex/codegen/ruby_value_printers.rb +56 -0
  139. data/lib/ibex/codegen/symbol_labels.rb +1 -1
  140. data/lib/ibex/configuration/analysis_grammar.rb +35 -0
  141. data/lib/ibex/configuration/explanation.rb +421 -0
  142. data/lib/ibex/configuration/inspector.rb +232 -0
  143. data/lib/ibex/configuration.rb +580 -0
  144. data/lib/ibex/coverage/collector.rb +198 -0
  145. data/lib/ibex/coverage/event_stream.rb +103 -0
  146. data/lib/ibex/coverage/report.rb +267 -0
  147. data/lib/ibex/coverage/runtime_event_validator.rb +169 -0
  148. data/lib/ibex/coverage.rb +13 -0
  149. data/lib/ibex/delta_reducer.rb +99 -0
  150. data/lib/ibex/diff.rb +140 -0
  151. data/lib/ibex/equiv/machine.rb +135 -0
  152. data/lib/ibex/equiv.rb +373 -0
  153. data/lib/ibex/error_messages/parser.rb +159 -0
  154. data/lib/ibex/error_messages/parser_v2.rb +198 -0
  155. data/lib/ibex/error_messages/renderer.rb +65 -0
  156. data/lib/ibex/error_messages/sentence_search.rb +196 -0
  157. data/lib/ibex/error_messages/update.rb +169 -0
  158. data/lib/ibex/error_messages.rb +165 -0
  159. data/lib/ibex/fix.rb +557 -0
  160. data/lib/ibex/frontend/ast.rb +166 -7
  161. data/lib/ibex/frontend/bootstrap_parser.rb +40 -4
  162. data/lib/ibex/frontend/diagnostic.rb +81 -0
  163. data/lib/ibex/frontend/diagnostic_recovery.rb +268 -0
  164. data/lib/ibex/frontend/dsl.rb +66 -7
  165. data/lib/ibex/frontend/formatter.rb +453 -0
  166. data/lib/ibex/frontend/generated_parser.rb +644 -190
  167. data/lib/ibex/frontend/generated_parser_base.rb +170 -32
  168. data/lib/ibex/frontend/generated_parser_includes.rb +51 -0
  169. data/lib/ibex/frontend/generated_parser_metadata.rb +61 -0
  170. data/lib/ibex/frontend/generated_parser_parameters.rb +60 -0
  171. data/lib/ibex/frontend/generation.rb +33 -0
  172. data/lib/ibex/frontend/lexer.rb +162 -10
  173. data/lib/ibex/frontend/lexer_recovery.rb +84 -0
  174. data/lib/ibex/frontend/parser/declarations.rb +262 -11
  175. data/lib/ibex/frontend/parser/parameters.rb +82 -0
  176. data/lib/ibex/frontend/parser/rules.rb +43 -6
  177. data/lib/ibex/frontend/parser.rb +182 -4
  178. data/lib/ibex/frontend/parser_configuration_support.rb +56 -0
  179. data/lib/ibex/frontend/regenerator.rb +27 -1
  180. data/lib/ibex/frontend/resolution.rb +70 -0
  181. data/lib/ibex/frontend/resolver.rb +217 -0
  182. data/lib/ibex/frontend/rule_documentation.rb +104 -0
  183. data/lib/ibex/frontend/source_cursor.rb +133 -9
  184. data/lib/ibex/frontend/source_document.rb +229 -0
  185. data/lib/ibex/frontend/source_loader.rb +150 -0
  186. data/lib/ibex/frontend/source_span.rb +89 -0
  187. data/lib/ibex/frontend/token_adapter/declaration_document_state.rb +47 -0
  188. data/lib/ibex/frontend/token_adapter/declaration_lexer_state.rb +83 -0
  189. data/lib/ibex/frontend/token_adapter/declaration_state.rb +244 -22
  190. data/lib/ibex/frontend/token_adapter/delimiter_tracker.rb +8 -2
  191. data/lib/ibex/frontend/token_adapter/rule_state.rb +60 -2
  192. data/lib/ibex/frontend/token_adapter.rb +18 -3
  193. data/lib/ibex/frontend.rb +14 -2
  194. data/lib/ibex/fuzz.rb +219 -0
  195. data/lib/ibex/generation_input.rb +57 -0
  196. data/lib/ibex/generation_manifest.rb +211 -0
  197. data/lib/ibex/generation_transaction.rb +261 -0
  198. data/lib/ibex/generation_transaction_recovery.rb +109 -0
  199. data/lib/ibex/generation_transaction_validation.rb +196 -0
  200. data/lib/ibex/grammar_tests.rb +206 -0
  201. data/lib/ibex/ir/automaton_ir.rb +86 -11
  202. data/lib/ibex/ir/grammar_ir.rb +170 -26
  203. data/lib/ibex/ir/lexer_ir.rb +76 -0
  204. data/lib/ibex/ir/parser_contract.rb +135 -0
  205. data/lib/ibex/ir/serialize.rb +268 -50
  206. data/lib/ibex/ir/validator/automaton.rb +375 -0
  207. data/lib/ibex/ir/validator/base.rb +147 -0
  208. data/lib/ibex/ir/validator/grammar.rb +634 -0
  209. data/lib/ibex/ir/validator/lexer.rb +113 -0
  210. data/lib/ibex/ir/validator.rb +63 -0
  211. data/lib/ibex/ir.rb +71 -5
  212. data/lib/ibex/lalr/build_metrics.rb +71 -0
  213. data/lib/ibex/lalr/builder.rb +514 -52
  214. data/lib/ibex/lalr/conflict.rb +1 -0
  215. data/lib/ibex/lalr/conflict_search.rb +26 -9
  216. data/lib/ibex/lalr/counterexample.rb +38 -18
  217. data/lib/ibex/lalr/direct_lookaheads.rb +289 -0
  218. data/lib/ibex/lalr/goto_follows.rb +229 -0
  219. data/lib/ibex/lalr/ielr/annotator.rb +214 -0
  220. data/lib/ibex/lalr/ielr/bits.rb +28 -0
  221. data/lib/ibex/lalr/ielr/inadequacy.rb +47 -0
  222. data/lib/ibex/lalr/ielr/item_lookaheads.rb +78 -0
  223. data/lib/ibex/lalr/ielr/pipeline.rb +75 -0
  224. data/lib/ibex/lalr/ielr/split_stability.rb +78 -0
  225. data/lib/ibex/lalr/ielr/split_state.rb +20 -0
  226. data/lib/ibex/lalr/ielr/state_splitter.rb +258 -0
  227. data/lib/ibex/lalr/ielr_partition.rb +166 -0
  228. data/lib/ibex/lalr/inadequacy_report.rb +50 -0
  229. data/lib/ibex/lalr/lookahead_propagation.rb +111 -0
  230. data/lib/ibex/lalr/lr0_collection.rb +121 -0
  231. data/lib/ibex/lalr/on_error_reductions.rb +74 -0
  232. data/lib/ibex/lalr/unreachable_states.rb +80 -0
  233. data/lib/ibex/lalr.rb +59 -1
  234. data/lib/ibex/location.rb +129 -0
  235. data/lib/ibex/lsp/document_handlers.rb +68 -0
  236. data/lib/ibex/lsp/document_store.rb +264 -0
  237. data/lib/ibex/lsp/document_store_diagnostics.rb +44 -0
  238. data/lib/ibex/lsp/document_store_validation.rb +61 -0
  239. data/lib/ibex/lsp/initialization_handlers.rb +80 -0
  240. data/lib/ibex/lsp/navigation_handlers.rb +70 -0
  241. data/lib/ibex/lsp/parser_configuration_assistance.rb +149 -0
  242. data/lib/ibex/lsp/position_codec.rb +113 -0
  243. data/lib/ibex/lsp/protocol_error.rb +33 -0
  244. data/lib/ibex/lsp/request_handlers.rb +46 -0
  245. data/lib/ibex/lsp/request_support.rb +94 -0
  246. data/lib/ibex/lsp/server.rb +148 -0
  247. data/lib/ibex/lsp/symbol_index.rb +241 -0
  248. data/lib/ibex/lsp/symbol_index_builder.rb +277 -0
  249. data/lib/ibex/lsp/symbol_index_precedence_references.rb +44 -0
  250. data/lib/ibex/lsp/symbol_index_source_queries.rb +61 -0
  251. data/lib/ibex/lsp/symbol_occurrence.rb +23 -0
  252. data/lib/ibex/lsp/transport.rb +128 -0
  253. data/lib/ibex/lsp/workspace.rb +128 -0
  254. data/lib/ibex/lsp/workspace_analyzer.rb +199 -0
  255. data/lib/ibex/lsp.rb +33 -0
  256. data/lib/ibex/messages/en.yml +28 -0
  257. data/lib/ibex/messages/ja.yml +28 -0
  258. data/lib/ibex/messages.rb +68 -0
  259. data/lib/ibex/metrics.rb +175 -0
  260. data/lib/ibex/normalize/declarations.rb +142 -7
  261. data/lib/ibex/normalize/diagnostics.rb +94 -24
  262. data/lib/ibex/normalize/expander.rb +64 -59
  263. data/lib/ibex/normalize/expression.rb +63 -40
  264. data/lib/ibex/normalize/grammar_builder.rb +26 -0
  265. data/lib/ibex/normalize/inline_expansion.rb +465 -0
  266. data/lib/ibex/normalize/inline_validation.rb +174 -0
  267. data/lib/ibex/normalize/lexer.rb +131 -0
  268. data/lib/ibex/normalize/named_references.rb +60 -0
  269. data/lib/ibex/normalize/nodes.rb +46 -0
  270. data/lib/ibex/normalize/parameter_ebnf_lowering.rb +70 -0
  271. data/lib/ibex/normalize/parameter_lowering.rb +143 -0
  272. data/lib/ibex/normalize/parameter_substitution.rb +125 -0
  273. data/lib/ibex/normalize/parameter_validation.rb +140 -0
  274. data/lib/ibex/normalize/parameters.rb +226 -0
  275. data/lib/ibex/normalize/parser_configuration.rb +70 -0
  276. data/lib/ibex/normalize/recovery_declarations.rb +84 -0
  277. data/lib/ibex/normalize.rb +172 -17
  278. data/lib/ibex/racc_migration/checker.rb +122 -0
  279. data/lib/ibex/racc_migration/harness.rb +177 -0
  280. data/lib/ibex/racc_migration/report.rb +97 -0
  281. data/lib/ibex/racc_migration.rb +12 -0
  282. data/lib/ibex/rake_task.rb +116 -0
  283. data/lib/ibex/samples.rb +216 -0
  284. data/lib/ibex/table_artifact/builder.rb +266 -0
  285. data/lib/ibex/table_artifact/cst_projection.rb +70 -0
  286. data/lib/ibex/table_artifact/document.rb +39 -0
  287. data/lib/ibex/table_artifact/executor.rb +187 -0
  288. data/lib/ibex/table_artifact/serializer.rb +57 -0
  289. data/lib/ibex/table_artifact/validator/metadata.rb +179 -0
  290. data/lib/ibex/table_artifact/validator/support.rb +86 -0
  291. data/lib/ibex/table_artifact/validator/tables.rb +238 -0
  292. data/lib/ibex/table_artifact/validator.rb +253 -0
  293. data/lib/ibex/table_artifact.rb +88 -0
  294. data/lib/ibex/table_simulation/result.rb +55 -0
  295. data/lib/ibex/table_simulation/simulator.rb +253 -0
  296. data/lib/ibex/table_simulation/step.rb +62 -0
  297. data/lib/ibex/table_simulation/text.rb +31 -0
  298. data/lib/ibex/table_simulation.rb +13 -0
  299. data/lib/ibex/tables.rb +22 -69
  300. data/lib/ibex/verifiable_generation_bundle.rb +86 -0
  301. data/lib/ibex/verification_report/builder.rb +159 -0
  302. data/lib/ibex/verification_report/canonical_ir.rb +123 -0
  303. data/lib/ibex/verification_report/logical_path.rb +68 -0
  304. data/lib/ibex/verification_report/validator.rb +329 -0
  305. data/lib/ibex/verification_report.rb +69 -0
  306. data/lib/ibex/verify/action_correspondence.rb +138 -0
  307. data/lib/ibex/verify/language_witness.rb +295 -0
  308. data/lib/ibex/verify/reference_collection.rb +190 -0
  309. data/lib/ibex/verify/result.rb +73 -0
  310. data/lib/ibex/verify/verifier.rb +598 -0
  311. data/lib/ibex/verify.rb +15 -0
  312. data/lib/ibex/version.rb +1 -1
  313. data/lib/ibex/watch/runner.rb +181 -0
  314. data/lib/ibex/watch/source_snapshot.rb +98 -0
  315. data/lib/ibex/watch.rb +11 -0
  316. data/lib/ibex.rb +35 -1
  317. data/schema/automaton-ir-definitions.schema.json +401 -0
  318. data/schema/automaton-ir.schema.json +65 -0
  319. data/schema/benchmark-v1.schema.json +212 -0
  320. data/schema/benchmark-v2.schema.json +61 -0
  321. data/schema/bison-import-v1.schema.json +106 -0
  322. data/schema/conflict-explanation-review-v1.schema.json +196 -0
  323. data/schema/conflict-explanation-study-v1.schema.json +528 -0
  324. data/schema/construction-profile-v1.schema.json +779 -0
  325. data/schema/cst-v1.json +170 -0
  326. data/schema/diff-v1.schema.json +41 -0
  327. data/schema/direct-ielr-decision-v1.schema.json +200 -0
  328. data/schema/equiv-v1.schema.json +64 -0
  329. data/schema/error-ux-review-v1.schema.json +609 -0
  330. data/schema/error-ux-round2-review-v1.schema.json +191 -0
  331. data/schema/error-ux-round2-v1.schema.json +519 -0
  332. data/schema/error-ux-v1.schema.json +258 -0
  333. data/schema/explain-v1.schema.json +495 -0
  334. data/schema/fix-v1.schema.json +64 -0
  335. data/schema/fix-v2.schema.json +66 -0
  336. data/schema/fix-v3.schema.json +101 -0
  337. data/schema/frontend-diagnostics-v1.schema.json +154 -0
  338. data/schema/fuzz-regression-v1.schema.json +79 -0
  339. data/schema/fuzz-v1.schema.json +114 -0
  340. data/schema/generation-manifest-v1.schema.json +115 -0
  341. data/schema/grammar-ir-extensions.schema.json +734 -0
  342. data/schema/grammar-ir-foundation.schema.json +426 -0
  343. data/schema/grammar-ir.schema.json +271 -0
  344. data/schema/ielr-benchmark-v1.schema.json +85 -0
  345. data/schema/lexer-ir-v1.schema.json +215 -0
  346. data/schema/lexer-profile-v1.schema.json +491 -0
  347. data/schema/metrics-v1.schema.json +60 -0
  348. data/schema/migration-check-v1.schema.json +60 -0
  349. data/schema/performance-comparison-v1.schema.json +395 -0
  350. data/schema/public-performance-comparison-v1.schema.json +506 -0
  351. data/schema/public-performance-profile-v1.schema.json +360 -0
  352. data/schema/reduce-v1.schema.json +22 -0
  353. data/schema/reduce-v2.schema.json +63 -0
  354. data/schema/runtime-coverage-v1.schema.json +86 -0
  355. data/schema/runtime-event-v1.schema.json +308 -0
  356. data/schema/table-artifact-v1.schema.json +377 -0
  357. data/schema/table-simulation-v1.schema.json +70 -0
  358. data/schema/verification-report-v1.schema.json +222 -0
  359. data/schema/verify-v1.schema.json +42 -0
  360. data/sig/ibex/analysis/digraph.rbs +19 -0
  361. data/sig/ibex/artifact_set.rbs +37 -0
  362. data/sig/ibex/bison_import/importer.rbs +140 -0
  363. data/sig/ibex/bison_import/tokenizer.rbs +91 -0
  364. data/sig/ibex/bison_import.rbs +95 -0
  365. data/sig/ibex/bounded_subprocess.rbs +76 -0
  366. data/sig/ibex/cli/ambiguity.rbs +28 -0
  367. data/sig/ibex/cli/analysis.rbs +43 -0
  368. data/sig/ibex/cli/bison_import.rbs +32 -0
  369. data/sig/ibex/cli/config.rbs +35 -0
  370. data/sig/ibex/cli/counterexample_options.rbs +2 -0
  371. data/sig/ibex/cli/coverage.rbs +53 -0
  372. data/sig/ibex/cli/debug.rbs +28 -0
  373. data/sig/ibex/cli/diagnostics.rbs +51 -0
  374. data/sig/ibex/cli/documentation.rbs +29 -0
  375. data/sig/ibex/cli/equiv.rbs +49 -0
  376. data/sig/ibex/cli/error_messages.rbs +63 -0
  377. data/sig/ibex/cli/explain.rbs +31 -0
  378. data/sig/ibex/cli/fix.rbs +53 -0
  379. data/sig/ibex/cli/formatting.rbs +107 -0
  380. data/sig/ibex/cli/fuzz.rbs +47 -0
  381. data/sig/ibex/cli/fuzz_regressions.rbs +40 -0
  382. data/sig/ibex/cli/generation_artifacts.rbs +69 -0
  383. data/sig/ibex/cli/generation_error_messages.rbs +19 -0
  384. data/sig/ibex/cli/grammar_tests.rbs +48 -0
  385. data/sig/ibex/cli/ir_tools.rbs +39 -0
  386. data/sig/ibex/cli/lsp.rbs +14 -0
  387. data/sig/ibex/cli/outputs.rbs +26 -3
  388. data/sig/ibex/cli/racc_migration.rbs +30 -0
  389. data/sig/ibex/cli/reduce.rbs +60 -0
  390. data/sig/ibex/cli/reduce_reporting.rbs +27 -0
  391. data/sig/ibex/cli/samples.rbs +38 -0
  392. data/sig/ibex/cli/verify.rbs +28 -0
  393. data/sig/ibex/cli/watch.rbs +43 -0
  394. data/sig/ibex/cli.rbs +182 -9
  395. data/sig/ibex/codegen/action_locations.rbs +45 -0
  396. data/sig/ibex/codegen/action_method_source.rbs +65 -0
  397. data/sig/ibex/codegen/action_source.rbs +50 -0
  398. data/sig/ibex/codegen/ambiguity.rbs +60 -0
  399. data/sig/ibex/codegen/cst_metadata.rbs +59 -0
  400. data/sig/ibex/codegen/documentation.rbs +50 -0
  401. data/sig/ibex/codegen/explain.rbs +105 -0
  402. data/sig/ibex/codegen/generated_action_abi.rbs +105 -0
  403. data/sig/ibex/codegen/html.rbs +18 -2
  404. data/sig/ibex/codegen/mermaid.rbs +16 -0
  405. data/sig/ibex/codegen/railroad.rbs +82 -0
  406. data/sig/ibex/codegen/railroad_documentation.rbs +31 -0
  407. data/sig/ibex/codegen/rbs.rbs +86 -4
  408. data/sig/ibex/codegen/report.rbs +16 -8
  409. data/sig/ibex/codegen/ruby.rbs +105 -28
  410. data/sig/ibex/codegen/ruby_actions.rbs +54 -0
  411. data/sig/ibex/codegen/ruby_ast.rbs +34 -0
  412. data/sig/ibex/codegen/ruby_error_messages.rbs +16 -0
  413. data/sig/ibex/codegen/ruby_lexer.rbs +25 -0
  414. data/sig/ibex/codegen/ruby_syntax.rbs +27 -0
  415. data/sig/ibex/codegen/ruby_table_metadata.rbs +26 -0
  416. data/sig/ibex/codegen/ruby_value_printers.rbs +28 -0
  417. data/sig/ibex/configuration/analysis_grammar.rbs +13 -0
  418. data/sig/ibex/configuration/explanation.rbs +195 -0
  419. data/sig/ibex/configuration/inspector.rbs +53 -0
  420. data/sig/ibex/configuration.rbs +242 -0
  421. data/sig/ibex/coverage/collector.rbs +78 -0
  422. data/sig/ibex/coverage/event_stream.rbs +44 -0
  423. data/sig/ibex/coverage/report.rbs +102 -0
  424. data/sig/ibex/coverage/runtime_event_validator.rbs +70 -0
  425. data/sig/ibex/coverage.rbs +7 -0
  426. data/sig/ibex/delta_reducer.rbs +38 -0
  427. data/sig/ibex/diff.rbs +47 -0
  428. data/sig/ibex/equiv/machine.rbs +54 -0
  429. data/sig/ibex/equiv.rbs +129 -0
  430. data/sig/ibex/error_messages/parser.rbs +58 -0
  431. data/sig/ibex/error_messages/parser_v2.rbs +67 -0
  432. data/sig/ibex/error_messages/renderer.rbs +23 -0
  433. data/sig/ibex/error_messages/sentence_search.rbs +80 -0
  434. data/sig/ibex/error_messages/update.rbs +43 -0
  435. data/sig/ibex/error_messages.rbs +85 -0
  436. data/sig/ibex/fix.rbs +138 -0
  437. data/sig/ibex/frontend/ast.rbs +237 -22
  438. data/sig/ibex/frontend/bootstrap_parser.rbs +13 -0
  439. data/sig/ibex/frontend/diagnostic.rbs +53 -0
  440. data/sig/ibex/frontend/diagnostic_recovery.rbs +98 -0
  441. data/sig/ibex/frontend/dsl.rbs +33 -4
  442. data/sig/ibex/frontend/formatter.rbs +143 -0
  443. data/sig/ibex/frontend/generated_parser.rbs +228 -68
  444. data/sig/ibex/frontend/generated_parser_base.rbs +65 -12
  445. data/sig/ibex/frontend/generated_parser_includes.rbs +23 -0
  446. data/sig/ibex/frontend/generated_parser_metadata.rbs +23 -0
  447. data/sig/ibex/frontend/generated_parser_parameters.rbs +24 -0
  448. data/sig/ibex/frontend/generation.rbs +6 -0
  449. data/sig/ibex/frontend/lexer.rbs +49 -2
  450. data/sig/ibex/frontend/lexer_recovery.rbs +25 -0
  451. data/sig/ibex/frontend/parser/declarations.rbs +57 -0
  452. data/sig/ibex/frontend/parser/parameters.rbs +28 -0
  453. data/sig/ibex/frontend/parser/rules.rbs +3 -0
  454. data/sig/ibex/frontend/parser.rbs +66 -0
  455. data/sig/ibex/frontend/parser_configuration_support.rbs +27 -0
  456. data/sig/ibex/frontend/regenerator.rbs +11 -0
  457. data/sig/ibex/frontend/resolution.rbs +34 -0
  458. data/sig/ibex/frontend/resolver.rbs +91 -0
  459. data/sig/ibex/frontend/rule_documentation.rbs +42 -0
  460. data/sig/ibex/frontend/source_cursor.rbs +38 -5
  461. data/sig/ibex/frontend/source_document.rbs +119 -0
  462. data/sig/ibex/frontend/source_loader.rbs +66 -0
  463. data/sig/ibex/frontend/source_span.rbs +56 -0
  464. data/sig/ibex/frontend/token_adapter/declaration_document_state.rbs +21 -0
  465. data/sig/ibex/frontend/token_adapter/declaration_lexer_state.rbs +27 -0
  466. data/sig/ibex/frontend/token_adapter/declaration_state.rbs +83 -3
  467. data/sig/ibex/frontend/token_adapter/rule_state.rbs +20 -0
  468. data/sig/ibex/frontend/token_adapter.rbs +11 -2
  469. data/sig/ibex/frontend.rbs +1 -1
  470. data/sig/ibex/fuzz.rbs +71 -0
  471. data/sig/ibex/generation_input.rbs +37 -0
  472. data/sig/ibex/generation_manifest.rbs +70 -0
  473. data/sig/ibex/generation_transaction.rbs +82 -0
  474. data/sig/ibex/generation_transaction_recovery.rbs +36 -0
  475. data/sig/ibex/generation_transaction_validation.rbs +65 -0
  476. data/sig/ibex/grammar_tests.rbs +93 -0
  477. data/sig/ibex/ir/automaton_ir.rbs +35 -10
  478. data/sig/ibex/ir/grammar_ir.rbs +96 -22
  479. data/sig/ibex/ir/lexer_ir.rbs +57 -0
  480. data/sig/ibex/ir/parser_contract.rbs +69 -0
  481. data/sig/ibex/ir/serialize.rbs +75 -23
  482. data/sig/ibex/ir/validator/automaton.rbs +112 -0
  483. data/sig/ibex/ir/validator/base.rbs +69 -0
  484. data/sig/ibex/ir/validator/grammar.rbs +195 -0
  485. data/sig/ibex/ir/validator/lexer.rbs +37 -0
  486. data/sig/ibex/ir/validator.rbs +16 -0
  487. data/sig/ibex/ir.rbs +45 -5
  488. data/sig/ibex/lalr/build_metrics.rbs +60 -0
  489. data/sig/ibex/lalr/builder.rbs +150 -19
  490. data/sig/ibex/lalr/conflict_search.rbs +12 -5
  491. data/sig/ibex/lalr/counterexample.rbs +20 -14
  492. data/sig/ibex/lalr/direct_lookaheads.rbs +93 -0
  493. data/sig/ibex/lalr/goto_follows.rbs +89 -0
  494. data/sig/ibex/lalr/ielr/annotator.rbs +67 -0
  495. data/sig/ibex/lalr/ielr/bits.rbs +14 -0
  496. data/sig/ibex/lalr/ielr/inadequacy.rbs +24 -0
  497. data/sig/ibex/lalr/ielr/item_lookaheads.rbs +35 -0
  498. data/sig/ibex/lalr/ielr/pipeline.rbs +17 -0
  499. data/sig/ibex/lalr/ielr/split_stability.rbs +27 -0
  500. data/sig/ibex/lalr/ielr/split_state.rbs +14 -0
  501. data/sig/ibex/lalr/ielr/state_splitter.rbs +76 -0
  502. data/sig/ibex/lalr/ielr_partition.rbs +71 -0
  503. data/sig/ibex/lalr/inadequacy_report.rbs +21 -0
  504. data/sig/ibex/lalr/lookahead_propagation.rbs +38 -0
  505. data/sig/ibex/lalr/lr0_collection.rbs +50 -0
  506. data/sig/ibex/lalr/on_error_reductions.rbs +22 -0
  507. data/sig/ibex/lalr/unreachable_states.rbs +25 -0
  508. data/sig/ibex/lalr.rbs +17 -1
  509. data/sig/ibex/location.rbs +67 -0
  510. data/sig/ibex/lsp/document_handlers.rbs +24 -0
  511. data/sig/ibex/lsp/document_store.rbs +94 -0
  512. data/sig/ibex/lsp/document_store_diagnostics.rbs +20 -0
  513. data/sig/ibex/lsp/document_store_validation.rbs +26 -0
  514. data/sig/ibex/lsp/initialization_handlers.rbs +30 -0
  515. data/sig/ibex/lsp/navigation_handlers.rbs +33 -0
  516. data/sig/ibex/lsp/parser_configuration_assistance.rbs +49 -0
  517. data/sig/ibex/lsp/position_codec.rbs +44 -0
  518. data/sig/ibex/lsp/protocol_error.rbs +32 -0
  519. data/sig/ibex/lsp/request_handlers.rbs +26 -0
  520. data/sig/ibex/lsp/request_support.rbs +40 -0
  521. data/sig/ibex/lsp/server.rbs +55 -0
  522. data/sig/ibex/lsp/symbol_index.rbs +77 -0
  523. data/sig/ibex/lsp/symbol_index_builder.rbs +88 -0
  524. data/sig/ibex/lsp/symbol_index_precedence_references.rbs +18 -0
  525. data/sig/ibex/lsp/symbol_index_source_queries.rbs +26 -0
  526. data/sig/ibex/lsp/symbol_occurrence.rbs +31 -0
  527. data/sig/ibex/lsp/transport.rbs +47 -0
  528. data/sig/ibex/lsp/workspace.rbs +42 -0
  529. data/sig/ibex/lsp/workspace_analyzer.rbs +69 -0
  530. data/sig/ibex/lsp.rbs +7 -0
  531. data/sig/ibex/messages.rbs +26 -0
  532. data/sig/ibex/metrics.rbs +50 -0
  533. data/sig/ibex/normalize/declarations.rbs +31 -0
  534. data/sig/ibex/normalize/diagnostics.rbs +13 -4
  535. data/sig/ibex/normalize/expander.rbs +22 -16
  536. data/sig/ibex/normalize/expression.rbs +11 -9
  537. data/sig/ibex/normalize/grammar_builder.rbs +11 -0
  538. data/sig/ibex/normalize/inline_expansion.rbs +129 -0
  539. data/sig/ibex/normalize/inline_validation.rbs +40 -0
  540. data/sig/ibex/normalize/lexer.rbs +37 -0
  541. data/sig/ibex/normalize/named_references.rbs +20 -0
  542. data/sig/ibex/normalize/nodes.rbs +14 -0
  543. data/sig/ibex/normalize/parameter_ebnf_lowering.rbs +33 -0
  544. data/sig/ibex/normalize/parameter_lowering.rbs +35 -0
  545. data/sig/ibex/normalize/parameter_substitution.rbs +42 -0
  546. data/sig/ibex/normalize/parameter_validation.rbs +44 -0
  547. data/sig/ibex/normalize/parameters.rbs +51 -0
  548. data/sig/ibex/normalize/parser_configuration.rbs +23 -0
  549. data/sig/ibex/normalize/recovery_declarations.rbs +24 -0
  550. data/sig/ibex/normalize.rbs +129 -18
  551. data/sig/ibex/racc_migration/checker.rbs +36 -0
  552. data/sig/ibex/racc_migration/harness.rbs +16 -0
  553. data/sig/ibex/racc_migration/report.rbs +55 -0
  554. data/sig/ibex/racc_migration.rbs +8 -0
  555. data/sig/ibex/rake_task.rbs +51 -0
  556. data/sig/ibex/samples.rbs +60 -0
  557. data/sig/ibex/table_artifact/builder.rbs +93 -0
  558. data/sig/ibex/table_artifact/cst_projection.rbs +20 -0
  559. data/sig/ibex/table_artifact/document.rbs +27 -0
  560. data/sig/ibex/table_artifact/executor.rbs +66 -0
  561. data/sig/ibex/table_artifact/serializer.rbs +25 -0
  562. data/sig/ibex/table_artifact/validator/metadata.rbs +52 -0
  563. data/sig/ibex/table_artifact/validator/support.rbs +46 -0
  564. data/sig/ibex/table_artifact/validator/tables.rbs +63 -0
  565. data/sig/ibex/table_artifact/validator.rbs +66 -0
  566. data/sig/ibex/table_artifact.rbs +32 -0
  567. data/sig/ibex/table_simulation/result.rbs +36 -0
  568. data/sig/ibex/table_simulation/simulator.rbs +98 -0
  569. data/sig/ibex/table_simulation/step.rbs +42 -0
  570. data/sig/ibex/table_simulation/text.rbs +14 -0
  571. data/sig/ibex/table_simulation.rbs +7 -0
  572. data/sig/ibex/tables.rbs +10 -35
  573. data/sig/ibex/verifiable_generation_bundle.rbs +24 -0
  574. data/sig/ibex/verification_report/builder.rbs +53 -0
  575. data/sig/ibex/verification_report/canonical_ir.rbs +41 -0
  576. data/sig/ibex/verification_report/logical_path.rbs +34 -0
  577. data/sig/ibex/verification_report/validator.rbs +114 -0
  578. data/sig/ibex/verification_report.rbs +44 -0
  579. data/sig/ibex/verify/action_correspondence.rbs +50 -0
  580. data/sig/ibex/verify/language_witness.rbs +112 -0
  581. data/sig/ibex/verify/reference_collection.rbs +63 -0
  582. data/sig/ibex/verify/result.rbs +52 -0
  583. data/sig/ibex/verify/verifier.rbs +170 -0
  584. data/sig/ibex/verify.rbs +6 -0
  585. data/sig/ibex/watch/runner.rbs +58 -0
  586. data/sig/ibex/watch/source_snapshot.rbs +46 -0
  587. data/sig/ibex/watch.rbs +7 -0
  588. data/sig/ibex.rbs +2 -0
  589. metadata +524 -19
  590. data/.rubocop.yml +0 -43
  591. data/CHANGELOG.md +0 -30
  592. data/Rakefile +0 -25
  593. data/Steepfile +0 -10
  594. data/docs/compat-notes.md +0 -37
  595. data/docs/lexer-coverage.md +0 -14
  596. data/docs/phase10-extensions.md +0 -27
  597. data/gemfiles/Gemfile +0 -7
  598. data/gemfiles/Gemfile.lock +0 -98
  599. data/lib/ibex/frontend/grammar.y +0 -156
  600. data/lib/ibex/runtime/parser.rb +0 -360
  601. data/lib/ibex/runtime.rb +0 -8
  602. data/sig/ibex/runtime/parser.rbs +0 -167
  603. data/sig/ibex/runtime.rbs +0 -6
@@ -1,431 +1,885 @@
1
1
  # frozen_string_literal: true
2
- # Generated by Ibex d405a2f1e593
2
+ # Generated by Ibex b85cd0e8a11c
3
3
 
4
- require "ibex/runtime"
5
- require "ibex/tables"
6
4
 
7
5
  module Ibex
8
6
  module Frontend
9
7
  class GeneratedParser < Ibex::Frontend::GeneratedParserBase
10
- PARSER_TABLE_FORMAT_VERSION = 1
11
- TOKEN_IDS = { :CLASS => 2, :TOKEN => 3, :PRECHIGH => 4, :PRECLOW => 5, :OPTIONS => 6, :EXPECT => 7, :START => 8, :CONVERT => 9, :PRAGMA => 10, :RULE => 11, :END => 12, :LEFT => 13, :RIGHT => 14, :NONASSOC => 15, :IDENTIFIER => 16, :LITERAL => 17, :INTEGER => 18, :ACTION => 19, :USER_CODE => 20, :LHS => 21, :SEPARATED_LIST => 22, :SEPARATED_NONEMPTY_LIST => 23, '::' => 61, '<' => 62, ':' => 63, ';' => 64, '|' => 65, '=' => 66, '?' => 67, '*' => 68, '+' => 69, '(' => 70, ')' => 71, ',' => 72 }.freeze
12
- TOKEN_NAMES = { 0 => "$eof", 1 => "error", 2 => "CLASS", 3 => "TOKEN", 4 => "PRECHIGH", 5 => "PRECLOW", 6 => "OPTIONS", 7 => "EXPECT", 8 => "START", 9 => "CONVERT", 10 => "PRAGMA", 11 => "RULE", 12 => "END", 13 => "LEFT", 14 => "RIGHT", 15 => "NONASSOC", 16 => "IDENTIFIER", 17 => "LITERAL", 18 => "INTEGER", 19 => "ACTION", 20 => "USER_CODE", 21 => "LHS", 22 => "SEPARATED_LIST", 23 => "SEPARATED_NONEMPTY_LIST", 61 => "'::'", 62 => "'<'", 63 => "':'", 64 => "';'", 65 => "'|'", 66 => "'='", 67 => "'?'", 68 => "'*'", 69 => "'+'", 70 => "'('", 71 => "')'", 72 => "','" }.freeze
13
- ACTIONS = Ibex::Tables::Compact.new(offsets: [0, 16, 1, 0, 360, 530, 28, 33, 539, 394, 491, 34, 601, 550, 500, 303, 144, 559, 38, 9, 298, 39, 610, 619, 628, 637, 646, 655, 664, 515, 337, 221, 573, 673, 466, 685, 685, 363, 10, 6, 18, 215, 703, 735, 740, 754, 344, 759, 712, 587, 721, 369, 58, 394, 0, 30, 773, 375, 236, 258, 407, 54, 103, 115, 415, 221, 15, 16, 0, 397, 423, 233, 255, 290, 21, 267, 97, 635, 801, 809, 12, 71, 701, 58, 775, 26, 27, 24, 36, 777, 97, 779, 787, 789, 791, 858, 866, 109, 121, 133, 799, 194, 39, 40, 312, 324], values: [[:reduce, 70], [:accept], [:shift, 1], [:reduce, 1], [:reduce, 1], [:reduce, 1], [:reduce, 1], [:reduce, 1], [:reduce, 1], [:reduce, 1], [:reduce, 1], [:reduce, 1], [:reduce, 54], nil, nil, nil, [:reduce, 54], [:reduce, 54], [:shift, 54], [:reduce, 54], [:reduce, 70], [:reduce, 54], [:reduce, 54], [:reduce, 54], [:reduce, 56], [:shift, 34], [:shift, 35], [:shift, 38], [:reduce, 56], [:reduce, 56], [:reduce, 37], [:reduce, 56], [:shift, 3], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 53], [:shift, 34], [:shift, 35], [:reduce, 37], [:reduce, 53], [:reduce, 53], [:reduce, 38], [:reduce, 53], [:shift, 9], [:reduce, 53], [:reduce, 53], [:reduce, 53], [:reduce, 55], [:shift, 3], [:shift, 13], [:reduce, 38], [:reduce, 55], [:reduce, 55], [:reduce, 0], [:reduce, 55], [:shift, 33], [:reduce, 55], [:reduce, 55], [:reduce, 55], [:shift, 38], [:reduce, 1], [:reduce, 1], [:shift, 81], [:reduce, 54], [:reduce, 54], [:reduce, 54], [:reduce, 54], [:reduce, 54], [:reduce, 54], [:reduce, 54], [:reduce, 54], [:reduce, 54], [:shift, 53], [:shift, 76], [:shift, 57], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:shift, 78], [:shift, 79], [:shift, 88], [:reduce, 53], [:reduce, 53], [:reduce, 53], [:shift, 97], [:shift, 98], [:shift, 99], [:reduce, 53], [:reduce, 53], [:reduce, 53], [:reduce, 71], [:shift, 95], [:shift, 96], [:reduce, 55], [:reduce, 55], [:reduce, 55], [:reduce, 55], [:reduce, 55], [:reduce, 55], [:reduce, 55], [:reduce, 55], [:reduce, 55], [:reduce, 56], [:shift, 104], [:shift, 105], nil, [:reduce, 56], [:reduce, 56], [:reduce, 39], [:reduce, 56], [:reduce, 71], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 57], nil, [:shift, 89], [:reduce, 39], [:reduce, 57], [:reduce, 57], [:reduce, 41], [:reduce, 57], [:shift, 90], [:reduce, 57], [:reduce, 57], [:reduce, 57], [:reduce, 58], nil, nil, [:reduce, 41], [:reduce, 58], [:reduce, 58], nil, [:reduce, 58], nil, [:reduce, 58], [:reduce, 58], [:reduce, 58], [:reduce, 59], nil, nil, [:reduce, 18], [:reduce, 59], [:reduce, 59], nil, [:reduce, 59], nil, [:reduce, 59], [:reduce, 59], [:reduce, 59], [:reduce, 18], [:reduce, 18], [:reduce, 18], nil, [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], [:reduce, 56], nil, nil, nil, [:reduce, 57], [:reduce, 57], [:reduce, 57], [:reduce, 57], [:reduce, 57], [:reduce, 57], [:reduce, 57], [:reduce, 57], [:reduce, 57], nil, nil, nil, [:reduce, 58], [:reduce, 58], [:reduce, 58], [:reduce, 58], [:reduce, 58], [:reduce, 58], [:reduce, 58], [:reduce, 58], [:reduce, 58], nil, nil, nil, [:reduce, 59], [:reduce, 59], [:reduce, 59], [:reduce, 59], [:reduce, 59], [:reduce, 59], [:reduce, 59], [:reduce, 59], [:reduce, 59], [:reduce, 60], nil, nil, nil, [:reduce, 60], [:reduce, 60], nil, [:reduce, 60], nil, [:reduce, 60], [:reduce, 60], [:reduce, 60], [:reduce, 34], [:reduce, 34], [:reduce, 34], [:reduce, 34], [:reduce, 34], [:reduce, 34], [:reduce, 34], [:shift, 48], [:reduce, 34], nil, [:reduce, 34], [:reduce, 34], [:reduce, 34], [:reduce, 34], [:reduce, 34], [:reduce, 50], [:shift, 43], [:shift, 44], [:shift, 45], [:reduce, 50], [:reduce, 50], nil, [:reduce, 50], nil, [:reduce, 50], [:reduce, 50], [:reduce, 50], [:reduce, 49], nil, nil, [:reduce, 40], [:reduce, 49], [:reduce, 49], nil, [:reduce, 49], nil, [:reduce, 49], [:reduce, 49], [:reduce, 49], [:reduce, 40], [:reduce, 60], [:reduce, 60], [:reduce, 60], [:shift, 97], [:shift, 98], [:shift, 99], [:reduce, 60], [:reduce, 60], [:reduce, 60], [:reduce, 51], nil, nil, [:reduce, 42], [:reduce, 51], [:reduce, 51], nil, [:reduce, 51], nil, [:reduce, 51], [:reduce, 51], [:reduce, 51], [:reduce, 42], nil, nil, nil, [:reduce, 63], [:reduce, 63], [:reduce, 50], [:reduce, 50], [:reduce, 50], nil, [:reduce, 63], [:reduce, 63], [:reduce, 50], [:reduce, 50], [:reduce, 50], nil, nil, nil, [:reduce, 49], [:reduce, 49], [:reduce, 49], [:shift, 63], [:shift, 64], [:reduce, 52], [:reduce, 49], [:reduce, 49], [:reduce, 49], [:reduce, 52], [:reduce, 52], [:reduce, 18], [:reduce, 52], [:reduce, 28], [:reduce, 52], [:reduce, 52], [:reduce, 52], [:reduce, 28], [:reduce, 28], [:reduce, 18], [:reduce, 18], [:reduce, 18], [:reduce, 51], [:reduce, 51], [:reduce, 51], [:reduce, 42], [:reduce, 42], [:reduce, 68], [:reduce, 51], [:reduce, 51], [:reduce, 51], [:reduce, 68], [:reduce, 68], nil, [:reduce, 68], [:reduce, 63], [:reduce, 68], [:reduce, 68], [:reduce, 68], [:reduce, 69], [:reduce, 63], [:reduce, 63], nil, [:reduce, 69], [:reduce, 69], [:shift, 42], [:reduce, 69], nil, [:reduce, 69], [:reduce, 69], [:reduce, 69], [:reduce, 19], [:reduce, 19], [:shift, 43], [:shift, 44], [:shift, 45], nil, [:reduce, 52], [:reduce, 52], [:reduce, 52], [:reduce, 19], [:reduce, 19], [:reduce, 19], [:reduce, 52], [:reduce, 52], [:reduce, 52], [:reduce, 3], [:reduce, 3], [:reduce, 3], [:reduce, 3], [:reduce, 3], [:reduce, 3], [:reduce, 3], [:reduce, 3], [:reduce, 3], nil, nil, nil, [:shift, 50], [:reduce, 68], [:reduce, 68], [:reduce, 68], [:shift, 34], [:shift, 35], [:reduce, 29], [:reduce, 68], [:reduce, 68], [:reduce, 68], [:reduce, 29], [:reduce, 29], [:reduce, 30], [:reduce, 69], [:reduce, 69], [:reduce, 69], [:reduce, 30], [:reduce, 30], nil, [:reduce, 69], [:reduce, 69], [:reduce, 69], [:reduce, 2], [:reduce, 2], [:reduce, 2], [:reduce, 2], [:reduce, 2], [:reduce, 2], [:reduce, 2], [:reduce, 2], [:reduce, 2], [:reduce, 47], nil, nil, [:reduce, 44], [:reduce, 47], [:reduce, 47], nil, [:reduce, 47], nil, [:reduce, 47], [:reduce, 47], [:reduce, 47], [:reduce, 44], [:reduce, 45], nil, [:shift, 6], [:shift, 7], [:shift, 34], [:shift, 35], nil, [:shift, 65], [:reduce, 47], [:reduce, 45], [:shift, 66], [:shift, 67], [:reduce, 47], [:reduce, 47], nil, [:reduce, 47], [:reduce, 48], [:reduce, 47], [:reduce, 47], [:reduce, 47], [:reduce, 48], [:reduce, 48], nil, [:reduce, 48], nil, [:reduce, 48], [:reduce, 48], [:reduce, 48], nil, nil, nil, nil, nil, nil, nil, nil, [:reduce, 2], [:reduce, 2], nil, [:reduce, 47], [:reduce, 47], [:reduce, 47], [:reduce, 44], [:reduce, 44], nil, [:reduce, 47], nil, [:error], [:error], [:error], nil, nil, [:reduce, 45], [:reduce, 45], [:shift, 74], nil, nil, [:error], [:shift, 75], nil, [:reduce, 47], [:reduce, 47], [:reduce, 47], nil, nil, [:error], [:reduce, 47], [:error], [:reduce, 48], [:reduce, 48], [:reduce, 48], nil, nil, nil, [:reduce, 48], [:reduce, 4], [:reduce, 4], [:reduce, 4], [:reduce, 4], [:reduce, 4], [:reduce, 4], [:reduce, 4], [:reduce, 4], [:reduce, 4], [:reduce, 33], [:reduce, 33], [:reduce, 33], [:reduce, 33], [:reduce, 33], [:reduce, 33], [:reduce, 33], nil, [:reduce, 33], nil, nil, nil, nil, [:reduce, 33], [:reduce, 33], [:reduce, 15], [:reduce, 15], [:reduce, 15], [:reduce, 15], [:reduce, 15], [:reduce, 15], [:reduce, 15], nil, [:reduce, 15], [:error], [:error], nil, nil, [:shift, 34], [:shift, 35], [:reduce, 5], [:reduce, 5], [:reduce, 5], [:reduce, 5], [:reduce, 5], [:reduce, 5], [:reduce, 5], [:reduce, 5], [:reduce, 5], [:reduce, 7], [:reduce, 7], [:reduce, 7], [:reduce, 7], [:reduce, 7], [:reduce, 7], [:reduce, 7], [:shift, 11], [:reduce, 7], nil, [:shift, 6], [:reduce, 6], [:reduce, 6], [:reduce, 6], [:reduce, 6], [:reduce, 6], [:reduce, 6], [:reduce, 6], [:reduce, 6], [:reduce, 6], [:reduce, 31], [:reduce, 31], [:reduce, 31], [:reduce, 31], [:reduce, 31], [:reduce, 31], [:reduce, 31], nil, [:reduce, 31], nil, nil, nil, nil, [:reduce, 31], [:reduce, 24], [:reduce, 24], [:reduce, 24], [:reduce, 24], [:reduce, 24], [:reduce, 24], [:reduce, 24], nil, [:reduce, 24], nil, nil, nil, nil, [:shift, 49], [:reduce, 32], [:reduce, 32], [:reduce, 32], [:reduce, 32], [:reduce, 32], [:reduce, 32], [:reduce, 32], nil, [:reduce, 32], nil, nil, nil, nil, [:reduce, 32], [:shift, 14], [:shift, 15], [:shift, 16], [:shift, 17], [:shift, 18], [:shift, 19], [:shift, 20], nil, [:shift, 21], [:reduce, 8], [:reduce, 8], [:reduce, 8], [:reduce, 8], [:reduce, 8], [:reduce, 8], [:reduce, 8], nil, [:reduce, 8], [:reduce, 9], [:reduce, 9], [:reduce, 9], [:reduce, 9], [:reduce, 9], [:reduce, 9], [:reduce, 9], nil, [:reduce, 9], [:reduce, 10], [:reduce, 10], [:reduce, 10], [:reduce, 10], [:reduce, 10], [:reduce, 10], [:reduce, 10], nil, [:reduce, 10], [:reduce, 11], [:reduce, 11], [:reduce, 11], [:reduce, 11], [:reduce, 11], [:reduce, 11], [:reduce, 11], [:reduce, 43], [:reduce, 11], [:reduce, 12], [:reduce, 12], [:reduce, 12], [:reduce, 12], [:reduce, 12], [:reduce, 12], [:reduce, 12], [:reduce, 43], [:reduce, 12], [:reduce, 13], [:reduce, 13], [:reduce, 13], [:reduce, 13], [:reduce, 13], [:reduce, 13], [:reduce, 13], nil, [:reduce, 13], [:reduce, 14], [:reduce, 14], [:reduce, 14], [:reduce, 14], [:reduce, 14], [:reduce, 14], [:reduce, 14], nil, [:reduce, 14], [:reduce, 25], [:reduce, 25], [:reduce, 25], [:reduce, 25], [:reduce, 25], [:reduce, 25], [:reduce, 25], nil, [:reduce, 25], [:error], [:error], [:error], [:reduce, 26], [:reduce, 26], [:reduce, 26], [:reduce, 26], [:reduce, 26], [:reduce, 26], [:reduce, 26], [:error], [:reduce, 26], nil, nil, [:reduce, 43], [:reduce, 43], nil, nil, [:error], nil, [:error], [:reduce, 16], [:reduce, 16], [:reduce, 16], [:reduce, 16], [:reduce, 16], [:reduce, 16], [:reduce, 16], [:reduce, 46], [:reduce, 16], [:reduce, 17], [:reduce, 17], [:reduce, 17], [:reduce, 17], [:reduce, 17], [:reduce, 17], [:reduce, 17], [:reduce, 46], [:reduce, 17], [:reduce, 27], [:reduce, 27], [:reduce, 27], [:reduce, 27], [:reduce, 27], [:reduce, 27], [:reduce, 27], nil, [:reduce, 27], nil, nil, nil, nil, nil, nil, [:reduce, 21], [:reduce, 21], nil, nil, nil, [:reduce, 22], [:reduce, 22], [:error], [:error], [:reduce, 21], [:reduce, 21], [:reduce, 21], [:reduce, 21], [:reduce, 21], [:reduce, 22], [:reduce, 22], [:reduce, 22], [:reduce, 22], [:reduce, 22], [:reduce, 23], [:reduce, 23], nil, nil, nil, [:reduce, 33], [:reduce, 33], [:reduce, 46], [:reduce, 46], [:reduce, 23], [:reduce, 23], [:reduce, 23], [:reduce, 23], [:reduce, 23], [:reduce, 33], [:reduce, 33], [:reduce, 33], [:reduce, 33], [:reduce, 33], [:reduce, 20], [:reduce, 20], nil, nil, nil, nil, nil, nil, nil, [:reduce, 20], [:reduce, 20], [:reduce, 20], [:shift, 34], [:shift, 35], [:shift, 34], [:shift, 35], [:reduce, 63], [:reduce, 63], [:reduce, 65], [:reduce, 65], [:shift, 66], [:shift, 67], [:reduce, 63], [:reduce, 63], [:reduce, 65], [:reduce, 65], [:reduce, 66], [:reduce, 66], [:reduce, 64], [:reduce, 64], [:reduce, 67], [:reduce, 67], [:reduce, 66], [:reduce, 66], [:reduce, 64], [:reduce, 64], [:reduce, 67], [:reduce, 67], [:shift, 34], [:shift, 35], [:shift, 34], [:shift, 35], nil, [:shift, 65], [:shift, 66], [:shift, 67], [:shift, 66], [:shift, 67], [:shift, 34], [:shift, 35], nil, [:shift, 65], nil, nil, [:shift, 66], [:shift, 67], nil, nil, nil, nil, nil, nil, nil, [:reduce, 61], nil, [:reduce, 63], nil, [:reduce, 65], [:shift, 75], [:reduce, 61], [:reduce, 63], [:reduce, 63], [:reduce, 65], [:reduce, 65], nil, [:reduce, 66], nil, [:reduce, 64], nil, [:reduce, 67], [:reduce, 66], [:reduce, 66], [:reduce, 64], [:reduce, 64], [:reduce, 67], [:reduce, 67], nil, [:reduce, 62], nil, nil, nil, nil, [:shift, 75], [:reduce, 62], [:shift, 75], nil, nil, [:shift, 34], [:shift, 35], nil, [:shift, 65], nil, [:shift, 75], [:shift, 66], [:shift, 67], [:shift, 34], [:shift, 35], nil, [:shift, 65], nil, nil, [:shift, 66], [:shift, 67], nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, [:shift, 75], nil, nil, nil, nil, nil, nil, nil, [:shift, 75]], checks: [54, 2, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 68, nil, nil, nil, 68, 68, 39, 68, 54, 68, 68, 68, 80, 19, 19, 39, 80, 80, 40, 80, 1, 80, 80, 80, 87, 74, 74, 40, 87, 87, 55, 87, 6, 87, 87, 87, 88, 7, 11, 55, 88, 88, 61, 88, 18, 88, 88, 88, 21, 3, 3, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 38, 61, 52, 80, 80, 80, 80, 80, 80, 80, 80, 80, 66, 67, 81, 87, 87, 87, 87, 87, 87, 87, 87, 87, 76, 85, 86, 88, 88, 88, 88, 88, 88, 88, 88, 88, 90, 102, 103, nil, 90, 90, 62, 90, 76, 90, 90, 90, 97, nil, 83, 62, 97, 97, 63, 97, 83, 97, 97, 97, 98, nil, nil, 63, 98, 98, nil, 98, nil, 98, 98, 98, 99, nil, nil, 16, 99, 99, nil, 99, nil, 99, 99, 99, 16, 16, 16, nil, 90, 90, 90, 90, 90, 90, 90, 90, 90, nil, nil, nil, 97, 97, 97, 97, 97, 97, 97, 97, 97, nil, nil, nil, 98, 98, 98, 98, 98, 98, 98, 98, 98, nil, nil, nil, 99, 99, 99, 99, 99, 99, 99, 99, 99, 101, nil, nil, nil, 101, 101, nil, 101, nil, 101, 101, 101, 41, 41, 41, 41, 41, 41, 41, 31, 41, nil, 41, 41, 41, 41, 41, 65, 31, 31, 31, 65, 65, nil, 65, nil, 65, 65, 65, 71, nil, nil, 58, 71, 71, nil, 71, nil, 71, 71, 71, 58, 101, 101, 101, 101, 101, 101, 101, 101, 101, 72, nil, nil, 59, 72, 72, nil, 72, nil, 72, 72, 72, 59, nil, nil, nil, 75, 75, 65, 65, 65, nil, 75, 75, 65, 65, 65, nil, nil, nil, 71, 71, 71, 58, 58, 73, 71, 71, 71, 73, 73, 15, 73, 20, 73, 73, 73, 20, 20, 15, 15, 15, 72, 72, 72, 59, 59, 104, 72, 72, 72, 104, 104, nil, 104, 75, 104, 104, 104, 105, 75, 75, nil, 105, 105, 30, 105, nil, 105, 105, 105, 46, 46, 30, 30, 30, nil, 73, 73, 73, 46, 46, 46, 73, 73, 73, 4, 4, 4, 4, 4, 4, 4, 4, 4, nil, nil, nil, 37, 104, 104, 104, 37, 37, 51, 104, 104, 104, 51, 51, 57, 105, 105, 105, 57, 57, nil, 105, 105, 105, 9, 9, 9, 9, 9, 9, 9, 9, 9, 53, nil, nil, 69, 53, 53, nil, 53, nil, 53, 53, 53, 69, 60, nil, 4, 4, 60, 60, nil, 60, 64, 60, 60, 60, 64, 64, nil, 64, 70, 64, 64, 64, 70, 70, nil, 70, nil, 70, 70, 70, nil, nil, nil, nil, nil, nil, nil, nil, 9, 9, nil, 53, 53, 53, 69, 69, nil, 53, nil, 34, 34, 34, nil, nil, 60, 60, 60, nil, nil, 34, 60, nil, 64, 64, 64, nil, nil, 34, 64, 34, 70, 70, 70, nil, nil, nil, 70, 10, 10, 10, 10, 10, 10, 10, 10, 10, 14, 14, 14, 14, 14, 14, 14, nil, 14, nil, nil, nil, nil, 14, 14, 29, 29, 29, 29, 29, 29, 29, nil, 29, 34, 34, nil, nil, 29, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, nil, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 17, 17, 17, 17, 17, 17, 17, nil, 17, nil, nil, nil, nil, 17, 32, 32, 32, 32, 32, 32, 32, nil, 32, nil, nil, nil, nil, 32, 49, 49, 49, 49, 49, 49, 49, nil, 49, nil, nil, nil, nil, 49, 12, 12, 12, 12, 12, 12, 12, nil, 12, 22, 22, 22, 22, 22, 22, 22, nil, 22, 23, 23, 23, 23, 23, 23, 23, nil, 23, 24, 24, 24, 24, 24, 24, 24, nil, 24, 25, 25, 25, 25, 25, 25, 25, 77, 25, 26, 26, 26, 26, 26, 26, 26, 77, 26, 27, 27, 27, 27, 27, 27, 27, nil, 27, 28, 28, 28, 28, 28, 28, 28, nil, 28, 33, 33, 33, 33, 33, 33, 33, nil, 33, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 35, 36, nil, nil, 77, 77, nil, nil, 35, nil, 35, 42, 42, 42, 42, 42, 42, 42, 82, 42, 48, 48, 48, 48, 48, 48, 48, 82, 48, 50, 50, 50, 50, 50, 50, 50, nil, 50, nil, nil, nil, nil, nil, nil, 43, 43, nil, nil, nil, 44, 44, 35, 35, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 45, 45, nil, nil, nil, 47, 47, 82, 82, 45, 45, 45, 45, 45, 47, 47, 47, 47, 47, 56, 56, nil, nil, nil, nil, nil, nil, nil, 56, 56, 56, 56, 56, 84, 84, 89, 89, 91, 91, 84, 84, 89, 89, 91, 91, 92, 92, 93, 93, 94, 94, 92, 92, 93, 93, 94, 94, 100, 100, 78, 78, nil, 78, 100, 100, 78, 78, 79, 79, nil, 79, nil, nil, 79, 79, nil, nil, nil, nil, nil, nil, nil, 84, nil, 89, nil, 91, 84, 84, 89, 89, 91, 91, nil, 92, nil, 93, nil, 94, 92, 92, 93, 93, 94, 94, nil, 100, nil, nil, nil, nil, 100, 100, 78, nil, nil, 95, 95, nil, 95, nil, 79, 95, 95, 96, 96, nil, 96, nil, nil, 96, 96, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 95, nil, nil, nil, nil, nil, nil, nil, 96], row_count: 106)
14
- GOTOS = Ibex::Tables::Compact.new(offsets: [0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 14, 28, 25, 0, 45, 50, 18, 0, 0, 0, 0, 0, 0, 0, 47, 0, 6, 0, 0, 0, 0, 0, 1, 0, 47, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 35, 0, 53, 0, 53, 0, 0, 0, 0, 0, 36, 0, 0, 0, 47, 0, 0, 0, 0, 0, 58, 19, 0, 0, 2, 13, 48, 0, 0, 0, 15, 0, 0, 0, 0, 46, 50, 0, 0, 0, 0, 26, 28, 0, 0, 0, 39, 0, 0, 0, 0, 0], values: [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 2, 4, 5, 8, 10, 22, 23, 24, 12, 46, 47, 25, 26, 27, 28, 46, 47, 51, 29, 68, 52, 68, 30, 58, 59, 69, 60, 70, 71, 85, 71, 72, 68, 72, 68, 73, 31, 73, 39, 40, 86, 71, 32, 91, 72, 68, 92, 68, 73, 93, 94, 83, 84, 102, 71, 103, 71, 72, 68, 72, 77, 73, 60, 73, 36, 37, 41, 91, 55, 56, 92, 61, 41, 93, 94, 62, 80, 82, 87, 100, 101], checks: [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0, 1, 4, 5, 7, 12, 12, 12, 8, 30, 30, 12, 12, 12, 12, 31, 31, 37, 14, 60, 37, 78, 15, 53, 53, 60, 53, 60, 60, 78, 78, 60, 79, 78, 84, 60, 16, 78, 21, 21, 79, 79, 17, 84, 79, 95, 84, 96, 79, 84, 84, 75, 75, 95, 95, 96, 96, 95, 100, 96, 64, 95, 64, 96, 19, 20, 29, 100, 39, 47, 100, 54, 56, 100, 100, 58, 68, 74, 80, 89, 90], row_count: 106)
15
- 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, [:reduce, 35], [:reduce, 36], nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 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
16
- PRODUCTIONS = [{ lhs: 24, length: 9, action: :_ibex_action_0 }, { lhs: 25, length: 1, action: :_ibex_action_1 }, { lhs: 25, length: 3, action: :_ibex_action_2 }, { lhs: 26, length: 0, action: :_ibex_action_3 }, { lhs: 26, length: 2, action: :_ibex_action_4 }, { lhs: 27, length: 0, action: nil }, { lhs: 27, length: 3, action: nil }, { lhs: 28, length: 0, action: :_ibex_action_7 }, { lhs: 28, length: 2, action: :_ibex_action_8 }, { lhs: 29, length: 1, action: :_ibex_action_9 }, { lhs: 29, length: 1, action: :_ibex_action_10 }, { lhs: 29, length: 1, action: :_ibex_action_11 }, { lhs: 29, length: 1, action: :_ibex_action_12 }, { lhs: 29, length: 1, action: :_ibex_action_13 }, { lhs: 29, length: 1, action: :_ibex_action_14 }, { lhs: 30, length: 2, action: :_ibex_action_15 }, { lhs: 31, length: 3, action: :_ibex_action_16 }, { lhs: 31, length: 3, action: :_ibex_action_17 }, { lhs: 32, length: 0, action: :_ibex_action_18 }, { lhs: 32, length: 2, action: :_ibex_action_19 }, { lhs: 33, length: 2, action: :_ibex_action_20 }, { lhs: 34, length: 1, action: :_ibex_action_21 }, { lhs: 34, length: 1, action: :_ibex_action_22 }, { lhs: 34, length: 1, action: :_ibex_action_23 }, { lhs: 35, length: 2, action: :_ibex_action_24 }, { lhs: 36, length: 2, action: :_ibex_action_25 }, { lhs: 37, length: 2, action: :_ibex_action_26 }, { lhs: 38, length: 3, action: :_ibex_action_27 }, { lhs: 39, length: 0, action: :_ibex_action_28 }, { lhs: 39, length: 2, action: :_ibex_action_29 }, { lhs: 40, length: 2, action: :_ibex_action_30 }, { lhs: 41, length: 0, action: :_ibex_action_31 }, { lhs: 41, length: 2, action: :_ibex_action_32 }, { lhs: 42, length: 0, action: :_ibex_action_33 }, { lhs: 42, length: 2, action: :_ibex_action_34 }, { lhs: 43, length: 1, action: :_ibex_action_35 }, { lhs: 43, length: 1, action: :_ibex_action_36 }, { lhs: 44, length: 1, action: :_ibex_action_37 }, { lhs: 44, length: 2, action: :_ibex_action_38 }, { lhs: 45, length: 4, action: :_ibex_action_39 }, { lhs: 46, length: 0, action: nil }, { lhs: 46, length: 1, action: nil }, { lhs: 47, length: 1, action: :_ibex_action_42 }, { lhs: 47, length: 3, action: :_ibex_action_43 }, { lhs: 48, length: 2, action: :_ibex_action_44 }, { lhs: 49, length: 0, action: :_ibex_action_45 }, { lhs: 49, length: 2, action: :_ibex_action_46 }, { lhs: 50, length: 0, action: :_ibex_action_47 }, { lhs: 50, length: 2, action: :_ibex_action_48 }, { lhs: 51, length: 1, action: :_ibex_action_49 }, { lhs: 51, length: 1, action: :_ibex_action_50 }, { lhs: 51, length: 1, action: :_ibex_action_51 }, { lhs: 51, length: 1, action: :_ibex_action_52 }, { lhs: 52, length: 3, action: :_ibex_action_53 }, { lhs: 53, length: 0, action: :_ibex_action_54 }, { lhs: 53, length: 2, action: :_ibex_action_55 }, { lhs: 54, length: 0, action: :_ibex_action_56 }, { lhs: 54, length: 2, action: :_ibex_action_57 }, { lhs: 54, length: 2, action: :_ibex_action_58 }, { lhs: 54, length: 2, action: :_ibex_action_59 }, { lhs: 55, length: 4, action: :_ibex_action_60 }, { lhs: 56, length: 1, action: :_ibex_action_61 }, { lhs: 56, length: 3, action: :_ibex_action_62 }, { lhs: 57, length: 0, action: :_ibex_action_63 }, { lhs: 57, length: 2, action: :_ibex_action_64 }, { lhs: 58, length: 1, action: :_ibex_action_65 }, { lhs: 58, length: 1, action: :_ibex_action_66 }, { lhs: 58, length: 1, action: :_ibex_action_67 }, { lhs: 59, length: 6, action: :_ibex_action_68 }, { lhs: 59, length: 6, action: :_ibex_action_69 }, { lhs: 60, length: 0, action: :_ibex_action_70 }, { lhs: 60, length: 2, action: :_ibex_action_71 }].freeze
8
+ PARSER_TABLE_FORMAT_VERSION = 6
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
+ eager_reductions = {} # @type var eager_reductions: Hash[Integer, [:reduce, Integer]]
18
+ EAGER_REDUCTIONS = eager_reductions.freeze #: Hash[Integer, [:reduce, Integer]]
19
+ PRODUCTIONS = Ibex::Tables::CompactProductions.packed("MTEyMjM0NTU2Njc3ODg5OTo6Ojo6Ojo6Ojo6Ojo6Ojo6Ozs8PT0+Pj8/QEBBQkJCQkNERUZHSElKS0tMTE1NTU5OT09QUVJSU1RVVldXWFlaWltcXF1dXl5fX2BhYWJiY2NkZGVlZmdnaGhpaWpqa2tra2trbG1ubm9vcHBwcHFxcnJycnN0dHV1dnZ2dnd3eHg=", "AgIKCQMHAQICBAEDAQQBAwICAgICAgICAgICAgICAgICAwMDAQMCAwQEAQMDAgICAgMDAwQGBAQEAQMCAgQEBAICAQIGBAEDAwQEBAECBAQBAwMBAwEDAgICAwcBAgEEAgQBAgIEBAEGAQIBAwEDAgICAgICBAcBAgIEAgICAgEDAQMDAwUCBAEDAgICAgcHAQM=", "EREEBBEEERERERERAQEREREREREREREREREREREREREREREREREREREREREREREREREREREEEREREREREREREREREREEEREREREREREREREREREREREREREREQQREREREREBAREREREEEREREREREREREREREQQREREREREREREREREREREREREREREREQQEERE=", metadata: Hash.new.freeze).freeze
20
+ error_messages = {} # @type var error_messages: Hash[Integer, String | { id: String, message: String }]
21
+ ERROR_MESSAGES = error_messages.freeze #: Hash[Integer, String | { id: String, message: String }]
17
22
  PARSER_TABLES = { format_version: PARSER_TABLE_FORMAT_VERSION,
23
+ grammar_digest: GRAMMAR_DIGEST,
24
+ state_count: STATE_COUNT, production_count: PRODUCTION_COUNT,
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, 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,
18
27
  tokens: TOKEN_IDS, token_names: TOKEN_NAMES, actions: ACTIONS,
19
28
  gotos: GOTOS, default_actions: DEFAULT_ACTIONS,
20
- productions: PRODUCTIONS }.freeze
29
+ productions: PRODUCTIONS, eager_reductions: EAGER_REDUCTIONS, error_messages: ERROR_MESSAGES }.freeze
30
+ Ractor.make_shareable(PARSER_TABLES) if defined?(Ractor) && Ractor.respond_to?(:make_shareable)
21
31
  def self.parser_tables = PARSER_TABLES
22
32
  DEBUG_ENABLED = false
23
33
 
24
- private def _ibex_action_0(val, _values)
34
+ private def _ibex_action_0(v0)
35
+ result = v0
36
+ result = v0
37
+ result
38
+ end
39
+
40
+ private def _ibex_action_1(v0)
41
+ result = v0
42
+ result = v0
43
+ result
44
+ end
45
+
46
+ private def _ibex_action_2(val)
25
47
  result = val[0]
26
48
  result = build_root(val[0], val[1], val[2], val[4], val[6], val[8])
27
49
  result
28
50
  end
29
51
 
30
- private def _ibex_action_1(val, _values)
52
+ private def _ibex_action_3(val)
31
53
  result = val[0]
32
- result = [val[0].value]
54
+ result = build_root(val[0], val[1], val[2], val[4], val[6], val[7])
33
55
  result
34
56
  end
35
57
 
36
- private def _ibex_action_2(val, _values)
37
- result = val[0]
38
- result = val[0] + [val[2].value]
58
+ private def _ibex_action_4(v0, v1)
59
+ result = v0
60
+ result = prepend_user_code(v0, v1)
39
61
  result
40
62
  end
41
63
 
42
- private def _ibex_action_3(val, _values)
64
+ private def _ibex_action_5(val)
43
65
  result = val[0]
66
+ result = build_fragment(val[0], val[1], val[3], val[5])
67
+ result
68
+ end
69
+
70
+ private def _ibex_action_6()
71
+ result = nil
72
+ result = Array.new(0)
73
+ result
74
+ end
75
+
76
+ private def _ibex_action_7(v0)
77
+ result = v0
78
+ result = v0
79
+ result
80
+ end
81
+
82
+ private def _ibex_action_8(v0)
83
+ result = v0
84
+ result = [v0.value]
85
+ result
86
+ end
87
+
88
+ private def _ibex_action_9(v0, v1, v2)
89
+ result = v0
90
+ result = v0 + [v2.value]
91
+ result
92
+ end
93
+
94
+ private def _ibex_action_10()
95
+ result = nil
44
96
  result = nil
45
97
  result
46
98
  end
47
99
 
48
- private def _ibex_action_4(val, _values)
49
- result = val[0]
50
- result = val[1]
100
+ private def _ibex_action_11(v0, v1)
101
+ result = v0
102
+ result = v1
51
103
  result
52
104
  end
53
105
 
54
- private def _ibex_action_7(val, _values)
55
- result = val[0]
106
+ private def _ibex_action_14()
107
+ result = nil
56
108
  result = Array.new(0)
57
109
  result
58
110
  end
59
111
 
60
- private def _ibex_action_8(val, _values)
61
- result = val[0]
62
- result = val[0] + [val[1]]
112
+ private def _ibex_action_15(v0, v1)
113
+ result = v0
114
+ result = v0 + [v1]
63
115
  result
64
116
  end
65
117
 
66
- private def _ibex_action_9(val, _values)
67
- result = val[0]
68
- result = val[0]
118
+ private def _ibex_action_16(v0)
119
+ result = v0
120
+ result = v0
69
121
  result
70
122
  end
71
123
 
72
- private def _ibex_action_10(val, _values)
73
- result = val[0]
74
- result = val[0]
124
+ private def _ibex_action_17(v0)
125
+ result = v0
126
+ result = v0
75
127
  result
76
128
  end
77
129
 
78
- private def _ibex_action_11(val, _values)
79
- result = val[0]
80
- result = val[0]
130
+ private def _ibex_action_18(v0)
131
+ result = v0
132
+ result = v0
81
133
  result
82
134
  end
83
135
 
84
- private def _ibex_action_12(val, _values)
85
- result = val[0]
86
- result = val[0]
136
+ private def _ibex_action_19(v0)
137
+ result = v0
138
+ result = v0
87
139
  result
88
140
  end
89
141
 
90
- private def _ibex_action_13(val, _values)
91
- result = val[0]
92
- result = val[0]
142
+ private def _ibex_action_20(v0)
143
+ result = v0
144
+ result = v0
93
145
  result
94
146
  end
95
147
 
96
- private def _ibex_action_14(val, _values)
97
- result = val[0]
98
- result = val[0]
148
+ private def _ibex_action_21(v0)
149
+ result = v0
150
+ result = v0
99
151
  result
100
152
  end
101
153
 
102
- private def _ibex_action_15(val, _values)
103
- result = val[0]
104
- result = build_tokens(val[0], val[1])
154
+ private def _ibex_action_22(v0)
155
+ result = v0
156
+ result = v0
105
157
  result
106
158
  end
107
159
 
108
- private def _ibex_action_16(val, _values)
109
- result = val[0]
110
- result = build_precedence(val[0], :high_to_low, val[1])
160
+ private def _ibex_action_23(v0)
161
+ result = v0
162
+ result = v0
111
163
  result
112
164
  end
113
165
 
114
- private def _ibex_action_17(val, _values)
115
- result = val[0]
116
- result = build_precedence(val[0], :low_to_high, val[1])
166
+ private def _ibex_action_24(v0)
167
+ result = v0
168
+ result = v0
117
169
  result
118
170
  end
119
171
 
120
- private def _ibex_action_18(val, _values)
121
- result = val[0]
172
+ private def _ibex_action_25(v0)
173
+ result = v0
174
+ result = v0
175
+ result
176
+ end
177
+
178
+ private def _ibex_action_26(v0)
179
+ result = v0
180
+ result = v0
181
+ result
182
+ end
183
+
184
+ private def _ibex_action_27(v0)
185
+ result = v0
186
+ result = v0
187
+ result
188
+ end
189
+
190
+ private def _ibex_action_28(v0)
191
+ result = v0
192
+ result = v0
193
+ result
194
+ end
195
+
196
+ private def _ibex_action_29(v0)
197
+ result = v0
198
+ result = v0
199
+ result
200
+ end
201
+
202
+ private def _ibex_action_30(v0)
203
+ result = v0
204
+ result = v0
205
+ result
206
+ end
207
+
208
+ private def _ibex_action_31(v0)
209
+ result = v0
210
+ result = v0
211
+ result
212
+ end
213
+
214
+ private def _ibex_action_32(v0)
215
+ result = v0
216
+ result = v0
217
+ result
218
+ end
219
+
220
+ private def _ibex_action_33(v0, v1)
221
+ result = v0
222
+ result = build_include(v0, v1)
223
+ result
224
+ end
225
+
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)
233
+ result = v0
234
+ result = build_tokens(v0, v1)
235
+ result
236
+ end
237
+
238
+ private def _ibex_action_36()
239
+ result = nil
122
240
  result = Array.new(0)
123
241
  result
124
242
  end
125
243
 
126
- private def _ibex_action_19(val, _values)
127
- result = val[0]
128
- result = val[0] + [val[1]]
244
+ private def _ibex_action_37(v0, v1)
245
+ result = v0
246
+ result = v0 + [v1]
129
247
  result
130
248
  end
131
249
 
132
- private def _ibex_action_20(val, _values)
133
- result = val[0]
134
- result = build_precedence_level(val[0], val[1])
250
+ private def _ibex_action_38(v0)
251
+ result = v0
252
+ result = build_token_entry(v0)
135
253
  result
136
254
  end
137
255
 
138
- private def _ibex_action_21(val, _values)
139
- result = val[0]
140
- result = val[0]
256
+ private def _ibex_action_39(v0, v1)
257
+ result = v0
258
+ result = build_token_alias(v0, v1)
141
259
  result
142
260
  end
143
261
 
144
- private def _ibex_action_22(val, _values)
145
- result = val[0]
146
- result = val[0]
262
+ private def _ibex_action_40(v0, v1, v2)
263
+ result = v0
264
+ result = build_precedence(v0, :high_to_low, v1)
147
265
  result
148
266
  end
149
267
 
150
- private def _ibex_action_23(val, _values)
151
- result = val[0]
152
- result = val[0]
268
+ private def _ibex_action_41(v0, v1, v2)
269
+ result = v0
270
+ result = build_precedence(v0, :low_to_high, v1)
153
271
  result
154
272
  end
155
273
 
156
- private def _ibex_action_24(val, _values)
157
- result = val[0]
158
- result = build_options(val[0], val[1])
274
+ private def _ibex_action_42()
275
+ result = nil
276
+ result = Array.new(0)
159
277
  result
160
278
  end
161
279
 
162
- private def _ibex_action_25(val, _values)
163
- result = val[0]
164
- result = build_expect(val[0], val[1])
280
+ private def _ibex_action_43(v0, v1)
281
+ result = v0
282
+ result = v0 + [v1]
165
283
  result
166
284
  end
167
285
 
168
- private def _ibex_action_26(val, _values)
169
- result = val[0]
170
- result = build_start(val[0], val[1].value)
286
+ private def _ibex_action_44(v0, v1)
287
+ result = v0
288
+ result = build_precedence_level(v0, v1)
171
289
  result
172
290
  end
173
291
 
174
- private def _ibex_action_27(val, _values)
175
- result = val[0]
176
- result = build_convert(val[0], val[1])
292
+ private def _ibex_action_45(v0)
293
+ result = v0
294
+ result = v0
177
295
  result
178
296
  end
179
297
 
180
- private def _ibex_action_28(val, _values)
298
+ private def _ibex_action_46(v0)
299
+ result = v0
300
+ result = v0
301
+ result
302
+ end
303
+
304
+ private def _ibex_action_47(v0)
305
+ result = v0
306
+ result = v0
307
+ result
308
+ end
309
+
310
+ private def _ibex_action_48(v0)
311
+ result = v0
312
+ result = v0
313
+ result
314
+ end
315
+
316
+ private def _ibex_action_49(v0, v1)
317
+ result = v0
318
+ result = build_options(v0, v1)
319
+ result
320
+ end
321
+
322
+ private def _ibex_action_50(v0, v1)
323
+ result = v0
324
+ result = build_expect(v0, v1)
325
+ result
326
+ end
327
+
328
+ private def _ibex_action_51(v0, v1)
329
+ result = v0
330
+ result = build_expect_rr(v0, v1)
331
+ result
332
+ end
333
+
334
+ private def _ibex_action_52(v0, v1, v2)
335
+ result = v0
336
+ result = build_start(v0, [v1.value] + v2)
337
+ result
338
+ end
339
+
340
+ private def _ibex_action_53(val)
181
341
  result = val[0]
342
+ result = build_recovery(val[0], val[1], [val[3].value] + val[4])
343
+ result
344
+ end
345
+
346
+ private def _ibex_action_54(v0, v1, v2)
347
+ result = v0
348
+ result = build_on_error_reduce(v0, [v1.value] + v2)
349
+ result
350
+ end
351
+
352
+ private def _ibex_action_55(v0, v1, v2)
353
+ result = v0
354
+ result = build_grammar_test(v0, v1, v2)
355
+ result
356
+ end
357
+
358
+ private def _ibex_action_56(v0, v1, v2)
359
+ result = v0
360
+ result = build_lexer(v0, v1)
361
+ result
362
+ end
363
+
364
+ private def _ibex_action_57()
365
+ result = nil
182
366
  result = Array.new(0)
183
367
  result
184
368
  end
185
369
 
186
- private def _ibex_action_29(val, _values)
187
- result = val[0]
188
- result = val[0] + [val[1]]
370
+ private def _ibex_action_58(v0, v1)
371
+ result = v0
372
+ result = v0 + [v1]
189
373
  result
190
374
  end
191
375
 
192
- private def _ibex_action_30(val, _values)
193
- result = val[0]
194
- result = build_conversion(val[0], val[1])
376
+ private def _ibex_action_59(v0)
377
+ result = v0
378
+ result = v0
379
+ result
380
+ end
381
+
382
+ private def _ibex_action_60(v0)
383
+ result = v0
384
+ result = v0
385
+ result
386
+ end
387
+
388
+ private def _ibex_action_61(v0, v1, v2)
389
+ result = v0
390
+ result = build_lexer_rule(:skip, nil, v1, v2, v0)
391
+ result
392
+ end
393
+
394
+ private def _ibex_action_62(v0, v1, v2)
395
+ result = v0
396
+ result = build_lexer_rule(:token, v0, v1, v2, v0)
397
+ result
398
+ end
399
+
400
+ private def _ibex_action_63(v0, v1, v2)
401
+ result = v0
402
+ result = build_lexer_rule(:on, nil, v1, v2, v0)
403
+ result
404
+ end
405
+
406
+ private def _ibex_action_64(v0)
407
+ result = v0
408
+ result = v0
409
+ result
410
+ end
411
+
412
+ private def _ibex_action_65(v0)
413
+ result = v0
414
+ result = v0
415
+ result
416
+ end
417
+
418
+ private def _ibex_action_66()
419
+ result = nil
420
+ result = nil
421
+ result
422
+ end
423
+
424
+ private def _ibex_action_67(v0)
425
+ result = v0
426
+ result = v0
195
427
  result
196
428
  end
197
429
 
198
- private def _ibex_action_31(val, _values)
430
+ private def _ibex_action_68(val)
199
431
  result = val[0]
432
+ result = build_lexer_state(val[0], val[1], val[3])
433
+ result
434
+ end
435
+
436
+ private def _ibex_action_69(v0, v1, v2)
437
+ result = v0
438
+ result = build_convert(v0, v1)
439
+ result
440
+ end
441
+
442
+ private def _ibex_action_70()
443
+ result = nil
200
444
  result = Array.new(0)
201
445
  result
202
446
  end
203
447
 
204
- private def _ibex_action_32(val, _values)
205
- result = val[0]
206
- result = val[0] + [val[1].value]
448
+ private def _ibex_action_71(v0, v1)
449
+ result = v0
450
+ result = v0 + [v1]
207
451
  result
208
452
  end
209
453
 
210
- private def _ibex_action_33(val, _values)
211
- result = val[0]
454
+ private def _ibex_action_72(v0, v1)
455
+ result = v0
456
+ result = build_conversion(v0, v1)
457
+ result
458
+ end
459
+
460
+ private def _ibex_action_73(v0, v1, v2)
461
+ result = v0
462
+ result = build_display_name(v0, v1, v2)
463
+ result
464
+ end
465
+
466
+ private def _ibex_action_74(v0, v1, v2)
467
+ result = v0
468
+ result = build_semantic_type(v0, v1, v2)
469
+ result
470
+ end
471
+
472
+ private def _ibex_action_75(v0, v1, v2)
473
+ result = v0
474
+ result = build_parameter(v0, v1, v2)
475
+ result
476
+ end
477
+
478
+ private def _ibex_action_76()
479
+ result = nil
480
+ result = nil
481
+ result
482
+ end
483
+
484
+ private def _ibex_action_77(v0)
485
+ result = v0
486
+ result = v0
487
+ result
488
+ end
489
+
490
+ private def _ibex_action_78(v0, v1, v2)
491
+ result = v0
492
+ result = build_printer(v0, v1, v2)
493
+ result
494
+ end
495
+
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()
503
+ result = nil
212
504
  result = Array.new(0)
213
505
  result
214
506
  end
215
507
 
216
- private def _ibex_action_34(val, _values)
217
- result = val[0]
218
- result = val[0] + [val[1].value]
508
+ private def _ibex_action_81(v0, v1)
509
+ result = v0
510
+ result = v0 + [v1]
219
511
  result
220
512
  end
221
513
 
222
- private def _ibex_action_35(val, _values)
223
- result = val[0]
224
- result = val[0]
514
+ private def _ibex_action_82(v0, v1)
515
+ result = v0
516
+ result = build_parser_setting(v0, v1)
225
517
  result
226
518
  end
227
519
 
228
- private def _ibex_action_36(val, _values)
229
- result = val[0]
230
- result = val[0]
520
+ private def _ibex_action_83()
521
+ result = nil
522
+ result = Array.new(0)
231
523
  result
232
524
  end
233
525
 
234
- private def _ibex_action_37(val, _values)
235
- result = val[0]
236
- result = [val[0]]
526
+ private def _ibex_action_84(v0, v1)
527
+ result = v0
528
+ result = v0 + [v1.value]
237
529
  result
238
530
  end
239
531
 
240
- private def _ibex_action_38(val, _values)
241
- result = val[0]
242
- result = val[0] + [val[1]]
532
+ private def _ibex_action_85()
533
+ result = nil
534
+ result = Array.new(0)
243
535
  result
244
536
  end
245
537
 
246
- private def _ibex_action_39(val, _values)
247
- result = val[0]
248
- result = build_rule(val[0], val[2])
538
+ private def _ibex_action_86(v0, v1)
539
+ result = v0
540
+ result = v0 + [v1.value]
249
541
  result
250
542
  end
251
543
 
252
- private def _ibex_action_42(val, _values)
253
- result = val[0]
254
- result = [val[0]]
544
+ private def _ibex_action_87(v0)
545
+ result = v0
546
+ result = v0
255
547
  result
256
548
  end
257
549
 
258
- private def _ibex_action_43(val, _values)
259
- result = val[0]
260
- result = val[0] + [val[2]]
550
+ private def _ibex_action_88(v0)
551
+ result = v0
552
+ result = v0
261
553
  result
262
554
  end
263
555
 
264
- private def _ibex_action_44(val, _values)
265
- result = val[0]
266
- result = build_alternative(val[0], val[1])
556
+ private def _ibex_action_89(v0)
557
+ result = v0
558
+ result = [v0]
267
559
  result
268
560
  end
269
561
 
270
- private def _ibex_action_45(val, _values)
562
+ private def _ibex_action_90(v0, v1)
563
+ result = v0
564
+ result = v0 + [v1]
565
+ result
566
+ end
567
+
568
+ private def _ibex_action_91(val)
271
569
  result = val[0]
570
+ result = build_rule(val[0], val[1], val[2], val[4])
571
+ result
572
+ end
573
+
574
+ private def _ibex_action_92()
575
+ result = nil
272
576
  result = nil
273
577
  result
274
578
  end
275
579
 
276
- private def _ibex_action_46(val, _values)
277
- result = val[0]
278
- result = val[1]
580
+ private def _ibex_action_93(v0)
581
+ result = v0
582
+ result = v0
583
+ result
584
+ end
585
+
586
+ private def _ibex_action_94()
587
+ result = nil
588
+ result = nil
589
+ result
590
+ end
591
+
592
+ private def _ibex_action_95(v0, v1, v2)
593
+ result = v0
594
+ result = build_rule_parameters(v0, v1)
595
+ result
596
+ end
597
+
598
+ private def _ibex_action_96(v0)
599
+ result = v0
600
+ result = [v0]
601
+ result
602
+ end
603
+
604
+ private def _ibex_action_97(v0, v1, v2)
605
+ result = v0
606
+ result = v0 + [v2]
607
+ result
608
+ end
609
+
610
+ private def _ibex_action_100(v0)
611
+ result = v0
612
+ result = [v0]
613
+ result
614
+ end
615
+
616
+ private def _ibex_action_101(v0, v1, v2)
617
+ result = v0
618
+ result = v0 + [v2]
619
+ result
620
+ end
621
+
622
+ private def _ibex_action_102(v0, v1, v2)
623
+ result = v0
624
+ result = build_alternative(v0, v1, v2)
279
625
  result
280
626
  end
281
627
 
282
- private def _ibex_action_47(val, _values)
628
+ private def _ibex_action_103()
629
+ result = nil
630
+ result = nil
631
+ result
632
+ end
633
+
634
+ private def _ibex_action_104(val)
283
635
  result = val[0]
636
+ result = build_node_annotation(val[0], val[1], val[3])
637
+ result
638
+ end
639
+
640
+ private def _ibex_action_105()
641
+ result = nil
284
642
  result = Array.new(0)
285
643
  result
286
644
  end
287
645
 
288
- private def _ibex_action_48(val, _values)
289
- result = val[0]
290
- result = val[0] + [val[1]]
646
+ private def _ibex_action_106(v0)
647
+ result = v0
648
+ result = v0
291
649
  result
292
650
  end
293
651
 
294
- private def _ibex_action_49(val, _values)
295
- result = val[0]
296
- result = val[0]
652
+ private def _ibex_action_107()
653
+ result = nil
654
+ result = nil
297
655
  result
298
656
  end
299
657
 
300
- private def _ibex_action_50(val, _values)
301
- result = val[0]
302
- result = build_action(val[0])
658
+ private def _ibex_action_108(v0, v1)
659
+ result = v0
660
+ result = v1
303
661
  result
304
662
  end
305
663
 
306
- private def _ibex_action_51(val, _values)
307
- result = val[0]
308
- result = val[0]
664
+ private def _ibex_action_109()
665
+ result = nil
666
+ result = Array.new(0)
309
667
  result
310
668
  end
311
669
 
312
- private def _ibex_action_52(val, _values)
313
- result = val[0]
314
- result = val[0]
670
+ private def _ibex_action_110(v0, v1)
671
+ result = v0
672
+ result = v0 + [v1]
315
673
  result
316
674
  end
317
675
 
318
- private def _ibex_action_53(val, _values)
319
- result = val[0]
320
- result = build_symbol_reference(val[0], val[1], val[2])
676
+ private def _ibex_action_111(v0)
677
+ result = v0
678
+ result = v0
679
+ result
680
+ end
681
+
682
+ private def _ibex_action_112(v0)
683
+ result = v0
684
+ result = v0
685
+ result
686
+ end
687
+
688
+ private def _ibex_action_113(v0)
689
+ result = v0
690
+ result = build_action(v0)
691
+ result
692
+ end
693
+
694
+ private def _ibex_action_114(v0)
695
+ result = v0
696
+ result = build_empty(v0)
697
+ result
698
+ end
699
+
700
+ private def _ibex_action_115(v0)
701
+ result = v0
702
+ result = v0
703
+ result
704
+ end
705
+
706
+ private def _ibex_action_116(v0)
707
+ result = v0
708
+ result = v0
321
709
  result
322
710
  end
323
711
 
324
- private def _ibex_action_54(val, _values)
712
+ private def _ibex_action_117(v0, v1, v2)
713
+ result = v0
714
+ result = build_symbol_reference(v0, v1, v2)
715
+ result
716
+ end
717
+
718
+ private def _ibex_action_118(val)
325
719
  result = val[0]
720
+ result = build_parameterized_reference(val[0], val[1], val[2], val[4], val[5])
721
+ result
722
+ end
723
+
724
+ private def _ibex_action_119()
725
+ result = nil
726
+ result = Array.new(0)
727
+ result
728
+ end
729
+
730
+ private def _ibex_action_120(v0)
731
+ result = v0
732
+ result = v0
733
+ result
734
+ end
735
+
736
+ private def _ibex_action_121(v0)
737
+ result = v0
738
+ result = [v0]
739
+ result
740
+ end
741
+
742
+ private def _ibex_action_122(v0, v1, v2)
743
+ result = v0
744
+ result = v0 + [v2]
745
+ result
746
+ end
747
+
748
+ private def _ibex_action_123(v0)
749
+ result = v0
750
+ result = v0
751
+ result
752
+ end
753
+
754
+ private def _ibex_action_124(v0)
755
+ result = v0
756
+ result = v0
757
+ result
758
+ end
759
+
760
+ private def _ibex_action_125(v0)
761
+ result = v0
762
+ result = v0
763
+ result
764
+ end
765
+
766
+ private def _ibex_action_126(v0)
767
+ result = v0
768
+ result = v0
769
+ result
770
+ end
771
+
772
+ private def _ibex_action_127()
773
+ result = nil
326
774
  result = nil
327
775
  result
328
776
  end
329
777
 
330
- private def _ibex_action_55(val, _values)
331
- result = val[0]
332
- result = [val[0], val[1]]
778
+ private def _ibex_action_128(v0, v1)
779
+ result = v0
780
+ result = [v0, v1]
333
781
  result
334
782
  end
335
783
 
336
- private def _ibex_action_56(val, _values)
337
- result = val[0]
784
+ private def _ibex_action_129()
785
+ result = nil
338
786
  result = Array.new(0)
339
787
  result
340
788
  end
341
789
 
342
- private def _ibex_action_57(val, _values)
343
- result = val[0]
344
- result = val[0] + [val[1]]
790
+ private def _ibex_action_130(v0, v1)
791
+ result = v0
792
+ result = v0 + [v1]
345
793
  result
346
794
  end
347
795
 
348
- private def _ibex_action_58(val, _values)
349
- result = val[0]
350
- result = val[0] + [val[1]]
796
+ private def _ibex_action_131(v0, v1)
797
+ result = v0
798
+ result = v0 + [v1]
351
799
  result
352
800
  end
353
801
 
354
- private def _ibex_action_59(val, _values)
355
- result = val[0]
356
- result = val[0] + [val[1]]
802
+ private def _ibex_action_132(v0, v1)
803
+ result = v0
804
+ result = v0 + [v1]
357
805
  result
358
806
  end
359
807
 
360
- private def _ibex_action_60(val, _values)
361
- result = val[0]
362
- result = build_group(val[0], val[1], val[3])
808
+ private def _ibex_action_133(v0, v1, v2, v3)
809
+ result = v0
810
+ result = build_group(v0, v1, v3)
363
811
  result
364
812
  end
365
813
 
366
- private def _ibex_action_61(val, _values)
367
- result = val[0]
368
- result = [val[0]]
814
+ private def _ibex_action_134(v0)
815
+ result = v0
816
+ result = [v0]
369
817
  result
370
818
  end
371
819
 
372
- private def _ibex_action_62(val, _values)
373
- result = val[0]
374
- result = val[0] + [val[2]]
820
+ private def _ibex_action_135(v0, v1, v2)
821
+ result = v0
822
+ result = v0 + [v2]
375
823
  result
376
824
  end
377
825
 
378
- private def _ibex_action_63(val, _values)
379
- result = val[0]
826
+ private def _ibex_action_136()
827
+ result = nil
380
828
  result = Array.new(0)
381
829
  result
382
830
  end
383
831
 
384
- private def _ibex_action_64(val, _values)
385
- result = val[0]
386
- result = val[0] + [val[1]]
832
+ private def _ibex_action_137(v0, v1)
833
+ result = v0
834
+ result = v0 + [v1]
387
835
  result
388
836
  end
389
837
 
390
- private def _ibex_action_65(val, _values)
391
- result = val[0]
392
- result = val[0]
838
+ private def _ibex_action_138(v0)
839
+ result = v0
840
+ result = v0
393
841
  result
394
842
  end
395
843
 
396
- private def _ibex_action_66(val, _values)
397
- result = val[0]
398
- result = val[0]
844
+ private def _ibex_action_139(v0)
845
+ result = v0
846
+ result = v0
399
847
  result
400
848
  end
401
849
 
402
- private def _ibex_action_67(val, _values)
403
- result = val[0]
404
- result = val[0]
850
+ private def _ibex_action_140(v0)
851
+ result = v0
852
+ result = v0
405
853
  result
406
854
  end
407
855
 
408
- private def _ibex_action_68(val, _values)
856
+ private def _ibex_action_141(v0)
857
+ result = v0
858
+ result = v0
859
+ result
860
+ end
861
+
862
+ private def _ibex_action_142(val)
409
863
  result = val[0]
410
864
  result = build_separated_list(val[0], val[2], val[4])
411
865
  result
412
866
  end
413
867
 
414
- private def _ibex_action_69(val, _values)
868
+ private def _ibex_action_143(val)
415
869
  result = val[0]
416
870
  result = build_separated_list(val[0], val[2], val[4])
417
871
  result
418
872
  end
419
873
 
420
- private def _ibex_action_70(val, _values)
421
- result = val[0]
874
+ private def _ibex_action_144()
875
+ result = nil
422
876
  result = empty_user_code
423
877
  result
424
878
  end
425
879
 
426
- private def _ibex_action_71(val, _values)
427
- result = val[0]
428
- result = append_user_code(val[0], val[1])
880
+ private def _ibex_action_145(v0, v1)
881
+ result = v0
882
+ result = append_user_code(v0, v1)
429
883
  result
430
884
  end
431
885