ibex 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +247 -104
  3. data/docs/architecture.md +322 -28
  4. data/docs/cst-migration.md +107 -0
  5. data/docs/cst.md +213 -0
  6. data/docs/development.md +129 -0
  7. data/docs/editor-setup.md +25 -0
  8. data/docs/error-ux.md +60 -0
  9. data/docs/grammar-reference.md +458 -18
  10. data/docs/lexer-migration.md +51 -0
  11. data/docs/racc-migration.md +34 -6
  12. data/docs/release-readiness.md +163 -0
  13. data/docs/stability.md +124 -0
  14. data/examples/README.md +60 -0
  15. data/examples/calculator.y +44 -0
  16. data/examples/csv.y +32 -0
  17. data/examples/ini.y +70 -0
  18. data/examples/json.y +48 -0
  19. data/examples/tiny_language.y +75 -0
  20. data/lib/ibex/analysis/sets.rb +5 -4
  21. data/lib/ibex/artifact_set.rb +63 -0
  22. data/lib/ibex/cli/ambiguity.rb +66 -0
  23. data/lib/ibex/cli/counterexample_options.rb +6 -2
  24. data/lib/ibex/cli/coverage.rb +173 -0
  25. data/lib/ibex/cli/debug.rb +106 -0
  26. data/lib/ibex/cli/diagnostics.rb +116 -0
  27. data/lib/ibex/cli/documentation.rb +67 -0
  28. data/lib/ibex/cli/error_messages.rb +177 -0
  29. data/lib/ibex/cli/explain.rb +76 -0
  30. data/lib/ibex/cli/formatting.rb +386 -0
  31. data/lib/ibex/cli/generation_artifacts.rb +138 -0
  32. data/lib/ibex/cli/generation_error_messages.rb +39 -0
  33. data/lib/ibex/cli/grammar_tests.rb +122 -0
  34. data/lib/ibex/cli/ir_tools.rb +184 -0
  35. data/lib/ibex/cli/lsp.rb +33 -0
  36. data/lib/ibex/cli/outputs.rb +91 -8
  37. data/lib/ibex/cli/racc_migration.rb +87 -0
  38. data/lib/ibex/cli/samples.rb +92 -0
  39. data/lib/ibex/cli/watch.rb +103 -0
  40. data/lib/ibex/cli.rb +506 -37
  41. data/lib/ibex/codegen/action_locations.rb +103 -0
  42. data/lib/ibex/codegen/action_method_source.rb +210 -0
  43. data/lib/ibex/codegen/action_source.rb +118 -0
  44. data/lib/ibex/codegen/ambiguity.rb +173 -0
  45. data/lib/ibex/codegen/cst_metadata.rb +171 -0
  46. data/lib/ibex/codegen/documentation.rb +170 -0
  47. data/lib/ibex/codegen/explain.rb +312 -0
  48. data/lib/ibex/codegen/generated_action_abi.rb +288 -0
  49. data/lib/ibex/codegen/html.rb +94 -10
  50. data/lib/ibex/codegen/mermaid.rb +43 -0
  51. data/lib/ibex/codegen/railroad.rb +197 -0
  52. data/lib/ibex/codegen/railroad_documentation.rb +59 -0
  53. data/lib/ibex/codegen/rbs.rb +323 -2
  54. data/lib/ibex/codegen/report.rb +46 -6
  55. data/lib/ibex/codegen/ruby.rb +334 -59
  56. data/lib/ibex/codegen/ruby_actions.rb +143 -0
  57. data/lib/ibex/codegen/ruby_ast.rb +121 -0
  58. data/lib/ibex/codegen/ruby_error_messages.rb +28 -0
  59. data/lib/ibex/codegen/ruby_lexer.rb +83 -0
  60. data/lib/ibex/codegen/ruby_syntax.rb +90 -0
  61. data/lib/ibex/codegen/ruby_table_metadata.rb +57 -0
  62. data/lib/ibex/codegen/ruby_value_printers.rb +56 -0
  63. data/lib/ibex/codegen/symbol_labels.rb +1 -1
  64. data/lib/ibex/coverage/collector.rb +188 -0
  65. data/lib/ibex/coverage/event_stream.rb +97 -0
  66. data/lib/ibex/coverage/report.rb +259 -0
  67. data/lib/ibex/coverage/runtime_event_validator.rb +160 -0
  68. data/lib/ibex/coverage.rb +13 -0
  69. data/lib/ibex/error_messages/parser.rb +159 -0
  70. data/lib/ibex/error_messages/parser_v2.rb +198 -0
  71. data/lib/ibex/error_messages/renderer.rb +65 -0
  72. data/lib/ibex/error_messages/sentence_search.rb +196 -0
  73. data/lib/ibex/error_messages/update.rb +169 -0
  74. data/lib/ibex/error_messages.rb +165 -0
  75. data/lib/ibex/frontend/ast.rb +145 -6
  76. data/lib/ibex/frontend/bootstrap_parser.rb +47 -4
  77. data/lib/ibex/frontend/diagnostic.rb +81 -0
  78. data/lib/ibex/frontend/diagnostic_recovery.rb +268 -0
  79. data/lib/ibex/frontend/dsl.rb +66 -7
  80. data/lib/ibex/frontend/formatter.rb +407 -0
  81. data/lib/ibex/frontend/generated_parser.rb +614 -190
  82. data/lib/ibex/frontend/generated_parser_base.rb +164 -30
  83. data/lib/ibex/frontend/generated_parser_includes.rb +61 -0
  84. data/lib/ibex/frontend/generated_parser_metadata.rb +61 -0
  85. data/lib/ibex/frontend/generated_parser_parameters.rb +60 -0
  86. data/lib/ibex/frontend/generation.rb +33 -0
  87. data/lib/ibex/frontend/lexer.rb +162 -10
  88. data/lib/ibex/frontend/lexer_recovery.rb +84 -0
  89. data/lib/ibex/frontend/parser/declarations.rb +247 -11
  90. data/lib/ibex/frontend/parser/parameters.rb +82 -0
  91. data/lib/ibex/frontend/parser/rules.rb +43 -6
  92. data/lib/ibex/frontend/parser.rb +182 -4
  93. data/lib/ibex/frontend/regenerator.rb +26 -1
  94. data/lib/ibex/frontend/resolution.rb +69 -0
  95. data/lib/ibex/frontend/resolver.rb +217 -0
  96. data/lib/ibex/frontend/rule_documentation.rb +103 -0
  97. data/lib/ibex/frontend/source_cursor.rb +132 -8
  98. data/lib/ibex/frontend/source_document.rb +229 -0
  99. data/lib/ibex/frontend/source_loader.rb +150 -0
  100. data/lib/ibex/frontend/source_span.rb +81 -0
  101. data/lib/ibex/frontend/token_adapter/declaration_document_state.rb +47 -0
  102. data/lib/ibex/frontend/token_adapter/declaration_lexer_state.rb +83 -0
  103. data/lib/ibex/frontend/token_adapter/declaration_state.rb +216 -26
  104. data/lib/ibex/frontend/token_adapter/delimiter_tracker.rb +8 -2
  105. data/lib/ibex/frontend/token_adapter/rule_state.rb +60 -2
  106. data/lib/ibex/frontend/token_adapter.rb +8 -3
  107. data/lib/ibex/frontend.rb +13 -2
  108. data/lib/ibex/generation_input.rb +57 -0
  109. data/lib/ibex/generation_manifest.rb +200 -0
  110. data/lib/ibex/generation_transaction.rb +261 -0
  111. data/lib/ibex/generation_transaction_recovery.rb +109 -0
  112. data/lib/ibex/generation_transaction_validation.rb +196 -0
  113. data/lib/ibex/grammar_tests.rb +206 -0
  114. data/lib/ibex/ir/automaton_ir.rb +38 -5
  115. data/lib/ibex/ir/grammar_ir.rb +137 -24
  116. data/lib/ibex/ir/lexer_ir.rb +76 -0
  117. data/lib/ibex/ir/migration.rb +120 -0
  118. data/lib/ibex/ir/serialize.rb +110 -19
  119. data/lib/ibex/ir/validator/automaton.rb +345 -0
  120. data/lib/ibex/ir/validator/base.rb +129 -0
  121. data/lib/ibex/ir/validator/grammar.rb +604 -0
  122. data/lib/ibex/ir/validator/lexer.rb +113 -0
  123. data/lib/ibex/ir/validator.rb +62 -0
  124. data/lib/ibex/ir.rb +57 -4
  125. data/lib/ibex/lalr/build_metrics.rb +23 -0
  126. data/lib/ibex/lalr/builder.rb +379 -52
  127. data/lib/ibex/lalr/conflict.rb +1 -0
  128. data/lib/ibex/lalr/conflict_search.rb +11 -5
  129. data/lib/ibex/lalr/counterexample.rb +20 -5
  130. data/lib/ibex/lalr/direct_lookaheads.rb +236 -0
  131. data/lib/ibex/lalr/ielr_partition.rb +152 -0
  132. data/lib/ibex/lalr/on_error_reductions.rb +74 -0
  133. data/lib/ibex/lalr.rb +7 -0
  134. data/lib/ibex/location.rb +129 -0
  135. data/lib/ibex/lsp/document_handlers.rb +66 -0
  136. data/lib/ibex/lsp/document_store.rb +264 -0
  137. data/lib/ibex/lsp/document_store_diagnostics.rb +44 -0
  138. data/lib/ibex/lsp/document_store_validation.rb +61 -0
  139. data/lib/ibex/lsp/initialization_handlers.rb +78 -0
  140. data/lib/ibex/lsp/navigation_handlers.rb +56 -0
  141. data/lib/ibex/lsp/position_codec.rb +109 -0
  142. data/lib/ibex/lsp/protocol_error.rb +33 -0
  143. data/lib/ibex/lsp/request_handlers.rb +45 -0
  144. data/lib/ibex/lsp/request_support.rb +87 -0
  145. data/lib/ibex/lsp/server.rb +146 -0
  146. data/lib/ibex/lsp/symbol_index.rb +241 -0
  147. data/lib/ibex/lsp/symbol_index_builder.rb +267 -0
  148. data/lib/ibex/lsp/symbol_index_precedence_references.rb +44 -0
  149. data/lib/ibex/lsp/symbol_index_source_queries.rb +61 -0
  150. data/lib/ibex/lsp/symbol_occurrence.rb +17 -0
  151. data/lib/ibex/lsp/transport.rb +118 -0
  152. data/lib/ibex/lsp/workspace.rb +127 -0
  153. data/lib/ibex/lsp/workspace_analyzer.rb +199 -0
  154. data/lib/ibex/lsp.rb +32 -0
  155. data/lib/ibex/normalize/declarations.rb +140 -7
  156. data/lib/ibex/normalize/diagnostics.rb +50 -5
  157. data/lib/ibex/normalize/expander.rb +59 -55
  158. data/lib/ibex/normalize/expression.rb +60 -39
  159. data/lib/ibex/normalize/inline_expansion.rb +414 -0
  160. data/lib/ibex/normalize/inline_validation.rb +174 -0
  161. data/lib/ibex/normalize/lexer.rb +131 -0
  162. data/lib/ibex/normalize/named_references.rb +60 -0
  163. data/lib/ibex/normalize/nodes.rb +46 -0
  164. data/lib/ibex/normalize/parameter_ebnf_lowering.rb +69 -0
  165. data/lib/ibex/normalize/parameter_lowering.rb +126 -0
  166. data/lib/ibex/normalize/parameter_substitution.rb +125 -0
  167. data/lib/ibex/normalize/parameter_validation.rb +140 -0
  168. data/lib/ibex/normalize/parameters.rb +199 -0
  169. data/lib/ibex/normalize/recovery_declarations.rb +84 -0
  170. data/lib/ibex/normalize.rb +179 -14
  171. data/lib/ibex/racc_migration/checker.rb +122 -0
  172. data/lib/ibex/racc_migration/harness.rb +177 -0
  173. data/lib/ibex/racc_migration/report.rb +94 -0
  174. data/lib/ibex/racc_migration.rb +12 -0
  175. data/lib/ibex/rake_task.rb +116 -0
  176. data/lib/ibex/samples.rb +186 -0
  177. data/lib/ibex/table_simulation/result.rb +51 -0
  178. data/lib/ibex/table_simulation/simulator.rb +253 -0
  179. data/lib/ibex/table_simulation/step.rb +60 -0
  180. data/lib/ibex/table_simulation/text.rb +31 -0
  181. data/lib/ibex/table_simulation.rb +13 -0
  182. data/lib/ibex/tables.rb +9 -70
  183. data/lib/ibex/version.rb +1 -1
  184. data/lib/ibex/watch/runner.rb +172 -0
  185. data/lib/ibex/watch/source_snapshot.rb +93 -0
  186. data/lib/ibex/watch.rb +11 -0
  187. data/lib/ibex.rb +25 -1
  188. data/schema/automaton-ir-v1.schema.json +401 -0
  189. data/schema/automaton-ir-v2.schema.json +58 -0
  190. data/schema/benchmark-v1.schema.json +212 -0
  191. data/schema/benchmark-v2.schema.json +61 -0
  192. data/schema/cst-v1.json +170 -0
  193. data/schema/error-ux-v1.schema.json +258 -0
  194. data/schema/explain-v1.schema.json +433 -0
  195. data/schema/frontend-diagnostics-v1.schema.json +154 -0
  196. data/schema/generation-manifest-v1.schema.json +115 -0
  197. data/schema/grammar-ir-v1.schema.json +426 -0
  198. data/schema/grammar-ir-v2.schema.json +779 -0
  199. data/schema/lexer-ir-v1.schema.json +215 -0
  200. data/schema/migration-check-v1.schema.json +60 -0
  201. data/schema/performance-comparison-v1.schema.json +395 -0
  202. data/schema/public-performance-comparison-v1.schema.json +506 -0
  203. data/schema/public-performance-profile-v1.schema.json +360 -0
  204. data/schema/runtime-coverage-v1.schema.json +86 -0
  205. data/schema/runtime-event-v1.schema.json +308 -0
  206. data/schema/table-simulation-v1.schema.json +70 -0
  207. data/sig/ibex/artifact_set.rbs +37 -0
  208. data/sig/ibex/cli/ambiguity.rbs +22 -0
  209. data/sig/ibex/cli/counterexample_options.rbs +2 -0
  210. data/sig/ibex/cli/coverage.rbs +53 -0
  211. data/sig/ibex/cli/debug.rbs +28 -0
  212. data/sig/ibex/cli/diagnostics.rbs +38 -0
  213. data/sig/ibex/cli/documentation.rbs +25 -0
  214. data/sig/ibex/cli/error_messages.rbs +57 -0
  215. data/sig/ibex/cli/explain.rbs +25 -0
  216. data/sig/ibex/cli/formatting.rbs +103 -0
  217. data/sig/ibex/cli/generation_artifacts.rbs +50 -0
  218. data/sig/ibex/cli/generation_error_messages.rbs +19 -0
  219. data/sig/ibex/cli/grammar_tests.rbs +36 -0
  220. data/sig/ibex/cli/ir_tools.rbs +51 -0
  221. data/sig/ibex/cli/lsp.rbs +14 -0
  222. data/sig/ibex/cli/outputs.rbs +17 -0
  223. data/sig/ibex/cli/racc_migration.rbs +30 -0
  224. data/sig/ibex/cli/samples.rbs +30 -0
  225. data/sig/ibex/cli/watch.rbs +43 -0
  226. data/sig/ibex/cli.rbs +104 -5
  227. data/sig/ibex/codegen/action_locations.rbs +45 -0
  228. data/sig/ibex/codegen/action_method_source.rbs +65 -0
  229. data/sig/ibex/codegen/action_source.rbs +50 -0
  230. data/sig/ibex/codegen/ambiguity.rbs +60 -0
  231. data/sig/ibex/codegen/cst_metadata.rbs +59 -0
  232. data/sig/ibex/codegen/documentation.rbs +50 -0
  233. data/sig/ibex/codegen/explain.rbs +85 -0
  234. data/sig/ibex/codegen/generated_action_abi.rbs +101 -0
  235. data/sig/ibex/codegen/html.rbs +18 -2
  236. data/sig/ibex/codegen/mermaid.rbs +16 -0
  237. data/sig/ibex/codegen/railroad.rbs +82 -0
  238. data/sig/ibex/codegen/railroad_documentation.rbs +31 -0
  239. data/sig/ibex/codegen/rbs.rbs +84 -4
  240. data/sig/ibex/codegen/report.rbs +8 -0
  241. data/sig/ibex/codegen/ruby.rbs +97 -23
  242. data/sig/ibex/codegen/ruby_actions.rbs +54 -0
  243. data/sig/ibex/codegen/ruby_ast.rbs +34 -0
  244. data/sig/ibex/codegen/ruby_error_messages.rbs +16 -0
  245. data/sig/ibex/codegen/ruby_lexer.rbs +25 -0
  246. data/sig/ibex/codegen/ruby_syntax.rbs +25 -0
  247. data/sig/ibex/codegen/ruby_table_metadata.rbs +26 -0
  248. data/sig/ibex/codegen/ruby_value_printers.rbs +28 -0
  249. data/sig/ibex/coverage/collector.rbs +76 -0
  250. data/sig/ibex/coverage/event_stream.rbs +42 -0
  251. data/sig/ibex/coverage/report.rbs +100 -0
  252. data/sig/ibex/coverage/runtime_event_validator.rbs +68 -0
  253. data/sig/ibex/coverage.rbs +7 -0
  254. data/sig/ibex/error_messages/parser.rbs +58 -0
  255. data/sig/ibex/error_messages/parser_v2.rbs +67 -0
  256. data/sig/ibex/error_messages/renderer.rbs +23 -0
  257. data/sig/ibex/error_messages/sentence_search.rbs +80 -0
  258. data/sig/ibex/error_messages/update.rbs +43 -0
  259. data/sig/ibex/error_messages.rbs +85 -0
  260. data/sig/ibex/frontend/ast.rbs +208 -19
  261. data/sig/ibex/frontend/bootstrap_parser.rbs +11 -0
  262. data/sig/ibex/frontend/diagnostic.rbs +53 -0
  263. data/sig/ibex/frontend/diagnostic_recovery.rbs +98 -0
  264. data/sig/ibex/frontend/dsl.rbs +33 -4
  265. data/sig/ibex/frontend/formatter.rbs +135 -0
  266. data/sig/ibex/frontend/generated_parser.rbs +218 -68
  267. data/sig/ibex/frontend/generated_parser_base.rbs +61 -10
  268. data/sig/ibex/frontend/generated_parser_includes.rbs +23 -0
  269. data/sig/ibex/frontend/generated_parser_metadata.rbs +23 -0
  270. data/sig/ibex/frontend/generated_parser_parameters.rbs +24 -0
  271. data/sig/ibex/frontend/generation.rbs +6 -0
  272. data/sig/ibex/frontend/lexer.rbs +49 -2
  273. data/sig/ibex/frontend/lexer_recovery.rbs +25 -0
  274. data/sig/ibex/frontend/parser/declarations.rbs +54 -0
  275. data/sig/ibex/frontend/parser/parameters.rbs +28 -0
  276. data/sig/ibex/frontend/parser/rules.rbs +3 -0
  277. data/sig/ibex/frontend/parser.rbs +66 -0
  278. data/sig/ibex/frontend/regenerator.rbs +11 -0
  279. data/sig/ibex/frontend/resolution.rbs +33 -0
  280. data/sig/ibex/frontend/resolver.rbs +91 -0
  281. data/sig/ibex/frontend/rule_documentation.rbs +42 -0
  282. data/sig/ibex/frontend/source_cursor.rbs +36 -3
  283. data/sig/ibex/frontend/source_document.rbs +119 -0
  284. data/sig/ibex/frontend/source_loader.rbs +66 -0
  285. data/sig/ibex/frontend/source_span.rbs +53 -0
  286. data/sig/ibex/frontend/token_adapter/declaration_document_state.rbs +21 -0
  287. data/sig/ibex/frontend/token_adapter/declaration_lexer_state.rbs +27 -0
  288. data/sig/ibex/frontend/token_adapter/declaration_state.rbs +73 -5
  289. data/sig/ibex/frontend/token_adapter/rule_state.rbs +20 -0
  290. data/sig/ibex/frontend/token_adapter.rbs +5 -2
  291. data/sig/ibex/frontend.rbs +1 -1
  292. data/sig/ibex/generation_input.rbs +37 -0
  293. data/sig/ibex/generation_manifest.rbs +67 -0
  294. data/sig/ibex/generation_transaction.rbs +82 -0
  295. data/sig/ibex/generation_transaction_recovery.rbs +36 -0
  296. data/sig/ibex/generation_transaction_validation.rbs +65 -0
  297. data/sig/ibex/grammar_tests.rbs +93 -0
  298. data/sig/ibex/ir/automaton_ir.rbs +8 -2
  299. data/sig/ibex/ir/grammar_ir.rbs +75 -15
  300. data/sig/ibex/ir/lexer_ir.rbs +57 -0
  301. data/sig/ibex/ir/migration.rbs +34 -0
  302. data/sig/ibex/ir/serialize.rbs +23 -6
  303. data/sig/ibex/ir/validator/automaton.rbs +109 -0
  304. data/sig/ibex/ir/validator/base.rbs +65 -0
  305. data/sig/ibex/ir/validator/grammar.rbs +184 -0
  306. data/sig/ibex/ir/validator/lexer.rbs +37 -0
  307. data/sig/ibex/ir/validator.rbs +16 -0
  308. data/sig/ibex/ir.rbs +38 -4
  309. data/sig/ibex/lalr/build_metrics.rbs +20 -0
  310. data/sig/ibex/lalr/builder.rbs +95 -15
  311. data/sig/ibex/lalr/conflict_search.rbs +7 -3
  312. data/sig/ibex/lalr/counterexample.rbs +5 -2
  313. data/sig/ibex/lalr/direct_lookaheads.rbs +86 -0
  314. data/sig/ibex/lalr/ielr_partition.rbs +59 -0
  315. data/sig/ibex/lalr/on_error_reductions.rbs +22 -0
  316. data/sig/ibex/lalr.rbs +6 -0
  317. data/sig/ibex/location.rbs +67 -0
  318. data/sig/ibex/lsp/document_handlers.rbs +24 -0
  319. data/sig/ibex/lsp/document_store.rbs +94 -0
  320. data/sig/ibex/lsp/document_store_diagnostics.rbs +20 -0
  321. data/sig/ibex/lsp/document_store_validation.rbs +26 -0
  322. data/sig/ibex/lsp/initialization_handlers.rbs +30 -0
  323. data/sig/ibex/lsp/navigation_handlers.rbs +30 -0
  324. data/sig/ibex/lsp/position_codec.rbs +40 -0
  325. data/sig/ibex/lsp/protocol_error.rbs +32 -0
  326. data/sig/ibex/lsp/request_handlers.rbs +26 -0
  327. data/sig/ibex/lsp/request_support.rbs +40 -0
  328. data/sig/ibex/lsp/server.rbs +55 -0
  329. data/sig/ibex/lsp/symbol_index.rbs +78 -0
  330. data/sig/ibex/lsp/symbol_index_builder.rbs +87 -0
  331. data/sig/ibex/lsp/symbol_index_precedence_references.rbs +18 -0
  332. data/sig/ibex/lsp/symbol_index_source_queries.rbs +26 -0
  333. data/sig/ibex/lsp/symbol_occurrence.rbs +25 -0
  334. data/sig/ibex/lsp/transport.rbs +35 -0
  335. data/sig/ibex/lsp/workspace.rbs +41 -0
  336. data/sig/ibex/lsp/workspace_analyzer.rbs +69 -0
  337. data/sig/ibex/lsp.rbs +7 -0
  338. data/sig/ibex/normalize/declarations.rbs +31 -0
  339. data/sig/ibex/normalize/diagnostics.rbs +9 -0
  340. data/sig/ibex/normalize/expander.rbs +20 -14
  341. data/sig/ibex/normalize/expression.rbs +10 -10
  342. data/sig/ibex/normalize/inline_expansion.rbs +120 -0
  343. data/sig/ibex/normalize/inline_validation.rbs +40 -0
  344. data/sig/ibex/normalize/lexer.rbs +37 -0
  345. data/sig/ibex/normalize/named_references.rbs +20 -0
  346. data/sig/ibex/normalize/nodes.rbs +14 -0
  347. data/sig/ibex/normalize/parameter_ebnf_lowering.rbs +32 -0
  348. data/sig/ibex/normalize/parameter_lowering.rbs +35 -0
  349. data/sig/ibex/normalize/parameter_substitution.rbs +42 -0
  350. data/sig/ibex/normalize/parameter_validation.rbs +44 -0
  351. data/sig/ibex/normalize/parameters.rbs +46 -0
  352. data/sig/ibex/normalize/recovery_declarations.rbs +24 -0
  353. data/sig/ibex/normalize.rbs +123 -18
  354. data/sig/ibex/racc_migration/checker.rbs +36 -0
  355. data/sig/ibex/racc_migration/harness.rbs +16 -0
  356. data/sig/ibex/racc_migration/report.rbs +53 -0
  357. data/sig/ibex/racc_migration.rbs +8 -0
  358. data/sig/ibex/rake_task.rbs +51 -0
  359. data/sig/ibex/samples.rbs +51 -0
  360. data/sig/ibex/table_simulation/result.rbs +32 -0
  361. data/sig/ibex/table_simulation/simulator.rbs +98 -0
  362. data/sig/ibex/table_simulation/step.rbs +40 -0
  363. data/sig/ibex/table_simulation/text.rbs +14 -0
  364. data/sig/ibex/table_simulation.rbs +7 -0
  365. data/sig/ibex/tables.rbs +0 -26
  366. data/sig/ibex/watch/runner.rbs +48 -0
  367. data/sig/ibex/watch/source_snapshot.rbs +42 -0
  368. data/sig/ibex/watch.rbs +7 -0
  369. data/sig/ibex.rbs +2 -0
  370. metadata +301 -16
  371. data/.rubocop.yml +0 -43
  372. data/CHANGELOG.md +0 -30
  373. data/Rakefile +0 -25
  374. data/Steepfile +0 -10
  375. data/docs/compat-notes.md +0 -37
  376. data/docs/lexer-coverage.md +0 -14
  377. data/docs/phase10-extensions.md +0 -27
  378. data/gemfiles/Gemfile +0 -7
  379. data/gemfiles/Gemfile.lock +0 -98
  380. data/lib/ibex/frontend/grammar.y +0 -156
  381. data/lib/ibex/runtime/parser.rb +0 -360
  382. data/lib/ibex/runtime.rb +0 -8
  383. data/sig/ibex/runtime/parser.rbs +0 -167
  384. data/sig/ibex/runtime.rbs +0 -6
