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.
- checksums.yaml +4 -4
- data/README.md +89 -123
- data/docs/architecture.md +477 -31
- data/docs/bison-import.md +103 -0
- data/docs/comparison-policy.md +127 -0
- data/docs/configuration-model.md +59 -0
- data/docs/configuration-report.md +28 -0
- data/docs/conflict-explanation-reviews/v1/records/README.md +28 -0
- data/docs/conflict-explanation-study.md +62 -0
- data/docs/construction-profiling.md +157 -0
- data/docs/cst-migration.md +106 -0
- data/docs/cst.md +237 -0
- data/docs/decisions/0000-template.md +24 -0
- data/docs/decisions/0001-separate-ir-pipeline.md +34 -0
- data/docs/decisions/0002-opaque-user-code-boundary.md +32 -0
- data/docs/decisions/0003-self-hosted-grammar-frontend.md +32 -0
- data/docs/decisions/0004-shared-semantic-and-lossless-source-model.md +33 -0
- data/docs/decisions/0005-contained-grammar-composition.md +34 -0
- data/docs/decisions/0006-bounded-structural-grammar-lowering.md +32 -0
- data/docs/decisions/0007-shared-parser-construction-pipeline.md +33 -0
- data/docs/decisions/0008-versioned-runtime-package-boundary.md +36 -0
- data/docs/decisions/0009-isolated-parser-sessions.md +34 -0
- data/docs/decisions/0010-committed-runtime-observation.md +34 -0
- data/docs/decisions/0011-versioned-semantic-action-boundary.md +37 -0
- data/docs/decisions/0012-bounded-nonexecuting-analysis.md +37 -0
- data/docs/decisions/0013-transactional-generation-publication.md +37 -0
- data/docs/decisions/0014-versioned-generated-lexer.md +35 -0
- data/docs/decisions/0015-worker-isolated-browser-analysis.md +32 -0
- data/docs/decisions/0016-red-green-concrete-syntax.md +34 -0
- data/docs/decisions/0017-persistent-syntax-artifacts.md +35 -0
- data/docs/decisions/0018-conservative-incremental-syntax-reuse.md +38 -0
- data/docs/decisions/0019-runtime-syntax-session-boundary.md +51 -0
- data/docs/decisions/0020-grammar-ir-parser-contract.md +65 -0
- data/docs/decisions/0021-data-only-parser-table-sidecar.md +50 -0
- data/docs/decisions/0022-manifest-bound-verification-report.md +77 -0
- data/docs/decisions/0023-syntax-only-repair-results.md +48 -0
- data/docs/decisions/0024-direct-ielr-construction.md +42 -0
- data/docs/decisions/README.md +74 -0
- data/docs/declarative-configuration.md +262 -0
- data/docs/development.md +306 -0
- data/docs/direct-ielr-decision.md +120 -0
- data/docs/direct-multi-entry-decision.md +82 -0
- data/docs/editor-setup.md +26 -0
- data/docs/error-ux-review-rubric-v1.md +117 -0
- data/docs/error-ux-reviews/v1/records/README.md +22 -0
- data/docs/error-ux-round2-review-status-v1.json +27 -0
- data/docs/error-ux-round2-reviews/v1/records/README.md +30 -0
- data/docs/error-ux-round2-v1.json +1581 -0
- data/docs/error-ux-round2.md +111 -0
- data/docs/error-ux.md +114 -0
- data/docs/getting-started.md +80 -0
- data/docs/grammar-reference.md +629 -18
- data/docs/ielr-design.md +43 -0
- data/docs/ielr.md +92 -0
- data/docs/ja/bison-import.md +51 -0
- data/docs/ja/stable-api.md +53 -0
- data/docs/lexer-construction-profile.md +109 -0
- data/docs/lexer-migration.md +56 -0
- data/docs/maturity.md +128 -0
- data/docs/project-site-strategy.md +54 -0
- data/docs/racc-migration-evidence.md +45 -0
- data/docs/racc-migration.md +45 -6
- data/docs/release-readiness.md +221 -0
- data/docs/repair-semantics.md +123 -0
- data/docs/runtime-abi-evolution.md +307 -0
- data/docs/stability.md +234 -0
- data/docs/status.md +43 -0
- data/docs/syntax-sessions.md +183 -0
- data/docs/table-artifact.md +125 -0
- data/docs/test-interactions.md +219 -0
- data/docs/verification-report.md +137 -0
- data/docs/verifier-trust-boundary.md +199 -0
- data/docs/workloads.md +132 -0
- data/examples/README.md +60 -0
- data/examples/calculator.y +44 -0
- data/examples/csv.y +32 -0
- data/examples/ini.y +70 -0
- data/examples/json.y +48 -0
- data/examples/tiny_language.y +75 -0
- data/lib/ibex/analysis/digraph.rb +128 -0
- data/lib/ibex/analysis/sets.rb +5 -4
- data/lib/ibex/analysis.rb +1 -0
- data/lib/ibex/artifact_set.rb +63 -0
- data/lib/ibex/bison_import/importer.rb +516 -0
- data/lib/ibex/bison_import/tokenizer.rb +260 -0
- data/lib/ibex/bison_import.rb +200 -0
- data/lib/ibex/bounded_subprocess.rb +171 -0
- data/lib/ibex/cli/ambiguity.rb +75 -0
- data/lib/ibex/cli/analysis.rb +134 -0
- data/lib/ibex/cli/bison_import.rb +121 -0
- data/lib/ibex/cli/config.rb +128 -0
- data/lib/ibex/cli/counterexample_options.rb +6 -2
- data/lib/ibex/cli/coverage.rb +173 -0
- data/lib/ibex/cli/debug.rb +106 -0
- data/lib/ibex/cli/diagnostics.rb +136 -0
- data/lib/ibex/cli/documentation.rb +70 -0
- data/lib/ibex/cli/equiv.rb +169 -0
- data/lib/ibex/cli/error_messages.rb +184 -0
- data/lib/ibex/cli/explain.rb +85 -0
- data/lib/ibex/cli/fix.rb +203 -0
- data/lib/ibex/cli/formatting.rb +387 -0
- data/lib/ibex/cli/fuzz.rb +200 -0
- data/lib/ibex/cli/fuzz_regressions.rb +145 -0
- data/lib/ibex/cli/generation_artifacts.rb +189 -0
- data/lib/ibex/cli/generation_error_messages.rb +39 -0
- data/lib/ibex/cli/grammar_tests.rb +140 -0
- data/lib/ibex/cli/ir_tools.rb +128 -0
- data/lib/ibex/cli/lsp.rb +33 -0
- data/lib/ibex/cli/outputs.rb +133 -23
- data/lib/ibex/cli/racc_migration.rb +87 -0
- data/lib/ibex/cli/reduce.rb +202 -0
- data/lib/ibex/cli/reduce_reporting.rb +71 -0
- data/lib/ibex/cli/samples.rb +118 -0
- data/lib/ibex/cli/verify.rb +116 -0
- data/lib/ibex/cli/watch.rb +104 -0
- data/lib/ibex/cli.rb +825 -55
- data/lib/ibex/codegen/action_locations.rb +103 -0
- data/lib/ibex/codegen/action_method_source.rb +209 -0
- data/lib/ibex/codegen/action_source.rb +119 -0
- data/lib/ibex/codegen/ambiguity.rb +174 -0
- data/lib/ibex/codegen/cst_metadata.rb +171 -0
- data/lib/ibex/codegen/documentation.rb +170 -0
- data/lib/ibex/codegen/explain.rb +380 -0
- data/lib/ibex/codegen/generated_action_abi.rb +293 -0
- data/lib/ibex/codegen/html.rb +94 -10
- data/lib/ibex/codegen/mermaid.rb +43 -0
- data/lib/ibex/codegen/railroad.rb +197 -0
- data/lib/ibex/codegen/railroad_documentation.rb +59 -0
- data/lib/ibex/codegen/rbs.rb +331 -2
- data/lib/ibex/codegen/report.rb +67 -15
- data/lib/ibex/codegen/ruby.rb +305 -66
- data/lib/ibex/codegen/ruby_actions.rb +146 -0
- data/lib/ibex/codegen/ruby_ast.rb +121 -0
- data/lib/ibex/codegen/ruby_error_messages.rb +28 -0
- data/lib/ibex/codegen/ruby_lexer.rb +83 -0
- data/lib/ibex/codegen/ruby_syntax.rb +96 -0
- data/lib/ibex/codegen/ruby_table_metadata.rb +57 -0
- data/lib/ibex/codegen/ruby_value_printers.rb +56 -0
- data/lib/ibex/codegen/symbol_labels.rb +1 -1
- data/lib/ibex/configuration/analysis_grammar.rb +35 -0
- data/lib/ibex/configuration/explanation.rb +421 -0
- data/lib/ibex/configuration/inspector.rb +232 -0
- data/lib/ibex/configuration.rb +580 -0
- data/lib/ibex/coverage/collector.rb +198 -0
- data/lib/ibex/coverage/event_stream.rb +103 -0
- data/lib/ibex/coverage/report.rb +267 -0
- data/lib/ibex/coverage/runtime_event_validator.rb +169 -0
- data/lib/ibex/coverage.rb +13 -0
- data/lib/ibex/delta_reducer.rb +99 -0
- data/lib/ibex/diff.rb +140 -0
- data/lib/ibex/equiv/machine.rb +135 -0
- data/lib/ibex/equiv.rb +373 -0
- data/lib/ibex/error_messages/parser.rb +159 -0
- data/lib/ibex/error_messages/parser_v2.rb +198 -0
- data/lib/ibex/error_messages/renderer.rb +65 -0
- data/lib/ibex/error_messages/sentence_search.rb +196 -0
- data/lib/ibex/error_messages/update.rb +169 -0
- data/lib/ibex/error_messages.rb +165 -0
- data/lib/ibex/fix.rb +557 -0
- data/lib/ibex/frontend/ast.rb +166 -7
- data/lib/ibex/frontend/bootstrap_parser.rb +40 -4
- data/lib/ibex/frontend/diagnostic.rb +81 -0
- data/lib/ibex/frontend/diagnostic_recovery.rb +268 -0
- data/lib/ibex/frontend/dsl.rb +66 -7
- data/lib/ibex/frontend/formatter.rb +453 -0
- data/lib/ibex/frontend/generated_parser.rb +644 -190
- data/lib/ibex/frontend/generated_parser_base.rb +170 -32
- data/lib/ibex/frontend/generated_parser_includes.rb +51 -0
- data/lib/ibex/frontend/generated_parser_metadata.rb +61 -0
- data/lib/ibex/frontend/generated_parser_parameters.rb +60 -0
- data/lib/ibex/frontend/generation.rb +33 -0
- data/lib/ibex/frontend/lexer.rb +162 -10
- data/lib/ibex/frontend/lexer_recovery.rb +84 -0
- data/lib/ibex/frontend/parser/declarations.rb +262 -11
- data/lib/ibex/frontend/parser/parameters.rb +82 -0
- data/lib/ibex/frontend/parser/rules.rb +43 -6
- data/lib/ibex/frontend/parser.rb +182 -4
- data/lib/ibex/frontend/parser_configuration_support.rb +56 -0
- data/lib/ibex/frontend/regenerator.rb +27 -1
- data/lib/ibex/frontend/resolution.rb +70 -0
- data/lib/ibex/frontend/resolver.rb +217 -0
- data/lib/ibex/frontend/rule_documentation.rb +104 -0
- data/lib/ibex/frontend/source_cursor.rb +133 -9
- data/lib/ibex/frontend/source_document.rb +229 -0
- data/lib/ibex/frontend/source_loader.rb +150 -0
- data/lib/ibex/frontend/source_span.rb +89 -0
- data/lib/ibex/frontend/token_adapter/declaration_document_state.rb +47 -0
- data/lib/ibex/frontend/token_adapter/declaration_lexer_state.rb +83 -0
- data/lib/ibex/frontend/token_adapter/declaration_state.rb +244 -22
- data/lib/ibex/frontend/token_adapter/delimiter_tracker.rb +8 -2
- data/lib/ibex/frontend/token_adapter/rule_state.rb +60 -2
- data/lib/ibex/frontend/token_adapter.rb +18 -3
- data/lib/ibex/frontend.rb +14 -2
- data/lib/ibex/fuzz.rb +219 -0
- data/lib/ibex/generation_input.rb +57 -0
- data/lib/ibex/generation_manifest.rb +211 -0
- data/lib/ibex/generation_transaction.rb +261 -0
- data/lib/ibex/generation_transaction_recovery.rb +109 -0
- data/lib/ibex/generation_transaction_validation.rb +196 -0
- data/lib/ibex/grammar_tests.rb +206 -0
- data/lib/ibex/ir/automaton_ir.rb +86 -11
- data/lib/ibex/ir/grammar_ir.rb +170 -26
- data/lib/ibex/ir/lexer_ir.rb +76 -0
- data/lib/ibex/ir/parser_contract.rb +135 -0
- data/lib/ibex/ir/serialize.rb +268 -50
- data/lib/ibex/ir/validator/automaton.rb +375 -0
- data/lib/ibex/ir/validator/base.rb +147 -0
- data/lib/ibex/ir/validator/grammar.rb +634 -0
- data/lib/ibex/ir/validator/lexer.rb +113 -0
- data/lib/ibex/ir/validator.rb +63 -0
- data/lib/ibex/ir.rb +71 -5
- data/lib/ibex/lalr/build_metrics.rb +71 -0
- data/lib/ibex/lalr/builder.rb +514 -52
- data/lib/ibex/lalr/conflict.rb +1 -0
- data/lib/ibex/lalr/conflict_search.rb +26 -9
- data/lib/ibex/lalr/counterexample.rb +38 -18
- data/lib/ibex/lalr/direct_lookaheads.rb +289 -0
- data/lib/ibex/lalr/goto_follows.rb +229 -0
- data/lib/ibex/lalr/ielr/annotator.rb +214 -0
- data/lib/ibex/lalr/ielr/bits.rb +28 -0
- data/lib/ibex/lalr/ielr/inadequacy.rb +47 -0
- data/lib/ibex/lalr/ielr/item_lookaheads.rb +78 -0
- data/lib/ibex/lalr/ielr/pipeline.rb +75 -0
- data/lib/ibex/lalr/ielr/split_stability.rb +78 -0
- data/lib/ibex/lalr/ielr/split_state.rb +20 -0
- data/lib/ibex/lalr/ielr/state_splitter.rb +258 -0
- data/lib/ibex/lalr/ielr_partition.rb +166 -0
- data/lib/ibex/lalr/inadequacy_report.rb +50 -0
- data/lib/ibex/lalr/lookahead_propagation.rb +111 -0
- data/lib/ibex/lalr/lr0_collection.rb +121 -0
- data/lib/ibex/lalr/on_error_reductions.rb +74 -0
- data/lib/ibex/lalr/unreachable_states.rb +80 -0
- data/lib/ibex/lalr.rb +59 -1
- data/lib/ibex/location.rb +129 -0
- data/lib/ibex/lsp/document_handlers.rb +68 -0
- data/lib/ibex/lsp/document_store.rb +264 -0
- data/lib/ibex/lsp/document_store_diagnostics.rb +44 -0
- data/lib/ibex/lsp/document_store_validation.rb +61 -0
- data/lib/ibex/lsp/initialization_handlers.rb +80 -0
- data/lib/ibex/lsp/navigation_handlers.rb +70 -0
- data/lib/ibex/lsp/parser_configuration_assistance.rb +149 -0
- data/lib/ibex/lsp/position_codec.rb +113 -0
- data/lib/ibex/lsp/protocol_error.rb +33 -0
- data/lib/ibex/lsp/request_handlers.rb +46 -0
- data/lib/ibex/lsp/request_support.rb +94 -0
- data/lib/ibex/lsp/server.rb +148 -0
- data/lib/ibex/lsp/symbol_index.rb +241 -0
- data/lib/ibex/lsp/symbol_index_builder.rb +277 -0
- data/lib/ibex/lsp/symbol_index_precedence_references.rb +44 -0
- data/lib/ibex/lsp/symbol_index_source_queries.rb +61 -0
- data/lib/ibex/lsp/symbol_occurrence.rb +23 -0
- data/lib/ibex/lsp/transport.rb +128 -0
- data/lib/ibex/lsp/workspace.rb +128 -0
- data/lib/ibex/lsp/workspace_analyzer.rb +199 -0
- data/lib/ibex/lsp.rb +33 -0
- data/lib/ibex/messages/en.yml +28 -0
- data/lib/ibex/messages/ja.yml +28 -0
- data/lib/ibex/messages.rb +68 -0
- data/lib/ibex/metrics.rb +175 -0
- data/lib/ibex/normalize/declarations.rb +142 -7
- data/lib/ibex/normalize/diagnostics.rb +94 -24
- data/lib/ibex/normalize/expander.rb +64 -59
- data/lib/ibex/normalize/expression.rb +63 -40
- data/lib/ibex/normalize/grammar_builder.rb +26 -0
- data/lib/ibex/normalize/inline_expansion.rb +465 -0
- data/lib/ibex/normalize/inline_validation.rb +174 -0
- data/lib/ibex/normalize/lexer.rb +131 -0
- data/lib/ibex/normalize/named_references.rb +60 -0
- data/lib/ibex/normalize/nodes.rb +46 -0
- data/lib/ibex/normalize/parameter_ebnf_lowering.rb +70 -0
- data/lib/ibex/normalize/parameter_lowering.rb +143 -0
- data/lib/ibex/normalize/parameter_substitution.rb +125 -0
- data/lib/ibex/normalize/parameter_validation.rb +140 -0
- data/lib/ibex/normalize/parameters.rb +226 -0
- data/lib/ibex/normalize/parser_configuration.rb +70 -0
- data/lib/ibex/normalize/recovery_declarations.rb +84 -0
- data/lib/ibex/normalize.rb +172 -17
- data/lib/ibex/racc_migration/checker.rb +122 -0
- data/lib/ibex/racc_migration/harness.rb +177 -0
- data/lib/ibex/racc_migration/report.rb +97 -0
- data/lib/ibex/racc_migration.rb +12 -0
- data/lib/ibex/rake_task.rb +116 -0
- data/lib/ibex/samples.rb +216 -0
- data/lib/ibex/table_artifact/builder.rb +266 -0
- data/lib/ibex/table_artifact/cst_projection.rb +70 -0
- data/lib/ibex/table_artifact/document.rb +39 -0
- data/lib/ibex/table_artifact/executor.rb +187 -0
- data/lib/ibex/table_artifact/serializer.rb +57 -0
- data/lib/ibex/table_artifact/validator/metadata.rb +179 -0
- data/lib/ibex/table_artifact/validator/support.rb +86 -0
- data/lib/ibex/table_artifact/validator/tables.rb +238 -0
- data/lib/ibex/table_artifact/validator.rb +253 -0
- data/lib/ibex/table_artifact.rb +88 -0
- data/lib/ibex/table_simulation/result.rb +55 -0
- data/lib/ibex/table_simulation/simulator.rb +253 -0
- data/lib/ibex/table_simulation/step.rb +62 -0
- data/lib/ibex/table_simulation/text.rb +31 -0
- data/lib/ibex/table_simulation.rb +13 -0
- data/lib/ibex/tables.rb +22 -69
- data/lib/ibex/verifiable_generation_bundle.rb +86 -0
- data/lib/ibex/verification_report/builder.rb +159 -0
- data/lib/ibex/verification_report/canonical_ir.rb +123 -0
- data/lib/ibex/verification_report/logical_path.rb +68 -0
- data/lib/ibex/verification_report/validator.rb +329 -0
- data/lib/ibex/verification_report.rb +69 -0
- data/lib/ibex/verify/action_correspondence.rb +138 -0
- data/lib/ibex/verify/language_witness.rb +295 -0
- data/lib/ibex/verify/reference_collection.rb +190 -0
- data/lib/ibex/verify/result.rb +73 -0
- data/lib/ibex/verify/verifier.rb +598 -0
- data/lib/ibex/verify.rb +15 -0
- data/lib/ibex/version.rb +1 -1
- data/lib/ibex/watch/runner.rb +181 -0
- data/lib/ibex/watch/source_snapshot.rb +98 -0
- data/lib/ibex/watch.rb +11 -0
- data/lib/ibex.rb +35 -1
- data/schema/automaton-ir-definitions.schema.json +401 -0
- data/schema/automaton-ir.schema.json +65 -0
- data/schema/benchmark-v1.schema.json +212 -0
- data/schema/benchmark-v2.schema.json +61 -0
- data/schema/bison-import-v1.schema.json +106 -0
- data/schema/conflict-explanation-review-v1.schema.json +196 -0
- data/schema/conflict-explanation-study-v1.schema.json +528 -0
- data/schema/construction-profile-v1.schema.json +779 -0
- data/schema/cst-v1.json +170 -0
- data/schema/diff-v1.schema.json +41 -0
- data/schema/direct-ielr-decision-v1.schema.json +200 -0
- data/schema/equiv-v1.schema.json +64 -0
- data/schema/error-ux-review-v1.schema.json +609 -0
- data/schema/error-ux-round2-review-v1.schema.json +191 -0
- data/schema/error-ux-round2-v1.schema.json +519 -0
- data/schema/error-ux-v1.schema.json +258 -0
- data/schema/explain-v1.schema.json +495 -0
- data/schema/fix-v1.schema.json +64 -0
- data/schema/fix-v2.schema.json +66 -0
- data/schema/fix-v3.schema.json +101 -0
- data/schema/frontend-diagnostics-v1.schema.json +154 -0
- data/schema/fuzz-regression-v1.schema.json +79 -0
- data/schema/fuzz-v1.schema.json +114 -0
- data/schema/generation-manifest-v1.schema.json +115 -0
- data/schema/grammar-ir-extensions.schema.json +734 -0
- data/schema/grammar-ir-foundation.schema.json +426 -0
- data/schema/grammar-ir.schema.json +271 -0
- data/schema/ielr-benchmark-v1.schema.json +85 -0
- data/schema/lexer-ir-v1.schema.json +215 -0
- data/schema/lexer-profile-v1.schema.json +491 -0
- data/schema/metrics-v1.schema.json +60 -0
- data/schema/migration-check-v1.schema.json +60 -0
- data/schema/performance-comparison-v1.schema.json +395 -0
- data/schema/public-performance-comparison-v1.schema.json +506 -0
- data/schema/public-performance-profile-v1.schema.json +360 -0
- data/schema/reduce-v1.schema.json +22 -0
- data/schema/reduce-v2.schema.json +63 -0
- data/schema/runtime-coverage-v1.schema.json +86 -0
- data/schema/runtime-event-v1.schema.json +308 -0
- data/schema/table-artifact-v1.schema.json +377 -0
- data/schema/table-simulation-v1.schema.json +70 -0
- data/schema/verification-report-v1.schema.json +222 -0
- data/schema/verify-v1.schema.json +42 -0
- data/sig/ibex/analysis/digraph.rbs +19 -0
- data/sig/ibex/artifact_set.rbs +37 -0
- data/sig/ibex/bison_import/importer.rbs +140 -0
- data/sig/ibex/bison_import/tokenizer.rbs +91 -0
- data/sig/ibex/bison_import.rbs +95 -0
- data/sig/ibex/bounded_subprocess.rbs +76 -0
- data/sig/ibex/cli/ambiguity.rbs +28 -0
- data/sig/ibex/cli/analysis.rbs +43 -0
- data/sig/ibex/cli/bison_import.rbs +32 -0
- data/sig/ibex/cli/config.rbs +35 -0
- data/sig/ibex/cli/counterexample_options.rbs +2 -0
- data/sig/ibex/cli/coverage.rbs +53 -0
- data/sig/ibex/cli/debug.rbs +28 -0
- data/sig/ibex/cli/diagnostics.rbs +51 -0
- data/sig/ibex/cli/documentation.rbs +29 -0
- data/sig/ibex/cli/equiv.rbs +49 -0
- data/sig/ibex/cli/error_messages.rbs +63 -0
- data/sig/ibex/cli/explain.rbs +31 -0
- data/sig/ibex/cli/fix.rbs +53 -0
- data/sig/ibex/cli/formatting.rbs +107 -0
- data/sig/ibex/cli/fuzz.rbs +47 -0
- data/sig/ibex/cli/fuzz_regressions.rbs +40 -0
- data/sig/ibex/cli/generation_artifacts.rbs +69 -0
- data/sig/ibex/cli/generation_error_messages.rbs +19 -0
- data/sig/ibex/cli/grammar_tests.rbs +48 -0
- data/sig/ibex/cli/ir_tools.rbs +39 -0
- data/sig/ibex/cli/lsp.rbs +14 -0
- data/sig/ibex/cli/outputs.rbs +26 -3
- data/sig/ibex/cli/racc_migration.rbs +30 -0
- data/sig/ibex/cli/reduce.rbs +60 -0
- data/sig/ibex/cli/reduce_reporting.rbs +27 -0
- data/sig/ibex/cli/samples.rbs +38 -0
- data/sig/ibex/cli/verify.rbs +28 -0
- data/sig/ibex/cli/watch.rbs +43 -0
- data/sig/ibex/cli.rbs +182 -9
- data/sig/ibex/codegen/action_locations.rbs +45 -0
- data/sig/ibex/codegen/action_method_source.rbs +65 -0
- data/sig/ibex/codegen/action_source.rbs +50 -0
- data/sig/ibex/codegen/ambiguity.rbs +60 -0
- data/sig/ibex/codegen/cst_metadata.rbs +59 -0
- data/sig/ibex/codegen/documentation.rbs +50 -0
- data/sig/ibex/codegen/explain.rbs +105 -0
- data/sig/ibex/codegen/generated_action_abi.rbs +105 -0
- data/sig/ibex/codegen/html.rbs +18 -2
- data/sig/ibex/codegen/mermaid.rbs +16 -0
- data/sig/ibex/codegen/railroad.rbs +82 -0
- data/sig/ibex/codegen/railroad_documentation.rbs +31 -0
- data/sig/ibex/codegen/rbs.rbs +86 -4
- data/sig/ibex/codegen/report.rbs +16 -8
- data/sig/ibex/codegen/ruby.rbs +105 -28
- data/sig/ibex/codegen/ruby_actions.rbs +54 -0
- data/sig/ibex/codegen/ruby_ast.rbs +34 -0
- data/sig/ibex/codegen/ruby_error_messages.rbs +16 -0
- data/sig/ibex/codegen/ruby_lexer.rbs +25 -0
- data/sig/ibex/codegen/ruby_syntax.rbs +27 -0
- data/sig/ibex/codegen/ruby_table_metadata.rbs +26 -0
- data/sig/ibex/codegen/ruby_value_printers.rbs +28 -0
- data/sig/ibex/configuration/analysis_grammar.rbs +13 -0
- data/sig/ibex/configuration/explanation.rbs +195 -0
- data/sig/ibex/configuration/inspector.rbs +53 -0
- data/sig/ibex/configuration.rbs +242 -0
- data/sig/ibex/coverage/collector.rbs +78 -0
- data/sig/ibex/coverage/event_stream.rbs +44 -0
- data/sig/ibex/coverage/report.rbs +102 -0
- data/sig/ibex/coverage/runtime_event_validator.rbs +70 -0
- data/sig/ibex/coverage.rbs +7 -0
- data/sig/ibex/delta_reducer.rbs +38 -0
- data/sig/ibex/diff.rbs +47 -0
- data/sig/ibex/equiv/machine.rbs +54 -0
- data/sig/ibex/equiv.rbs +129 -0
- data/sig/ibex/error_messages/parser.rbs +58 -0
- data/sig/ibex/error_messages/parser_v2.rbs +67 -0
- data/sig/ibex/error_messages/renderer.rbs +23 -0
- data/sig/ibex/error_messages/sentence_search.rbs +80 -0
- data/sig/ibex/error_messages/update.rbs +43 -0
- data/sig/ibex/error_messages.rbs +85 -0
- data/sig/ibex/fix.rbs +138 -0
- data/sig/ibex/frontend/ast.rbs +237 -22
- data/sig/ibex/frontend/bootstrap_parser.rbs +13 -0
- data/sig/ibex/frontend/diagnostic.rbs +53 -0
- data/sig/ibex/frontend/diagnostic_recovery.rbs +98 -0
- data/sig/ibex/frontend/dsl.rbs +33 -4
- data/sig/ibex/frontend/formatter.rbs +143 -0
- data/sig/ibex/frontend/generated_parser.rbs +228 -68
- data/sig/ibex/frontend/generated_parser_base.rbs +65 -12
- data/sig/ibex/frontend/generated_parser_includes.rbs +23 -0
- data/sig/ibex/frontend/generated_parser_metadata.rbs +23 -0
- data/sig/ibex/frontend/generated_parser_parameters.rbs +24 -0
- data/sig/ibex/frontend/generation.rbs +6 -0
- data/sig/ibex/frontend/lexer.rbs +49 -2
- data/sig/ibex/frontend/lexer_recovery.rbs +25 -0
- data/sig/ibex/frontend/parser/declarations.rbs +57 -0
- data/sig/ibex/frontend/parser/parameters.rbs +28 -0
- data/sig/ibex/frontend/parser/rules.rbs +3 -0
- data/sig/ibex/frontend/parser.rbs +66 -0
- data/sig/ibex/frontend/parser_configuration_support.rbs +27 -0
- data/sig/ibex/frontend/regenerator.rbs +11 -0
- data/sig/ibex/frontend/resolution.rbs +34 -0
- data/sig/ibex/frontend/resolver.rbs +91 -0
- data/sig/ibex/frontend/rule_documentation.rbs +42 -0
- data/sig/ibex/frontend/source_cursor.rbs +38 -5
- data/sig/ibex/frontend/source_document.rbs +119 -0
- data/sig/ibex/frontend/source_loader.rbs +66 -0
- data/sig/ibex/frontend/source_span.rbs +56 -0
- data/sig/ibex/frontend/token_adapter/declaration_document_state.rbs +21 -0
- data/sig/ibex/frontend/token_adapter/declaration_lexer_state.rbs +27 -0
- data/sig/ibex/frontend/token_adapter/declaration_state.rbs +83 -3
- data/sig/ibex/frontend/token_adapter/rule_state.rbs +20 -0
- data/sig/ibex/frontend/token_adapter.rbs +11 -2
- data/sig/ibex/frontend.rbs +1 -1
- data/sig/ibex/fuzz.rbs +71 -0
- data/sig/ibex/generation_input.rbs +37 -0
- data/sig/ibex/generation_manifest.rbs +70 -0
- data/sig/ibex/generation_transaction.rbs +82 -0
- data/sig/ibex/generation_transaction_recovery.rbs +36 -0
- data/sig/ibex/generation_transaction_validation.rbs +65 -0
- data/sig/ibex/grammar_tests.rbs +93 -0
- data/sig/ibex/ir/automaton_ir.rbs +35 -10
- data/sig/ibex/ir/grammar_ir.rbs +96 -22
- data/sig/ibex/ir/lexer_ir.rbs +57 -0
- data/sig/ibex/ir/parser_contract.rbs +69 -0
- data/sig/ibex/ir/serialize.rbs +75 -23
- data/sig/ibex/ir/validator/automaton.rbs +112 -0
- data/sig/ibex/ir/validator/base.rbs +69 -0
- data/sig/ibex/ir/validator/grammar.rbs +195 -0
- data/sig/ibex/ir/validator/lexer.rbs +37 -0
- data/sig/ibex/ir/validator.rbs +16 -0
- data/sig/ibex/ir.rbs +45 -5
- data/sig/ibex/lalr/build_metrics.rbs +60 -0
- data/sig/ibex/lalr/builder.rbs +150 -19
- data/sig/ibex/lalr/conflict_search.rbs +12 -5
- data/sig/ibex/lalr/counterexample.rbs +20 -14
- data/sig/ibex/lalr/direct_lookaheads.rbs +93 -0
- data/sig/ibex/lalr/goto_follows.rbs +89 -0
- data/sig/ibex/lalr/ielr/annotator.rbs +67 -0
- data/sig/ibex/lalr/ielr/bits.rbs +14 -0
- data/sig/ibex/lalr/ielr/inadequacy.rbs +24 -0
- data/sig/ibex/lalr/ielr/item_lookaheads.rbs +35 -0
- data/sig/ibex/lalr/ielr/pipeline.rbs +17 -0
- data/sig/ibex/lalr/ielr/split_stability.rbs +27 -0
- data/sig/ibex/lalr/ielr/split_state.rbs +14 -0
- data/sig/ibex/lalr/ielr/state_splitter.rbs +76 -0
- data/sig/ibex/lalr/ielr_partition.rbs +71 -0
- data/sig/ibex/lalr/inadequacy_report.rbs +21 -0
- data/sig/ibex/lalr/lookahead_propagation.rbs +38 -0
- data/sig/ibex/lalr/lr0_collection.rbs +50 -0
- data/sig/ibex/lalr/on_error_reductions.rbs +22 -0
- data/sig/ibex/lalr/unreachable_states.rbs +25 -0
- data/sig/ibex/lalr.rbs +17 -1
- data/sig/ibex/location.rbs +67 -0
- data/sig/ibex/lsp/document_handlers.rbs +24 -0
- data/sig/ibex/lsp/document_store.rbs +94 -0
- data/sig/ibex/lsp/document_store_diagnostics.rbs +20 -0
- data/sig/ibex/lsp/document_store_validation.rbs +26 -0
- data/sig/ibex/lsp/initialization_handlers.rbs +30 -0
- data/sig/ibex/lsp/navigation_handlers.rbs +33 -0
- data/sig/ibex/lsp/parser_configuration_assistance.rbs +49 -0
- data/sig/ibex/lsp/position_codec.rbs +44 -0
- data/sig/ibex/lsp/protocol_error.rbs +32 -0
- data/sig/ibex/lsp/request_handlers.rbs +26 -0
- data/sig/ibex/lsp/request_support.rbs +40 -0
- data/sig/ibex/lsp/server.rbs +55 -0
- data/sig/ibex/lsp/symbol_index.rbs +77 -0
- data/sig/ibex/lsp/symbol_index_builder.rbs +88 -0
- data/sig/ibex/lsp/symbol_index_precedence_references.rbs +18 -0
- data/sig/ibex/lsp/symbol_index_source_queries.rbs +26 -0
- data/sig/ibex/lsp/symbol_occurrence.rbs +31 -0
- data/sig/ibex/lsp/transport.rbs +47 -0
- data/sig/ibex/lsp/workspace.rbs +42 -0
- data/sig/ibex/lsp/workspace_analyzer.rbs +69 -0
- data/sig/ibex/lsp.rbs +7 -0
- data/sig/ibex/messages.rbs +26 -0
- data/sig/ibex/metrics.rbs +50 -0
- data/sig/ibex/normalize/declarations.rbs +31 -0
- data/sig/ibex/normalize/diagnostics.rbs +13 -4
- data/sig/ibex/normalize/expander.rbs +22 -16
- data/sig/ibex/normalize/expression.rbs +11 -9
- data/sig/ibex/normalize/grammar_builder.rbs +11 -0
- data/sig/ibex/normalize/inline_expansion.rbs +129 -0
- data/sig/ibex/normalize/inline_validation.rbs +40 -0
- data/sig/ibex/normalize/lexer.rbs +37 -0
- data/sig/ibex/normalize/named_references.rbs +20 -0
- data/sig/ibex/normalize/nodes.rbs +14 -0
- data/sig/ibex/normalize/parameter_ebnf_lowering.rbs +33 -0
- data/sig/ibex/normalize/parameter_lowering.rbs +35 -0
- data/sig/ibex/normalize/parameter_substitution.rbs +42 -0
- data/sig/ibex/normalize/parameter_validation.rbs +44 -0
- data/sig/ibex/normalize/parameters.rbs +51 -0
- data/sig/ibex/normalize/parser_configuration.rbs +23 -0
- data/sig/ibex/normalize/recovery_declarations.rbs +24 -0
- data/sig/ibex/normalize.rbs +129 -18
- data/sig/ibex/racc_migration/checker.rbs +36 -0
- data/sig/ibex/racc_migration/harness.rbs +16 -0
- data/sig/ibex/racc_migration/report.rbs +55 -0
- data/sig/ibex/racc_migration.rbs +8 -0
- data/sig/ibex/rake_task.rbs +51 -0
- data/sig/ibex/samples.rbs +60 -0
- data/sig/ibex/table_artifact/builder.rbs +93 -0
- data/sig/ibex/table_artifact/cst_projection.rbs +20 -0
- data/sig/ibex/table_artifact/document.rbs +27 -0
- data/sig/ibex/table_artifact/executor.rbs +66 -0
- data/sig/ibex/table_artifact/serializer.rbs +25 -0
- data/sig/ibex/table_artifact/validator/metadata.rbs +52 -0
- data/sig/ibex/table_artifact/validator/support.rbs +46 -0
- data/sig/ibex/table_artifact/validator/tables.rbs +63 -0
- data/sig/ibex/table_artifact/validator.rbs +66 -0
- data/sig/ibex/table_artifact.rbs +32 -0
- data/sig/ibex/table_simulation/result.rbs +36 -0
- data/sig/ibex/table_simulation/simulator.rbs +98 -0
- data/sig/ibex/table_simulation/step.rbs +42 -0
- data/sig/ibex/table_simulation/text.rbs +14 -0
- data/sig/ibex/table_simulation.rbs +7 -0
- data/sig/ibex/tables.rbs +10 -35
- data/sig/ibex/verifiable_generation_bundle.rbs +24 -0
- data/sig/ibex/verification_report/builder.rbs +53 -0
- data/sig/ibex/verification_report/canonical_ir.rbs +41 -0
- data/sig/ibex/verification_report/logical_path.rbs +34 -0
- data/sig/ibex/verification_report/validator.rbs +114 -0
- data/sig/ibex/verification_report.rbs +44 -0
- data/sig/ibex/verify/action_correspondence.rbs +50 -0
- data/sig/ibex/verify/language_witness.rbs +112 -0
- data/sig/ibex/verify/reference_collection.rbs +63 -0
- data/sig/ibex/verify/result.rbs +52 -0
- data/sig/ibex/verify/verifier.rbs +170 -0
- data/sig/ibex/verify.rbs +6 -0
- data/sig/ibex/watch/runner.rbs +58 -0
- data/sig/ibex/watch/source_snapshot.rbs +46 -0
- data/sig/ibex/watch.rbs +7 -0
- data/sig/ibex.rbs +2 -0
- metadata +524 -19
- data/.rubocop.yml +0 -43
- data/CHANGELOG.md +0 -30
- data/Rakefile +0 -25
- data/Steepfile +0 -10
- data/docs/compat-notes.md +0 -37
- data/docs/lexer-coverage.md +0 -14
- data/docs/phase10-extensions.md +0 -27
- data/gemfiles/Gemfile +0 -7
- data/gemfiles/Gemfile.lock +0 -98
- data/lib/ibex/frontend/grammar.y +0 -156
- data/lib/ibex/runtime/parser.rb +0 -360
- data/lib/ibex/runtime.rb +0 -8
- data/sig/ibex/runtime/parser.rbs +0 -167
- data/sig/ibex/runtime.rbs +0 -6
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Generated from lib/ibex/rake_task.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Declares grammar-to-parser generation in a Rakefile.
|
|
5
|
+
class RakeTask < Rake::TaskLib
|
|
6
|
+
attr_accessor grammar: String?
|
|
7
|
+
|
|
8
|
+
attr_accessor output: String?
|
|
9
|
+
|
|
10
|
+
attr_accessor options: Array[String]
|
|
11
|
+
|
|
12
|
+
attr_accessor action_source: String | true | nil
|
|
13
|
+
|
|
14
|
+
# @rbs (String | Symbol name) ?{ (RakeTask) -> void } -> void
|
|
15
|
+
def initialize: (String | Symbol name) ?{ (RakeTask) -> void } -> void
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
# @rbs () -> void
|
|
20
|
+
def define: () -> void
|
|
21
|
+
|
|
22
|
+
# @rbs () -> void
|
|
23
|
+
def reject_watch_option!: () -> void
|
|
24
|
+
|
|
25
|
+
# @rbs (String target) -> String?
|
|
26
|
+
def configured_action_source: (String target) -> String?
|
|
27
|
+
|
|
28
|
+
# @rbs (String target) -> String
|
|
29
|
+
def default_action_source_path: (String target) -> String
|
|
30
|
+
|
|
31
|
+
# @rbs (String source) -> Array[String]
|
|
32
|
+
def grammar_prerequisites: (String source) -> Array[String]
|
|
33
|
+
|
|
34
|
+
# @rbs () -> Symbol
|
|
35
|
+
def configured_mode: () -> Symbol
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Rake
|
|
40
|
+
class TaskLib
|
|
41
|
+
def initialize: () -> void
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
class Task
|
|
45
|
+
def self.define_task: (Hash[String | Symbol, String | Array[String]]) -> Task
|
|
46
|
+
| (Hash[String | Symbol, String | Array[String]]) { (Object?, Object?) -> void } -> Task
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
class FileTask < Task
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Generated from lib/ibex/samples.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Generates bounded terminal sentences from Grammar IR.
|
|
5
|
+
class Samples
|
|
6
|
+
DEFAULT_MAX_EXPANSIONS: Integer
|
|
7
|
+
|
|
8
|
+
# @rbs (IR::Grammar grammar, ?seed: Integer, ?max_tokens: Integer, ?max_depth: Integer,
|
|
9
|
+
# ?max_expansions: Integer, ?strategy: Symbol | String, ?path_length: Integer) -> void
|
|
10
|
+
def initialize: (IR::Grammar grammar, ?seed: Integer, ?max_tokens: Integer, ?max_depth: Integer, ?max_expansions: Integer, ?strategy: Symbol | String, ?path_length: Integer) -> void
|
|
11
|
+
|
|
12
|
+
# @rbs (?count: Integer) -> Array[Array[String]]
|
|
13
|
+
def generate: (?count: Integer) -> Array[Array[String]]
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
# @rbs () -> Hash[Integer, Integer?]
|
|
18
|
+
def compute_minimum_costs: () -> Hash[Integer, Integer?]
|
|
19
|
+
|
|
20
|
+
# @rbs () -> Hash[Integer, Integer?]
|
|
21
|
+
def compute_minimum_heights: () -> Hash[Integer, Integer?]
|
|
22
|
+
|
|
23
|
+
# @rbs (Integer terminal_value) { (IR::Production, Hash[Integer, Integer?]) -> Integer? }
|
|
24
|
+
# -> Hash[Integer, Integer?]
|
|
25
|
+
def compute_minimum_values: (Integer terminal_value) { (IR::Production, Hash[Integer, Integer?]) -> Integer? } -> Hash[Integer, Integer?]
|
|
26
|
+
|
|
27
|
+
# @rbs (Hash[Integer, Integer?] values, Integer terminal_value) -> Array[Integer]
|
|
28
|
+
def seed_terminal_values: (Hash[Integer, Integer?] values, Integer terminal_value) -> Array[Integer]
|
|
29
|
+
|
|
30
|
+
# @rbs (Hash[Integer, Integer?] values, Array[Integer] queue, Integer symbol_id, Integer? candidate) -> void
|
|
31
|
+
def update_minimum: (Hash[Integer, Integer?] values, Array[Integer] queue, Integer symbol_id, Integer? candidate) -> void
|
|
32
|
+
|
|
33
|
+
# @rbs (IR::Production production, Hash[Integer, Integer?] values) -> Array[Integer]?
|
|
34
|
+
def resolved_rhs_values: (IR::Production production, Hash[Integer, Integer?] values) -> Array[Integer]?
|
|
35
|
+
|
|
36
|
+
# @rbs (IR::GrammarSymbol start, Integer remaining_expansions) -> [Array[String], Integer]
|
|
37
|
+
def expand: (IR::GrammarSymbol start, Integer remaining_expansions) -> [ Array[String], Integer ]
|
|
38
|
+
|
|
39
|
+
# @rbs (Integer nonterminal_id, Integer budget, Integer depth, Array[Integer] path) -> IR::Production
|
|
40
|
+
def choose_production: (Integer nonterminal_id, Integer budget, Integer depth, Array[Integer] path) -> IR::Production
|
|
41
|
+
|
|
42
|
+
# @rbs (Integer nonterminal_id, Integer budget) -> Array[IR::Production]
|
|
43
|
+
def bounded_productions: (Integer nonterminal_id, Integer budget) -> Array[IR::Production]
|
|
44
|
+
|
|
45
|
+
# @rbs (Array[IR::Production] candidates) -> Array[IR::Production]
|
|
46
|
+
def minimum_height_productions: (Array[IR::Production] candidates) -> Array[IR::Production]
|
|
47
|
+
|
|
48
|
+
# @rbs (Array[Integer] path, IR::Production production) -> Integer
|
|
49
|
+
def path_count: (Array[Integer] path, IR::Production production) -> Integer
|
|
50
|
+
|
|
51
|
+
# @rbs (Integer symbol_id) -> Integer
|
|
52
|
+
def minimum_cost!: (Integer symbol_id) -> Integer
|
|
53
|
+
|
|
54
|
+
# @rbs (IR::Production production) -> Integer?
|
|
55
|
+
def production_cost: (IR::Production production) -> Integer?
|
|
56
|
+
|
|
57
|
+
# @rbs (IR::Production production) -> Integer?
|
|
58
|
+
def production_height: (IR::Production production) -> Integer?
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact/builder.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableArtifact
|
|
5
|
+
# Projects validated Automaton IR into an action-free executable sidecar.
|
|
6
|
+
class Builder
|
|
7
|
+
type json_value = String | Integer | Float | bool | nil | Array[json_value] | Hash[String, json_value]
|
|
8
|
+
|
|
9
|
+
type json_hash = Hash[String, untyped]
|
|
10
|
+
|
|
11
|
+
type action_rows = Array[Hash[Integer, IR::runtime_action]]
|
|
12
|
+
|
|
13
|
+
type action_table = action_rows | Tables::CompactActions
|
|
14
|
+
|
|
15
|
+
type goto_rows = Array[Hash[Integer, Integer]]
|
|
16
|
+
|
|
17
|
+
type goto_table = goto_rows | Tables::Compact
|
|
18
|
+
|
|
19
|
+
include CSTProjection
|
|
20
|
+
|
|
21
|
+
REPRESENTATIONS: Array[Symbol]
|
|
22
|
+
|
|
23
|
+
# @rbs (IR::Automaton automaton, ?representation: Symbol | String, ?cst_trivia: Symbol | String?,
|
|
24
|
+
# ?omit_action_call: bool?) -> void
|
|
25
|
+
def initialize: (IR::Automaton automaton, ?representation: Symbol | String, ?cst_trivia: Symbol | String?, ?omit_action_call: bool?) -> void
|
|
26
|
+
|
|
27
|
+
# @rbs () -> Document
|
|
28
|
+
def build: () -> Document
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
# @rbs (Hash[String, String] source_identity) -> json_hash
|
|
33
|
+
def build_payload: (Hash[String, String] source_identity) -> json_hash
|
|
34
|
+
|
|
35
|
+
# @rbs () -> String
|
|
36
|
+
def automaton_digest: () -> String
|
|
37
|
+
|
|
38
|
+
# @rbs () -> json_hash
|
|
39
|
+
def table_format: () -> json_hash
|
|
40
|
+
|
|
41
|
+
# @rbs () -> Array[json_hash]
|
|
42
|
+
def symbols: () -> Array[json_hash]
|
|
43
|
+
|
|
44
|
+
# @rbs () -> Array[json_hash]
|
|
45
|
+
def tokens: () -> Array[json_hash]
|
|
46
|
+
|
|
47
|
+
# @rbs () -> Array[json_hash]
|
|
48
|
+
def entry_states: () -> Array[json_hash]
|
|
49
|
+
|
|
50
|
+
# @rbs () -> json_hash
|
|
51
|
+
def tables: () -> json_hash
|
|
52
|
+
|
|
53
|
+
# @rbs (action_table table) -> json_hash
|
|
54
|
+
def action_table: (action_table table) -> json_hash
|
|
55
|
+
|
|
56
|
+
# @rbs (Tables::CompactActions table) -> json_hash
|
|
57
|
+
def compact_action_table: (Tables::CompactActions table) -> json_hash
|
|
58
|
+
|
|
59
|
+
# @rbs (goto_table table) -> json_hash
|
|
60
|
+
def goto_table: (goto_table table) -> json_hash
|
|
61
|
+
|
|
62
|
+
# @rbs (Tables::Compact table) -> json_hash
|
|
63
|
+
def compact_goto_table: (Tables::Compact table) -> json_hash
|
|
64
|
+
|
|
65
|
+
# @rbs () -> Array[json_hash]
|
|
66
|
+
def productions: () -> Array[json_hash]
|
|
67
|
+
|
|
68
|
+
# @rbs (IR::Production production) -> bool
|
|
69
|
+
def action_slot?: (IR::Production production) -> bool
|
|
70
|
+
|
|
71
|
+
# @rbs () -> json_hash
|
|
72
|
+
def semantic_actions: () -> json_hash
|
|
73
|
+
|
|
74
|
+
# @rbs () -> json_hash
|
|
75
|
+
def recovery: () -> json_hash
|
|
76
|
+
|
|
77
|
+
# @rbs (json_hash payload) -> json_hash
|
|
78
|
+
def build_cost: (json_hash payload) -> json_hash
|
|
79
|
+
|
|
80
|
+
# @rbs (json_hash table, String values_key) -> Integer
|
|
81
|
+
def occupied_cells: (json_hash table, String values_key) -> Integer
|
|
82
|
+
|
|
83
|
+
# @rbs () -> String
|
|
84
|
+
def lookup_cost: () -> String
|
|
85
|
+
|
|
86
|
+
# @rbs () -> String
|
|
87
|
+
def recognition_cost: () -> String
|
|
88
|
+
|
|
89
|
+
# @rbs (Symbol | String? requested) -> Symbol
|
|
90
|
+
def effective_cst_trivia: (Symbol | String? requested) -> Symbol
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact/cst_projection.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableArtifact
|
|
5
|
+
# Converts code-generation CST metadata into closed JSON records.
|
|
6
|
+
module CSTProjection
|
|
7
|
+
private def cst: () -> Hash[String, Builder::json_value]?
|
|
8
|
+
|
|
9
|
+
private def normalize_cst: (Codegen::CSTMetadata::metadata metadata) -> Hash[String, Builder::json_value]
|
|
10
|
+
|
|
11
|
+
private def normalize_cst_kinds: (Codegen::CSTMetadata::kinds kinds) -> Hash[String, Builder::json_value]
|
|
12
|
+
|
|
13
|
+
private def named_kinds: (Hash[String, Integer] values) -> Array[Hash[String, String | Integer]]
|
|
14
|
+
|
|
15
|
+
private def normalize_cst_slot: (Integer production_id, Codegen::CSTMetadata::slot slot) -> Hash[String, Builder::json_value]
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact/document.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableArtifact
|
|
5
|
+
# An immutable, validated table artifact document.
|
|
6
|
+
class Document
|
|
7
|
+
type json_value = String | Integer | Float | bool | nil | Array[json_value] | Hash[String, json_value]
|
|
8
|
+
|
|
9
|
+
attr_reader data: Hash[String, json_value]
|
|
10
|
+
|
|
11
|
+
# @rbs (Hash[String, json_value] data) -> void
|
|
12
|
+
def initialize: (Hash[String, json_value] data) -> void
|
|
13
|
+
|
|
14
|
+
# @rbs () -> String
|
|
15
|
+
def dump: () -> String
|
|
16
|
+
|
|
17
|
+
# @rbs () -> Hash[String, json_value]
|
|
18
|
+
def payload: () -> Hash[String, json_value]
|
|
19
|
+
|
|
20
|
+
# @rbs () -> Hash[String, String]
|
|
21
|
+
def identity: () -> Hash[String, String]
|
|
22
|
+
|
|
23
|
+
# @rbs () -> Hash[String, json_value]
|
|
24
|
+
def cost: () -> Hash[String, json_value]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact/executor.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableArtifact
|
|
5
|
+
# Recognition-only driver over internal token ids; it never loads wrapper code.
|
|
6
|
+
class Executor
|
|
7
|
+
class Result
|
|
8
|
+
attr_reader status: Symbol
|
|
9
|
+
|
|
10
|
+
attr_reader steps: Integer
|
|
11
|
+
|
|
12
|
+
attr_reader consumed_tokens: Integer
|
|
13
|
+
|
|
14
|
+
attr_reader reason: String?
|
|
15
|
+
|
|
16
|
+
# @rbs (status: Symbol, steps: Integer, consumed_tokens: Integer, reason: String?) -> void
|
|
17
|
+
def initialize: (status: Symbol, steps: Integer, consumed_tokens: Integer, reason: String?) -> void
|
|
18
|
+
|
|
19
|
+
# @rbs () -> bool
|
|
20
|
+
def accepted?: () -> bool
|
|
21
|
+
|
|
22
|
+
# @rbs () -> bool
|
|
23
|
+
def rejected?: () -> bool
|
|
24
|
+
|
|
25
|
+
# @rbs () -> bool
|
|
26
|
+
def exhausted?: () -> bool
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# @rbs (Document | Hash[String, ValidationSupport::json_value] document) -> void
|
|
30
|
+
def initialize: (Document | Hash[String, ValidationSupport::json_value] document) -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (Array[Integer] token_ids, ?entry: String | Symbol?, ?max_steps: Integer) -> Result
|
|
33
|
+
def recognize: (Array[Integer] token_ids, ?entry: String | Symbol?, ?max_steps: Integer) -> Result
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
# @rbs (Array[Integer] input, Array[Integer] stack, Integer max_steps) -> Result
|
|
38
|
+
def execute: (Array[Integer] input, Array[Integer] stack, Integer max_steps) -> Result
|
|
39
|
+
|
|
40
|
+
# @rbs (Integer? code, Integer token_id, Integer step, Integer cursor) -> Result?
|
|
41
|
+
def immediate_result: (Integer? code, Integer token_id, Integer step, Integer cursor) -> Result?
|
|
42
|
+
|
|
43
|
+
# @rbs (Array[Integer] token_ids) -> Array[Integer]
|
|
44
|
+
def validate_input: (Array[Integer] token_ids) -> Array[Integer]
|
|
45
|
+
|
|
46
|
+
# @rbs (String | Symbol? requested) -> Integer
|
|
47
|
+
def entry_state: (String | Symbol? requested) -> Integer
|
|
48
|
+
|
|
49
|
+
# @rbs (Integer row, Integer column) -> Integer?
|
|
50
|
+
def action: (Integer row, Integer column) -> Integer?
|
|
51
|
+
|
|
52
|
+
# @rbs (Integer row, Integer column) -> Integer?
|
|
53
|
+
def goto_state: (Integer row, Integer column) -> Integer?
|
|
54
|
+
|
|
55
|
+
# @rbs (Hash[String, ValidationSupport::json_value] table, Integer row, Integer column,
|
|
56
|
+
# String value_key) -> Integer?
|
|
57
|
+
def displacement_lookup: (Hash[String, ValidationSupport::json_value] table, Integer row, Integer column, String value_key) -> Integer?
|
|
58
|
+
|
|
59
|
+
# @rbs (Array[Integer] stack, Integer code) -> String?
|
|
60
|
+
def reduce_stack: (Array[Integer] stack, Integer code) -> String?
|
|
61
|
+
|
|
62
|
+
# @rbs (Symbol status, Integer steps, Integer consumed, String? reason) -> Result
|
|
63
|
+
def result: (Symbol status, Integer steps, Integer consumed, String? reason) -> Result
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact/serializer.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableArtifact
|
|
5
|
+
# Canonical JSON ordering and digest primitives shared by writer and loader.
|
|
6
|
+
module Serializer
|
|
7
|
+
type json_value = String | Integer | Float | bool | nil | Array[json_value] | Hash[json_value, json_value]
|
|
8
|
+
|
|
9
|
+
# @rbs (json_value value) -> json_value
|
|
10
|
+
def self.canonical: (json_value value) -> json_value
|
|
11
|
+
|
|
12
|
+
# @rbs (json_value value) -> String
|
|
13
|
+
def self.compact: (json_value value) -> String
|
|
14
|
+
|
|
15
|
+
# @rbs (json_value value) -> String
|
|
16
|
+
def self.dump: (json_value value) -> String
|
|
17
|
+
|
|
18
|
+
# @rbs (json_value value) -> String
|
|
19
|
+
def self.digest: (json_value value) -> String
|
|
20
|
+
|
|
21
|
+
# @rbs (json_value value) -> json_value
|
|
22
|
+
def self.deep_freeze: (json_value value) -> json_value
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact/validator/metadata.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableArtifact
|
|
5
|
+
class MetadataValidator
|
|
6
|
+
include ValidationSupport
|
|
7
|
+
|
|
8
|
+
# @rbs (Hash[String, ValidationSupport::json_value] payload, symbols: Array[Hash[String, ValidationSupport::json_value]],
|
|
9
|
+
# productions: Array[Hash[String, ValidationSupport::json_value]]) -> void
|
|
10
|
+
def initialize: (Hash[String, ValidationSupport::json_value] payload, symbols: Array[Hash[String, ValidationSupport::json_value]], productions: Array[Hash[String, ValidationSupport::json_value]]) -> void
|
|
11
|
+
|
|
12
|
+
# @rbs () -> void
|
|
13
|
+
def validate!: () -> void
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
# @rbs (Array[Hash[String, ValidationSupport::json_value]] symbols, String kind) -> Set[Integer]
|
|
18
|
+
def ids_for_kind: (Array[Hash[String, ValidationSupport::json_value]] symbols, String kind) -> Set[Integer]
|
|
19
|
+
|
|
20
|
+
# @rbs (ValidationSupport::json_value data) -> void
|
|
21
|
+
def validate_semantic_actions: (ValidationSupport::json_value data) -> void
|
|
22
|
+
|
|
23
|
+
# @rbs (ValidationSupport::json_value data) -> void
|
|
24
|
+
def validate_recovery: (ValidationSupport::json_value data) -> void
|
|
25
|
+
|
|
26
|
+
# @rbs (ValidationSupport::json_value data) -> void
|
|
27
|
+
def validate_cst: (ValidationSupport::json_value data) -> void
|
|
28
|
+
|
|
29
|
+
# @rbs (ValidationSupport::json_value data, String path) -> Integer
|
|
30
|
+
def validate_cst_kinds: (ValidationSupport::json_value data, String path) -> Integer
|
|
31
|
+
|
|
32
|
+
# @rbs (ValidationSupport::json_value data, String path, Integer limit) -> void
|
|
33
|
+
def validate_range: (ValidationSupport::json_value data, String path, Integer limit) -> void
|
|
34
|
+
|
|
35
|
+
# @rbs (ValidationSupport::json_value data, String path, Array[String] names) -> void
|
|
36
|
+
def validate_named_kinds: (ValidationSupport::json_value data, String path, Array[String] names) -> void
|
|
37
|
+
|
|
38
|
+
# @rbs (ValidationSupport::json_value data, String path, Integer kind_count) -> void
|
|
39
|
+
def validate_named_nonterminals: (ValidationSupport::json_value data, String path, Integer kind_count) -> void
|
|
40
|
+
|
|
41
|
+
# @rbs (ValidationSupport::json_value data, String path, Integer kind_count) -> void
|
|
42
|
+
def validate_cst_slots: (ValidationSupport::json_value data, String path, Integer kind_count) -> void
|
|
43
|
+
|
|
44
|
+
# @rbs (ValidationSupport::json_value data, String path,
|
|
45
|
+
# Hash[String, ValidationSupport::json_value] production) -> void
|
|
46
|
+
def validate_fields: (ValidationSupport::json_value data, String path, Hash[String, ValidationSupport::json_value] production) -> void
|
|
47
|
+
|
|
48
|
+
# @rbs (ValidationSupport::json_value data, String path, ?sorted: bool) -> Array[Integer]
|
|
49
|
+
def integer_ids: (ValidationSupport::json_value data, String path, ?sorted: bool) -> Array[Integer]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact/validator/support.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableArtifact
|
|
5
|
+
module ValidationSupport
|
|
6
|
+
type json_value = String | Integer | Float | bool | nil | Array[json_value] | Hash[String, json_value]
|
|
7
|
+
|
|
8
|
+
DIGEST: Regexp
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
# @rbs (json_value value, String path, Array[String] keys) -> Hash[String, json_value]
|
|
13
|
+
def record: (json_value value, String path, Array[String] keys) -> Hash[String, json_value]
|
|
14
|
+
|
|
15
|
+
# @rbs (json_value value, String path) -> Array[json_value]
|
|
16
|
+
def array: (json_value value, String path) -> Array[json_value]
|
|
17
|
+
|
|
18
|
+
# @rbs (json_value value, String path, ?allow_empty: bool) -> String
|
|
19
|
+
def string: (json_value value, String path, ?allow_empty: bool) -> String
|
|
20
|
+
|
|
21
|
+
# @rbs (json_value value, String path, ?minimum: Integer?) -> Integer
|
|
22
|
+
def integer: (json_value value, String path, ?minimum: Integer?) -> Integer
|
|
23
|
+
|
|
24
|
+
# @rbs (json_value value, String path) -> bool
|
|
25
|
+
def boolean: (json_value value, String path) -> bool
|
|
26
|
+
|
|
27
|
+
# @rbs [T] (T value, String path, Array[T] values) -> T
|
|
28
|
+
def enum: [T] (T value, String path, Array[T] values) -> T
|
|
29
|
+
|
|
30
|
+
# @rbs (json_value value, String path) -> String
|
|
31
|
+
def digest: (json_value value, String path) -> String
|
|
32
|
+
|
|
33
|
+
# @rbs (json_value value, String path) -> String?
|
|
34
|
+
def nullable_string: (json_value value, String path) -> String?
|
|
35
|
+
|
|
36
|
+
# @rbs (json_value value, String path, ?minimum: Integer?) -> Integer?
|
|
37
|
+
def nullable_integer: (json_value value, String path, ?minimum: Integer?) -> Integer?
|
|
38
|
+
|
|
39
|
+
# @rbs (Array[json_value] values, String path) -> void
|
|
40
|
+
def sorted_unique!: (Array[json_value] values, String path) -> void
|
|
41
|
+
|
|
42
|
+
# @rbs (String path, String message) -> bot
|
|
43
|
+
def invalid: (String path, String message) -> bot
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact/validator/tables.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableArtifact
|
|
5
|
+
class TableValidator
|
|
6
|
+
include ValidationSupport
|
|
7
|
+
|
|
8
|
+
private def integer_array: (ValidationSupport::json_value value, String path, allow_nil: false, minimum: Integer?) -> Array[Integer]
|
|
9
|
+
| (ValidationSupport::json_value value, String path, allow_nil: true, minimum: Integer?) -> Array[Integer?]
|
|
10
|
+
|
|
11
|
+
# @rbs (Hash[String, ValidationSupport::json_value] data, state_count: Integer, production_count: Integer,
|
|
12
|
+
# terminal_ids: Set[Integer], nonterminal_ids: Set[Integer], representation: String) -> void
|
|
13
|
+
def initialize: (Hash[String, ValidationSupport::json_value] data, state_count: Integer, production_count: Integer, terminal_ids: Set[Integer], nonterminal_ids: Set[Integer], representation: String) -> void
|
|
14
|
+
|
|
15
|
+
# @rbs () -> void
|
|
16
|
+
def validate!: () -> void
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
# @rbs (ValidationSupport::json_value table) -> void
|
|
21
|
+
def validate_actions: (ValidationSupport::json_value table) -> void
|
|
22
|
+
|
|
23
|
+
# @rbs (Hash[String, ValidationSupport::json_value] table) -> void
|
|
24
|
+
def validate_sparse_actions: (Hash[String, ValidationSupport::json_value] table) -> void
|
|
25
|
+
|
|
26
|
+
# @rbs (Hash[String, ValidationSupport::json_value] table) -> void
|
|
27
|
+
def validate_compact_actions: (Hash[String, ValidationSupport::json_value] table) -> void
|
|
28
|
+
|
|
29
|
+
# @rbs (ValidationSupport::json_value table) -> void
|
|
30
|
+
def validate_gotos: (ValidationSupport::json_value table) -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (Hash[String, ValidationSupport::json_value] table) -> void
|
|
33
|
+
def validate_sparse_gotos: (Hash[String, ValidationSupport::json_value] table) -> void
|
|
34
|
+
|
|
35
|
+
# @rbs (Hash[String, ValidationSupport::json_value] table) -> void
|
|
36
|
+
def validate_compact_gotos: (Hash[String, ValidationSupport::json_value] table) -> void
|
|
37
|
+
|
|
38
|
+
# @rbs (Hash[String, ValidationSupport::json_value] table, String path) -> void
|
|
39
|
+
def validate_row_count: (Hash[String, ValidationSupport::json_value] table, String path) -> void
|
|
40
|
+
|
|
41
|
+
# @rbs (Hash[String, ValidationSupport::json_value] table, value_key: String, path: String)
|
|
42
|
+
# { (Integer, ValidationSupport::json_value, String) -> void } -> Array[Hash[Integer, ValidationSupport::json_value]]
|
|
43
|
+
def validate_displacement: (Hash[String, ValidationSupport::json_value] table, value_key: String, path: String) { (Integer, ValidationSupport::json_value, String) -> void } -> Array[Hash[Integer, ValidationSupport::json_value]]
|
|
44
|
+
|
|
45
|
+
# @rbs (Hash[String, ValidationSupport::json_value] table,
|
|
46
|
+
# Array[Hash[Integer, ValidationSupport::json_value]] rows, value_key: String,
|
|
47
|
+
# width_key: String, width: Integer?, dense: bool, path: String) -> void
|
|
48
|
+
def validate_canonical_displacement: (Hash[String, ValidationSupport::json_value] table, Array[Hash[Integer, ValidationSupport::json_value]] rows, value_key: String, width_key: String, width: Integer?, dense: bool, path: String) -> void
|
|
49
|
+
|
|
50
|
+
# @rbs (ValidationSupport::json_value defaults) -> void
|
|
51
|
+
def validate_defaults: (ValidationSupport::json_value defaults) -> void
|
|
52
|
+
|
|
53
|
+
# @rbs (ValidationSupport::json_value code, Integer token_id, String path) -> void
|
|
54
|
+
def validate_token_action: (ValidationSupport::json_value code, Integer token_id, String path) -> void
|
|
55
|
+
|
|
56
|
+
# @rbs (ValidationSupport::json_value code, String path) -> void
|
|
57
|
+
def validate_action_code: (ValidationSupport::json_value code, String path) -> void
|
|
58
|
+
|
|
59
|
+
# @rbs (ValidationSupport::json_value state, String path) -> void
|
|
60
|
+
def validate_state: (ValidationSupport::json_value state, String path) -> void
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact/validator.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableArtifact
|
|
5
|
+
# Closed structural and referential validation for untrusted sidecars.
|
|
6
|
+
class Validator
|
|
7
|
+
include ValidationSupport
|
|
8
|
+
|
|
9
|
+
ROOT_KEYS: Array[String]
|
|
10
|
+
|
|
11
|
+
PAYLOAD_KEYS: Array[String]
|
|
12
|
+
|
|
13
|
+
# @rbs (Hash[String, ValidationSupport::json_value] data) -> true
|
|
14
|
+
def self.validate!: (Hash[String, ValidationSupport::json_value] data) -> true
|
|
15
|
+
|
|
16
|
+
# @rbs (Hash[String, ValidationSupport::json_value] data) -> void
|
|
17
|
+
def initialize: (Hash[String, ValidationSupport::json_value] data) -> void
|
|
18
|
+
|
|
19
|
+
# rubocop:disable Naming/PredicateMethod -- bang denotes fail-fast validation.
|
|
20
|
+
# @rbs () -> true
|
|
21
|
+
def validate!: () -> true
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
# @rbs () -> void
|
|
26
|
+
def validate_root_identity: () -> void
|
|
27
|
+
|
|
28
|
+
# @rbs (ValidationSupport::json_value data) -> String
|
|
29
|
+
def validate_table_format: (ValidationSupport::json_value data) -> String
|
|
30
|
+
|
|
31
|
+
# @rbs (ValidationSupport::json_value data) -> void
|
|
32
|
+
def validate_source: (ValidationSupport::json_value data) -> void
|
|
33
|
+
|
|
34
|
+
# @rbs (ValidationSupport::json_value data) -> Array[Hash[String, ValidationSupport::json_value]]
|
|
35
|
+
def validate_symbols: (ValidationSupport::json_value data) -> Array[Hash[String, ValidationSupport::json_value]]
|
|
36
|
+
|
|
37
|
+
# @rbs (ValidationSupport::json_value data, Array[Hash[String, ValidationSupport::json_value]] symbols) -> void
|
|
38
|
+
def validate_tokens: (ValidationSupport::json_value data, Array[Hash[String, ValidationSupport::json_value]] symbols) -> void
|
|
39
|
+
|
|
40
|
+
# @rbs (ValidationSupport::json_value data,
|
|
41
|
+
# Array[Hash[String, ValidationSupport::json_value]] symbols, Integer state_count) -> void
|
|
42
|
+
def validate_entries: (ValidationSupport::json_value data, Array[Hash[String, ValidationSupport::json_value]] symbols, Integer state_count) -> void
|
|
43
|
+
|
|
44
|
+
# @rbs (ValidationSupport::json_value data,
|
|
45
|
+
# Array[Hash[String, ValidationSupport::json_value]] symbols) -> Array[Hash[String, ValidationSupport::json_value]]
|
|
46
|
+
def validate_productions: (ValidationSupport::json_value data, Array[Hash[String, ValidationSupport::json_value]] symbols) -> Array[Hash[String, ValidationSupport::json_value]]
|
|
47
|
+
|
|
48
|
+
# @rbs (ValidationSupport::json_value data, Hash[String, ValidationSupport::json_value] payload) -> void
|
|
49
|
+
def validate_cost: (ValidationSupport::json_value data, Hash[String, ValidationSupport::json_value] payload) -> void
|
|
50
|
+
|
|
51
|
+
# @rbs (Hash[String, ValidationSupport::json_value] payload) -> [String, String]
|
|
52
|
+
def expected_costs: (Hash[String, ValidationSupport::json_value] payload) -> [ String, String ]
|
|
53
|
+
|
|
54
|
+
# @rbs (Hash[String, ValidationSupport::json_value] table, String values_key) -> Integer
|
|
55
|
+
def occupied: (Hash[String, ValidationSupport::json_value] table, String values_key) -> Integer
|
|
56
|
+
|
|
57
|
+
# @rbs (Array[Hash[String, ValidationSupport::json_value]] symbols, String kind) -> Set[Integer]
|
|
58
|
+
def symbol_ids: (Array[Hash[String, ValidationSupport::json_value]] symbols, String kind) -> Set[Integer]
|
|
59
|
+
|
|
60
|
+
# @rbs (Hash[String, ValidationSupport::json_value] identity,
|
|
61
|
+
# Hash[String, ValidationSupport::json_value] payload, String identity_name,
|
|
62
|
+
# String payload_name) -> void
|
|
63
|
+
def validate_named_digest: (Hash[String, ValidationSupport::json_value] identity, Hash[String, ValidationSupport::json_value] payload, String identity_name, String payload_name) -> void
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_artifact.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Experimental data-only authority for executable parser tables.
|
|
5
|
+
module TableArtifact
|
|
6
|
+
interface _Reader
|
|
7
|
+
def read: (Integer length) -> String?
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
ARTIFACT_TYPE: String
|
|
11
|
+
|
|
12
|
+
SCHEMA_VERSION: Integer
|
|
13
|
+
|
|
14
|
+
DEFAULT_MAX_BYTES: Integer
|
|
15
|
+
|
|
16
|
+
class ValidationError < Ibex::Error
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# @rbs (IR::Automaton automaton, ?representation: Symbol | String, ?cst_trivia: Symbol | String?,
|
|
20
|
+
# ?omit_action_call: bool?) -> Document
|
|
21
|
+
def self.build: (IR::Automaton automaton, ?representation: Symbol | String, ?cst_trivia: Symbol | String?, ?omit_action_call: bool?) -> Document
|
|
22
|
+
|
|
23
|
+
# @rbs (String | _Reader source, ?max_bytes: Integer) -> Document
|
|
24
|
+
def self.load: (String | _Reader source, ?max_bytes: Integer) -> Document
|
|
25
|
+
|
|
26
|
+
# @rbs (untyped source, Integer max_bytes) -> String
|
|
27
|
+
private def self.read_bounded: (untyped source, Integer max_bytes) -> String
|
|
28
|
+
|
|
29
|
+
# @rbs (_Reader source, Integer max_bytes) -> String
|
|
30
|
+
private def self.read_from: (_Reader source, Integer max_bytes) -> String
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_simulation/result.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableSimulation
|
|
5
|
+
# Final immutable simulation document.
|
|
6
|
+
class Result
|
|
7
|
+
type step_document = Hash[String, Step::document_value]
|
|
8
|
+
|
|
9
|
+
type document_value = String | Integer | Array[String] | Array[step_document]
|
|
10
|
+
|
|
11
|
+
IDENTIFIER: String
|
|
12
|
+
|
|
13
|
+
SCHEMA_VERSION: Integer
|
|
14
|
+
|
|
15
|
+
attr_reader grammar_digest: String
|
|
16
|
+
|
|
17
|
+
attr_reader algorithm: String
|
|
18
|
+
|
|
19
|
+
attr_reader tokens: Array[String]
|
|
20
|
+
|
|
21
|
+
attr_reader status: Symbol
|
|
22
|
+
|
|
23
|
+
attr_reader steps: Array[Step]
|
|
24
|
+
|
|
25
|
+
# @rbs (grammar_digest: String, algorithm: String, tokens: Array[String], status: Symbol,
|
|
26
|
+
# steps: Array[Step]) -> void
|
|
27
|
+
def initialize: (grammar_digest: String, algorithm: String, tokens: Array[String], status: Symbol, steps: Array[Step]) -> void
|
|
28
|
+
|
|
29
|
+
# @rbs () -> Hash[String, document_value]
|
|
30
|
+
def to_h: () -> Hash[String, document_value]
|
|
31
|
+
|
|
32
|
+
# @rbs (*Object?) -> String
|
|
33
|
+
def to_json: (*Object?) -> String
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|