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,53 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/fix.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# CLI entry point for bounded conflict-repair proposals.
|
|
5
|
+
# rubocop:disable Metrics/ModuleLength -- CLI option wiring and output projections share one closed contract.
|
|
6
|
+
module CLIFix
|
|
7
|
+
type fix_options = Hash[Symbol, untyped]
|
|
8
|
+
|
|
9
|
+
private def normalize_grammar_path: (String) -> IR::Grammar
|
|
10
|
+
|
|
11
|
+
private def activate_cli_feature: (Symbol) -> void
|
|
12
|
+
|
|
13
|
+
private def configuration_value: (String) -> untyped
|
|
14
|
+
|
|
15
|
+
private def set_configuration_option: (Symbol, Object?) -> void
|
|
16
|
+
|
|
17
|
+
private def local_configuration_value: (Hash[Symbol, Object?], String) -> Object?
|
|
18
|
+
|
|
19
|
+
private def set_local_configuration_option: (Hash[Symbol, Object?], Symbol, Object?) -> void
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
24
|
+
def run_fix_command: (Array[String] arguments) -> Integer
|
|
25
|
+
|
|
26
|
+
# @rbs (String path, Hash[Symbol, untyped] settings) -> [String, Fix]
|
|
27
|
+
def prepare_fixer: (String path, Hash[Symbol, untyped] settings) -> [ String, Fix ]
|
|
28
|
+
|
|
29
|
+
# Keep command-local construction settings separate from reusable CLI state.
|
|
30
|
+
# @rbs (Array[String] arguments) -> Hash[Symbol, untyped]
|
|
31
|
+
def fix_options: (Array[String] arguments) -> Hash[Symbol, untyped]
|
|
32
|
+
|
|
33
|
+
# @rbs (OptionParser options, Hash[Symbol, untyped] settings) -> void
|
|
34
|
+
def add_fix_target_options: (OptionParser options, Hash[Symbol, untyped] settings) -> void
|
|
35
|
+
|
|
36
|
+
# @rbs (OptionParser options, Hash[Symbol, untyped] settings) -> void
|
|
37
|
+
def add_fix_budget_options: (OptionParser options, Hash[Symbol, untyped] settings) -> void
|
|
38
|
+
|
|
39
|
+
# @rbs (IR::Grammar grammar, Hash[Symbol, untyped] settings) -> [IR::Grammar, Symbol, IR::Automaton]
|
|
40
|
+
def fixer_construction: (IR::Grammar grammar, Hash[Symbol, untyped] settings) -> [ IR::Grammar, Symbol, IR::Automaton ]
|
|
41
|
+
|
|
42
|
+
private def construct_analysis_automaton: (IR::Grammar, Hash[Symbol, Object?], Array[Symbol]) -> [ IR::Grammar, Symbol, IR::Automaton ]
|
|
43
|
+
|
|
44
|
+
# @rbs (String path, String original, Hash[Symbol, untyped] report, Fix fixer, String | true selector) -> void
|
|
45
|
+
def apply_fix!: (String path, String original, Hash[Symbol, untyped] report, Fix fixer, String | true selector) -> void
|
|
46
|
+
|
|
47
|
+
# @rbs (Array[Hash[Symbol, untyped]] proposals, String | true selector) -> Hash[Symbol, untyped]
|
|
48
|
+
def selected_fix_proposal: (Array[Hash[Symbol, untyped]] proposals, String | true selector) -> Hash[Symbol, untyped]
|
|
49
|
+
|
|
50
|
+
# @rbs (Hash[Symbol, untyped] report, String format) -> void
|
|
51
|
+
def write_fix_report: (Hash[Symbol, untyped] report, String format) -> void
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/formatting.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# CLI coordination for deterministic, semantics-preserving grammar formatting.
|
|
5
|
+
# rubocop:disable Metrics/ModuleLength -- transaction lifecycle stays cohesive and auditable.
|
|
6
|
+
module CLIFormatting
|
|
7
|
+
type formatting_settings = Hash[Symbol, untyped]
|
|
8
|
+
|
|
9
|
+
type formatting_result = { path: String, label: String, source: String, formatted: String }
|
|
10
|
+
|
|
11
|
+
type formatting_target = { path: String, label: String, target: String, formatted: String, mode: Integer, directory: String, basename: String, changed: bool, installed: bool, ?stage: String, ?backup: String }
|
|
12
|
+
|
|
13
|
+
type formatting_cleanup_result = { errors: Array[String], remaining: Array[String] }
|
|
14
|
+
|
|
15
|
+
private def local_configuration_value: (Hash[Symbol, Object?], String) -> Object?
|
|
16
|
+
|
|
17
|
+
private def set_local_configuration_option: (Hash[Symbol, Object?], Symbol, Object?) -> void
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
22
|
+
def run_format_command: (Array[String] arguments) -> Integer
|
|
23
|
+
|
|
24
|
+
# @rbs (Array[String] arguments) -> formatting_settings
|
|
25
|
+
def formatting_options: (Array[String] arguments) -> formatting_settings
|
|
26
|
+
|
|
27
|
+
# @rbs (formatting_settings settings) -> OptionParser
|
|
28
|
+
def formatting_option_parser: (formatting_settings settings) -> OptionParser
|
|
29
|
+
|
|
30
|
+
# @rbs (formatting_settings settings) -> void
|
|
31
|
+
def validate_formatting_settings!: (formatting_settings settings) -> void
|
|
32
|
+
|
|
33
|
+
# @rbs (formatting_settings settings, Array[String] paths) -> void
|
|
34
|
+
def validate_formatting_operation!: (formatting_settings settings, Array[String] paths) -> void
|
|
35
|
+
|
|
36
|
+
# @rbs (formatting_settings settings, Array[String] paths) -> void
|
|
37
|
+
def validate_formatting_stdin!: (formatting_settings settings, Array[String] paths) -> void
|
|
38
|
+
|
|
39
|
+
# @rbs (formatting_settings settings) -> [Array[formatting_result], bool]
|
|
40
|
+
def prepare_formatting_results: (formatting_settings settings) -> [ Array[formatting_result], bool ]
|
|
41
|
+
|
|
42
|
+
# @rbs (Array[formatting_result] results) -> Integer
|
|
43
|
+
def check_formatting_results: (Array[formatting_result] results) -> Integer
|
|
44
|
+
|
|
45
|
+
# @rbs (Array[formatting_result] results) -> Integer
|
|
46
|
+
def write_formatting_results: (Array[formatting_result] results) -> Integer
|
|
47
|
+
|
|
48
|
+
# @rbs (Array[formatting_result] results) -> Array[formatting_target]
|
|
49
|
+
def formatting_targets: (Array[formatting_result] results) -> Array[formatting_target]
|
|
50
|
+
|
|
51
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
52
|
+
def validate_unique_formatting_targets!: (Array[formatting_target] targets) -> void
|
|
53
|
+
|
|
54
|
+
# @rbs (Array[formatting_target] targets) -> [formatting_target, formatting_target]?
|
|
55
|
+
def duplicate_formatting_target_pair: (Array[formatting_target] targets) -> [ formatting_target, formatting_target ]?
|
|
56
|
+
|
|
57
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
58
|
+
def transactionally_write_formatted: (Array[formatting_target] targets) -> void
|
|
59
|
+
|
|
60
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
61
|
+
def stage_formatting_targets: (Array[formatting_target] targets) -> void
|
|
62
|
+
|
|
63
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
64
|
+
def backup_formatting_targets: (Array[formatting_target] targets) -> void
|
|
65
|
+
|
|
66
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
67
|
+
def install_formatting_targets: (Array[formatting_target] targets) -> void
|
|
68
|
+
|
|
69
|
+
# @rbs (Array[formatting_target] targets) -> Array[String]
|
|
70
|
+
def rollback_formatting_targets: (Array[formatting_target] targets) -> Array[String]
|
|
71
|
+
|
|
72
|
+
# @rbs (Array[formatting_target] targets, preserve_installed_backups: bool) ->
|
|
73
|
+
# formatting_cleanup_result
|
|
74
|
+
def cleanup_formatting_artifacts: (Array[formatting_target] targets, preserve_installed_backups: bool) -> formatting_cleanup_result
|
|
75
|
+
|
|
76
|
+
# @rbs (String path) -> String?
|
|
77
|
+
def remove_formatting_artifact: (String path) -> String?
|
|
78
|
+
|
|
79
|
+
# @rbs (StandardError error, Array[String] rollback_errors,
|
|
80
|
+
# formatting_cleanup_result cleanup, Array[String] sync_errors) -> Ibex::Error
|
|
81
|
+
def formatting_transaction_error: (StandardError error, Array[String] rollback_errors, formatting_cleanup_result cleanup, Array[String] sync_errors) -> Ibex::Error
|
|
82
|
+
|
|
83
|
+
# @rbs (formatting_cleanup_result cleanup, Array[String] sync_errors) -> void
|
|
84
|
+
def report_formatting_cleanup_warning: (formatting_cleanup_result cleanup, Array[String] sync_errors) -> void
|
|
85
|
+
|
|
86
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
87
|
+
def sync_formatting_directories!: (Array[formatting_target] targets) -> void
|
|
88
|
+
|
|
89
|
+
# @rbs (Array[formatting_target] targets) -> Array[String]
|
|
90
|
+
def sync_formatting_directories_best_effort: (Array[formatting_target] targets) -> Array[String]
|
|
91
|
+
|
|
92
|
+
# @rbs (Array[formatting_target] targets) -> Array[String]
|
|
93
|
+
def sync_formatting_directories: (Array[formatting_target] targets) -> Array[String]
|
|
94
|
+
|
|
95
|
+
# @rbs (String directory) -> void
|
|
96
|
+
def sync_formatting_directory: (String directory) -> void
|
|
97
|
+
|
|
98
|
+
# @rbs (String value) -> String
|
|
99
|
+
def formatting_label: (String value) -> String
|
|
100
|
+
|
|
101
|
+
# @rbs (String value) -> bool
|
|
102
|
+
def formatting_control_bytes?: (String value) -> bool
|
|
103
|
+
|
|
104
|
+
# @rbs (Integer byte) -> bool
|
|
105
|
+
def control_byte?: (Integer byte) -> bool
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/fuzz.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# CLI entry point for bounded grammar-derived differential fuzzing.
|
|
5
|
+
module CLIFuzz
|
|
6
|
+
include CLIFuzzRegressions
|
|
7
|
+
|
|
8
|
+
private def print_help: (OptionParser) -> Integer
|
|
9
|
+
|
|
10
|
+
private def input_path: (Array[String]) -> String
|
|
11
|
+
|
|
12
|
+
private def normalize_grammar_path: (String) -> IR::Grammar
|
|
13
|
+
|
|
14
|
+
private def handle_grammar_warnings: (IR::Grammar, String) -> void
|
|
15
|
+
|
|
16
|
+
private def warning_categories: (String) -> Array[Symbol]
|
|
17
|
+
|
|
18
|
+
private def select_configuration_mode: (String) -> void
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
23
|
+
def run_fuzz_command: (Array[String] arguments) -> Integer
|
|
24
|
+
|
|
25
|
+
# @rbs () -> OptionParser
|
|
26
|
+
def fuzz_option_parser: () -> OptionParser
|
|
27
|
+
|
|
28
|
+
# @rbs (OptionParser options) -> void
|
|
29
|
+
def add_fuzz_generation_options: (OptionParser options) -> void
|
|
30
|
+
|
|
31
|
+
# @rbs (OptionParser options) -> void
|
|
32
|
+
def add_fuzz_execution_options: (OptionParser options) -> void
|
|
33
|
+
|
|
34
|
+
# @rbs (OptionParser options) -> void
|
|
35
|
+
def add_fuzz_external_options: (OptionParser options) -> void
|
|
36
|
+
|
|
37
|
+
# @rbs () -> fuzz_external_target?
|
|
38
|
+
def external_fuzz_target: () -> fuzz_external_target?
|
|
39
|
+
|
|
40
|
+
# @rbs (BoundedSubprocess subprocess, Array[String] arguments, Array[String] tokens,
|
|
41
|
+
# Integer timeout, Integer max_output) -> Symbol
|
|
42
|
+
def external_fuzz_outcome: (BoundedSubprocess subprocess, Array[String] arguments, Array[String] tokens, Integer timeout, Integer max_output) -> Symbol
|
|
43
|
+
|
|
44
|
+
# @rbs (String name, Integer value) -> Integer
|
|
45
|
+
def positive_fuzz_option!: (String name, Integer value) -> Integer
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/fuzz_regressions.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
type fuzz_external_description = { command: String, target_runtime: String, timeout_seconds: Integer, max_output_bytes: Integer, host_ruby_engine: String, host_ruby_version: String, host_platform: String }
|
|
5
|
+
|
|
6
|
+
type fuzz_external_target = [ ^(Array[String]) -> Symbol, fuzz_external_description ]
|
|
7
|
+
|
|
8
|
+
# Automatic bounded minimization and persistence for fuzz differences.
|
|
9
|
+
module CLIFuzzRegressions
|
|
10
|
+
private def atomic_write_ir: (String path, String source) -> void
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
# @rbs (Fuzz fuzzer, Fuzz::Mismatch mismatch, String grammar_path,
|
|
15
|
+
# fuzz_external_target? external) -> Integer
|
|
16
|
+
def write_minimized_fuzz_mismatch: (Fuzz fuzzer, Fuzz::Mismatch mismatch, String grammar_path, fuzz_external_target? external) -> Integer
|
|
17
|
+
|
|
18
|
+
# @rbs (Hash[Symbol, untyped] report) -> void
|
|
19
|
+
def write_fuzz_report: (Hash[Symbol, untyped] report) -> void
|
|
20
|
+
|
|
21
|
+
# @rbs (Fuzz::BudgetExceeded error,
|
|
22
|
+
# fuzz_external_target? external, phase: String) -> Integer
|
|
23
|
+
def write_fuzz_budget_report: (Fuzz::BudgetExceeded error, fuzz_external_target? external, phase: String) -> Integer
|
|
24
|
+
|
|
25
|
+
# @rbs (Fuzz fuzzer, Fuzz::Mismatch mismatch, String grammar_path,
|
|
26
|
+
# fuzz_external_target? external) -> Hash[Symbol, untyped]
|
|
27
|
+
def minimized_fuzz_mismatch: (Fuzz fuzzer, Fuzz::Mismatch mismatch, String grammar_path, fuzz_external_target? external) -> Hash[Symbol, untyped]
|
|
28
|
+
|
|
29
|
+
# @rbs (fuzz_mismatch mismatch, DeltaReducer::Result result, String grammar_path,
|
|
30
|
+
# fuzz_external_description? external) -> Hash[Symbol, String]?
|
|
31
|
+
def persist_fuzz_regression: (fuzz_mismatch mismatch, DeltaReducer::Result result, String grammar_path, fuzz_external_description? external) -> Hash[Symbol, String]?
|
|
32
|
+
|
|
33
|
+
# @rbs (String path) -> void
|
|
34
|
+
def validate_fuzz_regression_target!: (String path) -> void
|
|
35
|
+
|
|
36
|
+
# @rbs (fuzz_mismatch mismatch, DeltaReducer::Result result, String grammar_path,
|
|
37
|
+
# fuzz_external_description? external) -> Hash[Symbol, Object?]
|
|
38
|
+
def fuzz_regression_document: (fuzz_mismatch mismatch, DeltaReducer::Result result, String grammar_path, fuzz_external_description? external) -> Hash[Symbol, Object?]
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/generation_artifacts.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Collects, verifies, and transactionally publishes CLI generation outputs.
|
|
5
|
+
module CLIGenerationArtifacts
|
|
6
|
+
private def report_status: (String) -> void
|
|
7
|
+
|
|
8
|
+
private def verify_file: (String, String, String) -> void
|
|
9
|
+
|
|
10
|
+
private def default_output_path: (String, String) -> String
|
|
11
|
+
|
|
12
|
+
private def configuration_value: (String) -> Object?
|
|
13
|
+
|
|
14
|
+
private def effective_configuration: () -> Configuration::Resolver
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
# @rbs () -> void
|
|
19
|
+
def begin_artifact_generation: () -> void
|
|
20
|
+
|
|
21
|
+
# @rbs (Symbol kind, String path, String content, ?mode: Integer?, ?status: bool) -> Artifact
|
|
22
|
+
def register_artifact: (Symbol kind, String path, String content, ?mode: Integer?, ?status: bool) -> Artifact
|
|
23
|
+
|
|
24
|
+
# @rbs (Array[String] source_paths) -> Integer
|
|
25
|
+
def finish_artifact_generation: (Array[String] source_paths) -> Integer
|
|
26
|
+
|
|
27
|
+
# @rbs () -> void
|
|
28
|
+
def add_generation_manifest: () -> void
|
|
29
|
+
|
|
30
|
+
# @rbs () -> void
|
|
31
|
+
def verify_artifact_generation: () -> void
|
|
32
|
+
|
|
33
|
+
# @rbs (Symbol kind) -> String
|
|
34
|
+
def artifact_label: (Symbol kind) -> String
|
|
35
|
+
|
|
36
|
+
# @rbs () -> ArtifactSet
|
|
37
|
+
def generation_artifacts: () -> ArtifactSet
|
|
38
|
+
|
|
39
|
+
# @rbs () -> bool
|
|
40
|
+
def generation_inputs_stable?: () -> bool
|
|
41
|
+
|
|
42
|
+
# @rbs () -> void
|
|
43
|
+
def ensure_generation_inputs_stable!: () -> void
|
|
44
|
+
|
|
45
|
+
# @rbs (String path, String source) -> GenerationInput
|
|
46
|
+
def record_generation_input: (String path, String source) -> GenerationInput
|
|
47
|
+
|
|
48
|
+
# @rbs () -> String
|
|
49
|
+
def manifest_output_path: () -> String
|
|
50
|
+
|
|
51
|
+
# @rbs () -> Hash[String, Object?]
|
|
52
|
+
def generation_manifest_options: () -> Hash[String, Object?]
|
|
53
|
+
|
|
54
|
+
# @rbs (Hash[String, Object?] options) -> void
|
|
55
|
+
def append_ir_manifest_options: (Hash[String, Object?] options) -> void
|
|
56
|
+
|
|
57
|
+
# @rbs () -> String
|
|
58
|
+
def construction_authority: () -> String
|
|
59
|
+
|
|
60
|
+
# @rbs () -> Array[Hash[String, Object?]]
|
|
61
|
+
def manifest_effective_configuration: () -> Array[Hash[String, Object?]]
|
|
62
|
+
|
|
63
|
+
# @rbs (IR::ParserContract contract) -> Hash[String, Object?]
|
|
64
|
+
def stringify_contract: (IR::ParserContract contract) -> Hash[String, Object?]
|
|
65
|
+
|
|
66
|
+
# @rbs () -> Symbol
|
|
67
|
+
def effective_cst_trivia: () -> Symbol
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/generation_error_messages.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Optional example-keyed error-message support for parser generation.
|
|
5
|
+
module CLIGenerationErrorMessages
|
|
6
|
+
private def record_generation_input: (String, String) -> GenerationInput
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
# @rbs (OptionParser options) -> void
|
|
11
|
+
def add_error_messages_generation_option: (OptionParser options) -> void
|
|
12
|
+
|
|
13
|
+
# @rbs (IR::Automaton automaton) -> Hash[Integer, String | { id: String, message: String }]
|
|
14
|
+
def configured_error_messages: (IR::Automaton automaton) -> Hash[Integer, String | { id: String, message: String }]
|
|
15
|
+
|
|
16
|
+
# @rbs () -> void
|
|
17
|
+
def validate_messages_options: () -> void
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/grammar_tests.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# `%test` command parsing and human-readable result reporting.
|
|
5
|
+
module CLIGrammarTests
|
|
6
|
+
type grammar_test_settings = Hash[Symbol, untyped]
|
|
7
|
+
|
|
8
|
+
private def print_help: (OptionParser) -> Integer
|
|
9
|
+
|
|
10
|
+
private def resolve_grammar_path: (String) -> Frontend::Resolution
|
|
11
|
+
|
|
12
|
+
private def handle_grammar_warnings: (IR::Grammar, String) -> void
|
|
13
|
+
|
|
14
|
+
private def build_automaton: (IR::Grammar, String) -> IR::Automaton
|
|
15
|
+
|
|
16
|
+
private def configuration_value: (String) -> untyped
|
|
17
|
+
|
|
18
|
+
private def mark_configuration_option: (Symbol) -> void
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
23
|
+
def run_grammar_tests_command: (Array[String] arguments) -> Integer
|
|
24
|
+
|
|
25
|
+
# @rbs () -> Hash[Symbol, untyped]
|
|
26
|
+
def default_grammar_test_settings: () -> Hash[Symbol, untyped]
|
|
27
|
+
|
|
28
|
+
# @rbs (Hash[Symbol, untyped] settings) -> OptionParser
|
|
29
|
+
def grammar_test_option_parser: (Hash[Symbol, untyped] settings) -> OptionParser
|
|
30
|
+
|
|
31
|
+
# @rbs (Array[String] remaining, OptionParser options) -> String
|
|
32
|
+
def single_grammar_test_path: (Array[String] remaining, OptionParser options) -> String
|
|
33
|
+
|
|
34
|
+
# @rbs (Frontend::Resolution resolution) -> IR::Grammar
|
|
35
|
+
def normalize_analysis_grammar: (Frontend::Resolution resolution) -> IR::Grammar
|
|
36
|
+
|
|
37
|
+
private def activate_analysis_grammar: (IR::Grammar, ?options: Hash[Symbol, Object?], ?explicit_keys: Array[Symbol]) -> IR::Grammar
|
|
38
|
+
|
|
39
|
+
# @rbs (Array[GrammarTests::Result] results) -> Integer
|
|
40
|
+
def render_grammar_test_results: (Array[GrammarTests::Result] results) -> Integer
|
|
41
|
+
|
|
42
|
+
# @rbs (GrammarTests::ProductionCoverage coverage, Integer minimum, Integer failures) -> Integer
|
|
43
|
+
def render_grammar_test_coverage: (GrammarTests::ProductionCoverage coverage, Integer minimum, Integer failures) -> Integer
|
|
44
|
+
|
|
45
|
+
# @rbs (GrammarTests::Result result) -> String
|
|
46
|
+
def grammar_test_failure: (GrammarTests::Result result) -> String
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/ir_tools.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# CLI validation and structural comparison for current IR documents.
|
|
5
|
+
module CLIIRTools
|
|
6
|
+
private
|
|
7
|
+
|
|
8
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
9
|
+
def run_validate_ir_command: (Array[String] arguments) -> Integer
|
|
10
|
+
|
|
11
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
12
|
+
def run_compare_command: (Array[String] arguments) -> Integer
|
|
13
|
+
|
|
14
|
+
# @rbs (Array[String] arguments, String command) -> String
|
|
15
|
+
def single_ir_path: (Array[String] arguments, String command) -> String
|
|
16
|
+
|
|
17
|
+
# @rbs (IR::Grammar | IR::Automaton | IR::Lexer before,
|
|
18
|
+
# IR::Grammar | IR::Automaton | IR::Lexer after) -> Hash[Symbol, Object?]
|
|
19
|
+
def compare_ir: (IR::Grammar | IR::Automaton | IR::Lexer before, IR::Grammar | IR::Automaton | IR::Lexer after) -> Hash[Symbol, Object?]
|
|
20
|
+
|
|
21
|
+
# @rbs (IR::Lexer before, IR::Lexer after) -> Hash[Symbol, Object?]
|
|
22
|
+
def compare_lexers: (IR::Lexer before, IR::Lexer after) -> Hash[Symbol, Object?]
|
|
23
|
+
|
|
24
|
+
# @rbs (IR::Grammar before, IR::Grammar after) -> Hash[Symbol, Object?]
|
|
25
|
+
def compare_grammars: (IR::Grammar before, IR::Grammar after) -> Hash[Symbol, Object?]
|
|
26
|
+
|
|
27
|
+
# @rbs (IR::Grammar grammar) -> Array[String]
|
|
28
|
+
def production_shapes: (IR::Grammar grammar) -> Array[String]
|
|
29
|
+
|
|
30
|
+
# @rbs (IR::Automaton automaton) -> Integer
|
|
31
|
+
def transition_count: (IR::Automaton automaton) -> Integer
|
|
32
|
+
|
|
33
|
+
# @rbs (IR::Automaton automaton, Symbol kind) -> Integer
|
|
34
|
+
def summary_count: (IR::Automaton automaton, Symbol kind) -> Integer
|
|
35
|
+
|
|
36
|
+
# @rbs (Integer before, Integer after) -> Hash[Symbol, Integer]
|
|
37
|
+
def numeric_change: (Integer before, Integer after) -> Hash[Symbol, Integer]
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/lsp.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# CLI boundary for the stdio-only language server.
|
|
5
|
+
module CLILSP
|
|
6
|
+
private
|
|
7
|
+
|
|
8
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
9
|
+
def run_lsp_command: (Array[String] arguments) -> Integer
|
|
10
|
+
|
|
11
|
+
# @rbs (Hash[Symbol, bool] settings) -> OptionParser
|
|
12
|
+
def lsp_option_parser: (Hash[Symbol, bool] settings) -> OptionParser
|
|
13
|
+
end
|
|
14
|
+
end
|
data/sig/ibex/cli/outputs.rbs
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
module Ibex
|
|
4
4
|
# Files, warnings, and progress emitted by CLI pipeline stages.
|
|
5
5
|
module CLIOutputs
|
|
6
|
-
|
|
6
|
+
private def register_artifact: (Symbol, String, String, ?mode: Integer?, ?status: bool) -> Artifact
|
|
7
|
+
|
|
8
|
+
private def configuration_value: (String) -> Object?
|
|
9
|
+
|
|
10
|
+
WARNING_MESSAGE_IDS: Hash[Symbol, String]
|
|
7
11
|
|
|
8
12
|
private
|
|
9
13
|
|
|
@@ -13,12 +17,25 @@ module Ibex
|
|
|
13
17
|
# @rbs (IR::Grammar grammar, String input_path) -> void
|
|
14
18
|
def handle_grammar_warnings: (IR::Grammar grammar, String input_path) -> void
|
|
15
19
|
|
|
16
|
-
# @rbs (IR::grammar_warning warning, String input_path) -> String
|
|
17
|
-
def format_grammar_warning: (IR::grammar_warning warning, String input_path) -> String
|
|
20
|
+
# @rbs (IR::grammar_warning warning, String input_path, ?promoted: bool) -> String
|
|
21
|
+
def format_grammar_warning: (IR::grammar_warning warning, String input_path, ?promoted: bool) -> String
|
|
22
|
+
|
|
23
|
+
# @rbs (IR::grammar_warning warning) -> String
|
|
24
|
+
def grammar_warning_message: (IR::grammar_warning warning) -> String
|
|
18
25
|
|
|
19
26
|
# @rbs (IR::Automaton automaton, String input_path) -> void
|
|
20
27
|
def report_conflicts: (IR::Automaton automaton, String input_path) -> void
|
|
21
28
|
|
|
29
|
+
# @rbs (IR::conflict_summary summary, String input_path) -> Array[String]
|
|
30
|
+
def conflict_messages: (IR::conflict_summary summary, String input_path) -> Array[String]
|
|
31
|
+
|
|
32
|
+
# @rbs (IR::Automaton automaton, String input_path) -> void
|
|
33
|
+
# rubocop:disable Metrics/AbcSize -- the bounded comparison reports each conflict class independently.
|
|
34
|
+
def suggest_ielr: (IR::Automaton automaton, String input_path) -> void
|
|
35
|
+
|
|
36
|
+
# @rbs (Integer count, String kind) -> String
|
|
37
|
+
def conflict_count: (Integer count, String kind) -> String
|
|
38
|
+
|
|
22
39
|
# @rbs (IR::Automaton automaton, String input_path) -> void
|
|
23
40
|
def write_report: (IR::Automaton automaton, String input_path) -> void
|
|
24
41
|
|
|
@@ -27,5 +44,11 @@ module Ibex
|
|
|
27
44
|
|
|
28
45
|
# @rbs (String message) -> void
|
|
29
46
|
def report_status: (String message) -> void
|
|
47
|
+
|
|
48
|
+
# @rbs (String path, String source) -> void
|
|
49
|
+
def atomic_write_ir: (String path, String source) -> void
|
|
50
|
+
|
|
51
|
+
# @rbs (String path) -> Integer
|
|
52
|
+
def ir_file_mode: (String path) -> Integer
|
|
30
53
|
end
|
|
31
54
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/racc_migration.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Static racc migration checks and differential harness generation.
|
|
5
|
+
module CLIRaccMigration
|
|
6
|
+
type migration_check_settings = { format: String, ?help: bool }
|
|
7
|
+
|
|
8
|
+
type migration_harness_settings = { ?output: String, ?help: bool }
|
|
9
|
+
|
|
10
|
+
private def input_path: (Array[String]) -> String
|
|
11
|
+
|
|
12
|
+
private def atomic_write_ir: (String path, String source) -> void
|
|
13
|
+
|
|
14
|
+
private def same_file_target?: (String left, String right) -> bool
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
19
|
+
def run_migrate_check_command: (Array[String] arguments) -> Integer
|
|
20
|
+
|
|
21
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
22
|
+
def run_migrate_harness_command: (Array[String] arguments) -> Integer
|
|
23
|
+
|
|
24
|
+
# @rbs (migration_check_settings settings) -> OptionParser
|
|
25
|
+
def migrate_check_options: (migration_check_settings settings) -> OptionParser
|
|
26
|
+
|
|
27
|
+
# @rbs (migration_harness_settings settings) -> OptionParser
|
|
28
|
+
def migrate_harness_options: (migration_harness_settings settings) -> OptionParser
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/reduce.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
type reduction_bounds = { max_trials: Integer, timeout_seconds: Integer, max_output_bytes: Integer, max_input_bytes: Integer }
|
|
5
|
+
|
|
6
|
+
type reduction_budget_details = { kind: String, message: String, trials: Integer }
|
|
7
|
+
|
|
8
|
+
type reduction_success_document = { ibex_report: String, schema_version: Integer, result: String, mode: Symbol, original_size: Integer, minimized_size: Integer, trials: Integer, complete: bool, minimized: Array[String | Integer], bounded: bool, bounds: reduction_bounds }
|
|
9
|
+
|
|
10
|
+
type reduction_budget_document = { ibex_report: String, schema_version: Integer, result: String, mode: Symbol, bounded: bool, bounds: reduction_bounds, budget: reduction_budget_details }
|
|
11
|
+
|
|
12
|
+
# CLI entry point for generic bounded delta debugging.
|
|
13
|
+
module CLIReduce
|
|
14
|
+
include CLIReduceReporting
|
|
15
|
+
|
|
16
|
+
DEFAULT_MAX_INPUT_BYTES: Integer
|
|
17
|
+
|
|
18
|
+
class ReductionBudgetExceeded < Ibex::Error
|
|
19
|
+
attr_reader details: reduction_budget_details
|
|
20
|
+
|
|
21
|
+
# @rbs (reduction_budget_details details) -> void
|
|
22
|
+
def initialize: (reduction_budget_details details) -> void
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
@reduction_mode: Symbol
|
|
26
|
+
|
|
27
|
+
@reduction_bounds: reduction_bounds
|
|
28
|
+
|
|
29
|
+
@reduction_trials: Integer
|
|
30
|
+
|
|
31
|
+
@reduction_subprocess: BoundedSubprocess
|
|
32
|
+
|
|
33
|
+
private def print_help: (OptionParser) -> Integer
|
|
34
|
+
|
|
35
|
+
private def input_path: (Array[String]) -> String
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
40
|
+
def run_reduce_command: (Array[String] arguments) -> Integer
|
|
41
|
+
|
|
42
|
+
# @rbs () -> OptionParser
|
|
43
|
+
def reduce_option_parser: () -> OptionParser
|
|
44
|
+
|
|
45
|
+
# @rbs () -> void
|
|
46
|
+
def prepare_reduction_run: () -> void
|
|
47
|
+
|
|
48
|
+
# @rbs (String path) -> String
|
|
49
|
+
def bounded_reduction_source: (String path) -> String
|
|
50
|
+
|
|
51
|
+
# @rbs (String source, Symbol mode) -> Array[String | Integer]
|
|
52
|
+
def reduction_items: (String source, Symbol mode) -> Array[String | Integer]
|
|
53
|
+
|
|
54
|
+
# @rbs (Array[String] command, Array[String | Integer] candidate, Symbol mode) -> bool
|
|
55
|
+
def reduction_failure?: (Array[String] command, Array[String | Integer] candidate, Symbol mode) -> bool
|
|
56
|
+
|
|
57
|
+
# @rbs (String name, Integer value) -> Integer
|
|
58
|
+
def positive_reduce_option!: (String name, Integer value) -> Integer
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/reduce_reporting.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Versioned machine and terminal reports for bounded delta reduction.
|
|
5
|
+
module CLIReduceReporting
|
|
6
|
+
@reduction_mode: Symbol
|
|
7
|
+
|
|
8
|
+
@reduction_bounds: reduction_bounds
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
# @rbs (DeltaReducer::Result result) -> reduction_success_document
|
|
13
|
+
def reduction_success_report: (DeltaReducer::Result result) -> reduction_success_document
|
|
14
|
+
|
|
15
|
+
# @rbs (reduction_budget_details details) -> reduction_budget_document
|
|
16
|
+
def reduction_budget_report: (reduction_budget_details details) -> reduction_budget_document
|
|
17
|
+
|
|
18
|
+
# @rbs () -> reduction_bounds
|
|
19
|
+
def default_reduction_bounds: () -> reduction_bounds
|
|
20
|
+
|
|
21
|
+
# @rbs (reduction_success_document report) -> void
|
|
22
|
+
def write_reduction_success: (reduction_success_document report) -> void
|
|
23
|
+
|
|
24
|
+
# @rbs (reduction_budget_document report) -> void
|
|
25
|
+
def write_reduction_budget: (reduction_budget_document report) -> void
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/samples.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# CLI entry point for bounded grammar sentence generation.
|
|
5
|
+
module CLISamples
|
|
6
|
+
private def print_help: (OptionParser) -> Integer
|
|
7
|
+
|
|
8
|
+
private def input_path: (Array[String]) -> String
|
|
9
|
+
|
|
10
|
+
private def handle_grammar_warnings: (IR::Grammar, String) -> void
|
|
11
|
+
|
|
12
|
+
private def warning_categories: (String) -> Array[Symbol]
|
|
13
|
+
|
|
14
|
+
private def normalize_grammar_path: (String) -> IR::Grammar
|
|
15
|
+
|
|
16
|
+
private def set_configuration_option: (Symbol, Object?) -> void
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
21
|
+
def run_samples_command: (Array[String] arguments) -> Integer
|
|
22
|
+
|
|
23
|
+
# @rbs () -> OptionParser
|
|
24
|
+
def samples_option_parser: () -> OptionParser
|
|
25
|
+
|
|
26
|
+
# @rbs (OptionParser options) -> void
|
|
27
|
+
def add_sample_generation_options: (OptionParser options) -> void
|
|
28
|
+
|
|
29
|
+
# @rbs (OptionParser options) -> void
|
|
30
|
+
def add_sample_input_options: (OptionParser options) -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (String path) -> IR::Grammar
|
|
33
|
+
def grammar_for_samples: (String path) -> IR::Grammar
|
|
34
|
+
|
|
35
|
+
# @rbs (String name, Integer value) -> Integer
|
|
36
|
+
def positive_sample_option!: (String name, Integer value) -> Integer
|
|
37
|
+
end
|
|
38
|
+
end
|