@@ -1,431 +1,855 @@
1
1
  # frozen_string_literal: true
2
- # Generated by Ibex d405a2f1e593
2
+ # Generated by Ibex 4b30ee8200fd
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: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("AVWHawECFxwwh3+GBF5ogQWBEoE2cIENhlqBGIExU4FNXIIBjX5WcYEEgkeBDYRkiBOIJ4g7iE+IY4h3iQuJH4kziUeJW4lvigOKF4orij+KU4Z0RIFximeKe4IFgROGHIcIiw+LI49Qj2GCIIIIgjuCdZFbgTSDMYNhhyKDY4N2AYRygjmDeIQCizdYgmKCfYtLgRiBR49Xj3qNc5ABi1+HPYMYgUmDM4tzjAeCNYQWhAKESpFfkWORZ4wbggOEI4wvjEOMV4xrjH+CeI1bcodXgXuDTpAJAYNpjnyRH5ElhCGRMIQvgh6DSYNnhE6OBYQEkXqRfpIEkgiSI4NkjkSBQIIChASEHYRykieRA5EyjlKEAYRqhFqEdpItjyCPJI5gjH2NC4QShB6EIV+OII5ujRmNJ401jUOCOYJfgh2RP48OhX+QC4QGhQeFCJFDglOQFJBxgh+COoQuglSCboJwgwmEN4Q4hBSEIoQ7hDCQGZAikCuQNJA6kEN1gjeQUJBehD6ETIU0gUKFQpELhVCEAYQ7hDyEKoRGhV6OKI42kU4=", "AQQFB4EmgSaBJoEmgSaBJoEmgSaBJoEmgSaBJoEmgSaBJoEmgSaBJgaBJoFfgSaBJoEmgSaBJoEmFBQUFBQUFBQUFBQUFBQUFBQUFBQYGBgYGBgYGBgYGBgYGBgYGBgYGBYWFhYWFhYWFhYWFhYWFhYWFhYWgSiBKIEogSiBKIEogSiBKIEogSiBKIEogSiBKIEogSiBKIEogQ6BKHl7D4EOgQ6BKIEogXhWeXtlgXiBeIFpgXiBeIF4gXiBeIF4D4F4gXiBeFZWVlaBeHl7FBSBeIF4VoF4gXiBeIF4gXiBeIElgXiBeIF4XFx5e2kXGVZWVlZ5e4EngSmBK4Eta1xcXFxcXHUWFkpKSkpKSkpKSkpKSkpKSkpKSoFPSl5ed3l7SkqCYYF4gXiBeIF4gXiBeIF4gXiBeIIXXl5eXl5eeXuBNoIDf4JhgXiBeIF4gXiBeIF4gXiBeIF4GhoaGhoaGhoaGhoaGhoaGhoaGhpISEhISEhISEhISEhISEhISEiBEEiBEYEDgTKBEIEQgR97gSSBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgRKBJIE6gTqBTIESgRKBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgSyBJIFxeXuCCoIKgSSBJIEsgSyCPYEsggqCP4JBggqCCoFzgQ0XTExMTExMTExMTExMTExMTExMghpMgimCK3l7gTlMTE5OTk5OTk5OTk5OTk5OTk5OToE9ToE8gTyBcIFwghpOTmpqampqampqampqampqampqaoJRaoIKggqBcoFyggp5e25ubm5ubm5ubm5ubm5ubm5ubg5ugwWBaoMVgweBVXl7UFBQUFBQUFBQUFBQUFBQUFBQghxQgWyBbIF0gXSCE1BQgSSBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgSSBJIEkgVeBJIF2gXaBXYIaghyBJIEkbGxsbGxsbGxsbGxsbGxsbGxsgTRsgWOCGoF8gWWBcXl7gXyBfIIagXyBfIF8gXyBfIF8gWSBfIF8gXyBc4FkgWSBd4FkgWSBZIFkgWSBZIF6gWSBZIFkghqBeoF6gX2BeoF6gXqBeoF6gXqBfIF6gXqBeoINgXyBfIIRgXyBfIF8gXyBfIF8gX6BfIF8gXwIgX6BfoIVgX6BfoF+gX6BfoF+ggCBfoF+gX6BcYIAggCCF4IAggCCAIIAggCCAAqCAIIAggAMgTiBc4FugW6CExCBfIF8gXyBfIF8gXyBfIF8gXyBEYJVgTKCWRKBZIFkgWSBZIFkgWSDG4Mdgx+BEYJbgTKCE4JdgXqBeoF6gXqBeoF6gXqBeoF6gU6CK4MBgwODE4F8gXyBfIF8gXyBfIF8gXyBfIMXgxmDIYM1gzeBfoF+gX6BfoF+gX6BfoF+gX6DOQAAAACCAIIAggCCAIIAggCCAIIAggCCAgAAAACCAoICAIICggKCAoICggKCAoIEggKCAoICAIIEggQAggSCBIIEggSCBIIEgXyCBIIEggQAgXyBfACBfIF8gXyBfIF8gXyBZoF8gXyBfACBZoFmAIFmgWaBZoFmgWaBZgCBZoFmgWYcHBwcHBwcHBwcHBwcHBwcHBwcHHl7AII5AACCO4Ezgj0AAII/gkEAAIICggKCAoICggKCAoICggKCAgCBJ4EpgSuBLYIEggSCBIIEggSCBIMbgx2DHwAAAAAAgXyBfIF8gXyBfIF8gXyBfIF8AAAAAACBZoFmgWaBZoFmgWaDG4Mdgx+BIIEggSCBIIEggSCBIIEggSCBIIEggSCBIIEggSCBIIEggSAAgSAAAAAAglGBICAgICAgICAgICAgICAgICAgIIEbIGRkZGRkZGRkZGRkZGRkZGRkZABkAAAAAACBNYEagRqBGoEagRqBGoEagRqBGoEagRqBGoEagRqBGoEagRqBGgCBGgAAAAAAAIFZgSKBIoEigSKBIoEigSKBIoEigSKBIoEigSKBIoEigSKBIoEiAIEiAAAAAACBIh4eHh4eHh4eHh4eHh4eHh4eHh4eICAgICAgICAgICAgICAgICAgACAbHR8hIyUnKSstLzEzNTc5Oz0APyIiIiIiIiIiIiIiIiIiIiIiIgAiJCQkJCQkJCQkJCQkJCQkJCQkACQmJiYmJiYmJiYmJiYmJiYmJiYAJigoKCgoKCgoKCgoKCgoKCgoKAAoKioqKioqKioqKioqKioqKioqACosLCwsLCwsLCwsLCwsLCwsLCwALC4uLi4uLi4uLi4uLi4uLi4uLgAuMDAwMDAwMDAwMDAwMDAwMDAwADAyMjIyMjIyMjIyMjIyMjIyMjIAMjQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAA0NjY2NjY2NjY2NjY2NjY2NjY2ADY4ODg4ODg4ODg4ODg4ODg4ODgAODo6Ojo6Ojo6Ojo6Ojo6Ojo6OgA6PDw8PDw8PDw8PDw8PDw8PDw8ADw+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4APkBAQEBAQEBAQEBAQEBAQEBAQABAQkJCQkJCQkJCQkJCQkJCQkJCAEJEREREREREREREREREREREREQAREZGRkZGRkZGRkZGRkZGRkZGRgBGZmZmZmZmZmZmZmZmZmZmZmZmAGZoaGhoaGhoaGhoaGhoaGhoaGgAaBsdHyEjJScpKy0vMTM1Nzk7PQCBZ1JSUlJSUlJSUlJSUlJSUlJSUgBSVFRUVFRUVFRUVFRUVFRUVFRUAFRwcHBwcHBwcHBwcHBwcHBwcHAAcHJycnJycnJycnJycnJycnJycgBygQyBDIEMgQyBDIEMgQyBDIEMgQyBDIEMgQyBDIEMgQyBDIEMAIEMgRSBFIEUgRSBFIEUgRSBFIEUgRSBFIEUgRSBFIEUgRSBFIEUAIEUgRaBFoEWgRaBFoEWgRaBFoEWgRaBFoEWgRaBFoEWgRaBFoEWAIEWgRyBHIEcgRyBHIEcgRyBHIEcgRyBHIEcgRyBHIEcgRyBHIEcAIEcgRiBGIEYgRiBGIEYgRiBGIEYgRiBGIEYgRiBGIEYgRiBGIEYAIEYgR6BHoEegR6BHoEegR6BHoEegR6BHoEegR6BHoEegR6BHoEegVyBHgAAAIFcgVwAgVyBXIFcgVyBXIFcgV6BXIFcgVwAgV6BXgCBXoFegV6BXoFegV6BWIFegV6BXgCBWIFYAIFYgViBWIFYgViBWIFagViBWIFYAIFagVoAgVqBWoFagVqBWoFagWCBWoFagVoAgWCBYACBYIFggWCBYIFggWCBYoFggWCBYACBYoFiAIFigWKBYoFigWKBYgCBYoFigWIAAAAAAACBLoFcgVyBXIFcgVyBXFhYgS6BLgCBLgAAgV6BXoFegV6BXoFeAAAAAFhYWFiBWIFYgViBWIFYgVh0AAAAAHQAghuBWoFagVqBWoFagVoAAIIdgRF0gTJ0dIFggWCBYIFggWCBYAAAAAAAAIFIAIFigWKBYoFigWKBYoIWgUiBSACBSIIWghaCY4IWghaCFoIWghaCFoIYghaCFoIWAIIYghgAghiCGIIYghiCGIIYgVSCGIIYghgAgVSBVACBVIFUgVSBVIFUgVSBUIFUgVSBVAB5ewCCOYFQgVCCO4FQgj2BVIFQgj+CQQCBVIFUAIFUgVSBVIFUgVSBVIFWgVSBVIFUAIFWgVYAgVaBVoFWgVaBVoFWgQSBVoFWgVYAgQSBSIFIgQQAAIIWghaCFoIWghaCFgCBBACBBIEEAHl7ghiCGIIYghiCGIIYgj0AAII/gkGBMAAAgVSBQACBVIFUgVSBMIEwAIEwgUCBQACBQIJRAACBUIFQglMAAgICAgAAAIFUAACBVIFUgVQAYGAAAgICAoFWAgCBVoFWgVYAAAAAAmBgYGBgYAICAAACAgICAgACYmIAAIJRgWgCgSSBJAACAgICAlpaAGJiYmJiYgCBJIEkgSSBJIEkgSQAAFpaWlp5e3l7AII5AACCOwCCPXl7gj+CQQCCCoIKAII9AACCP4JBggqCDoIOggqCCgACAgCCDoIQghCCDoIOAAAAAIIQghKCEoIQghACAoIMggyCEgAAghKCEgCCDIIUghSCDIIMAAAAAIIUAACCFIIUeXsAgjkAAII7AII9AACCP4JBAHl7AII5AACCO4JRgj0AAII/gkEAgVIAglGCBgAAggaCCoIKgVKBUoIKgVIAAIFSgg6CDoE+AIIOAAAAAIIQghCBPoE+ghCBPnl7AIISghIAAIISgj2CDIIMgj+CQYIMAIECAACCFIIUgQKBBoIUgQIAAIEGAACCCQCCUYEGgQKBQoECgQKBBgCBBoIJgQaBBoFCgUKCUYFCgUQAAIEGgUaBBoEGAACBRIFEAIFEgUaBRoFKgUYAAACBUoFSAACBSoFKAIFKgT8AAAB2gUEAAHh2gjWCN3p4AIJRggh6gUOCCIFFgUd2AHZ2eAB4eHqBCHp6AH6BCAAAAH50AAAAfHQAAIEIfIEIgQh+AH5+gUKBQnQAdHR8AHx8AAAAgUSBRIEAAIFGgUaCMYEAAAAAgUGBCgAAgUqBSoEKAACBAACBAIEAgUMAgUWBRwAAgQoAgQqBCg==", "BAUBAXZ2dnZ2dnZ2dnZ2dnZ2dnZ2dgZ2SXZ2dnZ2dgcHBwcHBwcHBwcHBwcHBwcHBwcHCAgICAgICAgICAgICAgICAgICAgyMjIyMjIyMjIyMjIyMjIyMjIyMk9PT09PT09PT09PT09PT09PTxpPFRUCGhpPT4EhEBcXC4EhgSFPgSGBIYEhgSGBIYEhDIEhgSGBIRAQEBCBSRsbBweBSYFJEYFJgUmBSYFJgUmBSTeBSYFJgUlTUxwcDQgIERERER4eNzc3Nw5TU1NTU1MTMjIPDw8PDw8PDw8PDw8PDw8PDw9DD1RUFENDDw+BIYEhgSGBIYEhgSGBIYEhgSGBIYFQVFRUVFRUXFxxcRaBSYFJgUmBSYFJgUmBSYFJgUmBSTMzMzMzMzMzMzMzMzMzMzMzMzMzNjY2NjY2NjY2NjY2NjY2NjY2aDZzGHNoaDY2Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+fj6BC4ELgVB+fj4+QEBAQEBAQEBAQEBAQEBAQEBAS0BggUqBSoEogShAQEtLgUpLgSiBSoFKgSiBKGAdM1BQUFBQUFBQUFBQUFBQUFBQUG9QgQyBDIEpgSk/UFBRUVFRUVFRUVFRUVFRUVFRUVFBUYEqgSqBNoE2b1FRW1tbW1tbW1tbW1tbW1tbW1tbgUpbgSiBKIE3gTeBKFtbXV1dXV1dXV1dXV1dXV1dXV1df12BM4E5gTmBM0RdXXR0dHR0dHR0dHR0dHR0dHR0dIEJdIE6gTqBO4E7f3R0d3d3d3d3d3d3d3d3d3d3d3d3RXeBPIE8R4ENgQl3d4EDgQOBA4EDgQOBA4EDgQOBA4EDgQOBA4EDgQOBA4EDgQOBA0iBA0yBDoEvTWKBA4EDgS+BL4ENgS+BL4EvgS+BL4EvgT+BL4EvgS9igT+BP2GBP4E/gT+BP4E/gT+BQIE/gT+BP4EOgUCBQGmBQIFAgUCBQIFAgUCBQoFAgUCBQHuBQoFCfYFCgUKBQoFCgUKBQoFNgUKBQoFCgRaBTYFNgQCBTYFNgU2BTYFNgU2BToFNgU2BTWOBToFOgQGBToFOgU6BToFOgU6BD4FOgU6BToEXgRRjgVSBVIEWH4EvgS+BL4EvgS+BL4EvgS+BLx+BFR+BHkqBP4E/gT+BP4E/gT+BP4E/gT9KgR9KgReBIIFAgUCBQIFAgUCBQIFAgUCBQIFXgVeBMIExgTiBQoFCgUKBQoFCgUKBQoFCgUKBPYE+gUGBVYFWgU2BTYFNgU2BTYFNgU2BTYFNgVgAAAAAgU6BToFOgU6BToFOgU6BToFOgU8AAAAAgU+BTwCBT4FPgU+BT4FPgU+BUYFPgU+BTwCBUYFRAIFRgVGBUYFRgVGBUYFTgVGBUYFRAIFTgVMAgVOBU4FTgVOBU4FTgVmBU4FTgVMAgVmBWQCBWYFZgVmBWYFZgVkAgVmBWYFZCgoKCgoKCgoKCgoKCgoKCgoKCgqBLYEtAIEtAACBLTiBLQAAgS2BLQAAgU+BT4FPgU+BT4FPgU+BT4FPADg4ODiBUYFRgVGBUYFRgVGBUYFRgVEAAAAAAIFTgVOBU4FTgVOBU4FTgVOBUwAAAAAAgVmBWYFZgVmBWYFZgVmBWYFZEhISEhISEhISEhISEhISEhISABIAAAAAgS0SMTExMTExMTExMTExMTExMTExMTE5OTk5OTk5OTk5OTk5OTk5OTkAOQAAAAAAOUZGRkZGRkZGRkZGRkZGRkZGRgBGAAAAAAAARlpaWlpaWlpaWlpaWlpaWlpaWgBaAAAAAABacnJycnJycnJycnJycnJycnJycnIDAwMDAwMDAwMDAwMDAwMDAwMAAwkJCQkJCQkJCQkJCQkJCQkJCQAJICAgICAgICAgICAgICAgICAgACAhISEhISEhISEhISEhISEhISEAISIiIiIiIiIiIiIiIiIiIiIiIgAiIyMjIyMjIyMjIyMjIyMjIyMjACMkJCQkJCQkJCQkJCQkJCQkJCQAJCUlJSUlJSUlJSUlJSUlJSUlJQAlJiYmJiYmJiYmJiYmJiYmJiYmACYnJycnJycnJycnJycnJycnJycAJygoKCgoKCgoKCgoKCgoKCgoKAAoKSkpKSkpKSkpKSkpKSkpKSkpACkqKioqKioqKioqKioqKioqKioAKisrKysrKysrKysrKysrKysrKwArLCwsLCwsLCwsLCwsLCwsLCwsACwtLS0tLS0tLS0tLS0tLS0tLS0ALS4uLi4uLi4uLi4uLi4uLi4uLgAuLy8vLy8vLy8vLy8vLy8vLy8vAC8wMDAwMDAwMDAwMDAwMDAwMDAAMDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAA0NTU1NTU1NTU1NTU1NTU1NTU1ADU6Ojo6Ojo6Ojo6Ojo6Ojo6OjoAOjs7Ozs7Ozs7Ozs7Ozs7Ozs7OwA7Tk5OTk5OTk5OTk5OTk5OTk5OAE5SUlJSUlJSUlJSUlJSUlJSUlIAUllZWVlZWVlZWVlZWVlZWVlZWQBZXl5eXl5eXl5eXl5eXl5eXl5eAF5fX19fX19fX19fX19fX19fX18AX2dnZ2dnZ2dnZ2dnZ2dnZ2dnZwBnampqampqampqampqampqampqAGpra2tra2tra2tra2tra2tra2sAa2xsbGxsbGxsbGxsbGxsbGxsbABsbW1tbW1tbW1tbW1tbW1tbW1tAG1ubm5ubm5ubm5ubm5ubm5ubm6BHG4AAACBHIEcAIEcgRyBHIEcgRyBHIEdgRyBHIEcAIEdgR0AgR2BHYEdgR2BHYEdgSSBHYEdgR0AgSSBJACBJIEkgSSBJIEkgSSBJYEkgSSBJACBJYElAIElgSWBJYElgSWBJYEmgSWBJYElAIEmgSYAgSaBJoEmgSaBJoEmgSeBJoEmgSYAgSeBJwCBJ4EngSeBJ4EngScAgSeBJ4EnAAAAAAAAcIEcgRyBHIEcgRyBHFdXcHAAcAAAgR2BHYEdgR2BHYEdAAAAAFdXV1eBJIEkgSSBJIEkgSQZAAAAABkAgQKBJYElgSWBJYElgSUAAIECgQIZgQIZGYEmgSaBJoEmgSaBJgAAAAAAAIEiAIEngSeBJ4EngSeBJ4FagSKBIgCBIoFagVqBIoFagVqBWoFagVqBWoFbgVqBWoFaAIFbgVsAgVuBW4FbgVuBW4FbgQqBW4FbgVsAgQqBCgCBCoEKgQqBCoEKgQqBE4EKgQqBCgCBE4ETAIETgROBE4ETgROBE4EbgROBE4ETAIEbgRsAgRuBG4EbgRuBG4EbgSOBG4EbgRsAgSOBIwCBI4EjgSOBI4EjgSN4gSOBI4EjAHiBIoEieAAAgVqBWoFagVqBWoFaAHgAeHgAgSyBLIFbgVuBW4FbgVuBW4EsAACBLIEsgRkAAIEKgRoAgQqBCoEKgRmBGQCBGYEagRoAgRqBEwAAgROBE4ETADw8PDwAAACBGwAAgRuBG4EbAFVVAD09PT2BIzwAgSOBI4EjAAAAADxVVVVVVVU8PQAAPDw8PDwAPVZWAACBLIEsPVhYAD09PT09dXUAVlZWVlZWAFhYWFhYWAAAdXV1dXV1gS6BLgCBLgAAgS4AgS6BNIE0gS6BLgCBQ4FDAIE0AACBNIE0gUOBRIFEgUOBQwA8PACBRIFFgUWBRIFEAAAAAIFFgUaBRoFFgUU9PYFHgUeBRgAAgUaBRgCBR4FIgUiBR4FHAAAAAIFIAACBSIFIgUuBSwCBSwAAgUsAgUsAAIFLgUsAgUyBTACBTAAAgUyBLoFMAACBTIFMAIE1AIE0gTQAAIE0gUOBQ4E1gTWBQ4E1AACBNYFEgUSBEQCBRAAAAACBRYFFgRGBEYFFgRGBUoFSAIFGgUYAAIFGgVKBR4FHgVKBUoFHAHkAAIFIgUh5eoFIeQAAegAAegCBS3x5gRJ5eXwAenx6eoESgRKBTIESgSsAAHyBMnx8AACBK4ErAIErgTKBMoFcgTIAAACBNYE1AACBXIFcAIFcQgAAAGRCAABlZIERgRFmZQCBUoFSZkKBUkJCZABkZGUAZWVmgQRmZgCBBYEEAAAAgQWBBgAAAIEHgQYAAIEEgQeBBIEEgQUAgQWBBYESgRKBBgCBBoEGgQcAgQeBBwAAAIErgSuBCACBMoEygRCBCAAAAIEQgRgAAIFcgVyBGAAAgQgAgQiBCIEQAIEQgRAAAIEYAIEYgRg=", 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
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("MDAxMTIzNDQ1NTY2Nzc4ODk5OTk5OTk5OTk5OTk5OTk6Ojs8PD09Pj4/P0BBQUFBQkNERUZHSElKSktLTExMTU1OTk9QUVFSU1RVVlZXWFhZWVpaW1tcXV1eXl9fYGBhYWJjY2RkZWVmZmdnZ2dnZ2hpampra2xsbGxtbW5ubm5vcHBxcXJycnJzc3R0", "AgIKCQMHAQICBAEDAQQBAwICAgICAgICAgICAgICAgIDAwMBAwIDBAQBAwMCAgICAwMDBAYEBAQBAwICBAQEAgIBAgYEAQMDBAQEAQIEAQMBAwICAgMHAQIBBAIEAQICBAQBBgECAQMBAwICAgICAgQHAQICBAICAgIBAwEDAwMFAgQBAwICAgIHBwED", "EREEBBEEERERERERAQEREREREREREREREREREREREREREREREREREREREREREREREREREQQREREREREREREREREREQQREREREREREREREREREREREREEERERERERAQERERERBBEREREREREREREREREEEREREREREREREREREREREREREREREREEBBER", 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, -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,
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, v1)
215
+ result = v0
216
+ result = build_include(v0, v1)
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_tokens(v0, v1)
229
+ result
230
+ end
231
+
232
+ private def _ibex_action_35()
233
+ result = nil
122
234
  result = Array.new(0)
123
235
  result
124
236
  end
125
237
 
126
- private def _ibex_action_19(val, _values)
127
- result = val[0]
128
- result = val[0] + [val[1]]
238
+ private def _ibex_action_36(v0, v1)
239
+ result = v0
240
+ result = v0 + [v1]
129
241
  result
130
242
  end
131
243
 
132
- private def _ibex_action_20(val, _values)
133
- result = val[0]
134
- result = build_precedence_level(val[0], val[1])
244
+ private def _ibex_action_37(v0)
245
+ result = v0
246
+ result = build_token_entry(v0)
135
247
  result
136
248
  end
137
249
 
138
- private def _ibex_action_21(val, _values)
139
- result = val[0]
140
- result = val[0]
250
+ private def _ibex_action_38(v0, v1)
251
+ result = v0
252
+ result = build_token_alias(v0, v1)
141
253
  result
142
254
  end
143
255
 
144
- private def _ibex_action_22(val, _values)
145
- result = val[0]
146
- result = val[0]
256
+ private def _ibex_action_39(v0, v1, v2)
257
+ result = v0
258
+ result = build_precedence(v0, :high_to_low, v1)
147
259
  result
148
260
  end
149
261
 
150
- private def _ibex_action_23(val, _values)
151
- result = val[0]
152
- result = val[0]
262
+ private def _ibex_action_40(v0, v1, v2)
263
+ result = v0
264
+ result = build_precedence(v0, :low_to_high, v1)
153
265
  result
154
266
  end
155
267
 
156
- private def _ibex_action_24(val, _values)
157
- result = val[0]
158
- result = build_options(val[0], val[1])
268
+ private def _ibex_action_41()
269
+ result = nil
270
+ result = Array.new(0)
159
271
  result
160
272
  end
161
273
 
162
- private def _ibex_action_25(val, _values)
163
- result = val[0]
164
- result = build_expect(val[0], val[1])
274
+ private def _ibex_action_42(v0, v1)
275
+ result = v0
276
+ result = v0 + [v1]
165
277
  result
166
278
  end
167
279
 
168
- private def _ibex_action_26(val, _values)
169
- result = val[0]
170
- result = build_start(val[0], val[1].value)
280
+ private def _ibex_action_43(v0, v1)
281
+ result = v0
282
+ result = build_precedence_level(v0, v1)
171
283
  result
172
284
  end
173
285
 
174
- private def _ibex_action_27(val, _values)
175
- result = val[0]
176
- result = build_convert(val[0], val[1])
286
+ private def _ibex_action_44(v0)
287
+ result = v0
288
+ result = v0
289
+ result
290
+ end
291
+
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, v1)
311
+ result = v0
312
+ result = build_options(v0, v1)
313
+ result
314
+ end
315
+
316
+ private def _ibex_action_49(v0, v1)
317
+ result = v0
318
+ result = build_expect(v0, v1)
319
+ result
320
+ end
321
+
322
+ private def _ibex_action_50(v0, v1)
323
+ result = v0
324
+ result = build_expect_rr(v0, v1)
325
+ result
326
+ end
327
+
328
+ private def _ibex_action_51(v0, v1, v2)
329
+ result = v0
330
+ result = build_start(v0, [v1.value] + v2)
331
+ result
332
+ end
333
+
334
+ private def _ibex_action_52(val)
181
335
  result = val[0]
