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,242 @@
|
|
|
1
|
+
# Generated from lib/ibex/configuration.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Typed, provenance-preserving effective configuration.
|
|
5
|
+
module Configuration
|
|
6
|
+
type config_value = Symbol | String | Integer | bool | nil
|
|
7
|
+
|
|
8
|
+
type json_value = String | Integer | bool | nil | Array[json_value] | Hash[String, json_value]
|
|
9
|
+
|
|
10
|
+
OWNER_NAMES: Hash[Symbol, String]
|
|
11
|
+
|
|
12
|
+
POLICIES: Array[Symbol]
|
|
13
|
+
|
|
14
|
+
ORIGIN_KINDS: Array[Symbol]
|
|
15
|
+
|
|
16
|
+
BOOLEAN_VALUES: Array[bool]
|
|
17
|
+
|
|
18
|
+
DECLARED_VALUE_UNSET: Object
|
|
19
|
+
|
|
20
|
+
OWNER_POLICIES: Hash[Symbol, Symbol]
|
|
21
|
+
|
|
22
|
+
# One closed definition of a configuration concept and its value domain.
|
|
23
|
+
class Key
|
|
24
|
+
attr_reader name: String
|
|
25
|
+
|
|
26
|
+
attr_reader type: Symbol
|
|
27
|
+
|
|
28
|
+
attr_reader default: config_value
|
|
29
|
+
|
|
30
|
+
attr_reader owner: Symbol
|
|
31
|
+
|
|
32
|
+
attr_reader policy: Symbol
|
|
33
|
+
|
|
34
|
+
attr_reader allowed_values: Array[config_value]?
|
|
35
|
+
|
|
36
|
+
attr_reader cli_option: Symbol?
|
|
37
|
+
|
|
38
|
+
# @rbs (String name, type: Symbol, default: config_value, owner: Symbol, policy: Symbol,
|
|
39
|
+
# ?allowed_values: Array[config_value]?, ?cli_option: Symbol?) -> void
|
|
40
|
+
def initialize: (String name, type: Symbol, default: config_value, owner: Symbol, policy: Symbol, ?allowed_values: Array[config_value]?, ?cli_option: Symbol?) -> void
|
|
41
|
+
|
|
42
|
+
# Validate and defensively freeze a value from an adapter or declaration.
|
|
43
|
+
# @rbs (config_value value) -> config_value
|
|
44
|
+
def validate: (config_value value) -> config_value
|
|
45
|
+
|
|
46
|
+
# @rbs () -> String
|
|
47
|
+
def owner_name: () -> String
|
|
48
|
+
|
|
49
|
+
private
|
|
50
|
+
|
|
51
|
+
# @rbs (String name, Symbol owner, Symbol policy) -> void
|
|
52
|
+
def validate_identity!: (String name, Symbol owner, Symbol policy) -> void
|
|
53
|
+
|
|
54
|
+
# @rbs (Symbol type, Symbol policy, Symbol? cli_option) -> void
|
|
55
|
+
def validate_shape!: (Symbol type, Symbol policy, Symbol? cli_option) -> void
|
|
56
|
+
|
|
57
|
+
# @rbs (config_value value) -> config_value
|
|
58
|
+
def immutable: (config_value value) -> config_value
|
|
59
|
+
|
|
60
|
+
# @rbs (config_value value) -> bool
|
|
61
|
+
def valid_type?: (config_value value) -> bool
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Where a selected configuration value came from.
|
|
65
|
+
class Origin
|
|
66
|
+
attr_reader kind: Symbol
|
|
67
|
+
|
|
68
|
+
attr_reader location: Location?
|
|
69
|
+
|
|
70
|
+
# @rbs (Symbol kind, ?location: Location?) -> void
|
|
71
|
+
def initialize: (Symbol kind, ?location: Location?) -> void
|
|
72
|
+
|
|
73
|
+
# @rbs () -> Hash[String, json_value]
|
|
74
|
+
def to_h: () -> Hash[String, json_value]
|
|
75
|
+
|
|
76
|
+
# @rbs () -> String
|
|
77
|
+
def label: () -> String
|
|
78
|
+
|
|
79
|
+
private
|
|
80
|
+
|
|
81
|
+
# @rbs (Location location) -> Hash[String, json_value]
|
|
82
|
+
def stringify_location: (Location location) -> Hash[String, json_value]
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# A typed effective value plus the evidence needed to explain it.
|
|
86
|
+
class Value
|
|
87
|
+
attr_reader key: Key
|
|
88
|
+
|
|
89
|
+
attr_reader value: config_value
|
|
90
|
+
|
|
91
|
+
attr_reader origin: Origin
|
|
92
|
+
|
|
93
|
+
attr_reader explicit: bool
|
|
94
|
+
|
|
95
|
+
attr_reader canonical: bool
|
|
96
|
+
|
|
97
|
+
attr_reader declared_value: config_value
|
|
98
|
+
|
|
99
|
+
# @rbs (Key key, config_value value, origin: Origin, explicit: bool, canonical: bool,
|
|
100
|
+
# ?declared_value: config_value | Object) -> void
|
|
101
|
+
def initialize: (Key key, config_value value, origin: Origin, explicit: bool, canonical: bool, ?declared_value: config_value | Object) -> void
|
|
102
|
+
|
|
103
|
+
# @rbs () -> Hash[String, json_value]
|
|
104
|
+
def to_h: () -> Hash[String, json_value]
|
|
105
|
+
|
|
106
|
+
private
|
|
107
|
+
|
|
108
|
+
# @rbs (Key key, Origin origin, bool explicit, bool canonical, config_value | Object declared_value) -> void
|
|
109
|
+
def validate_provenance!: (Key key, Origin origin, bool explicit, bool canonical, config_value | Object declared_value) -> void
|
|
110
|
+
|
|
111
|
+
# @rbs (Key key, Origin origin, bool canonical) -> void
|
|
112
|
+
def validate_canonical_origin!: (Key key, Origin origin, bool canonical) -> void
|
|
113
|
+
|
|
114
|
+
# @rbs (Key key, Origin origin) -> void
|
|
115
|
+
def validate_owner_source!: (Key key, Origin origin) -> void
|
|
116
|
+
|
|
117
|
+
# @rbs (Origin origin, bool explicit) -> void
|
|
118
|
+
def validate_explicitness!: (Origin origin, bool explicit) -> void
|
|
119
|
+
|
|
120
|
+
# @rbs (bool canonical, config_value | Object declared_value) -> void
|
|
121
|
+
def validate_declared_evidence!: (bool canonical, config_value | Object declared_value) -> void
|
|
122
|
+
|
|
123
|
+
# @rbs (config_value value) -> (String | Integer | bool | nil)
|
|
124
|
+
def json_value: (config_value value) -> (String | Integer | bool | nil)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# A fixed/minimum request that contradicts the declared contract.
|
|
128
|
+
class Conflict < Ibex::Error
|
|
129
|
+
attr_reader key: Key
|
|
130
|
+
|
|
131
|
+
attr_reader declared: Value
|
|
132
|
+
|
|
133
|
+
attr_reader requested: Value
|
|
134
|
+
|
|
135
|
+
# @rbs (Key key, Value declared, Value requested) -> void
|
|
136
|
+
def initialize: (Key key, Value declared, Value requested) -> void
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Closed definitions shared by generation, grammar tests, and analyses.
|
|
140
|
+
module Registry
|
|
141
|
+
DEFINITIONS: Array[Key]
|
|
142
|
+
|
|
143
|
+
BY_NAME: Hash[String, Key]
|
|
144
|
+
|
|
145
|
+
# @rbs (String name) -> Key
|
|
146
|
+
def self.fetch: (String name) -> Key
|
|
147
|
+
|
|
148
|
+
# @rbs () -> Array[Key]
|
|
149
|
+
def self.keys: () -> Array[Key]
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# Applies fixed/minimum override algebra and exposes deterministic evidence.
|
|
153
|
+
class Resolver
|
|
154
|
+
attr_reader values: Array[Value]
|
|
155
|
+
|
|
156
|
+
# @rbs (?keys: Array[Key], ?grammar: Hash[String, config_value], ?project: Hash[String, config_value],
|
|
157
|
+
# ?cli: Hash[String, config_value], ?analysis_overrides: Hash[String, config_value],
|
|
158
|
+
# ?locations: Hash[Symbol, Hash[String, Location]]) -> void
|
|
159
|
+
def initialize: (?keys: Array[Key], ?grammar: Hash[String, config_value], ?project: Hash[String, config_value], ?cli: Hash[String, config_value], ?analysis_overrides: Hash[String, config_value], ?locations: Hash[Symbol, Hash[String, Location]]) -> void
|
|
160
|
+
|
|
161
|
+
# @rbs (String name) -> Value
|
|
162
|
+
def fetch: (String name) -> Value
|
|
163
|
+
|
|
164
|
+
# @rbs (String name) -> config_value
|
|
165
|
+
def value: (String name) -> config_value
|
|
166
|
+
|
|
167
|
+
# @rbs () -> Hash[String, Array[Hash[String, json_value]]]
|
|
168
|
+
def to_h: () -> Hash[String, Array[Hash[String, json_value]]]
|
|
169
|
+
|
|
170
|
+
# Deterministic JSON independent of caller hash insertion order.
|
|
171
|
+
# @rbs () -> String
|
|
172
|
+
def dump: () -> String
|
|
173
|
+
|
|
174
|
+
private
|
|
175
|
+
|
|
176
|
+
# @rbs (Symbol kind, Hash[String, config_value] entries) -> void
|
|
177
|
+
def validate_source!: (Symbol kind, Hash[String, config_value] entries) -> void
|
|
178
|
+
|
|
179
|
+
# @rbs (Hash[Symbol, Hash[String, Location]] locations,
|
|
180
|
+
# Hash[Symbol, Hash[String, config_value]] sources) -> void
|
|
181
|
+
def validate_locations!: (Hash[Symbol, Hash[String, Location]] locations, Hash[Symbol, Hash[String, config_value]] sources) -> void
|
|
182
|
+
|
|
183
|
+
# @rbs (Key key, Hash[Symbol, Hash[String, config_value]] sources,
|
|
184
|
+
# Hash[Symbol, Hash[String, Location]] locations) -> Value
|
|
185
|
+
def resolve_key: (Key key, Hash[Symbol, Hash[String, config_value]] sources, Hash[Symbol, Hash[String, Location]] locations) -> Value
|
|
186
|
+
|
|
187
|
+
# @rbs (Key key, Value builtin, Hash[Symbol, Hash[String, config_value]] sources,
|
|
188
|
+
# Hash[Symbol, Hash[String, Location]] locations) -> Value
|
|
189
|
+
def resolve_fixed: (Key key, Value builtin, Hash[Symbol, Hash[String, config_value]] sources, Hash[Symbol, Hash[String, Location]] locations) -> Value
|
|
190
|
+
|
|
191
|
+
# @rbs (Key key, Value? grammar, Value declared, Array[Value] requested) -> void
|
|
192
|
+
def reject_fixed_conflicts!: (Key key, Value? grammar, Value declared, Array[Value] requested) -> void
|
|
193
|
+
|
|
194
|
+
# @rbs (Key key, Value builtin, Hash[Symbol, Hash[String, config_value]] sources,
|
|
195
|
+
# Hash[Symbol, Hash[String, Location]] locations) -> Value
|
|
196
|
+
def resolve_minimum: (Key key, Value builtin, Hash[Symbol, Hash[String, config_value]] sources, Hash[Symbol, Hash[String, Location]] locations) -> Value
|
|
197
|
+
|
|
198
|
+
# @rbs (Key key, Value builtin, Hash[Symbol, Hash[String, config_value]] sources,
|
|
199
|
+
# Hash[Symbol, Hash[String, Location]] locations) -> Value
|
|
200
|
+
def resolve_override: (Key key, Value builtin, Hash[Symbol, Hash[String, config_value]] sources, Hash[Symbol, Hash[String, Location]] locations) -> Value
|
|
201
|
+
|
|
202
|
+
# @rbs (Key key, Symbol kind, Hash[Symbol, Hash[String, config_value]] sources,
|
|
203
|
+
# Hash[Symbol, Hash[String, Location]] locations) -> Value?
|
|
204
|
+
def source_value: (Key key, Symbol kind, Hash[Symbol, Hash[String, config_value]] sources, Hash[Symbol, Hash[String, Location]] locations) -> Value?
|
|
205
|
+
|
|
206
|
+
# @rbs (Key key, config_value raw, Symbol kind, Hash[Symbol, Hash[String, Location]] locations,
|
|
207
|
+
# explicit: bool) -> Value
|
|
208
|
+
def value_from: (Key key, config_value raw, Symbol kind, Hash[Symbol, Hash[String, Location]] locations, explicit: bool) -> Value
|
|
209
|
+
|
|
210
|
+
# @rbs (Symbol kind, String name, Hash[Symbol, Hash[String, Location]] locations) -> Origin
|
|
211
|
+
def origin: (Symbol kind, String name, Hash[Symbol, Hash[String, Location]] locations) -> Origin
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
# Converts the existing internal CLI option hash into canonical concepts.
|
|
215
|
+
class CLIAdapter
|
|
216
|
+
# The adapter receives the legacy CLI option map, which also contains
|
|
217
|
+
# operation flags and list values outside the closed configuration domain.
|
|
218
|
+
# It validates and converts only declared configuration options.
|
|
219
|
+
# @rbs (Hash[Symbol, untyped] options, ?explicit_keys: Array[Symbol]) -> void
|
|
220
|
+
def initialize: (Hash[Symbol, untyped] options, ?explicit_keys: Array[Symbol]) -> void
|
|
221
|
+
|
|
222
|
+
# @rbs (?grammar: Hash[String, config_value], ?locations: Hash[String, Location]) -> Resolver
|
|
223
|
+
def resolve: (?grammar: Hash[String, config_value], ?locations: Hash[String, Location]) -> Resolver
|
|
224
|
+
|
|
225
|
+
# Canonical configuration values selected by explicit legacy CLI options.
|
|
226
|
+
# Raw option spellings stop at this adapter boundary.
|
|
227
|
+
# @rbs () -> Hash[String, config_value]
|
|
228
|
+
def configuration_values: () -> Hash[String, config_value]
|
|
229
|
+
|
|
230
|
+
private
|
|
231
|
+
|
|
232
|
+
# @rbs (Symbol name, untyped value) -> config_value
|
|
233
|
+
def convert: (Symbol name, untyped value) -> config_value
|
|
234
|
+
|
|
235
|
+
# @rbs (untyped value) -> config_value
|
|
236
|
+
def convert_entry_isolation: (untyped value) -> config_value
|
|
237
|
+
|
|
238
|
+
# @rbs () -> Symbol
|
|
239
|
+
def convert_line_mapping: () -> Symbol
|
|
240
|
+
end
|
|
241
|
+
end
|
|
242
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Generated from lib/ibex/coverage/collector.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Coverage
|
|
5
|
+
# Strictly turns one or more complete parse sessions into a coverage report.
|
|
6
|
+
class Collector
|
|
7
|
+
type json_value = String | Integer | Float | bool | nil | Array[json_value] | Hash[String, json_value]
|
|
8
|
+
|
|
9
|
+
@expected_sequence: Integer
|
|
10
|
+
|
|
11
|
+
@in_session: bool
|
|
12
|
+
|
|
13
|
+
@production_hits: Hash[Integer, Integer]
|
|
14
|
+
|
|
15
|
+
@state_hits: Hash[Integer, Integer]
|
|
16
|
+
|
|
17
|
+
@event_count: Integer
|
|
18
|
+
|
|
19
|
+
@sessions: Integer
|
|
20
|
+
|
|
21
|
+
@production_count: Integer?
|
|
22
|
+
|
|
23
|
+
@state_count: Integer?
|
|
24
|
+
|
|
25
|
+
@table_format_version: Integer?
|
|
26
|
+
|
|
27
|
+
@grammar_digest: String?
|
|
28
|
+
|
|
29
|
+
# @rbs () -> void
|
|
30
|
+
def initialize: () -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (String path) -> Report
|
|
33
|
+
def self.collect_file: (String path) -> Report
|
|
34
|
+
|
|
35
|
+
# @rbs (Hash[String, json_value] document, source: String, line: Integer) -> void
|
|
36
|
+
def consume: (Hash[String, json_value] document, source: String, line: Integer) -> void
|
|
37
|
+
|
|
38
|
+
# @rbs (source: String) -> Report
|
|
39
|
+
def finish: (source: String) -> Report
|
|
40
|
+
|
|
41
|
+
private
|
|
42
|
+
|
|
43
|
+
# @rbs (Hash[String, json_value] data, json_value sequence, String source, Integer line) -> void
|
|
44
|
+
def start_session: (Hash[String, json_value] data, json_value sequence, String source, Integer line) -> void
|
|
45
|
+
|
|
46
|
+
# @rbs (String event, Hash[String, json_value] data, json_value sequence, String source, Integer line) -> void
|
|
47
|
+
def consume_session_event: (String event, Hash[String, json_value] data, json_value sequence, String source, Integer line) -> void
|
|
48
|
+
|
|
49
|
+
# @rbs (Hash[String, json_value] data, String source, Integer line)
|
|
50
|
+
# -> [[String, Integer, Integer, Integer], Integer]
|
|
51
|
+
def session_metadata: (Hash[String, json_value] data, String source, Integer line) -> [ [ String, Integer, Integer, Integer ], Integer ]
|
|
52
|
+
|
|
53
|
+
# @rbs ([String, Integer, Integer, Integer] metadata, String source, Integer line) -> void
|
|
54
|
+
def establish_metadata: ([ String, Integer, Integer, Integer ] metadata, String source, Integer line) -> void
|
|
55
|
+
|
|
56
|
+
# @rbs (String source, Integer line) -> void
|
|
57
|
+
def validate_metadata!: (String source, Integer line) -> void
|
|
58
|
+
|
|
59
|
+
# @rbs (json_value id, String source, Integer line) -> void
|
|
60
|
+
def hit_state: (json_value id, String source, Integer line) -> void
|
|
61
|
+
|
|
62
|
+
# @rbs (json_value id, String source, Integer line) -> void
|
|
63
|
+
def hit_production: (json_value id, String source, Integer line) -> void
|
|
64
|
+
|
|
65
|
+
# @rbs (json_value id, Integer total) -> bool
|
|
66
|
+
def valid_id?: (json_value id, Integer total) -> bool
|
|
67
|
+
|
|
68
|
+
# @rbs (Hash[Integer, Integer] hits, Integer id, String kind, String source, Integer line) -> void
|
|
69
|
+
def increment: (Hash[Integer, Integer] hits, Integer id, String kind, String source, Integer line) -> void
|
|
70
|
+
|
|
71
|
+
# @rbs [T] (T? value) -> T
|
|
72
|
+
def required_metadata: [T] (T? value) -> T
|
|
73
|
+
|
|
74
|
+
# @rbs (String source, Integer line, String message) -> bot
|
|
75
|
+
def invalid: (String source, Integer line, String message) -> bot
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Generated from lib/ibex/coverage/event_stream.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Coverage
|
|
5
|
+
# Bounded reader for the public runtime-event JSON Lines protocol.
|
|
6
|
+
module EventStream
|
|
7
|
+
type json_value = String | Integer | Float | bool | nil | Array[json_value] | Hash[String, json_value]
|
|
8
|
+
|
|
9
|
+
interface _CoverageEventInput
|
|
10
|
+
def gets: (Integer) -> String?
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
MAX_LINE_BYTES: Integer
|
|
14
|
+
|
|
15
|
+
MAX_NESTING: Integer
|
|
16
|
+
|
|
17
|
+
ROOT_KEYS: Array[String]
|
|
18
|
+
|
|
19
|
+
EVENT_TYPES: Array[String]
|
|
20
|
+
|
|
21
|
+
# @rbs (String path) { (Hash[String, json_value], Integer) -> void } -> void
|
|
22
|
+
def self.each_file: (String path) { (Hash[String, json_value], Integer) -> void } -> void
|
|
23
|
+
|
|
24
|
+
# @rbs (_CoverageEventInput input, source: String)
|
|
25
|
+
# { (Hash[String, json_value], Integer) -> void } -> void
|
|
26
|
+
def self.each_io: (_CoverageEventInput input, source: String) { (Hash[String, json_value], Integer) -> void } -> void
|
|
27
|
+
|
|
28
|
+
# @rbs (String line, String source, Integer line_number) -> void
|
|
29
|
+
private def self.reject_oversized_line: (String line, String source, Integer line_number) -> void
|
|
30
|
+
|
|
31
|
+
# @rbs (String line, String source, Integer line_number) -> Hash[String, json_value]
|
|
32
|
+
private def self.parse_line: (String line, String source, Integer line_number) -> Hash[String, json_value]
|
|
33
|
+
|
|
34
|
+
# @rbs (Hash[String, json_value] document, String source, Integer line_number) -> void
|
|
35
|
+
private def self.validate_envelope: (Hash[String, json_value] document, String source, Integer line_number) -> void
|
|
36
|
+
|
|
37
|
+
# @rbs (json_value value) -> bool
|
|
38
|
+
private def self.positive_integer?: (json_value value) -> bool
|
|
39
|
+
|
|
40
|
+
# @rbs (String source, Integer line_number, String message) -> bot
|
|
41
|
+
private def self.raise_invalid: (String source, Integer line_number, String message) -> bot
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Generated from lib/ibex/coverage/report.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Coverage
|
|
5
|
+
# Versioned, mergeable runtime coverage result.
|
|
6
|
+
class Report
|
|
7
|
+
type json_value = String | Integer | Float | bool | nil | Array[json_value] | Hash[String, json_value]
|
|
8
|
+
|
|
9
|
+
IDENTIFIER: String
|
|
10
|
+
|
|
11
|
+
SCHEMA_VERSION: Integer
|
|
12
|
+
|
|
13
|
+
MAX_DOCUMENT_BYTES: Integer
|
|
14
|
+
|
|
15
|
+
MAX_TOTAL: Integer
|
|
16
|
+
|
|
17
|
+
MAX_COUNT: Integer
|
|
18
|
+
|
|
19
|
+
ROOT_KEYS: Array[String]
|
|
20
|
+
|
|
21
|
+
TOTAL_KEYS: Array[String]
|
|
22
|
+
|
|
23
|
+
HIT_KEYS: Array[String]
|
|
24
|
+
|
|
25
|
+
attr_reader grammar_digest: String
|
|
26
|
+
|
|
27
|
+
attr_reader table_format_version: Integer
|
|
28
|
+
|
|
29
|
+
attr_reader state_count: Integer
|
|
30
|
+
|
|
31
|
+
attr_reader production_count: Integer
|
|
32
|
+
|
|
33
|
+
attr_reader sessions: Integer
|
|
34
|
+
|
|
35
|
+
attr_reader event_count: Integer
|
|
36
|
+
|
|
37
|
+
attr_reader state_hits: Hash[Integer, Integer]
|
|
38
|
+
|
|
39
|
+
attr_reader production_hits: Hash[Integer, Integer]
|
|
40
|
+
|
|
41
|
+
# rubocop:disable Layout/LineLength
|
|
42
|
+
# @rbs (grammar_digest: String, table_format_version: Integer, state_count: Integer, production_count: Integer, sessions: Integer, event_count: Integer, state_hits: Hash[Integer, Integer], production_hits: Hash[Integer, Integer]) -> void
|
|
43
|
+
def initialize: (grammar_digest: String, table_format_version: Integer, state_count: Integer, production_count: Integer, sessions: Integer, event_count: Integer, state_hits: Hash[Integer, Integer], production_hits: Hash[Integer, Integer]) -> void
|
|
44
|
+
|
|
45
|
+
# @rbs () -> Hash[String, json_value]
|
|
46
|
+
def to_h: () -> Hash[String, json_value]
|
|
47
|
+
|
|
48
|
+
# @rbs (*Object) -> String
|
|
49
|
+
def to_json: (*Object) -> String
|
|
50
|
+
|
|
51
|
+
# @rbs (String path) -> Report
|
|
52
|
+
def self.load_file: (String path) -> Report
|
|
53
|
+
|
|
54
|
+
# @rbs (json_value value, source: String) -> Report
|
|
55
|
+
def self.from_h: (json_value value, source: String) -> Report
|
|
56
|
+
|
|
57
|
+
# @rbs (Array[Report] reports) -> Report
|
|
58
|
+
def self.merge: (Array[Report] reports) -> Report
|
|
59
|
+
|
|
60
|
+
private
|
|
61
|
+
|
|
62
|
+
# @rbs (json_value input) -> String
|
|
63
|
+
def validate_digest: (json_value input) -> String
|
|
64
|
+
|
|
65
|
+
# @rbs (json_value input, String name) -> Integer
|
|
66
|
+
def positive_integer: (json_value input, String name) -> Integer
|
|
67
|
+
|
|
68
|
+
# @rbs (json_value input, String name, minimum: Integer) -> Integer
|
|
69
|
+
def total_integer: (json_value input, String name, minimum: Integer) -> Integer
|
|
70
|
+
|
|
71
|
+
# @rbs (Hash[Integer, Integer] input, Integer total, String kind) -> Hash[Integer, Integer]
|
|
72
|
+
def validate_hits: (Hash[Integer, Integer] input, Integer total, String kind) -> Hash[Integer, Integer]
|
|
73
|
+
|
|
74
|
+
# @rbs (Hash[Integer, Integer] hits) -> Array[Hash[String, Integer]]
|
|
75
|
+
def hit_documents: (Hash[Integer, Integer] hits) -> Array[Hash[String, Integer]]
|
|
76
|
+
|
|
77
|
+
# @rbs () -> void
|
|
78
|
+
def validate_event_bounds: () -> void
|
|
79
|
+
|
|
80
|
+
# @rbs (json_value value, String source, String name) -> Hash[String, json_value]
|
|
81
|
+
private def self.string_hash: (json_value value, String source, String name) -> Hash[String, json_value]
|
|
82
|
+
|
|
83
|
+
# @rbs (json_value value, json_value total, String source, String kind) -> Hash[Integer, Integer]
|
|
84
|
+
private def self.parse_hits: (json_value value, json_value total, String source, String kind) -> Hash[Integer, Integer]
|
|
85
|
+
|
|
86
|
+
# @rbs (json_value entry, json_value total, Integer previous, String source, String kind) -> [Integer, Integer]
|
|
87
|
+
private def self.parse_hit: (json_value entry, json_value total, Integer previous, String source, String kind) -> [ Integer, Integer ]
|
|
88
|
+
|
|
89
|
+
# @rbs (Report expected, Report actual) -> void
|
|
90
|
+
private def self.ensure_compatible: (Report expected, Report actual) -> void
|
|
91
|
+
|
|
92
|
+
# @rbs (Array[Integer] values, String name) -> Integer
|
|
93
|
+
private def self.checked_sum: (Array[Integer] values, String name) -> Integer
|
|
94
|
+
|
|
95
|
+
# @rbs (Array[Hash[Integer, Integer]] collections, String kind) -> Hash[Integer, Integer]
|
|
96
|
+
private def self.merge_hits: (Array[Hash[Integer, Integer]] collections, String kind) -> Hash[Integer, Integer]
|
|
97
|
+
|
|
98
|
+
# @rbs (String source, String message) -> bot
|
|
99
|
+
private def self.invalid: (String source, String message) -> bot
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Generated from lib/ibex/coverage/runtime_event_validator.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Coverage
|
|
5
|
+
# Dependency-free structural validation for runtime-event schema version 1.
|
|
6
|
+
module RuntimeEventValidator
|
|
7
|
+
type json_value = String | Integer | Float | bool | nil | Array[json_value] | Hash[String, json_value]
|
|
8
|
+
|
|
9
|
+
TOKEN_KEYS: Array[String]
|
|
10
|
+
|
|
11
|
+
LOCATION_KEYS: Array[String]
|
|
12
|
+
|
|
13
|
+
VALIDATORS: Hash[String, Symbol]
|
|
14
|
+
|
|
15
|
+
# @rbs (Hash[String, json_value] document) -> bool
|
|
16
|
+
def self.valid?: (Hash[String, json_value] document) -> bool
|
|
17
|
+
|
|
18
|
+
# @rbs (Hash[String, json_value] data) -> bool
|
|
19
|
+
private def self.valid_start?: (Hash[String, json_value] data) -> bool
|
|
20
|
+
|
|
21
|
+
# @rbs (Hash[String, json_value] data) -> bool
|
|
22
|
+
private def self.valid_shift?: (Hash[String, json_value] data) -> bool
|
|
23
|
+
|
|
24
|
+
# @rbs (Hash[String, json_value] data) -> bool
|
|
25
|
+
private def self.valid_reduce?: (Hash[String, json_value] data) -> bool
|
|
26
|
+
|
|
27
|
+
# @rbs (Hash[String, json_value] data, reasons: Array[String]) -> bool
|
|
28
|
+
private def self.valid_token_event?: (Hash[String, json_value] data, reasons: Array[String]) -> bool
|
|
29
|
+
|
|
30
|
+
# @rbs (Hash[String, json_value] data) -> bool
|
|
31
|
+
private def self.valid_error?: (Hash[String, json_value] data) -> bool
|
|
32
|
+
|
|
33
|
+
# @rbs (Hash[String, json_value] data) -> bool
|
|
34
|
+
private def self.valid_discard?: (Hash[String, json_value] data) -> bool
|
|
35
|
+
|
|
36
|
+
# @rbs (Hash[String, json_value] data) -> bool
|
|
37
|
+
private def self.valid_reject?: (Hash[String, json_value] data) -> bool
|
|
38
|
+
|
|
39
|
+
# @rbs (Hash[String, json_value] data) -> bool
|
|
40
|
+
private def self.valid_recover?: (Hash[String, json_value] data) -> bool
|
|
41
|
+
|
|
42
|
+
# @rbs (Hash[String, json_value] data) -> bool
|
|
43
|
+
private def self.valid_accept?: (Hash[String, json_value] data) -> bool
|
|
44
|
+
|
|
45
|
+
# @rbs (Hash[String, json_value] data) -> bool
|
|
46
|
+
private def self.valid_token_fields?: (Hash[String, json_value] data) -> bool
|
|
47
|
+
|
|
48
|
+
# @rbs (json_value value) -> bool
|
|
49
|
+
private def self.summary?: (json_value value) -> bool
|
|
50
|
+
|
|
51
|
+
# @rbs (json_value value) -> bool
|
|
52
|
+
private def self.composite_summary?: (json_value value) -> bool
|
|
53
|
+
|
|
54
|
+
# @rbs (json_value value) -> bool
|
|
55
|
+
private def self.location?: (json_value value) -> bool
|
|
56
|
+
|
|
57
|
+
# @rbs (Hash[String, json_value] data, Array[String] keys) -> bool
|
|
58
|
+
private def self.exact_keys?: (Hash[String, json_value] data, Array[String] keys) -> bool
|
|
59
|
+
|
|
60
|
+
# @rbs (json_value value) -> bool
|
|
61
|
+
private def self.integer?: (json_value value) -> bool
|
|
62
|
+
|
|
63
|
+
# @rbs (json_value value) -> bool
|
|
64
|
+
private def self.optional_integer?: (json_value value) -> bool
|
|
65
|
+
|
|
66
|
+
# @rbs (json_value value) -> bool
|
|
67
|
+
private def self.optional_string?: (json_value value) -> bool
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Generated from lib/ibex/delta_reducer.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Deterministic, trial-bounded delta debugging over an ordered sequence.
|
|
5
|
+
class DeltaReducer
|
|
6
|
+
# Immutable outcome of a bounded reduction.
|
|
7
|
+
class Result
|
|
8
|
+
attr_reader items: Array[untyped]
|
|
9
|
+
|
|
10
|
+
attr_reader trials: Integer
|
|
11
|
+
|
|
12
|
+
attr_reader complete: bool
|
|
13
|
+
|
|
14
|
+
attr_reader original_size: Integer
|
|
15
|
+
|
|
16
|
+
# @rbs (items: Array[untyped], trials: Integer, complete: bool, original_size: Integer) -> void
|
|
17
|
+
def initialize: (items: Array[untyped], trials: Integer, complete: bool, original_size: Integer) -> void
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# @rbs (?max_trials: Integer) -> void
|
|
21
|
+
def initialize: (?max_trials: Integer) -> void
|
|
22
|
+
|
|
23
|
+
# `failure` must return true while the failure of interest is preserved.
|
|
24
|
+
# @rbs [T] (Array[T] items) { (Array[T]) -> bool } -> Result
|
|
25
|
+
def minimize: [T] (Array[T] items) { (Array[T]) -> bool } -> Result
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
# @rbs (Integer length, Integer count) -> Array[Range[Integer]]
|
|
30
|
+
def partitions: (Integer length, Integer count) -> Array[Range[Integer]]
|
|
31
|
+
|
|
32
|
+
# @rbs (Integer trials) -> Integer
|
|
33
|
+
def checked_trial!: (Integer trials) -> Integer
|
|
34
|
+
|
|
35
|
+
# @rbs (Array[untyped] items, Integer trials, bool complete, Integer original_size) -> Result
|
|
36
|
+
def result: (Array[untyped] items, Integer trials, bool complete, Integer original_size) -> Result
|
|
37
|
+
end
|
|
38
|
+
end
|
data/sig/ibex/diff.rbs
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Generated from lib/ibex/diff.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Deterministic grammar and automaton change classification.
|
|
5
|
+
class Diff
|
|
6
|
+
# @rbs (IR::Automaton before, IR::Automaton after) -> void
|
|
7
|
+
def initialize: (IR::Automaton before, IR::Automaton after) -> void
|
|
8
|
+
|
|
9
|
+
# @rbs () -> Hash[Symbol, Object?]
|
|
10
|
+
def to_h: () -> Hash[Symbol, Object?]
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
# @rbs (Hash[String, Object?] before, Hash[String, Object?] after) -> Hash[Symbol, Object?]
|
|
15
|
+
def classify: (Hash[String, Object?] before, Hash[String, Object?] after) -> Hash[Symbol, Object?]
|
|
16
|
+
|
|
17
|
+
# @rbs (IR::Grammar grammar) -> Hash[String, Object?]
|
|
18
|
+
def symbol_records: (IR::Grammar grammar) -> Hash[String, Object?]
|
|
19
|
+
|
|
20
|
+
# @rbs (IR::Grammar grammar) -> Hash[String, Object?]
|
|
21
|
+
def rule_records: (IR::Grammar grammar) -> Hash[String, Object?]
|
|
22
|
+
|
|
23
|
+
# @rbs (IR::Grammar grammar, IR::Production production) -> Hash[Symbol, Object?]
|
|
24
|
+
def production_record: (IR::Grammar grammar, IR::Production production) -> Hash[Symbol, Object?]
|
|
25
|
+
|
|
26
|
+
# @rbs (IR::Automaton automaton) -> Hash[String, Object?]
|
|
27
|
+
def conflict_records: (IR::Automaton automaton) -> Hash[String, Object?]
|
|
28
|
+
|
|
29
|
+
# @rbs (IR::Grammar grammar, IR::conflict conflict) -> String
|
|
30
|
+
def conflict_identity: (IR::Grammar grammar, IR::conflict conflict) -> String
|
|
31
|
+
|
|
32
|
+
# @rbs (IR::Grammar grammar, Integer id) -> String
|
|
33
|
+
def production_shape: (IR::Grammar grammar, Integer id) -> String
|
|
34
|
+
|
|
35
|
+
# @rbs (IR::Grammar grammar, Integer id) -> String
|
|
36
|
+
def symbol_name: (IR::Grammar grammar, Integer id) -> String
|
|
37
|
+
|
|
38
|
+
# @rbs (IR::Grammar grammar) -> Hash[String, Object?]
|
|
39
|
+
def warning_records: (IR::Grammar grammar) -> Hash[String, Object?]
|
|
40
|
+
|
|
41
|
+
# @rbs () -> Hash[Symbol, Hash[Symbol, Integer]]
|
|
42
|
+
def numeric_metrics: () -> Hash[Symbol, Hash[Symbol, Integer]]
|
|
43
|
+
|
|
44
|
+
# @rbs (Integer before, Integer after) -> Hash[Symbol, Integer]
|
|
45
|
+
def change: (Integer before, Integer after) -> Hash[Symbol, Integer]
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Generated from lib/ibex/equiv/machine.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
class Equiv
|
|
5
|
+
# Immutable, semantic-action-free LR state-stack machine.
|
|
6
|
+
class Machine
|
|
7
|
+
class BudgetExceeded < Ibex::Error
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# One product-search component.
|
|
11
|
+
class Configuration
|
|
12
|
+
attr_reader stack: Array[Integer]
|
|
13
|
+
|
|
14
|
+
attr_reader status: Symbol?
|
|
15
|
+
|
|
16
|
+
attr_reader actions: Integer
|
|
17
|
+
|
|
18
|
+
attr_reader reductions: Array[Integer]
|
|
19
|
+
|
|
20
|
+
# @rbs (stack: Array[Integer], status: Symbol?, actions: Integer, ?reductions: Array[Integer]) -> void
|
|
21
|
+
def initialize: (stack: Array[Integer], status: Symbol?, actions: Integer, ?reductions: Array[Integer]) -> void
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @rbs (IR::Automaton automaton, max_actions: Integer, max_stack: Integer) -> void
|
|
25
|
+
def initialize: (IR::Automaton automaton, max_actions: Integer, max_stack: Integer) -> void
|
|
26
|
+
|
|
27
|
+
# @rbs () -> Configuration
|
|
28
|
+
def start: () -> Configuration
|
|
29
|
+
|
|
30
|
+
# @rbs (Array[String] tokens) -> Configuration
|
|
31
|
+
def run: (Array[String] tokens) -> Configuration
|
|
32
|
+
|
|
33
|
+
# @rbs (Configuration configuration, String token) -> Configuration
|
|
34
|
+
def push: (Configuration configuration, String token) -> Configuration
|
|
35
|
+
|
|
36
|
+
# @rbs (Configuration configuration) -> Configuration
|
|
37
|
+
def finish: (Configuration configuration) -> Configuration
|
|
38
|
+
|
|
39
|
+
private
|
|
40
|
+
|
|
41
|
+
# @rbs (Configuration configuration, Integer token_id, eof: bool) -> Configuration
|
|
42
|
+
def consume: (Configuration configuration, Integer token_id, eof: bool) -> Configuration
|
|
43
|
+
|
|
44
|
+
# @rbs (Array[Integer] stack, Integer production_id) -> void
|
|
45
|
+
def apply_reduction!: (Array[Integer] stack, Integer production_id) -> void
|
|
46
|
+
|
|
47
|
+
# @rbs (Integer actions) -> void
|
|
48
|
+
def enforce_action_budget!: (Integer actions) -> void
|
|
49
|
+
|
|
50
|
+
# @rbs (Array[Integer] stack) -> void
|
|
51
|
+
def enforce_stack_budget!: (Array[Integer] stack) -> void
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|