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
data/sig/ibex/equiv.rbs
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Generated from lib/ibex/equiv.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Bounded language comparison over two immutable parser automata.
|
|
5
|
+
# rubocop:disable Metrics/ClassLength -- the three comparison strategies share one report and budget contract.
|
|
6
|
+
class Equiv
|
|
7
|
+
type tree_node_signature = [ String, Array[String] ]
|
|
8
|
+
|
|
9
|
+
type tree_trace_entry = [ String, Array[String], tree_node_signature? ]
|
|
10
|
+
|
|
11
|
+
type terminal_signature = [ String, [ Symbol, Integer ]? ]
|
|
12
|
+
|
|
13
|
+
type production_signature = [ String, Array[String], String? ]
|
|
14
|
+
|
|
15
|
+
CAVEAT: String
|
|
16
|
+
|
|
17
|
+
DEFAULT_MAX_ACTIONS: Integer
|
|
18
|
+
|
|
19
|
+
DEFAULT_MAX_STACK: Integer
|
|
20
|
+
|
|
21
|
+
class Difference < Ibex::Error
|
|
22
|
+
attr_reader details: Hash[Symbol, Object?]
|
|
23
|
+
|
|
24
|
+
# @rbs (Hash[Symbol, Object?] details) -> void
|
|
25
|
+
def initialize: (Hash[Symbol, Object?] details) -> void
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class BudgetExceeded < Ibex::Error
|
|
29
|
+
attr_reader details: Hash[Symbol, Object?]
|
|
30
|
+
|
|
31
|
+
# @rbs (Hash[Symbol, Object?] details) -> void
|
|
32
|
+
def initialize: (Hash[Symbol, Object?] details) -> void
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# @rbs (IR::Automaton left, IR::Automaton right, ?sample_count: Integer, ?seed: Integer,
|
|
36
|
+
# ?max_tokens: Integer, ?max_configurations: Integer, ?max_actions: Integer, ?max_stack: Integer,
|
|
37
|
+
# ?rule_map: Hash[String, String]) -> void
|
|
38
|
+
def initialize: (IR::Automaton left, IR::Automaton right, ?sample_count: Integer, ?seed: Integer, ?max_tokens: Integer, ?max_configurations: Integer, ?max_actions: Integer, ?max_stack: Integer, ?rule_map: Hash[String, String]) -> void
|
|
39
|
+
|
|
40
|
+
# @rbs () -> Hash[Symbol, Object?]
|
|
41
|
+
def run: () -> Hash[Symbol, Object?]
|
|
42
|
+
|
|
43
|
+
private
|
|
44
|
+
|
|
45
|
+
# @rbs () -> Integer
|
|
46
|
+
def compare_samples: () -> Integer
|
|
47
|
+
|
|
48
|
+
# @rbs (IR::Grammar grammar, Integer seed) -> Array[Array[String]]
|
|
49
|
+
def generated_samples: (IR::Grammar grammar, Integer seed) -> Array[Array[String]]
|
|
50
|
+
|
|
51
|
+
# @rbs () -> Integer
|
|
52
|
+
def search_product: () -> Integer
|
|
53
|
+
|
|
54
|
+
# @rbs (Array[String] tokens, method: String) -> void
|
|
55
|
+
def compare_tokens!: (Array[String] tokens, method: String) -> void
|
|
56
|
+
|
|
57
|
+
# @rbs (Machine::Configuration left, Machine::Configuration right, Array[String] tokens) -> void
|
|
58
|
+
def compare_configurations!: (Machine::Configuration left, Machine::Configuration right, Array[String] tokens) -> void
|
|
59
|
+
|
|
60
|
+
# @rbs (Machine::Configuration left, Machine::Configuration right, Array[String] tokens, String method) -> void
|
|
61
|
+
def compare_results!: (Machine::Configuration left, Machine::Configuration right, Array[String] tokens, String method) -> void
|
|
62
|
+
|
|
63
|
+
# @rbs (Array[String] tokens, Symbol? left, Symbol? right, String method) -> bot
|
|
64
|
+
def raise_language_difference: (Array[String] tokens, Symbol? left, Symbol? right, String method) -> bot
|
|
65
|
+
|
|
66
|
+
# @rbs () -> bool
|
|
67
|
+
def structural_identity?: () -> bool
|
|
68
|
+
|
|
69
|
+
# @rbs () -> bool
|
|
70
|
+
def tree_structural_identity?: () -> bool
|
|
71
|
+
|
|
72
|
+
# @rbs (IR::Grammar grammar) -> Array[tree_node_signature]
|
|
73
|
+
def tree_grammar_signature: (IR::Grammar grammar) -> Array[tree_node_signature]
|
|
74
|
+
|
|
75
|
+
# @rbs (IR::node_annotation? node) -> tree_node_signature?
|
|
76
|
+
def node_signature: (IR::node_annotation? node) -> tree_node_signature?
|
|
77
|
+
|
|
78
|
+
# @rbs (IR::Automaton automaton, Machine::Configuration configuration, map_left: bool) -> Array[tree_trace_entry]
|
|
79
|
+
def tree_trace: (IR::Automaton automaton, Machine::Configuration configuration, map_left: bool) -> Array[tree_trace_entry]
|
|
80
|
+
|
|
81
|
+
# @rbs (IR::Grammar grammar, map_left: bool) -> Hash[Symbol, Object?]
|
|
82
|
+
def grammar_signature: (IR::Grammar grammar, map_left: bool) -> Hash[Symbol, Object?]
|
|
83
|
+
|
|
84
|
+
# @rbs (IR::Grammar grammar, map_left: bool) -> Hash[Symbol, Object?]
|
|
85
|
+
def recovery_signature: (IR::Grammar grammar, map_left: bool) -> Hash[Symbol, Object?]
|
|
86
|
+
|
|
87
|
+
# @rbs (IR::Grammar grammar) -> Array[terminal_signature]
|
|
88
|
+
def terminal_signatures: (IR::Grammar grammar) -> Array[terminal_signature]
|
|
89
|
+
|
|
90
|
+
# @rbs (IR::Grammar grammar, map_left: bool) -> Array[production_signature]
|
|
91
|
+
def production_signatures: (IR::Grammar grammar, map_left: bool) -> Array[production_signature]
|
|
92
|
+
|
|
93
|
+
# @rbs (IR::Grammar grammar, IR::Production production, map_left: bool) -> production_signature
|
|
94
|
+
def production_signature: (IR::Grammar grammar, IR::Production production, map_left: bool) -> production_signature
|
|
95
|
+
|
|
96
|
+
# @rbs (IR::Grammar grammar, Integer id) -> String
|
|
97
|
+
def symbol_name: (IR::Grammar grammar, Integer id) -> String
|
|
98
|
+
|
|
99
|
+
# @rbs (IR::Grammar grammar, String name, map_left: bool) -> String
|
|
100
|
+
def mapped_name: (IR::Grammar grammar, String name, map_left: bool) -> String
|
|
101
|
+
|
|
102
|
+
# @rbs () -> void
|
|
103
|
+
def validate_rule_map!: () -> void
|
|
104
|
+
|
|
105
|
+
# @rbs () -> void
|
|
106
|
+
def verify_inputs!: () -> void
|
|
107
|
+
|
|
108
|
+
# @rbs () -> Array[String]
|
|
109
|
+
def terminal_alphabet: () -> Array[String]
|
|
110
|
+
|
|
111
|
+
# @rbs (Machine::Configuration left, Machine::Configuration right) -> Array[Object?]
|
|
112
|
+
def product_key: (Machine::Configuration left, Machine::Configuration right) -> Array[Object?]
|
|
113
|
+
|
|
114
|
+
# @rbs (Machine::Configuration left, Machine::Configuration right) -> bool
|
|
115
|
+
def both_rejected?: (Machine::Configuration left, Machine::Configuration right) -> bool
|
|
116
|
+
|
|
117
|
+
# @rbs (structural: bool, samples: Integer, configurations: Integer) -> untyped
|
|
118
|
+
def successful_report: (structural: bool, samples: Integer, configurations: Integer) -> untyped
|
|
119
|
+
|
|
120
|
+
# @rbs () -> bool
|
|
121
|
+
def tree_requested?: () -> bool
|
|
122
|
+
|
|
123
|
+
# @rbs () -> Hash[Symbol, Integer]
|
|
124
|
+
def bounds: () -> Hash[Symbol, Integer]
|
|
125
|
+
|
|
126
|
+
# @rbs (Ibex::Error error) -> bool
|
|
127
|
+
def sample_budget_error?: (Ibex::Error error) -> bool
|
|
128
|
+
end
|
|
129
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/parser.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# Strict line-oriented parser for the ibex-messages v1 and v2 formats.
|
|
6
|
+
class Parser
|
|
7
|
+
include ParserV2
|
|
8
|
+
|
|
9
|
+
ESCAPES: untyped
|
|
10
|
+
|
|
11
|
+
@lines: Array[String]
|
|
12
|
+
|
|
13
|
+
@file: String
|
|
14
|
+
|
|
15
|
+
# @rbs (String source, file: String) -> void
|
|
16
|
+
def initialize: (String source, file: String) -> void
|
|
17
|
+
|
|
18
|
+
# @rbs () -> Document
|
|
19
|
+
def parse: () -> Document
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
# @rbs () -> Document
|
|
24
|
+
def parse_v1: () -> Document
|
|
25
|
+
|
|
26
|
+
# @rbs () -> Integer
|
|
27
|
+
def validate_header: () -> Integer
|
|
28
|
+
|
|
29
|
+
# @rbs (Hash[Integer, Integer] declarations, Integer state, Integer index, String line) -> void
|
|
30
|
+
def reject_duplicate: (Hash[Integer, Integer] declarations, Integer state, Integer index, String line) -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (Integer opening_index, Integer state, :active | :removed status) -> [Entry, Integer]
|
|
33
|
+
def parse_entry: (Integer opening_index, Integer state, :active | :removed status) -> [ Entry, Integer ]
|
|
34
|
+
|
|
35
|
+
# @rbs (Array[String] message_lines, Integer opening_index, Integer index, Integer state,
|
|
36
|
+
# :active | :removed status) -> [Entry, Integer]
|
|
37
|
+
def close_entry: (Array[String] message_lines, Integer opening_index, Integer index, Integer state, :active | :removed status) -> [ Entry, Integer ]
|
|
38
|
+
|
|
39
|
+
# @rbs (Array[String] message_lines, String line, Integer index) -> void
|
|
40
|
+
def read_entry_line: (Array[String] message_lines, String line, Integer index) -> void
|
|
41
|
+
|
|
42
|
+
# @rbs (String content, Integer line, Integer content_column) -> String
|
|
43
|
+
def decode_line: (String content, Integer line, Integer content_column) -> String
|
|
44
|
+
|
|
45
|
+
# @rbs (String line) -> bool
|
|
46
|
+
def ignorable?: (String line) -> bool
|
|
47
|
+
|
|
48
|
+
# @rbs () -> String
|
|
49
|
+
def top_level_expectation: () -> String
|
|
50
|
+
|
|
51
|
+
# @rbs (String line) -> Integer
|
|
52
|
+
def column: (String line) -> Integer
|
|
53
|
+
|
|
54
|
+
# @rbs (Integer line, Integer column, String message) -> bot
|
|
55
|
+
def fail_at: (Integer line, Integer column, String message) -> bot
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/parser_v2.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# Sentence-keyed ibex-messages v2 parsing, mixed into Parser so both
|
|
6
|
+
# versions share UTF-8, escape, and positioned-diagnostic helpers.
|
|
7
|
+
module ParserV2
|
|
8
|
+
private def ignorable?: (String) -> bool
|
|
9
|
+
|
|
10
|
+
private def column: (String) -> Integer
|
|
11
|
+
|
|
12
|
+
private def fail_at: (Integer, Integer, String) -> bot
|
|
13
|
+
|
|
14
|
+
private def decode_line: (String, Integer, Integer) -> String
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
# @rbs () -> Document
|
|
19
|
+
def parse_v2: () -> Document
|
|
20
|
+
|
|
21
|
+
# @rbs (Entry entry, Array[Entry] entries, Hash[String, Integer] identifiers,
|
|
22
|
+
# Hash[String, Integer] keys) -> void
|
|
23
|
+
def record_v2_entry: (Entry entry, Array[Entry] entries, Hash[String, Integer] identifiers, Hash[String, Integer] keys) -> void
|
|
24
|
+
|
|
25
|
+
# @rbs (Integer opening_index) -> [Entry, Integer]
|
|
26
|
+
def parse_v2_entry: (Integer opening_index) -> [ Entry, Integer ]
|
|
27
|
+
|
|
28
|
+
# @rbs (Integer opening_index) ->
|
|
29
|
+
# [:active | :unreachable | :removed, Array[String]?, Integer?]
|
|
30
|
+
def parse_v2_opening: (Integer opening_index) -> [ :active | :unreachable | :removed, Array[String]?, Integer? ]
|
|
31
|
+
|
|
32
|
+
# @rbs (Integer opening_index, :active | :unreachable | :removed status, Array[String]? sentence,
|
|
33
|
+
# Integer? state) -> [Entry, Integer]
|
|
34
|
+
def read_v2_entry_body: (Integer opening_index, :active | :unreachable | :removed status, Array[String]? sentence, Integer? state) -> [ Entry, Integer ]
|
|
35
|
+
|
|
36
|
+
# @rbs (Integer opening_index, Integer index, :active | :unreachable | :removed status,
|
|
37
|
+
# Array[String]? sentence, Integer? state, String? error_id, String? entry_name,
|
|
38
|
+
# Array[String] message_lines) -> [Entry, Integer]
|
|
39
|
+
def close_v2_entry: (Integer opening_index, Integer index, :active | :unreachable | :removed status, Array[String]? sentence, Integer? state, String? error_id, String? entry_name, Array[String] message_lines) -> [ Entry, Integer ]
|
|
40
|
+
|
|
41
|
+
# @rbs (String line, Integer index, String? error_id, Integer? state, String? entry_name,
|
|
42
|
+
# Array[String] message_lines) -> [String?, Integer?, String?]
|
|
43
|
+
def read_v2_metadata: (String line, Integer index, String? error_id, Integer? state, String? entry_name, Array[String] message_lines) -> [ String?, Integer?, String? ]
|
|
44
|
+
|
|
45
|
+
# @rbs (Array[String] message_lines, String line, Integer index) -> void
|
|
46
|
+
def append_v2_message_line: (Array[String] message_lines, String line, Integer index) -> void
|
|
47
|
+
|
|
48
|
+
# @rbs (String source, Integer line) -> Array[String]
|
|
49
|
+
def parse_sentence: (String source, Integer line) -> Array[String]
|
|
50
|
+
|
|
51
|
+
# @rbs (String source, Integer index) -> Integer
|
|
52
|
+
def skip_sentence_space: (String source, Integer index) -> Integer
|
|
53
|
+
|
|
54
|
+
# @rbs (String source, Integer index, Integer line) -> [String, Integer]
|
|
55
|
+
def read_sentence_token: (String source, Integer index, Integer line) -> [ String, Integer ]
|
|
56
|
+
|
|
57
|
+
# @rbs (String source, Integer index, String quote, Integer line) -> Integer
|
|
58
|
+
def quoted_token_end: (String source, Integer index, String quote, Integer line) -> Integer
|
|
59
|
+
|
|
60
|
+
# @rbs (String source, Integer index, String quote, Integer line) -> Integer
|
|
61
|
+
def scan_quoted_token: (String source, Integer index, String quote, Integer line) -> Integer
|
|
62
|
+
|
|
63
|
+
# @rbs (Hash[String, Integer] declarations, String key, Integer line, String label) -> void
|
|
64
|
+
def reject_v2_duplicate: (Hash[String, Integer] declarations, String key, Integer line, String label) -> void
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/renderer.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# @rbs (IR::Automaton automaton, Array[Entry] entries) -> String
|
|
6
|
+
def self?.render_entries: (IR::Automaton automaton, Array[Entry] entries) -> String
|
|
7
|
+
|
|
8
|
+
# @rbs (Array[String] lines, IR::Automaton automaton, Entry entry) -> void
|
|
9
|
+
def append_entry: (Array[String] lines, IR::Automaton automaton, Entry entry) -> void
|
|
10
|
+
|
|
11
|
+
# @rbs (Entry entry) -> String
|
|
12
|
+
def entry_heading: (Entry entry) -> String
|
|
13
|
+
|
|
14
|
+
# @rbs (Array[String] lines, IR::Automaton automaton, Entry entry) -> void
|
|
15
|
+
def append_expected_tokens: (Array[String] lines, IR::Automaton automaton, Entry entry) -> void
|
|
16
|
+
|
|
17
|
+
# @rbs (String line) -> String
|
|
18
|
+
def encode_line: (String line) -> String
|
|
19
|
+
|
|
20
|
+
# @rbs (IR::Automaton automaton, IR::AutomatonState state) -> Array[String]
|
|
21
|
+
def expected_tokens: (IR::Automaton automaton, IR::AutomatonState state) -> Array[String]
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/sentence_search.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# Finds deterministic shortest token sentences that reach each syntax
|
|
6
|
+
# error state without running semantic actions.
|
|
7
|
+
class SentenceSearch
|
|
8
|
+
DEFAULT_MAX_TOKENS: Integer
|
|
9
|
+
|
|
10
|
+
DEFAULT_MAX_CONFIGURATIONS: Integer
|
|
11
|
+
|
|
12
|
+
class Witness < Struct[String | Array[String] | Integer]
|
|
13
|
+
attr_accessor entry(): String
|
|
14
|
+
|
|
15
|
+
attr_accessor tokens(): Array[String]
|
|
16
|
+
|
|
17
|
+
attr_accessor state(): Integer
|
|
18
|
+
|
|
19
|
+
def self.new: (?entry: String, ?tokens: Array[String], ?state: Integer) -> instance
|
|
20
|
+
| ({ ?entry: String, ?tokens: Array[String], ?state: Integer }) -> instance
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
@explored: Integer
|
|
24
|
+
|
|
25
|
+
@input_candidates: Array[IR::GrammarSymbol]
|
|
26
|
+
|
|
27
|
+
@candidates: Array[IR::GrammarSymbol]
|
|
28
|
+
|
|
29
|
+
@max_configurations: Integer
|
|
30
|
+
|
|
31
|
+
@max_tokens: Integer
|
|
32
|
+
|
|
33
|
+
@grammar: IR::Grammar
|
|
34
|
+
|
|
35
|
+
@automaton: IR::Automaton
|
|
36
|
+
|
|
37
|
+
# @rbs (IR::Automaton automaton, ?max_tokens: Integer, ?max_configurations: Integer) -> void
|
|
38
|
+
def initialize: (IR::Automaton automaton, ?max_tokens: Integer, ?max_configurations: Integer) -> void
|
|
39
|
+
|
|
40
|
+
# @rbs () -> Hash[Integer, Witness]
|
|
41
|
+
def all: () -> Hash[Integer, Witness]
|
|
42
|
+
|
|
43
|
+
# @rbs (Array[String] tokens, ?entry: String?) -> Integer?
|
|
44
|
+
def state_for: (Array[String] tokens, ?entry: String?) -> Integer?
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
|
|
48
|
+
# @rbs (Array[Integer] states, String name, bool final) ->
|
|
49
|
+
# [Symbol, Array[Integer] | Integer | nil]
|
|
50
|
+
def consume_sentence_token: (Array[Integer] states, String name, bool final) -> [ Symbol, Array[Integer] | Integer | nil ]
|
|
51
|
+
|
|
52
|
+
# @rbs (String name, bool final) -> IR::GrammarSymbol?
|
|
53
|
+
def sentence_symbol: (String name, bool final) -> IR::GrammarSymbol?
|
|
54
|
+
|
|
55
|
+
# @rbs () -> Array[IR::GrammarSymbol]
|
|
56
|
+
def grammar_terminals: () -> Array[IR::GrammarSymbol]
|
|
57
|
+
|
|
58
|
+
# @rbs (String entry, Integer initial_state, Hash[Integer, bool] targets,
|
|
59
|
+
# Hash[Integer, Witness] witnesses) -> void
|
|
60
|
+
def search_entry: (String entry, Integer initial_state, Hash[Integer, bool] targets, Hash[Integer, Witness] witnesses) -> void
|
|
61
|
+
|
|
62
|
+
# @rbs (String entry, Array[Integer] states, Array[String] prefix, Hash[Integer, bool] targets,
|
|
63
|
+
# Hash[Integer, Witness] witnesses) -> void
|
|
64
|
+
def collect_errors: (String entry, Array[Integer] states, Array[String] prefix, Hash[Integer, bool] targets, Hash[Integer, Witness] witnesses) -> void
|
|
65
|
+
|
|
66
|
+
# @rbs (Array[[Array[Integer], Array[String]]] queue, Hash[Array[Integer], bool] visited,
|
|
67
|
+
# Array[Integer] states, Array[String] prefix) -> void
|
|
68
|
+
def enqueue_shifts: (Array[[ Array[Integer], Array[String] ]] queue, Hash[Array[Integer], bool] visited, Array[Integer] states, Array[String] prefix) -> void
|
|
69
|
+
|
|
70
|
+
# @rbs (Array[Integer] initial, Integer token_id) -> [Symbol, Array[Integer] | Integer | nil]
|
|
71
|
+
def advance: (Array[Integer] initial, Integer token_id) -> [ Symbol, Array[Integer] | Integer | nil ]
|
|
72
|
+
|
|
73
|
+
# @rbs (Array[Integer] states, Integer production_id) -> Array[Integer]?
|
|
74
|
+
def reduce_stack: (Array[Integer] states, Integer production_id) -> Array[Integer]?
|
|
75
|
+
|
|
76
|
+
# @rbs () -> void
|
|
77
|
+
def count_configuration!: () -> void
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/update.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# @rbs (IR::Automaton automaton, ?existing: Document?, ?max_tokens: Integer,
|
|
6
|
+
# ?max_configurations: Integer) -> String
|
|
7
|
+
def self?.render: (IR::Automaton automaton, ?existing: Document?, ?max_tokens: Integer, ?max_configurations: Integer) -> String
|
|
8
|
+
|
|
9
|
+
# @rbs (IR::Automaton automaton, ?existing: Document?, ?max_tokens: Integer,
|
|
10
|
+
# ?max_configurations: Integer) -> Update
|
|
11
|
+
def self?.update: (IR::Automaton automaton, ?existing: Document?, ?max_tokens: Integer, ?max_configurations: Integer) -> Update
|
|
12
|
+
|
|
13
|
+
# @rbs (Array[Entry] entries, Hash[Integer, bool] covered,
|
|
14
|
+
# Hash[Integer, SentenceSearch::Witness] witnesses, Array[String] uncovered, Integer next_id) -> void
|
|
15
|
+
def self?.add_uncovered_entries: (Array[Entry] entries, Hash[Integer, bool] covered, Hash[Integer, SentenceSearch::Witness] witnesses, Array[String] uncovered, Integer next_id) -> void
|
|
16
|
+
|
|
17
|
+
# @rbs (Document document, SentenceSearch search, Hash[Integer, SentenceSearch::Witness] witnesses,
|
|
18
|
+
# Hash[Symbol, Array[String]] classifications, Integer next_id) ->
|
|
19
|
+
# [Array[Entry], Hash[Integer, bool], Integer]
|
|
20
|
+
def update_existing_entries: (Document document, SentenceSearch search, Hash[Integer, SentenceSearch::Witness] witnesses, Hash[Symbol, Array[String]] classifications, Integer next_id) -> [ Array[Entry], Hash[Integer, bool], Integer ]
|
|
21
|
+
|
|
22
|
+
# @rbs (Entry entry, SentenceSearch search, Array[Entry] entries, Hash[Integer, bool] covered,
|
|
23
|
+
# Hash[Symbol, Array[String]] classifications, Integer next_id) -> Integer
|
|
24
|
+
def update_sentence_entry: (Entry entry, SentenceSearch search, Array[Entry] entries, Hash[Integer, bool] covered, Hash[Symbol, Array[String]] classifications, Integer next_id) -> Integer
|
|
25
|
+
|
|
26
|
+
# @rbs (Document document, Hash[Integer, SentenceSearch::Witness] witnesses,
|
|
27
|
+
# Hash[Symbol, Array[String]] classifications, Integer next_id) ->
|
|
28
|
+
# [Array[Entry], Hash[Integer, bool], Integer]
|
|
29
|
+
def migrate_legacy_entries: (Document document, Hash[Integer, SentenceSearch::Witness] witnesses, Hash[Symbol, Array[String]] classifications, Integer next_id) -> [ Array[Entry], Hash[Integer, bool], Integer ]
|
|
30
|
+
|
|
31
|
+
# @rbs (Entry entry, Integer next_id) -> Entry
|
|
32
|
+
def with_error_id: (Entry entry, Integer next_id) -> Entry
|
|
33
|
+
|
|
34
|
+
# @rbs (Document document) -> Integer
|
|
35
|
+
def next_error_id: (Document document) -> Integer
|
|
36
|
+
|
|
37
|
+
# @rbs (Integer number) -> String
|
|
38
|
+
def format_error_id: (Integer number) -> String
|
|
39
|
+
|
|
40
|
+
# @rbs (Entry entry) -> [Integer, Integer, String]
|
|
41
|
+
def entry_sort_key: (Entry entry) -> [ Integer, Integer, String ]
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Parses, validates, and deterministically updates example-keyed syntax
|
|
5
|
+
# error messages.
|
|
6
|
+
module ErrorMessages
|
|
7
|
+
HEADER_V1: ::String
|
|
8
|
+
|
|
9
|
+
HEADER: ::String
|
|
10
|
+
|
|
11
|
+
# One active or archived error-sentence entry with its source line.
|
|
12
|
+
class Entry
|
|
13
|
+
attr_reader state: Integer?
|
|
14
|
+
|
|
15
|
+
attr_reader status: :active | :unreachable | :removed
|
|
16
|
+
|
|
17
|
+
attr_reader message: String?
|
|
18
|
+
|
|
19
|
+
attr_reader line: Integer
|
|
20
|
+
|
|
21
|
+
attr_reader sentence: Array[String]?
|
|
22
|
+
|
|
23
|
+
attr_reader error_id: String?
|
|
24
|
+
|
|
25
|
+
attr_reader entry: String?
|
|
26
|
+
|
|
27
|
+
# @rbs (state: Integer?, status: :active | :unreachable | :removed, message: String?, line: Integer,
|
|
28
|
+
# ?sentence: Array[String]?, ?error_id: String?, ?entry: String?) -> void
|
|
29
|
+
def initialize: (state: Integer?, status: :active | :unreachable | :removed, message: String?, line: Integer, ?sentence: Array[String]?, ?error_id: String?, ?entry: String?) -> void
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Immutable parsed messages document.
|
|
33
|
+
class Document
|
|
34
|
+
attr_reader version: Integer
|
|
35
|
+
|
|
36
|
+
attr_reader entries: Array[Entry]
|
|
37
|
+
|
|
38
|
+
# @rbs (entries: Array[Entry], ?version: Integer) -> void
|
|
39
|
+
def initialize: (entries: Array[Entry], ?version: Integer) -> void
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Deterministic update output and review classifications.
|
|
43
|
+
class Update
|
|
44
|
+
attr_reader source: String
|
|
45
|
+
|
|
46
|
+
attr_reader uncovered: Array[String]
|
|
47
|
+
|
|
48
|
+
attr_reader unreachable: Array[String]
|
|
49
|
+
|
|
50
|
+
attr_reader moved: Array[String]
|
|
51
|
+
|
|
52
|
+
# @rbs (source: String, uncovered: Array[String], unreachable: Array[String], moved: Array[String]) -> void
|
|
53
|
+
def initialize: (source: String, uncovered: Array[String], unreachable: Array[String], moved: Array[String]) -> void
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @rbs (String source, file: String) -> Document
|
|
57
|
+
def self?.parse: (String source, file: String) -> Document
|
|
58
|
+
|
|
59
|
+
# @rbs (String path) -> Document
|
|
60
|
+
def self?.load: (String path) -> Document
|
|
61
|
+
|
|
62
|
+
# @rbs (IR::Automaton automaton) -> Array[IR::AutomatonState]
|
|
63
|
+
def self?.error_states: (IR::Automaton automaton) -> Array[IR::AutomatonState]
|
|
64
|
+
|
|
65
|
+
# @rbs (Document document, IR::Automaton automaton, file: String) -> Hash[Integer, String]
|
|
66
|
+
def self?.messages_for: (Document document, IR::Automaton automaton, file: String) -> Hash[Integer, String]
|
|
67
|
+
|
|
68
|
+
# @rbs (Document document, IR::Automaton automaton, file: String) ->
|
|
69
|
+
# Hash[Integer, { id: String, message: String }]
|
|
70
|
+
def self?.records_for: (Document document, IR::Automaton automaton, file: String) -> Hash[Integer, { id: String, message: String }]
|
|
71
|
+
|
|
72
|
+
# @rbs (Document document, IR::Automaton automaton, file: String) ->
|
|
73
|
+
# Hash[Integer, { id: String, message: String }]
|
|
74
|
+
def self?.legacy_records_for: (Document document, IR::Automaton automaton, file: String) -> Hash[Integer, { id: String, message: String }]
|
|
75
|
+
|
|
76
|
+
# @rbs (IR::Automaton automaton) -> Array[IR::GrammarSymbol]
|
|
77
|
+
def ordinary_terminals: (IR::Automaton automaton) -> Array[IR::GrammarSymbol]
|
|
78
|
+
|
|
79
|
+
# @rbs (IR::parser_action? action) -> bool
|
|
80
|
+
def error_action?: (IR::parser_action? action) -> bool
|
|
81
|
+
|
|
82
|
+
# @rbs (String file, Integer line, Integer column, String message) -> bot
|
|
83
|
+
def fail_at: (String file, Integer line, Integer column, String message) -> bot
|
|
84
|
+
end
|
|
85
|
+
end
|
data/sig/ibex/fix.rbs
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Generated from lib/ibex/fix.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Bounded conflict-repair candidate generation and safety evaluation.
|
|
5
|
+
# rubocop:disable Metrics/ClassLength -- candidate generation and its three safety gates share one target identity.
|
|
6
|
+
class Fix
|
|
7
|
+
type candidate = { category: String, description: String, source: String?, algorithm: Symbol }
|
|
8
|
+
|
|
9
|
+
SCHEMA_VERSION: Integer
|
|
10
|
+
|
|
11
|
+
CATEGORIES: Array[String]
|
|
12
|
+
|
|
13
|
+
ADVICE_CATEGORIES: Array[String]
|
|
14
|
+
|
|
15
|
+
ADVICE_STATEMENT: String
|
|
16
|
+
|
|
17
|
+
class BudgetExceeded < Ibex::Error
|
|
18
|
+
attr_reader details: Hash[Symbol, Object?]
|
|
19
|
+
|
|
20
|
+
# @rbs (Hash[Symbol, Object?] details) -> void
|
|
21
|
+
def initialize: (Hash[Symbol, Object?] details) -> void
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
attr_reader sources: Hash[String, String]
|
|
25
|
+
|
|
26
|
+
# @rbs (String source, file: String, grammar: IR::Grammar, automaton: IR::Automaton, algorithm: Symbol,
|
|
27
|
+
# mode: Symbol, ?state: Integer?, ?conflict_index: Integer?, ?max_candidates: Integer, ?max_builds: Integer,
|
|
28
|
+
# ?equiv_max_tokens: Integer, ?equiv_max_configurations: Integer, ?equiv_samples: Integer,
|
|
29
|
+
# ?verify_max_states: Integer, ?verify_max_items: Integer,
|
|
30
|
+
# ?messages: ErrorMessages::Document?, ?message_file: String?) -> void
|
|
31
|
+
# rubocop:disable Metrics/ParameterLists
|
|
32
|
+
def initialize: (String source, file: String, grammar: IR::Grammar, automaton: IR::Automaton, algorithm: Symbol, mode: Symbol, ?state: Integer?, ?conflict_index: Integer?, ?max_candidates: Integer, ?max_builds: Integer, ?equiv_max_tokens: Integer, ?equiv_max_configurations: Integer, ?equiv_samples: Integer, ?verify_max_states: Integer, ?verify_max_items: Integer, ?messages: ErrorMessages::Document?, ?message_file: String?) -> void
|
|
33
|
+
|
|
34
|
+
# @rbs () -> Hash[Symbol, Object?]
|
|
35
|
+
def run: () -> Hash[Symbol, Object?]
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
# @rbs () -> [IR::AutomatonState, Integer, IR::conflict]
|
|
40
|
+
def select_target: () -> [ IR::AutomatonState, Integer, IR::conflict ]
|
|
41
|
+
|
|
42
|
+
# @rbs (IR::conflict conflict) -> Array[candidate]
|
|
43
|
+
def candidate_space: (IR::conflict conflict) -> Array[candidate]
|
|
44
|
+
|
|
45
|
+
# @rbs (IR::conflict conflict) -> Array[Hash[Symbol, Object?]]
|
|
46
|
+
def advice_space: (IR::conflict conflict) -> Array[Hash[Symbol, Object?]]
|
|
47
|
+
|
|
48
|
+
# @rbs (IR::conflict conflict) -> Array[candidate]
|
|
49
|
+
def precedence_declaration_candidates: (IR::conflict conflict) -> Array[candidate]
|
|
50
|
+
|
|
51
|
+
# @rbs (IR::conflict conflict) -> candidate?
|
|
52
|
+
def precedence_override_candidate: (IR::conflict conflict) -> candidate?
|
|
53
|
+
|
|
54
|
+
# @rbs () -> Array[candidate]
|
|
55
|
+
def algorithm_candidates: () -> Array[candidate]
|
|
56
|
+
|
|
57
|
+
# @rbs (IR::conflict conflict) -> candidate?
|
|
58
|
+
def inline_candidate: (IR::conflict conflict) -> candidate?
|
|
59
|
+
|
|
60
|
+
# @rbs (IR::conflict conflict) -> candidate
|
|
61
|
+
def expectation_candidate: (IR::conflict conflict) -> candidate
|
|
62
|
+
|
|
63
|
+
# @rbs (IR::conflict conflict) -> candidate?
|
|
64
|
+
def recovery_candidate: (IR::conflict conflict) -> candidate?
|
|
65
|
+
|
|
66
|
+
# @rbs (String category, String description, ?source: String?, ?algorithm: Symbol?) -> candidate
|
|
67
|
+
def candidate: (String category, String description, ?source: String?, ?algorithm: Symbol?) -> candidate
|
|
68
|
+
|
|
69
|
+
# @rbs (candidate candidate, IR::conflict target) -> Hash[Symbol, Object?]
|
|
70
|
+
def evaluate_candidate: (candidate candidate, IR::conflict target) -> Hash[Symbol, Object?]
|
|
71
|
+
|
|
72
|
+
# @rbs (IR::Automaton candidate, IR::conflict target) -> Hash[Symbol, String]?
|
|
73
|
+
def conflict_safety_failure: (IR::Automaton candidate, IR::conflict target) -> Hash[Symbol, String]?
|
|
74
|
+
|
|
75
|
+
# @rbs (IR::Automaton candidate) -> Hash[Symbol, String]?
|
|
76
|
+
def verification_safety_failure: (IR::Automaton candidate) -> Hash[Symbol, String]?
|
|
77
|
+
|
|
78
|
+
# @rbs (candidate candidate) -> IR::Automaton
|
|
79
|
+
def build_candidate: (candidate candidate) -> IR::Automaton
|
|
80
|
+
|
|
81
|
+
# @rbs (candidate candidate, Hash[Symbol, Object?] outcome, IR::conflict conflict, Integer number) ->
|
|
82
|
+
# Hash[Symbol, Object?]
|
|
83
|
+
def proposal: (candidate candidate, Hash[Symbol, Object?] outcome, IR::conflict conflict, Integer number) -> Hash[Symbol, Object?]
|
|
84
|
+
|
|
85
|
+
# @rbs (IR::Automaton candidate) -> Hash[Symbol, Object?]
|
|
86
|
+
def message_catalog_impact: (IR::Automaton candidate) -> Hash[Symbol, Object?]
|
|
87
|
+
|
|
88
|
+
# @rbs (candidate candidate, Hash[Symbol, Object?] outcome) -> Hash[Symbol, Object?]
|
|
89
|
+
def rejection: (candidate candidate, Hash[Symbol, Object?] outcome) -> Hash[Symbol, Object?]
|
|
90
|
+
|
|
91
|
+
# @rbs (IR::AutomatonState state, Integer index, IR::conflict conflict, Array[candidate] candidates,
|
|
92
|
+
# Array[Hash[Symbol, Object?]] proposals, Array[Hash[Symbol, Object?]] rejections,
|
|
93
|
+
# Array[Hash[Symbol, Object?]] advice) -> Hash[Symbol, Object?]
|
|
94
|
+
def report_for: (IR::AutomatonState state, Integer index, IR::conflict conflict, Array[candidate] candidates, Array[Hash[Symbol, Object?]] proposals, Array[Hash[Symbol, Object?]] rejections, Array[Hash[Symbol, Object?]] advice) -> Hash[Symbol, Object?]
|
|
95
|
+
|
|
96
|
+
# @rbs (IR::Automaton automaton) -> Array[[IR::AutomatonState, IR::conflict]]
|
|
97
|
+
def active_conflicts: (IR::Automaton automaton) -> Array[[ IR::AutomatonState, IR::conflict ]]
|
|
98
|
+
|
|
99
|
+
# @rbs (IR::conflict conflict) -> bool
|
|
100
|
+
def active_conflict?: (IR::conflict conflict) -> bool
|
|
101
|
+
|
|
102
|
+
# @rbs (IR::Automaton candidate, String target_fingerprint) -> bool
|
|
103
|
+
def increased_other_conflict?: (IR::Automaton candidate, String target_fingerprint) -> bool
|
|
104
|
+
|
|
105
|
+
# @rbs (IR::Automaton automaton) -> Hash[String, Integer]
|
|
106
|
+
def conflict_counts: (IR::Automaton automaton) -> Hash[String, Integer]
|
|
107
|
+
|
|
108
|
+
# @rbs (IR::Grammar grammar, IR::conflict conflict) -> String
|
|
109
|
+
def conflict_fingerprint: (IR::Grammar grammar, IR::conflict conflict) -> String
|
|
110
|
+
|
|
111
|
+
# @rbs (IR::Grammar grammar, Integer id) -> String
|
|
112
|
+
def production_shape: (IR::Grammar grammar, Integer id) -> String
|
|
113
|
+
|
|
114
|
+
# @rbs (IR::Grammar candidate_grammar) -> Hash[String, String]
|
|
115
|
+
def identity_rule_map: (IR::Grammar candidate_grammar) -> Hash[String, String]
|
|
116
|
+
|
|
117
|
+
# @rbs (String insertion) -> String
|
|
118
|
+
def insert_before_rule: (String insertion) -> String
|
|
119
|
+
|
|
120
|
+
# @rbs (String source, String insertion) -> String
|
|
121
|
+
def insert_before_rule_in: (String source, String insertion) -> String
|
|
122
|
+
|
|
123
|
+
# @rbs (Integer line_number, String suffix) -> String
|
|
124
|
+
def append_to_line: (Integer line_number, String suffix) -> String
|
|
125
|
+
|
|
126
|
+
# @rbs (String directive) -> String
|
|
127
|
+
def replace_or_insert_expectation: (String directive) -> String
|
|
128
|
+
|
|
129
|
+
# @rbs (String source, IR::conflict conflict) -> String
|
|
130
|
+
def update_expectation: (String source, IR::conflict conflict) -> String
|
|
131
|
+
|
|
132
|
+
# @rbs (String before, String after) -> String
|
|
133
|
+
def unified_diff: (String before, String after) -> String
|
|
134
|
+
|
|
135
|
+
# @rbs () -> Hash[Symbol, Integer]
|
|
136
|
+
def bounds: () -> Hash[Symbol, Integer]
|
|
137
|
+
end
|
|
138
|
+
end
|