336
+ result = build_recovery(val[0], val[1], [val[3].value] + val[4])
337
+ result
338
+ end
339
+
340
+ private def _ibex_action_53(v0, v1, v2)
341
+ result = v0
342
+ result = build_on_error_reduce(v0, [v1.value] + v2)
343
+ result
344
+ end
345
+
346
+ private def _ibex_action_54(v0, v1, v2)
347
+ result = v0
348
+ result = build_grammar_test(v0, v1, v2)
349
+ result
350
+ end
351
+
352
+ private def _ibex_action_55(v0, v1, v2)
353
+ result = v0
354
+ result = build_lexer(v0, v1)
355
+ result
356
+ end
357
+
358
+ private def _ibex_action_56()
359
+ result = nil
182
360
  result = Array.new(0)
183
361
  result
184
362
  end
185
363
 
186
- private def _ibex_action_29(val, _values)
187
- result = val[0]
188
- result = val[0] + [val[1]]
364
+ private def _ibex_action_57(v0, v1)
365
+ result = v0
366
+ result = v0 + [v1]
189
367
  result
190
368
  end
191
369
 
192
- private def _ibex_action_30(val, _values)
193
- result = val[0]
194
- result = build_conversion(val[0], val[1])
370
+ private def _ibex_action_58(v0)
371
+ result = v0
372
+ result = v0
373
+ result
374
+ end
375
+
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, v1, v2)
383
+ result = v0
384
+ result = build_lexer_rule(:skip, nil, v1, v2, v0)
385
+ result
386
+ end
387
+
388
+ private def _ibex_action_61(v0, v1, v2)
389
+ result = v0
390
+ result = build_lexer_rule(:token, v0, 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(:on, nil, v1, v2, v0)
397
+ result
398
+ end
399
+
400
+ private def _ibex_action_63(v0)
401
+ result = v0
402
+ result = v0
195
403
  result
196
404
  end
197
405
 
198
- private def _ibex_action_31(val, _values)
406
+ private def _ibex_action_64(v0)
407
+ result = v0
408
+ result = v0
409
+ result
410
+ end
411
+
412
+ private def _ibex_action_65()
413
+ result = nil
414
+ result = nil
415
+ result
416
+ end
417
+
418
+ private def _ibex_action_66(v0)
419
+ result = v0
420
+ result = v0
421
+ result
422
+ end
423
+
424
+ private def _ibex_action_67(val)
199
425
  result = val[0]
426
+ result = build_lexer_state(val[0], val[1], val[3])
427
+ result
428
+ end
429
+
430
+ private def _ibex_action_68(v0, v1, v2)
431
+ result = v0
432
+ result = build_convert(v0, v1)
433
+ result
434
+ end
435
+
436
+ private def _ibex_action_69()
437
+ result = nil
200
438
  result = Array.new(0)
201
439
  result
202
440
  end
203
441
 
204
- private def _ibex_action_32(val, _values)
205
- result = val[0]
206
- result = val[0] + [val[1].value]
442
+ private def _ibex_action_70(v0, v1)
443
+ result = v0
444
+ result = v0 + [v1]
207
445
  result
208
446
  end
209
447
 
210
- private def _ibex_action_33(val, _values)
211
- result = val[0]
448
+ private def _ibex_action_71(v0, v1)
449
+ result = v0
450
+ result = build_conversion(v0, v1)
451
+ result
452
+ end
453
+
454
+ private def _ibex_action_72(v0, v1, v2)
455
+ result = v0
456
+ result = build_display_name(v0, v1, v2)
457
+ result
458
+ end
459
+
460
+ private def _ibex_action_73(v0, v1, v2)
461
+ result = v0
462
+ result = build_semantic_type(v0, v1, v2)
463
+ result
464
+ end
465
+
466
+ private def _ibex_action_74(v0, v1, v2)
467
+ result = v0
468
+ result = build_parameter(v0, v1, v2)
469
+ result
470
+ end
471
+
472
+ private def _ibex_action_75()
473
+ result = nil
474
+ result = nil
475
+ result
476
+ end
477
+
478
+ private def _ibex_action_76(v0)
479
+ result = v0
480
+ result = v0
481
+ result
482
+ end
483
+
484
+ private def _ibex_action_77(v0, v1, v2)
485
+ result = v0
486
+ result = build_printer(v0, v1, v2)
487
+ result
488
+ end
489
+
490
+ private def _ibex_action_78()
491
+ result = nil
212
492
  result = Array.new(0)
213
493
  result
214
494
  end
215
495
 
216
- private def _ibex_action_34(val, _values)
217
- result = val[0]
218
- result = val[0] + [val[1].value]
496
+ private def _ibex_action_79(v0, v1)
497
+ result = v0
498
+ result = v0 + [v1.value]
219
499
  result
220
500
  end
221
501
 
222
- private def _ibex_action_35(val, _values)
223
- result = val[0]
224
- result = val[0]
502
+ private def _ibex_action_80()
503
+ result = nil
504
+ result = Array.new(0)
225
505
  result
226
506
  end
227
507
 
228
- private def _ibex_action_36(val, _values)
229
- result = val[0]
230
- result = val[0]
508
+ private def _ibex_action_81(v0, v1)
509
+ result = v0
510
+ result = v0 + [v1.value]
231
511
  result
232
512
  end
233
513
 
234
- private def _ibex_action_37(val, _values)
235
- result = val[0]
236
- result = [val[0]]
514
+ private def _ibex_action_82(v0)
515
+ result = v0
516
+ result = v0
237
517
  result
238
518
  end
239
519
 
240
- private def _ibex_action_38(val, _values)
241
- result = val[0]
242
- result = val[0] + [val[1]]
520
+ private def _ibex_action_83(v0)
521
+ result = v0
522
+ result = v0
243
523
  result
244
524
  end
245
525
 
246
- private def _ibex_action_39(val, _values)
247
- result = val[0]
248
- result = build_rule(val[0], val[2])
526
+ private def _ibex_action_84(v0)
527
+ result = v0
528
+ result = [v0]
249
529
  result
250
530
  end
251
531
 
252
- private def _ibex_action_42(val, _values)
253
- result = val[0]
254
- result = [val[0]]
532
+ private def _ibex_action_85(v0, v1)
533
+ result = v0
534
+ result = v0 + [v1]
255
535
  result
256
536
  end
257
537
 
258
- private def _ibex_action_43(val, _values)
538
+ private def _ibex_action_86(val)
259
539
  result = val[0]
260
- result = val[0] + [val[2]]
540
+ result = build_rule(val[0], val[1], val[2], val[4])
261
541
  result
262
542
  end
263
543
 
264
- private def _ibex_action_44(val, _values)
265
- result = val[0]
266
- result = build_alternative(val[0], val[1])
544
+ private def _ibex_action_87()
545
+ result = nil
546
+ result = nil
267
547
  result
268
548
  end
269
549
 
270
- private def _ibex_action_45(val, _values)
271
- result = val[0]
550
+ private def _ibex_action_88(v0)
551
+ result = v0
552
+ result = v0
553
+ result
554
+ end
555
+
556
+ private def _ibex_action_89()
557
+ result = nil
272
558
  result = nil
273
559
  result
274
560
  end
275
561
 
276
- private def _ibex_action_46(val, _values)
277
- result = val[0]
278
- result = val[1]
562
+ private def _ibex_action_90(v0, v1, v2)
563
+ result = v0
564
+ result = build_rule_parameters(v0, v1)
565
+ result
566
+ end
567
+
568
+ private def _ibex_action_91(v0)
569
+ result = v0
570
+ result = [v0]
571
+ result
572
+ end
573
+
574
+ private def _ibex_action_92(v0, v1, v2)
575
+ result = v0
576
+ result = v0 + [v2]
577
+ result
578
+ end
579
+
580
+ private def _ibex_action_95(v0)
581
+ result = v0
582
+ result = [v0]
279
583
  result
280
584
  end
281
585
 
282
- private def _ibex_action_47(val, _values)
586
+ private def _ibex_action_96(v0, v1, v2)
587
+ result = v0
588
+ result = v0 + [v2]
589
+ result
590
+ end
591
+
592
+ private def _ibex_action_97(v0, v1, v2)
593
+ result = v0
594
+ result = build_alternative(v0, v1, v2)
595
+ result
596
+ end
597
+
598
+ private def _ibex_action_98()
599
+ result = nil
600
+ result = nil
601
+ result
602
+ end
603
+
604
+ private def _ibex_action_99(val)
283
605
  result = val[0]
606
+ result = build_node_annotation(val[0], val[1], val[3])
607
+ result
608
+ end
609
+
610
+ private def _ibex_action_100()
611
+ result = nil
284
612
  result = Array.new(0)
285
613
  result
286
614
  end
287
615
 
288
- private def _ibex_action_48(val, _values)
289
- result = val[0]
290
- result = val[0] + [val[1]]
616
+ private def _ibex_action_101(v0)
617
+ result = v0
618
+ result = v0
291
619
  result
292
620
  end
293
621
 
294
- private def _ibex_action_49(val, _values)
295
- result = val[0]
296
- result = val[0]
622
+ private def _ibex_action_102()
623
+ result = nil
624
+ result = nil
297
625
  result
298
626
  end
299
627
 
300
- private def _ibex_action_50(val, _values)
301
- result = val[0]
302
- result = build_action(val[0])
628
+ private def _ibex_action_103(v0, v1)
629
+ result = v0
630
+ result = v1
303
631
  result
304
632
  end
305
633
 
306
- private def _ibex_action_51(val, _values)
307
- result = val[0]
308
- result = val[0]
634
+ private def _ibex_action_104()
635
+ result = nil
636
+ result = Array.new(0)
309
637
  result
310
638
  end
311
639
 
312
- private def _ibex_action_52(val, _values)
313
- result = val[0]
314
- result = val[0]
640
+ private def _ibex_action_105(v0, v1)
641
+ result = v0
642
+ result = v0 + [v1]
315
643
  result
316
644
  end
317
645
 
318
- private def _ibex_action_53(val, _values)
319
- result = val[0]
320
- result = build_symbol_reference(val[0], val[1], val[2])
646
+ private def _ibex_action_106(v0)
647
+ result = v0
648
+ result = v0
649
+ result
650
+ end
651
+
652
+ private def _ibex_action_107(v0)
653
+ result = v0
654
+ result = v0
655
+ result
656
+ end
657
+
658
+ private def _ibex_action_108(v0)
659
+ result = v0
660
+ result = build_action(v0)
661
+ result
662
+ end
663
+
664
+ private def _ibex_action_109(v0)
665
+ result = v0
666
+ result = build_empty(v0)
667
+ result
668
+ end
669
+
670
+ private def _ibex_action_110(v0)
671
+ result = v0
672
+ result = v0
673
+ result
674
+ end
675
+
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, v1, v2)
683
+ result = v0
684
+ result = build_symbol_reference(v0, v1, v2)
321
685
  result
