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/codegen/ruby.rbs
CHANGED
|
@@ -3,48 +3,104 @@
|
|
|
3
3
|
module Ibex
|
|
4
4
|
module Codegen
|
|
5
5
|
# Generates a standalone Ruby parser class from Automaton IR.
|
|
6
|
+
# rubocop:disable Metrics/ClassLength -- generation stages are split into focused mixins.
|
|
6
7
|
class Ruby
|
|
7
|
-
|
|
8
|
+
include RubyActions
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
include RubyErrorMessages
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
include RubyTableMetadata
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
include RubyValuePrinters
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
include RubyLexer
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
include RubyAST
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
include RubySyntax
|
|
20
21
|
|
|
21
|
-
@
|
|
22
|
+
@automaton: IR::Automaton
|
|
22
23
|
|
|
23
24
|
@grammar: IR::Grammar
|
|
24
25
|
|
|
25
|
-
@
|
|
26
|
+
@table_format: Symbol
|
|
27
|
+
|
|
28
|
+
@embedded: bool
|
|
29
|
+
|
|
30
|
+
@line_convert: bool
|
|
31
|
+
|
|
32
|
+
@line_convert_all: bool
|
|
33
|
+
|
|
34
|
+
@debug: bool
|
|
35
|
+
|
|
36
|
+
@omit_action_call: bool
|
|
37
|
+
|
|
38
|
+
@superclass: String
|
|
39
|
+
|
|
40
|
+
@executable: String?
|
|
41
|
+
|
|
42
|
+
@cst_trivia: Symbol
|
|
43
|
+
|
|
44
|
+
@error_messages: Hash[Integer, String | { id: String, message: String }]
|
|
45
|
+
|
|
46
|
+
@generated_action_abi: GeneratedActionABI::Cache
|
|
47
|
+
|
|
48
|
+
@runtime_require: String?
|
|
26
49
|
|
|
27
50
|
# @rbs (IR::Automaton automaton, ?table: Symbol | String, ?embedded: bool, ?line_convert: bool,
|
|
28
51
|
# ?line_convert_all: bool, ?debug: bool, ?omit_action_call: bool?, ?superclass: String?,
|
|
29
|
-
# ?executable: String?
|
|
30
|
-
|
|
52
|
+
# ?executable: String?, ?cst_trivia: Symbol | String, ?runtime_require: String?,
|
|
53
|
+
# ?error_messages: Hash[Integer, String | { id: String, message: String }]) -> void
|
|
54
|
+
def initialize: (IR::Automaton automaton, ?table: Symbol | String, ?embedded: bool, ?line_convert: bool, ?line_convert_all: bool, ?debug: bool, ?omit_action_call: bool?, ?superclass: String?, ?executable: String?, ?cst_trivia: Symbol | String, ?runtime_require: String?, ?error_messages: Hash[Integer, String | { id: String, message: String }]) -> void
|
|
31
55
|
|
|
32
56
|
# @rbs () -> String
|
|
33
57
|
def generate: () -> String
|
|
34
58
|
|
|
35
59
|
private
|
|
36
60
|
|
|
61
|
+
# @rbs () -> void
|
|
62
|
+
def reject_foreign_actions: () -> void
|
|
63
|
+
|
|
64
|
+
# Kept local so the generic generator does not load the optional Bison
|
|
65
|
+
# importer and its IR validation graph.
|
|
66
|
+
# @rbs () -> String
|
|
67
|
+
def foreign_action_sentinel: () -> String
|
|
68
|
+
|
|
37
69
|
# @rbs (Array[String] lines) -> void
|
|
38
70
|
def append_runtime: (Array[String] lines) -> void
|
|
39
71
|
|
|
40
|
-
# @rbs (String relative_path) -> String
|
|
41
|
-
def embedded_source: (String relative_path) -> String
|
|
42
|
-
|
|
43
72
|
# @rbs (Array[String] lines) -> void
|
|
44
73
|
def append_tables: (Array[String] lines) -> void
|
|
45
74
|
|
|
46
|
-
# @rbs (
|
|
47
|
-
def
|
|
75
|
+
# @rbs (Array[String] lines, String indent) -> void
|
|
76
|
+
def append_cst_metadata: (Array[String] lines, String indent) -> void
|
|
77
|
+
|
|
78
|
+
# @rbs (Array[String] lines, String indent, Tables::TableSet table_set) -> void
|
|
79
|
+
def append_parser_tables: (Array[String] lines, String indent, Tables::TableSet table_set) -> void
|
|
80
|
+
|
|
81
|
+
# @rbs (Array[String] lines) -> void
|
|
82
|
+
def append_parameter_initializer: (Array[String] lines) -> void
|
|
83
|
+
|
|
84
|
+
# Custom conversion expressions can return caller-owned mutable or
|
|
85
|
+
# inherently unshareable objects, so only standard token mappings are
|
|
86
|
+
# safe to freeze transitively.
|
|
87
|
+
# @rbs () -> bool
|
|
88
|
+
def shareable_parser_tables?: () -> bool
|
|
89
|
+
|
|
90
|
+
# @rbs () -> CSTMetadata::metadata
|
|
91
|
+
def cst_metadata: () -> CSTMetadata::metadata
|
|
92
|
+
|
|
93
|
+
# @rbs (Object? value) -> String
|
|
94
|
+
def deep_frozen_literal: (Object? value) -> String
|
|
95
|
+
|
|
96
|
+
# @rbs (Object? table) -> String
|
|
97
|
+
def table_literal: (Object? table) -> String
|
|
98
|
+
|
|
99
|
+
# @rbs (Array[untyped] values) -> String
|
|
100
|
+
def packed_integers_literal: (Array[untyped] values) -> String
|
|
101
|
+
|
|
102
|
+
# @rbs (Array[untyped] values) -> String
|
|
103
|
+
def packed_signed_integers_literal: (Array[untyped] values) -> String
|
|
48
104
|
|
|
49
105
|
# @rbs () -> String
|
|
50
106
|
def token_ids_literal: () -> String
|
|
@@ -55,26 +111,47 @@ module Ibex
|
|
|
55
111
|
# @rbs () -> String
|
|
56
112
|
def token_names_literal: () -> String
|
|
57
113
|
|
|
114
|
+
# @rbs () -> String
|
|
115
|
+
def symbol_names_literal: () -> String
|
|
116
|
+
|
|
58
117
|
# @rbs () -> String
|
|
59
118
|
def productions_literal: () -> String
|
|
60
119
|
|
|
61
|
-
# @rbs (
|
|
62
|
-
def
|
|
120
|
+
# @rbs () -> String
|
|
121
|
+
def plain_productions_literal: () -> String
|
|
122
|
+
|
|
123
|
+
# @rbs (IR::Production production, bool generated_action) -> String
|
|
124
|
+
def production_action_abi_literal: (IR::Production production, bool generated_action) -> String
|
|
125
|
+
|
|
126
|
+
# @rbs () -> String
|
|
127
|
+
def compact_productions_literal: () -> String
|
|
128
|
+
|
|
129
|
+
# @rbs (IR::Production production) -> Integer
|
|
130
|
+
def compact_production_flags: (IR::Production production) -> Integer
|
|
131
|
+
|
|
132
|
+
# @rbs () -> String
|
|
133
|
+
def compact_production_metadata_literal: () -> String
|
|
134
|
+
|
|
135
|
+
# Reductions that are the sole non-error behavior of a state may run
|
|
136
|
+
# before requesting another lexer token. This enables parser actions to
|
|
137
|
+
# select lexer_state without speculative lookahead.
|
|
138
|
+
# @rbs () -> String
|
|
139
|
+
def eager_reductions_literal: () -> String
|
|
63
140
|
|
|
64
|
-
# @rbs (
|
|
65
|
-
def
|
|
141
|
+
# @rbs (IR::AutomatonState state) -> IR::reduce_action?
|
|
142
|
+
def eager_lexer_feedback_reduction: (IR::AutomatonState state) -> IR::reduce_action?
|
|
66
143
|
|
|
67
|
-
# @rbs (
|
|
68
|
-
def
|
|
144
|
+
# @rbs (IR::Action? action) -> [String, String]
|
|
145
|
+
def production_location_metadata: (IR::Action? action) -> [ String, String ]
|
|
69
146
|
|
|
70
|
-
# @rbs (
|
|
71
|
-
def
|
|
147
|
+
# @rbs () -> bool
|
|
148
|
+
def uses_locations?: () -> bool
|
|
72
149
|
|
|
73
|
-
# @rbs (
|
|
74
|
-
def
|
|
150
|
+
# @rbs (IR::Production production, IR::Action action) -> bool
|
|
151
|
+
def action_references_locations?: (IR::Production production, IR::Action action) -> bool
|
|
75
152
|
|
|
76
|
-
# @rbs (
|
|
77
|
-
def
|
|
153
|
+
# @rbs () -> bool
|
|
154
|
+
def cst?: () -> bool
|
|
78
155
|
|
|
79
156
|
# @rbs (Array[String] lines, String name, ?indent: Integer) -> void
|
|
80
157
|
def append_user_code: (Array[String] lines, String name, ?indent: Integer) -> void
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Generated from lib/ibex/codegen/ruby_actions.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Codegen
|
|
5
|
+
# Semantic-action method generation shared by direct and source-mapped
|
|
6
|
+
# Ruby output.
|
|
7
|
+
module RubyActions
|
|
8
|
+
include RubyAST
|
|
9
|
+
|
|
10
|
+
@action_method_source: ActionMethodSource?
|
|
11
|
+
|
|
12
|
+
@omit_action_call: bool
|
|
13
|
+
|
|
14
|
+
@line_convert: bool
|
|
15
|
+
|
|
16
|
+
@grammar: IR::Grammar
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
# @rbs (Array[String] lines) -> void
|
|
21
|
+
def append_actions: (Array[String] lines) -> void
|
|
22
|
+
|
|
23
|
+
# @rbs (Array[String] lines, IR::Production production) -> void
|
|
24
|
+
def append_composed_action_method: (Array[String] lines, IR::Production production) -> void
|
|
25
|
+
|
|
26
|
+
# @rbs (Array[String] lines, IR::Production production, IR::action_composition_step step, Integer index) -> void
|
|
27
|
+
def append_composed_fragment_method: (Array[String] lines, IR::Production production, IR::action_composition_step step, Integer index) -> void
|
|
28
|
+
|
|
29
|
+
# @rbs (IR::Production production, Integer index) -> String
|
|
30
|
+
def composed_fragment_name: (IR::Production production, Integer index) -> String
|
|
31
|
+
|
|
32
|
+
# @rbs (Array[String] lines, IR::Production production, IR::action_composition_plan plan) -> void
|
|
33
|
+
def append_composed_orchestrator: (Array[String] lines, IR::Production production, IR::action_composition_plan plan) -> void
|
|
34
|
+
|
|
35
|
+
# @rbs (Array[String] lines, IR::Production production, IR::action_composition_step step, Integer index) -> void
|
|
36
|
+
def append_composed_step: (Array[String] lines, IR::Production production, IR::action_composition_step step, Integer index) -> void
|
|
37
|
+
|
|
38
|
+
# @rbs (Array[String] lines, IR::Production production) -> void
|
|
39
|
+
def append_compiled_action_method: (Array[String] lines, IR::Production production) -> void
|
|
40
|
+
|
|
41
|
+
# @rbs (Array[String] lines, IR::Production production) -> void
|
|
42
|
+
def append_action_method: (Array[String] lines, IR::Production production) -> void
|
|
43
|
+
|
|
44
|
+
# @rbs (IR::Production production) -> bool
|
|
45
|
+
def action_method?: (IR::Production production) -> bool
|
|
46
|
+
|
|
47
|
+
# @rbs (IR::Production production) -> bool
|
|
48
|
+
def composed_action?: (IR::Production production) -> bool
|
|
49
|
+
|
|
50
|
+
# @rbs () -> ActionMethodSource
|
|
51
|
+
def action_method_source: () -> ActionMethodSource
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Generated from lib/ibex/codegen/ruby_ast.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Codegen
|
|
5
|
+
# Generates typed AST data classes and traversal bases from @node metadata.
|
|
6
|
+
module RubyAST
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
# @rbs (Array[String] lines) -> void
|
|
10
|
+
def append_ast: (Array[String] lines) -> void
|
|
11
|
+
|
|
12
|
+
# @rbs () -> Hash[String, IR::node_annotation]
|
|
13
|
+
def ast_node_definitions: () -> Hash[String, IR::node_annotation]
|
|
14
|
+
|
|
15
|
+
# @rbs (Array[String] lines, Hash[String, IR::node_annotation] definitions) -> void
|
|
16
|
+
def append_visitor: (Array[String] lines, Hash[String, IR::node_annotation] definitions) -> void
|
|
17
|
+
|
|
18
|
+
# @rbs (Array[String] lines) -> void
|
|
19
|
+
def append_visit_children: (Array[String] lines) -> void
|
|
20
|
+
|
|
21
|
+
# @rbs (Array[String] lines, Hash[String, IR::node_annotation] definitions) -> void
|
|
22
|
+
def append_listener: (Array[String] lines, Hash[String, IR::node_annotation] definitions) -> void
|
|
23
|
+
|
|
24
|
+
# @rbs (Array[String] lines, Hash[String, IR::node_annotation] definitions, :enter | :exit kind) -> void
|
|
25
|
+
def append_listener_dispatch: (Array[String] lines, Hash[String, IR::node_annotation] definitions, :enter | :exit kind) -> void
|
|
26
|
+
|
|
27
|
+
# @rbs (IR::Production production) -> String
|
|
28
|
+
def ast_node_action_source: (IR::Production production) -> String
|
|
29
|
+
|
|
30
|
+
# @rbs (String name) -> String
|
|
31
|
+
def ast_method_name: (String name) -> String
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Generated from lib/ibex/codegen/ruby_error_messages.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Codegen
|
|
5
|
+
# Serializes immutable example-keyed error records into generated Ruby.
|
|
6
|
+
module RubyErrorMessages
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
# @rbs () -> String
|
|
10
|
+
def error_messages_literal: () -> String
|
|
11
|
+
|
|
12
|
+
# @rbs (String | { id: String, message: String } message) -> String
|
|
13
|
+
def error_message_literal: (String | { id: String, message: String } message) -> String
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Generated from lib/ibex/codegen/ruby_lexer.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Codegen
|
|
5
|
+
# Generated lexer tables and action methods.
|
|
6
|
+
module RubyLexer
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
# @rbs (Array[String] lines) -> void
|
|
10
|
+
def append_lexer: (Array[String] lines) -> void
|
|
11
|
+
|
|
12
|
+
# @rbs (Array[String] lines, IR::Lexer lexer) -> void
|
|
13
|
+
def append_lexer_rules: (Array[String] lines, IR::Lexer lexer) -> void
|
|
14
|
+
|
|
15
|
+
# @rbs (IR::LexerRule rule) -> String
|
|
16
|
+
def lexer_rule_literal: (IR::LexerRule rule) -> String
|
|
17
|
+
|
|
18
|
+
# @rbs (Array[String] lines, IR::Lexer lexer) -> void
|
|
19
|
+
def append_lexer_actions: (Array[String] lines, IR::Lexer lexer) -> void
|
|
20
|
+
|
|
21
|
+
# @rbs (IR::LexerRule rule) -> String
|
|
22
|
+
def lexer_action_source: (IR::LexerRule rule) -> String
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Generated from lib/ibex/codegen/ruby_syntax.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Codegen
|
|
5
|
+
# Generates typed Red syntax views from @node metadata.
|
|
6
|
+
module RubySyntax
|
|
7
|
+
type syntax_definition = Hash[Symbol, untyped]
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
# @rbs (Array[String] lines) -> void
|
|
12
|
+
def append_syntax: (Array[String] lines) -> void
|
|
13
|
+
|
|
14
|
+
# @rbs () -> Hash[String, syntax_definition]
|
|
15
|
+
def syntax_node_definitions: () -> Hash[String, syntax_definition]
|
|
16
|
+
|
|
17
|
+
# @rbs (Hash[String, CSTMetadata::field_slot] left, Hash[String, CSTMetadata::field_slot] right) -> Hash[String, CSTMetadata::field_slot]
|
|
18
|
+
def merge_syntax_fields: (Hash[String, CSTMetadata::field_slot] left, Hash[String, CSTMetadata::field_slot] right) -> Hash[String, CSTMetadata::field_slot]
|
|
19
|
+
|
|
20
|
+
# @rbs (Array[String] lines, syntax_definition definition) -> void
|
|
21
|
+
def append_syntax_node: (Array[String] lines, syntax_definition definition) -> void
|
|
22
|
+
|
|
23
|
+
# @rbs (Array[String] lines, Hash[String, CSTMetadata::field_slot] fields) -> void
|
|
24
|
+
def append_repetition_accessors: (Array[String] lines, Hash[String, CSTMetadata::field_slot] fields) -> void
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Generated from lib/ibex/codegen/ruby_table_metadata.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Codegen
|
|
5
|
+
# Emits immutable identity and size metadata for generated parser tables.
|
|
6
|
+
module RubyTableMetadata
|
|
7
|
+
@automaton: IR::Automaton
|
|
8
|
+
|
|
9
|
+
@grammar: IR::Grammar
|
|
10
|
+
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
# @rbs (Array[String] lines, String indent) -> void
|
|
14
|
+
def append_table_metadata: (Array[String] lines, String indent) -> void
|
|
15
|
+
|
|
16
|
+
# @rbs (Array[String] lines) -> void
|
|
17
|
+
def append_entry_methods: (Array[String] lines) -> void
|
|
18
|
+
|
|
19
|
+
# @rbs () -> String
|
|
20
|
+
def entry_table_fields: () -> String
|
|
21
|
+
|
|
22
|
+
# @rbs () -> String
|
|
23
|
+
def recovery_table_fields: () -> String
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Generated from lib/ibex/codegen/ruby_value_printers.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Codegen
|
|
5
|
+
# Emits declarative value-printer tables and methods for Ruby parsers.
|
|
6
|
+
module RubyValuePrinters
|
|
7
|
+
@grammar: IR::Grammar
|
|
8
|
+
|
|
9
|
+
@line_convert: bool
|
|
10
|
+
|
|
11
|
+
@value_printer_action_method_source: ActionMethodSource?
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
# @rbs (Array[String] lines, String indent) -> void
|
|
16
|
+
def append_value_printer_table: (Array[String] lines, String indent) -> void
|
|
17
|
+
|
|
18
|
+
# @rbs (Array[String] lines) -> void
|
|
19
|
+
def append_value_printers: (Array[String] lines) -> void
|
|
20
|
+
|
|
21
|
+
# @rbs (Array[String] lines, IR::value_printer printer) -> void
|
|
22
|
+
def append_value_printer: (Array[String] lines, IR::value_printer printer) -> void
|
|
23
|
+
|
|
24
|
+
# @rbs () -> ActionMethodSource
|
|
25
|
+
def value_printer_action_method_source: () -> ActionMethodSource
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Generated from lib/ibex/configuration/analysis_grammar.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Configuration
|
|
5
|
+
# Produces an immutable Grammar IR view suitable for an explicitly
|
|
6
|
+
# noncanonical analysis algorithm. The source-owned contract remains the
|
|
7
|
+
# authority; callers must report the override through Configuration::Value.
|
|
8
|
+
module AnalysisGrammar
|
|
9
|
+
# @rbs (IR::Grammar grammar, Symbol algorithm) -> IR::Grammar
|
|
10
|
+
def self?.for_algorithm: (IR::Grammar grammar, Symbol algorithm) -> IR::Grammar
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# Generated from lib/ibex/configuration/explanation.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Configuration
|
|
5
|
+
# One observed configuration source and how it participated in selection.
|
|
6
|
+
class Evidence
|
|
7
|
+
STATUSES: Array[Symbol]
|
|
8
|
+
|
|
9
|
+
SOURCES: Array[Symbol]
|
|
10
|
+
|
|
11
|
+
attr_reader key: Key
|
|
12
|
+
|
|
13
|
+
attr_reader source: Symbol
|
|
14
|
+
|
|
15
|
+
attr_reader value: config_value
|
|
16
|
+
|
|
17
|
+
attr_reader status: Symbol
|
|
18
|
+
|
|
19
|
+
attr_reader location: Location?
|
|
20
|
+
|
|
21
|
+
attr_reader reason: String
|
|
22
|
+
|
|
23
|
+
# @rbs (Key key, source: Symbol, value: config_value, status: Symbol, reason: String,
|
|
24
|
+
# ?location: Location?) -> void
|
|
25
|
+
def initialize: (Key key, source: Symbol, value: config_value, status: Symbol, reason: String, ?location: Location?) -> void
|
|
26
|
+
|
|
27
|
+
# @rbs () -> Hash[String, json_value]
|
|
28
|
+
def to_h: () -> Hash[String, json_value]
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
# @rbs (config_value value) -> (String | Integer | bool | nil)
|
|
33
|
+
def json_value: (config_value value) -> (String | Integer | bool | nil)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Whether an input can prove the historical source of a selected setting.
|
|
37
|
+
class Recording
|
|
38
|
+
STATES: Array[Symbol]
|
|
39
|
+
|
|
40
|
+
attr_reader state: Symbol
|
|
41
|
+
|
|
42
|
+
attr_reader reason: String
|
|
43
|
+
|
|
44
|
+
# @rbs (Symbol state, String reason) -> void
|
|
45
|
+
def initialize: (Symbol state, String reason) -> void
|
|
46
|
+
|
|
47
|
+
# @rbs () -> Hash[String, String]
|
|
48
|
+
def to_h: () -> Hash[String, String]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Canonical, static input facts used to build a configuration report.
|
|
52
|
+
class Input
|
|
53
|
+
KINDS: Array[Symbol]
|
|
54
|
+
|
|
55
|
+
attr_reader kind: Symbol
|
|
56
|
+
|
|
57
|
+
attr_reader path: String
|
|
58
|
+
|
|
59
|
+
attr_reader files: Array[String]
|
|
60
|
+
|
|
61
|
+
attr_reader schema_version: Integer?
|
|
62
|
+
|
|
63
|
+
attr_reader grammar_values: Hash[String, config_value]
|
|
64
|
+
|
|
65
|
+
attr_reader grammar_locations: Hash[String, Location]
|
|
66
|
+
|
|
67
|
+
attr_reader evidence: Hash[String, Array[Evidence]]
|
|
68
|
+
|
|
69
|
+
attr_reader recordings: Hash[String, Recording]
|
|
70
|
+
|
|
71
|
+
# @rbs (kind: Symbol, path: String, ?files: Array[String], ?schema_version: Integer?,
|
|
72
|
+
# ?grammar_values: Hash[String, config_value], ?grammar_locations: Hash[String, Location],
|
|
73
|
+
# ?evidence: Hash[String, Array[Evidence]], ?recordings: Hash[String, Recording]) -> void
|
|
74
|
+
def initialize: (kind: Symbol, path: String, ?files: Array[String], ?schema_version: Integer?, ?grammar_values: Hash[String, config_value], ?grammar_locations: Hash[String, Location], ?evidence: Hash[String, Array[Evidence]], ?recordings: Hash[String, Recording]) -> void
|
|
75
|
+
|
|
76
|
+
# @rbs () -> Hash[String, json_value]
|
|
77
|
+
def to_h: () -> Hash[String, json_value]
|
|
78
|
+
|
|
79
|
+
private
|
|
80
|
+
|
|
81
|
+
# @rbs (Symbol kind, String path, Array[String] files, Integer? schema_version,
|
|
82
|
+
# Hash[String, config_value] grammar_values, Hash[String, Location] grammar_locations,
|
|
83
|
+
# Hash[String, Array[Evidence]] evidence, Hash[String, Recording] recordings) -> void
|
|
84
|
+
def assign_input: (Symbol kind, String path, Array[String] files, Integer? schema_version, Hash[String, config_value] grammar_values, Hash[String, Location] grammar_locations, Hash[String, Array[Evidence]] evidence, Hash[String, Recording] recordings) -> void
|
|
85
|
+
|
|
86
|
+
# @rbs (Array[String] files, String path) -> void
|
|
87
|
+
def validate_files!: (Array[String] files, String path) -> void
|
|
88
|
+
|
|
89
|
+
# @rbs (Symbol kind, Integer? schema_version) -> void
|
|
90
|
+
def validate_schema_version!: (Symbol kind, Integer? schema_version) -> void
|
|
91
|
+
|
|
92
|
+
# @rbs (Hash[String, config_value] values, Hash[String, Location] locations,
|
|
93
|
+
# Hash[String, Array[Evidence]] evidence, Hash[String, Recording] recordings) -> void
|
|
94
|
+
def validate_entries!: (Hash[String, config_value] values, Hash[String, Location] locations, Hash[String, Array[Evidence]] evidence, Hash[String, Recording] recordings) -> void
|
|
95
|
+
|
|
96
|
+
# @rbs (*Hash[Object?, Object?] values) -> void
|
|
97
|
+
def validate_fact_hashes!: (*Hash[Object?, Object?] values) -> void
|
|
98
|
+
|
|
99
|
+
# @rbs (Hash[String, config_value] values, Hash[String, Location] locations) -> void
|
|
100
|
+
def validate_locations!: (Hash[String, config_value] values, Hash[String, Location] locations) -> void
|
|
101
|
+
|
|
102
|
+
# @rbs (Hash[String, Array[Evidence]] evidence) -> void
|
|
103
|
+
def validate_evidence!: (Hash[String, Array[Evidence]] evidence) -> void
|
|
104
|
+
|
|
105
|
+
# @rbs (Hash[String, Recording] recordings) -> void
|
|
106
|
+
def validate_recordings!: (Hash[String, Recording] recordings) -> void
|
|
107
|
+
|
|
108
|
+
# @rbs (Hash[String, config_value] values) -> Hash[String, config_value]
|
|
109
|
+
def immutable_values: (Hash[String, config_value] values) -> Hash[String, config_value]
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# A fixed-contract mismatch retained as structured report data.
|
|
113
|
+
class ConflictRecord
|
|
114
|
+
attr_reader key: Key
|
|
115
|
+
|
|
116
|
+
attr_reader declared: Value
|
|
117
|
+
|
|
118
|
+
attr_reader requested: Value
|
|
119
|
+
|
|
120
|
+
# @rbs (Conflict conflict) -> void
|
|
121
|
+
def initialize: (Conflict conflict) -> void
|
|
122
|
+
|
|
123
|
+
# @rbs () -> Hash[String, json_value]
|
|
124
|
+
def to_h: () -> Hash[String, json_value]
|
|
125
|
+
|
|
126
|
+
# @rbs () -> String
|
|
127
|
+
def message: () -> String
|
|
128
|
+
|
|
129
|
+
private
|
|
130
|
+
|
|
131
|
+
# @rbs (Value value) -> Hash[String, json_value]
|
|
132
|
+
def selection: (Value value) -> Hash[String, json_value]
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# The effective value and all accepted or rejected evidence for one key.
|
|
136
|
+
class Explanation
|
|
137
|
+
attr_reader value: Value
|
|
138
|
+
|
|
139
|
+
attr_reader evidence: Array[Evidence]
|
|
140
|
+
|
|
141
|
+
attr_reader recording: Recording
|
|
142
|
+
|
|
143
|
+
# @rbs (Value value, evidence: Array[Evidence], recording: Recording) -> void
|
|
144
|
+
def initialize: (Value value, evidence: Array[Evidence], recording: Recording) -> void
|
|
145
|
+
|
|
146
|
+
# @rbs () -> Hash[String, json_value]
|
|
147
|
+
def to_h: () -> Hash[String, json_value]
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
# Deterministic, static-no-user-code explanation of every registered setting.
|
|
151
|
+
class Report
|
|
152
|
+
attr_reader input: Input
|
|
153
|
+
|
|
154
|
+
attr_reader explanations: Array[Explanation]
|
|
155
|
+
|
|
156
|
+
attr_reader conflicts: Array[ConflictRecord]
|
|
157
|
+
|
|
158
|
+
# @rbs (Input input, ?cli: Hash[String, config_value]) -> void
|
|
159
|
+
def initialize: (Input input, ?cli: Hash[String, config_value]) -> void
|
|
160
|
+
|
|
161
|
+
# @rbs () -> bool
|
|
162
|
+
def success?: () -> bool
|
|
163
|
+
|
|
164
|
+
# @rbs () -> Hash[String, json_value]
|
|
165
|
+
def to_h: () -> Hash[String, json_value]
|
|
166
|
+
|
|
167
|
+
# Deterministic JSON independent of caller hash insertion order.
|
|
168
|
+
# @rbs () -> String
|
|
169
|
+
def dump: () -> String
|
|
170
|
+
|
|
171
|
+
# @rbs () -> String
|
|
172
|
+
def render_text: () -> String
|
|
173
|
+
|
|
174
|
+
private
|
|
175
|
+
|
|
176
|
+
# @rbs (Key key, Hash[String, config_value] cli) -> Value
|
|
177
|
+
def resolve_key: (Key key, Hash[String, config_value] cli) -> Value
|
|
178
|
+
|
|
179
|
+
# @rbs (Value value, Hash[String, config_value] cli, ?conflict: ConflictRecord?) -> Explanation
|
|
180
|
+
def explanation: (Value value, Hash[String, config_value] cli, ?conflict: ConflictRecord?) -> Explanation
|
|
181
|
+
|
|
182
|
+
# @rbs (Key key, config_value raw, conflicting: bool) -> Evidence
|
|
183
|
+
def cli_evidence: (Key key, config_value raw, conflicting: bool) -> Evidence
|
|
184
|
+
|
|
185
|
+
# @rbs (config_value value) -> String
|
|
186
|
+
def display: (config_value value) -> String
|
|
187
|
+
|
|
188
|
+
# @rbs (Location location) -> String
|
|
189
|
+
def location_label: (Location location) -> String
|
|
190
|
+
|
|
191
|
+
# @rbs (Explanation entry) -> Array[String]
|
|
192
|
+
def render_explanation: (Explanation entry) -> Array[String]
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Generated from lib/ibex/configuration/inspector.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Configuration
|
|
5
|
+
# Converts parsed source or validated Grammar IR into static configuration facts.
|
|
6
|
+
# rubocop:disable Metrics/ModuleLength -- source and IR adapters share one closed evidence vocabulary.
|
|
7
|
+
module Inspector
|
|
8
|
+
# @rbs (Frontend::Resolution resolution) -> Input
|
|
9
|
+
def self?.from_source: (Frontend::Resolution resolution) -> Input
|
|
10
|
+
|
|
11
|
+
# @rbs (IR::Grammar grammar, path: String) -> Input
|
|
12
|
+
def self?.from_grammar_ir: (IR::Grammar grammar, path: String) -> Input
|
|
13
|
+
|
|
14
|
+
# @rbs (Hash[String, config_value] values, Hash[String, Location] locations,
|
|
15
|
+
# Hash[String, Array[Evidence]] evidence, String name, config_value value,
|
|
16
|
+
# Frontend::Location | Location location) -> void
|
|
17
|
+
def self?.add_source_fact: (Hash[String, config_value] values, Hash[String, Location] locations, Hash[String, Array[Evidence]] evidence, String name, config_value value, Frontend::Location | Location location) -> void
|
|
18
|
+
|
|
19
|
+
# @rbs (Frontend::AST::Root root, Hash[String, config_value] values, Hash[String, Location] locations,
|
|
20
|
+
# Hash[String, Array[Evidence]] evidence) -> void
|
|
21
|
+
def self?.add_source_options: (Frontend::AST::Root root, Hash[String, config_value] values, Hash[String, Location] locations, Hash[String, Array[Evidence]] evidence) -> void
|
|
22
|
+
|
|
23
|
+
# @rbs (Frontend::AST::Root root, Hash[String, config_value] values, Hash[String, Location] locations,
|
|
24
|
+
# Hash[String, Array[Evidence]] evidence) -> void
|
|
25
|
+
def self?.add_source_parser_contract: (Frontend::AST::Root root, Hash[String, config_value] values, Hash[String, Location] locations, Hash[String, Array[Evidence]] evidence) -> void
|
|
26
|
+
|
|
27
|
+
# @rbs (String name) -> bool?
|
|
28
|
+
def self?.option_value: (String name) -> bool?
|
|
29
|
+
|
|
30
|
+
# @rbs (Frontend::Location | Location location) -> Location
|
|
31
|
+
def self?.configuration_location: (Frontend::Location | Location location) -> Location
|
|
32
|
+
|
|
33
|
+
# @rbs (Key key, Array[[bool, Location]] occurrences, bool selected_value) -> Array[Evidence]
|
|
34
|
+
def self?.option_evidence: (Key key, Array[[ bool, Location ]] occurrences, bool selected_value) -> Array[Evidence]
|
|
35
|
+
|
|
36
|
+
# @rbs (Hash[String, config_value] values, Hash[String, Array[Evidence]] evidence,
|
|
37
|
+
# Hash[String, Recording] recordings, String name, config_value value) -> void
|
|
38
|
+
def self?.add_ir_fact: (Hash[String, config_value] values, Hash[String, Array[Evidence]] evidence, Hash[String, Recording] recordings, String name, config_value value) -> void
|
|
39
|
+
|
|
40
|
+
# @rbs (IR::Grammar grammar, Hash[String, config_value] values, Hash[String, Location] locations,
|
|
41
|
+
# Hash[String, Array[Evidence]] evidence, Hash[String, Recording] recordings) -> void
|
|
42
|
+
def self?.add_parser_contract: (IR::Grammar grammar, Hash[String, config_value] values, Hash[String, Location] locations, Hash[String, Array[Evidence]] evidence, Hash[String, Recording] recordings) -> void
|
|
43
|
+
|
|
44
|
+
# @rbs (String name, IR::ParserContract::Entry entry, Hash[String, config_value] values,
|
|
45
|
+
# Hash[String, Location] locations, Hash[String, Array[Evidence]] evidence,
|
|
46
|
+
# Hash[String, Recording] recordings) -> void
|
|
47
|
+
def self?.add_contract_entry: (String name, IR::ParserContract::Entry entry, Hash[String, config_value] values, Hash[String, Location] locations, Hash[String, Array[Evidence]] evidence, Hash[String, Recording] recordings) -> void
|
|
48
|
+
|
|
49
|
+
# @rbs (IR::ParserContract contract) -> Hash[String, IR::ParserContract::Entry]
|
|
50
|
+
def self?.contract_entries: (IR::ParserContract contract) -> Hash[String, IR::ParserContract::Entry]
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|