322
686
  end
323
687
 
324
- private def _ibex_action_54(val, _values)
688
+ private def _ibex_action_113(val)
325
689
  result = val[0]
690
+ result = build_parameterized_reference(val[0], val[1], val[2], val[4], val[5])
691
+ result
692
+ end
693
+
694
+ private def _ibex_action_114()
695
+ result = nil
696
+ result = Array.new(0)
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]
709
+ result
710
+ end
711
+
712
+ private def _ibex_action_117(v0, v1, v2)
713
+ result = v0
714
+ result = v0 + [v2]
715
+ result
716
+ end
717
+
718
+ private def _ibex_action_118(v0)
719
+ result = v0
720
+ result = v0
721
+ result
722
+ end
723
+
724
+ private def _ibex_action_119(v0)
725
+ result = v0
726
+ result = v0
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()
743
+ result = nil
326
744
  result = nil
327
745
  result
328
746
  end
329
747
 
330
- private def _ibex_action_55(val, _values)
331
- result = val[0]
332
- result = [val[0], val[1]]
748
+ private def _ibex_action_123(v0, v1)
749
+ result = v0
750
+ result = [v0, v1]
333
751
  result
334
752
  end
335
753
 
336
- private def _ibex_action_56(val, _values)
337
- result = val[0]
754
+ private def _ibex_action_124()
755
+ result = nil
338
756
  result = Array.new(0)
339
757
  result
340
758
  end
341
759
 
342
- private def _ibex_action_57(val, _values)
343
- result = val[0]
344
- result = val[0] + [val[1]]
760
+ private def _ibex_action_125(v0, v1)
761
+ result = v0
762
+ result = v0 + [v1]
345
763
  result
346
764
  end
347
765
 
348
- private def _ibex_action_58(val, _values)
349
- result = val[0]
350
- result = val[0] + [val[1]]
766
+ private def _ibex_action_126(v0, v1)
767
+ result = v0
768
+ result = v0 + [v1]
351
769
  result
352
770
  end
353
771
 
354
- private def _ibex_action_59(val, _values)
355
- result = val[0]
356
- result = val[0] + [val[1]]
772
+ private def _ibex_action_127(v0, v1)
773
+ result = v0
774
+ result = v0 + [v1]
357
775
  result
358
776
  end
359
777
 
360
- private def _ibex_action_60(val, _values)
361
- result = val[0]
362
- result = build_group(val[0], val[1], val[3])
778
+ private def _ibex_action_128(v0, v1, v2, v3)
779
+ result = v0
780
+ result = build_group(v0, v1, v3)
363
781
  result
364
782
  end
365
783
 
366
- private def _ibex_action_61(val, _values)
367
- result = val[0]
368
- result = [val[0]]
784
+ private def _ibex_action_129(v0)
785
+ result = v0
786
+ result = [v0]
369
787
  result
370
788
  end
371
789
 
372
- private def _ibex_action_62(val, _values)
373
- result = val[0]
374
- result = val[0] + [val[2]]
790
+ private def _ibex_action_130(v0, v1, v2)
791
+ result = v0
792
+ result = v0 + [v2]
375
793
  result
376
794
  end
377
795
 
378
- private def _ibex_action_63(val, _values)
379
- result = val[0]
796
+ private def _ibex_action_131()
797
+ result = nil
380
798
  result = Array.new(0)
381
799
  result
382
800
  end
383
801
 
384
- private def _ibex_action_64(val, _values)
385
- result = val[0]
386
- result = val[0] + [val[1]]
802
+ private def _ibex_action_132(v0, v1)
803
+ result = v0
804
+ result = v0 + [v1]
387
805
  result
388
806
  end
389
807
 
390
- private def _ibex_action_65(val, _values)
391
- result = val[0]
392
- result = val[0]
808
+ private def _ibex_action_133(v0)
809
+ result = v0
810
+ result = v0
393
811
  result
394
812
  end
395
813
 
396
- private def _ibex_action_66(val, _values)
397
- result = val[0]
398
- result = val[0]
814
+ private def _ibex_action_134(v0)
815
+ result = v0
816
+ result = v0
399
817
  result
400
818
  end
401
819
 
402
- private def _ibex_action_67(val, _values)
403
- result = val[0]
404
- result = val[0]
820
+ private def _ibex_action_135(v0)
821
+ result = v0
822
+ result = v0
823
+ result
824
+ end
825
+
826
+ private def _ibex_action_136(v0)
827
+ result = v0
828
+ result = v0
405
829
  result
406
830
  end
407
831
 
408
- private def _ibex_action_68(val, _values)
832
+ private def _ibex_action_137(val)
409
833
  result = val[0]
410
834
  result = build_separated_list(val[0], val[2], val[4])
411
835
  result
412
836
  end
413
837
 
414
- private def _ibex_action_69(val, _values)
838
+ private def _ibex_action_138(val)
415
839
  result = val[0]
416
840
  result = build_separated_list(val[0], val[2], val[4])
417
841
  result
418
842
  end
419
843
 
420
- private def _ibex_action_70(val, _values)
421
- result = val[0]
844
+ private def _ibex_action_139()
845
+ result = nil
422
846
  result = empty_user_code
423
847
  result
424
848
  end
425
849
 
426
- private def _ibex_action_71(val, _values)
427
- result = val[0]
428
- result = append_user_code(val[0], val[1])
850
+ private def _ibex_action_140(v0, v1)
851
+ result = v0
852
+ result = append_user_code(v0, v1)
429
853
  result
430
854
  end
431
855