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,94 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/document_store.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Owns open buffers, parsed snapshots, include closures, and reverse dependencies.
|
|
6
|
+
class DocumentStore
|
|
7
|
+
include DocumentStoreValidation
|
|
8
|
+
|
|
9
|
+
include DocumentStoreDiagnostics
|
|
10
|
+
|
|
11
|
+
type snapshot = { uri: String, path: String, version: Integer?, source: String, open: bool, document: Frontend::SourceDocument? }
|
|
12
|
+
|
|
13
|
+
type publication = { uri: String, ?version: Integer, diagnostics: Array[WorkspaceAnalyzer::lsp_diagnostic] }
|
|
14
|
+
|
|
15
|
+
attr_reader loader: Frontend::SourceLoader
|
|
16
|
+
|
|
17
|
+
attr_reader workspace: Workspace
|
|
18
|
+
|
|
19
|
+
# @rbs (Workspace workspace, Frontend::SourceLoader loader) -> void
|
|
20
|
+
def initialize: (Workspace workspace, Frontend::SourceLoader loader) -> void
|
|
21
|
+
|
|
22
|
+
# @rbs (String uri, Integer version, String source) -> Array[publication]
|
|
23
|
+
def open: (String uri, Integer version, String source) -> Array[publication]
|
|
24
|
+
|
|
25
|
+
# @rbs (String uri, Integer version, String source) -> Array[publication]
|
|
26
|
+
def change: (String uri, Integer version, String source) -> Array[publication]
|
|
27
|
+
|
|
28
|
+
# @rbs (String uri, ?source: String?) -> Array[publication]
|
|
29
|
+
def save: (String uri, ?source: String?) -> Array[publication]
|
|
30
|
+
|
|
31
|
+
# Clear the open version first, then replace it with a disk snapshot if one exists.
|
|
32
|
+
# @rbs (String uri) -> Array[publication]
|
|
33
|
+
def close: (String uri) -> Array[publication]
|
|
34
|
+
|
|
35
|
+
# @rbs (String path) -> snapshot?
|
|
36
|
+
def snapshot_for: (String path) -> snapshot?
|
|
37
|
+
|
|
38
|
+
# Preserve the URI spelling used to open a document; closed files use their canonical URI.
|
|
39
|
+
# @rbs (String path) -> String
|
|
40
|
+
def uri_for: (String path) -> String
|
|
41
|
+
|
|
42
|
+
# @rbs (String path) -> Array[String]
|
|
43
|
+
def files_for: (String path) -> Array[String]
|
|
44
|
+
|
|
45
|
+
# @rbs (String path) -> Array[Frontend::Resolution]
|
|
46
|
+
def resolutions_for: (String path) -> Array[Frontend::Resolution]
|
|
47
|
+
|
|
48
|
+
# @rbs (String path) -> Array[String]
|
|
49
|
+
def roots_for: (String path) -> Array[String]
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
|
|
53
|
+
# @rbs (String path) -> Array[publication]
|
|
54
|
+
def refresh: (String path) -> Array[publication]
|
|
55
|
+
|
|
56
|
+
# @rbs (String path) -> Array[publication]
|
|
57
|
+
def refresh_dependents: (String path) -> Array[publication]
|
|
58
|
+
|
|
59
|
+
# @rbs (String root) -> void
|
|
60
|
+
def refresh_root: (String root) -> void
|
|
61
|
+
|
|
62
|
+
# @rbs () -> void
|
|
63
|
+
def rebuild_reverse_dependencies: () -> void
|
|
64
|
+
|
|
65
|
+
# @rbs (String path) -> Array[String]
|
|
66
|
+
def affected_roots: (String path) -> Array[String]
|
|
67
|
+
|
|
68
|
+
# @rbs (String path, WorkspaceAnalyzer::analyzed_document analyzed, ?own_diagnostics: bool) -> void
|
|
69
|
+
def update_snapshot: (String path, WorkspaceAnalyzer::analyzed_document analyzed, ?own_diagnostics: bool) -> void
|
|
70
|
+
|
|
71
|
+
# @rbs (String path, Frontend::SourceDocument? document) -> void
|
|
72
|
+
def update_root_membership: (String path, Frontend::SourceDocument? document) -> void
|
|
73
|
+
|
|
74
|
+
# @rbs (Array[String] paths) -> Array[publication]
|
|
75
|
+
def publish_paths: (Array[String] paths) -> Array[publication]
|
|
76
|
+
|
|
77
|
+
# @rbs (String uri, String path, Integer? version, String source, bool open,
|
|
78
|
+
# Frontend::SourceDocument? document) -> snapshot
|
|
79
|
+
def snapshot: (String uri, String path, Integer? version, String source, bool open, Frontend::SourceDocument? document) -> snapshot
|
|
80
|
+
|
|
81
|
+
# @rbs (String path, String uri) -> snapshot
|
|
82
|
+
def open_snapshot: (String path, String uri) -> snapshot
|
|
83
|
+
|
|
84
|
+
# @rbs () -> Array[String]
|
|
85
|
+
def empty_paths: () -> Array[String]
|
|
86
|
+
|
|
87
|
+
# @rbs (String path) -> void
|
|
88
|
+
def remove_path: (String path) -> void
|
|
89
|
+
|
|
90
|
+
# @rbs (String path) -> void
|
|
91
|
+
def remove_root_state: (String path) -> void
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/document_store_diagnostics.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Owns per-document and per-root diagnostic aggregation for DocumentStore.
|
|
6
|
+
module DocumentStoreDiagnostics
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
# @rbs (String root, Array[String] files, Hash[String, WorkspaceAnalyzer::analyzed_document] analyzed,
|
|
10
|
+
# Array[WorkspaceAnalyzer::lsp_diagnostic] errors) -> void
|
|
11
|
+
def replace_root_diagnostics: (String root, Array[String] files, Hash[String, WorkspaceAnalyzer::analyzed_document] analyzed, Array[WorkspaceAnalyzer::lsp_diagnostic] errors) -> void
|
|
12
|
+
|
|
13
|
+
# @rbs (String path) -> Array[WorkspaceAnalyzer::lsp_diagnostic]
|
|
14
|
+
def aggregated_diagnostics: (String path) -> Array[WorkspaceAnalyzer::lsp_diagnostic]
|
|
15
|
+
|
|
16
|
+
# @rbs () -> Array[WorkspaceAnalyzer::lsp_diagnostic]
|
|
17
|
+
def empty_diagnostics: () -> Array[WorkspaceAnalyzer::lsp_diagnostic]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/document_store_validation.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Validates versions, source bounds, and prospective multi-file workspace edits.
|
|
6
|
+
module DocumentStoreValidation
|
|
7
|
+
# @rbs (Hash[String, String] replacements) -> bool
|
|
8
|
+
def valid_replacements?: (Hash[String, String] replacements) -> bool
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
# @rbs (Integer version) -> void
|
|
13
|
+
def validate_version: (Integer version) -> void
|
|
14
|
+
|
|
15
|
+
# @rbs (String source) -> void
|
|
16
|
+
def validate_source: (String source) -> void
|
|
17
|
+
|
|
18
|
+
# @rbs (String path, String source) -> void
|
|
19
|
+
def parse_candidate: (String path, String source) -> void
|
|
20
|
+
|
|
21
|
+
# Resolve disk independently from overlay aliases before removing an open buffer.
|
|
22
|
+
# @rbs (String path, String uri) -> String?
|
|
23
|
+
def disk_path_for_close: (String path, String uri) -> String?
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/initialization_handlers.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Handles initialize/initialized/shutdown/exit lifecycle transitions.
|
|
6
|
+
module InitializationHandlers
|
|
7
|
+
include RequestSupport
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
# @rbs (lsp_value? raw_params) -> lsp_object
|
|
12
|
+
def initialize_workspace: (lsp_value? raw_params) -> lsp_object
|
|
13
|
+
|
|
14
|
+
# @rbs (lsp_value? params) -> nil
|
|
15
|
+
def initialized_notification: (lsp_value? params) -> nil
|
|
16
|
+
|
|
17
|
+
# @rbs (lsp_value? params) -> nil
|
|
18
|
+
def shutdown_request: (lsp_value? params) -> nil
|
|
19
|
+
|
|
20
|
+
# @rbs (lsp_value? params) -> nil
|
|
21
|
+
def exit_notification: (lsp_value? params) -> nil
|
|
22
|
+
|
|
23
|
+
# @rbs () -> lsp_object
|
|
24
|
+
def capabilities: () -> lsp_object
|
|
25
|
+
|
|
26
|
+
# @rbs (lsp_object params) -> Array[String]
|
|
27
|
+
def initialization_roots: (lsp_object params) -> Array[String]
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/navigation_handlers.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Serves symbol navigation, rename, and hover requests.
|
|
6
|
+
module NavigationHandlers
|
|
7
|
+
include RequestSupport
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
# @rbs (lsp_object? raw_params) -> Array[lsp_object]
|
|
12
|
+
def definition: (lsp_object? raw_params) -> Array[lsp_object]
|
|
13
|
+
|
|
14
|
+
# @rbs (lsp_object? raw_params) -> Array[lsp_object]
|
|
15
|
+
def references: (lsp_object? raw_params) -> Array[lsp_object]
|
|
16
|
+
|
|
17
|
+
# @rbs (lsp_object? raw_params) -> lsp_object?
|
|
18
|
+
def prepare_rename: (lsp_object? raw_params) -> lsp_object?
|
|
19
|
+
|
|
20
|
+
# @rbs (lsp_object? raw_params) -> lsp_object
|
|
21
|
+
def rename: (lsp_object? raw_params) -> lsp_object
|
|
22
|
+
|
|
23
|
+
# @rbs (lsp_object? raw_params) -> lsp_object?
|
|
24
|
+
def hover: (lsp_object? raw_params) -> lsp_object?
|
|
25
|
+
|
|
26
|
+
# @rbs (lsp_object? raw_params) -> lsp_object
|
|
27
|
+
def completion: (lsp_object? raw_params) -> lsp_object
|
|
28
|
+
|
|
29
|
+
# @rbs (lsp_object? raw_params) { (SymbolIndex, String, lsp_object) -> Object? } -> Object?
|
|
30
|
+
def with_index: (lsp_object? raw_params) { (SymbolIndex, String, lsp_object) -> Object? } -> Object?
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/parser_configuration_assistance.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Provides static editor assistance for the root parser declaration without evaluating grammar code.
|
|
6
|
+
class ParserConfigurationAssistance
|
|
7
|
+
SETTING_VALUES: Hash[String, Array[String]]
|
|
8
|
+
|
|
9
|
+
SETTING_DOCUMENTATION: Hash[String, String]
|
|
10
|
+
|
|
11
|
+
VALUE_DOCUMENTATION: Hash[String, String]
|
|
12
|
+
|
|
13
|
+
# @rbs (DocumentStore store, String path) -> void
|
|
14
|
+
def initialize: (DocumentStore store, String path) -> void
|
|
15
|
+
|
|
16
|
+
# @rbs (lsp_object position) -> lsp_object
|
|
17
|
+
def completion: (lsp_object position) -> lsp_object
|
|
18
|
+
|
|
19
|
+
# @rbs (lsp_object position) -> lsp_object?
|
|
20
|
+
def hover: (lsp_object position) -> lsp_object?
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
# @rbs () -> String
|
|
25
|
+
def source!: () -> String
|
|
26
|
+
|
|
27
|
+
# @rbs (String source, Integer offset) -> Integer
|
|
28
|
+
def line_start: (String source, Integer offset) -> Integer
|
|
29
|
+
|
|
30
|
+
# @rbs (String source) -> bool
|
|
31
|
+
def parser_block_open?: (String source) -> bool
|
|
32
|
+
|
|
33
|
+
# @rbs () -> Array[lsp_object]
|
|
34
|
+
def setting_items: () -> Array[lsp_object]
|
|
35
|
+
|
|
36
|
+
# @rbs (String setting) -> Array[lsp_object]
|
|
37
|
+
def value_items: (String setting) -> Array[lsp_object]
|
|
38
|
+
|
|
39
|
+
# @rbs (String label, Integer kind, String documentation) -> lsp_object
|
|
40
|
+
def completion_item: (String label, Integer kind, String documentation) -> lsp_object
|
|
41
|
+
|
|
42
|
+
# @rbs (Array[lsp_object] items) -> lsp_object
|
|
43
|
+
def completion_list: (Array[lsp_object] items) -> lsp_object
|
|
44
|
+
|
|
45
|
+
# @rbs (MatchData match, String line, Integer line_start, Integer offset) -> [String?, Integer, Integer]
|
|
46
|
+
def hovered_token: (MatchData match, String line, Integer line_start, Integer offset) -> [ String?, Integer, Integer ]
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/position_codec.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
type lsp_value = String | Integer | Float | bool | nil | Array[lsp_value] | Hash[String, lsp_value]
|
|
6
|
+
|
|
7
|
+
type lsp_object = Hash[String, lsp_value]
|
|
8
|
+
|
|
9
|
+
# Converts between frontend byte offsets and zero-based LSP UTF-16 positions.
|
|
10
|
+
class PositionCodec
|
|
11
|
+
# @rbs (String source) -> void
|
|
12
|
+
def initialize: (String source) -> void
|
|
13
|
+
|
|
14
|
+
# @rbs (Integer byte_offset) -> Hash[String, Integer]
|
|
15
|
+
def position: (Integer byte_offset) -> Hash[String, Integer]
|
|
16
|
+
|
|
17
|
+
# @rbs (lsp_object position) -> Integer
|
|
18
|
+
def byte_offset: (lsp_object position) -> Integer
|
|
19
|
+
|
|
20
|
+
# @rbs (Frontend::SourceSpan span) -> Hash[String, Hash[String, Integer]]
|
|
21
|
+
def range: (Frontend::SourceSpan span) -> Hash[String, Hash[String, Integer]]
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
# @rbs () -> Array[Integer]
|
|
26
|
+
def build_line_starts: () -> Array[Integer]
|
|
27
|
+
|
|
28
|
+
# @rbs (Integer line) -> Integer
|
|
29
|
+
def content_end: (Integer line) -> Integer
|
|
30
|
+
|
|
31
|
+
# @rbs (String text) -> Integer
|
|
32
|
+
def utf16_length: (String text) -> Integer
|
|
33
|
+
|
|
34
|
+
# @rbs (String text, Integer units) -> Integer
|
|
35
|
+
def byte_length_at_utf16: (String text, Integer units) -> Integer
|
|
36
|
+
|
|
37
|
+
# @rbs (lsp_object position, String name) -> Integer
|
|
38
|
+
def integer_member: (lsp_object position, String name) -> Integer
|
|
39
|
+
|
|
40
|
+
# @rbs (Integer byte_offset) -> void
|
|
41
|
+
def validate_byte_offset: (Integer byte_offset) -> void
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/protocol_error.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Resource bounds shared by transport and open-document validation.
|
|
6
|
+
module Limits
|
|
7
|
+
MAX_HEADER_BYTES: untyped
|
|
8
|
+
|
|
9
|
+
MAX_MESSAGE_BYTES: untyped
|
|
10
|
+
|
|
11
|
+
MAX_DOCUMENT_BYTES: untyped
|
|
12
|
+
|
|
13
|
+
MAX_OUTPUT_BYTES: untyped
|
|
14
|
+
|
|
15
|
+
MAX_ERROR_MESSAGE_CHARACTERS: ::Integer
|
|
16
|
+
|
|
17
|
+
MAX_REQUEST_ID_BYTES: ::Integer
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Bounded protocol and workspace failures with their JSON-RPC error code.
|
|
21
|
+
class ProtocolError < Ibex::Error
|
|
22
|
+
attr_reader code: Integer
|
|
23
|
+
|
|
24
|
+
attr_reader request_id: String | Integer | nil
|
|
25
|
+
|
|
26
|
+
attr_reader fatal: bool
|
|
27
|
+
|
|
28
|
+
# @rbs (String message, ?code: Integer, ?request_id: String | Integer | nil, ?fatal: bool) -> void
|
|
29
|
+
def initialize: (String message, ?code: Integer, ?request_id: String | Integer | nil, ?fatal: bool) -> void
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/request_handlers.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Dispatches the finite LSP surface to focused lifecycle, document, and navigation handlers.
|
|
6
|
+
module RequestHandlers
|
|
7
|
+
include InitializationHandlers
|
|
8
|
+
|
|
9
|
+
include DocumentHandlers
|
|
10
|
+
|
|
11
|
+
include NavigationHandlers
|
|
12
|
+
|
|
13
|
+
include RequestSupport
|
|
14
|
+
|
|
15
|
+
HANDLERS: Hash[String, Symbol]
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
# @rbs (String method, lsp_value? params) -> lsp_value?
|
|
20
|
+
def dispatch: (String method, lsp_value? params) -> lsp_value?
|
|
21
|
+
|
|
22
|
+
# @rbs (lsp_value? params) -> nil
|
|
23
|
+
def cancel_request: (lsp_value? params) -> nil
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/request_support.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Shared publication, state, and parameter validation for request handlers.
|
|
6
|
+
module RequestSupport
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
# @rbs (Array[DocumentStore::publication] publications) -> void
|
|
10
|
+
def publish: (Array[DocumentStore::publication] publications) -> void
|
|
11
|
+
|
|
12
|
+
# @rbs (String uri, Integer version) -> bool
|
|
13
|
+
def stale_publication?: (String uri, Integer version) -> bool
|
|
14
|
+
|
|
15
|
+
# @rbs (lsp_value? value) -> lsp_object
|
|
16
|
+
def params_hash: (lsp_value? value) -> lsp_object
|
|
17
|
+
|
|
18
|
+
# @rbs (lsp_object value, String name) -> lsp_object
|
|
19
|
+
def hash_member: (lsp_object value, String name) -> lsp_object
|
|
20
|
+
|
|
21
|
+
# @rbs (lsp_object value, String name) -> String
|
|
22
|
+
def string_member: (lsp_object value, String name) -> String
|
|
23
|
+
|
|
24
|
+
# @rbs (lsp_object value, String name) -> Integer
|
|
25
|
+
def integer_member: (lsp_object value, String name) -> Integer
|
|
26
|
+
|
|
27
|
+
# @rbs (Symbol state) -> void
|
|
28
|
+
def require_state!: (Symbol state) -> void
|
|
29
|
+
|
|
30
|
+
# @rbs () -> void
|
|
31
|
+
def require_running!: () -> void
|
|
32
|
+
|
|
33
|
+
# @rbs () -> DocumentStore
|
|
34
|
+
def store: () -> DocumentStore
|
|
35
|
+
|
|
36
|
+
# @rbs () -> Workspace
|
|
37
|
+
def workspace: () -> Workspace
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/server.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Coordinates JSON-RPC lifecycle, request responses, and protocol-safe logging.
|
|
6
|
+
class Server
|
|
7
|
+
include RequestHandlers
|
|
8
|
+
|
|
9
|
+
REQUEST_METHODS: Array[String]
|
|
10
|
+
|
|
11
|
+
NOTIFICATION_METHODS: Array[String]
|
|
12
|
+
|
|
13
|
+
# @rbs (stdin: Transport::_Input, stdout: Transport::_Output, stderr: Object?) -> void
|
|
14
|
+
def initialize: (stdin: Transport::_Input, stdout: Transport::_Output, stderr: Object?) -> void
|
|
15
|
+
|
|
16
|
+
# @rbs () -> Integer
|
|
17
|
+
def run: () -> Integer
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
# @rbs () -> lsp_object?
|
|
22
|
+
def read_message: () -> lsp_object?
|
|
23
|
+
|
|
24
|
+
# @rbs (lsp_object message) -> void
|
|
25
|
+
def process_message: (lsp_object message) -> void
|
|
26
|
+
|
|
27
|
+
# @rbs (lsp_object message) -> (String | Integer)?
|
|
28
|
+
def safe_request_id: (lsp_object message) -> (String | Integer)?
|
|
29
|
+
|
|
30
|
+
# @rbs (lsp_object message) -> bool
|
|
31
|
+
def notification_envelope?: (lsp_object message) -> bool
|
|
32
|
+
|
|
33
|
+
# @rbs (String method, bool request) -> void
|
|
34
|
+
def validate_message_kind!: (String method, bool request) -> void
|
|
35
|
+
|
|
36
|
+
# @rbs (lsp_object message) -> (String | Integer)?
|
|
37
|
+
def validate_envelope: (lsp_object message) -> (String | Integer)?
|
|
38
|
+
|
|
39
|
+
# @rbs (Object? value) -> bool
|
|
40
|
+
def valid_request_id?: (Object? value) -> bool
|
|
41
|
+
|
|
42
|
+
# @rbs (String method) -> void
|
|
43
|
+
def validate_lifecycle!: (String method) -> void
|
|
44
|
+
|
|
45
|
+
# @rbs (String | Integer request_id, lsp_value result) -> void
|
|
46
|
+
def send_result: (String | Integer request_id, lsp_value result) -> void
|
|
47
|
+
|
|
48
|
+
# @rbs (String | Integer | nil request_id, ProtocolError error) -> void
|
|
49
|
+
def send_error: (String | Integer | nil request_id, ProtocolError error) -> void
|
|
50
|
+
|
|
51
|
+
# @rbs (String message) -> void
|
|
52
|
+
def log: (String message) -> void
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/symbol_index.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Answers source navigation and guarded workspace rename operations.
|
|
6
|
+
class SymbolIndex
|
|
7
|
+
IDENTIFIER: Regexp
|
|
8
|
+
|
|
9
|
+
RESERVED: Array[String]
|
|
10
|
+
|
|
11
|
+
# @rbs (DocumentStore store, String path) -> void
|
|
12
|
+
def initialize: (DocumentStore store, String path) -> void
|
|
13
|
+
|
|
14
|
+
# @rbs (String path, lsp_object position) -> Array[lsp_object]
|
|
15
|
+
def definition: (String path, lsp_object position) -> Array[lsp_object]
|
|
16
|
+
|
|
17
|
+
# @rbs (String path, lsp_object position, ?include_declaration: bool) -> Array[lsp_object]
|
|
18
|
+
def references: (String path, lsp_object position, ?include_declaration: bool) -> Array[lsp_object]
|
|
19
|
+
|
|
20
|
+
# @rbs (String path, lsp_object position) -> lsp_object?
|
|
21
|
+
def prepare_rename: (String path, lsp_object position) -> lsp_object?
|
|
22
|
+
|
|
23
|
+
# @rbs (String path, lsp_object position, String new_name) -> lsp_object
|
|
24
|
+
def rename: (String path, lsp_object position, String new_name) -> lsp_object
|
|
25
|
+
|
|
26
|
+
# @rbs (String path, lsp_object position) -> lsp_object?
|
|
27
|
+
def hover: (String path, lsp_object position) -> lsp_object?
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
# @rbs (String path, lsp_object position) -> SymbolOccurrence?
|
|
32
|
+
def occurrence_at: (String path, lsp_object position) -> SymbolOccurrence?
|
|
33
|
+
|
|
34
|
+
# @rbs (symbol_key key, ?role: Symbol?) -> Array[SymbolOccurrence]
|
|
35
|
+
def matching: (symbol_key key, ?role: Symbol?) -> Array[SymbolOccurrence]
|
|
36
|
+
|
|
37
|
+
# @rbs (SymbolOccurrence occurrence) -> lsp_object
|
|
38
|
+
def location: (SymbolOccurrence occurrence) -> lsp_object
|
|
39
|
+
|
|
40
|
+
# @rbs (SymbolOccurrence occurrence) -> lsp_object
|
|
41
|
+
def include_target_location: (SymbolOccurrence occurrence) -> lsp_object
|
|
42
|
+
|
|
43
|
+
# @rbs (SymbolOccurrence occurrence) -> Hash[String, Hash[String, Integer]]
|
|
44
|
+
def range: (SymbolOccurrence occurrence) -> Hash[String, Hash[String, Integer]]
|
|
45
|
+
|
|
46
|
+
# @rbs (String path, lsp_object position) -> SymbolOccurrence
|
|
47
|
+
def renameable_occurrence: (String path, lsp_object position) -> SymbolOccurrence
|
|
48
|
+
|
|
49
|
+
# @rbs (SymbolOccurrence occurrence, String new_name) -> void
|
|
50
|
+
def validate_new_name: (SymbolOccurrence occurrence, String new_name) -> void
|
|
51
|
+
|
|
52
|
+
# @rbs (SymbolOccurrence candidate, SymbolOccurrence occurrence) -> bool
|
|
53
|
+
def collision_scope?: (SymbolOccurrence candidate, SymbolOccurrence occurrence) -> bool
|
|
54
|
+
|
|
55
|
+
# @rbs (Array[SymbolOccurrence] entries) -> void
|
|
56
|
+
def validate_nonoverlapping: (Array[SymbolOccurrence] entries) -> void
|
|
57
|
+
|
|
58
|
+
# @rbs (Array[SymbolOccurrence] entries) -> void
|
|
59
|
+
def validate_unshared: (Array[SymbolOccurrence] entries) -> void
|
|
60
|
+
|
|
61
|
+
# @rbs () -> void
|
|
62
|
+
def ensure_fresh!: () -> void
|
|
63
|
+
|
|
64
|
+
# @rbs (Array[SymbolOccurrence] entries, String new_name) -> Hash[String, String]
|
|
65
|
+
def changed_sources: (Array[SymbolOccurrence] entries, String new_name) -> Hash[String, String]
|
|
66
|
+
|
|
67
|
+
# @rbs (SymbolOccurrence occurrence) -> String?
|
|
68
|
+
def hover_value: (SymbolOccurrence occurrence) -> String?
|
|
69
|
+
|
|
70
|
+
# @rbs (SymbolOccurrence occurrence) -> String
|
|
71
|
+
def rule_hover: (SymbolOccurrence occurrence) -> String
|
|
72
|
+
|
|
73
|
+
# @rbs (SymbolOccurrence occurrence) -> String
|
|
74
|
+
def terminal_hover: (SymbolOccurrence occurrence) -> String
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/symbol_index_builder.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Builds source occurrences and hover metadata from lossless frontend documents.
|
|
6
|
+
class SymbolIndexBuilder
|
|
7
|
+
include SymbolIndexSourceQueries
|
|
8
|
+
|
|
9
|
+
include SymbolIndexPrecedenceReferences
|
|
10
|
+
|
|
11
|
+
# @rbs (DocumentStore store, Array[String] files) -> void
|
|
12
|
+
def initialize: (DocumentStore store, Array[String] files) -> void
|
|
13
|
+
|
|
14
|
+
# @rbs () -> [Array[SymbolOccurrence], Hash[String, Frontend::SourceDocument]]
|
|
15
|
+
def build: () -> [ Array[SymbolOccurrence], Hash[String, Frontend::SourceDocument] ]
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
# @rbs () -> void
|
|
20
|
+
def collect_documents: () -> void
|
|
21
|
+
|
|
22
|
+
# @rbs (String path, Frontend::SourceDocument document) -> void
|
|
23
|
+
def collect_definitions: (String path, Frontend::SourceDocument document) -> void
|
|
24
|
+
|
|
25
|
+
# @rbs (String path, Frontend::SourceDocument document, Frontend::AST::declaration declaration,
|
|
26
|
+
# Frontend::Location? following) -> void
|
|
27
|
+
def collect_declaration: (String path, Frontend::SourceDocument document, Frontend::AST::declaration declaration, Frontend::Location? following) -> void
|
|
28
|
+
|
|
29
|
+
# @rbs (Frontend::AST::Precedence declaration) -> void
|
|
30
|
+
def collect_precedence: (Frontend::AST::Precedence declaration) -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (String path, Array[Frontend::Token] tokens, Frontend::AST::Include declaration) -> void
|
|
33
|
+
def collect_include: (String path, Array[Frontend::Token] tokens, Frontend::AST::Include declaration) -> void
|
|
34
|
+
|
|
35
|
+
# @rbs (String path, Frontend::SourceDocument document, Frontend::AST::Rule rule) -> void
|
|
36
|
+
def collect_rule_definition: (String path, Frontend::SourceDocument document, Frontend::AST::Rule rule) -> void
|
|
37
|
+
|
|
38
|
+
# @rbs (String path, Frontend::SourceDocument document, Frontend::AST::Rule rule,
|
|
39
|
+
# Frontend::Token lhs_token) -> void
|
|
40
|
+
def collect_parameters: (String path, Frontend::SourceDocument document, Frontend::AST::Rule rule, Frontend::Token lhs_token) -> void
|
|
41
|
+
|
|
42
|
+
# @rbs (String path, Frontend::SourceDocument document) -> void
|
|
43
|
+
def collect_references: (String path, Frontend::SourceDocument document) -> void
|
|
44
|
+
|
|
45
|
+
# @rbs (String path, Frontend::SourceDocument document, Frontend::AST::declaration declaration,
|
|
46
|
+
# Frontend::Location? following) -> void
|
|
47
|
+
def collect_declaration_references: (String path, Frontend::SourceDocument document, Frontend::AST::declaration declaration, Frontend::Location? following) -> void
|
|
48
|
+
|
|
49
|
+
# @rbs (String path, Frontend::SourceDocument document, Frontend::AST::Rule rule,
|
|
50
|
+
# Frontend::Location? following_rule) -> void
|
|
51
|
+
def collect_rule_references: (String path, Frontend::SourceDocument document, Frontend::AST::Rule rule, Frontend::Location? following_rule) -> void
|
|
52
|
+
|
|
53
|
+
# @rbs (String path, Frontend::SourceDocument document, Frontend::AST::item item,
|
|
54
|
+
# Frontend::AST::Rule rule, Integer rule_id) -> void
|
|
55
|
+
def collect_item: (String path, Frontend::SourceDocument document, Frontend::AST::item item, Frontend::AST::Rule rule, Integer rule_id) -> void
|
|
56
|
+
|
|
57
|
+
# @rbs (String path, Frontend::SourceDocument document,
|
|
58
|
+
# Frontend::AST::SymbolReference | Frontend::AST::ParameterizedReference item,
|
|
59
|
+
# Frontend::AST::Rule rule, Integer rule_id) -> void
|
|
60
|
+
def collect_named_item: (String path, Frontend::SourceDocument document, Frontend::AST::SymbolReference | Frontend::AST::ParameterizedReference item, Frontend::AST::Rule rule, Integer rule_id) -> void
|
|
61
|
+
|
|
62
|
+
# @rbs (String path, Frontend::Token token, String name) -> void
|
|
63
|
+
def add_global_reference: (String path, Frontend::Token token, String name) -> void
|
|
64
|
+
|
|
65
|
+
# @rbs (Symbol kind, String name) -> symbol_data
|
|
66
|
+
def symbol_data: (Symbol kind, String name) -> symbol_data
|
|
67
|
+
|
|
68
|
+
# @rbs (String path, Array[Frontend::Token] tokens, Array[String] names, Symbol kind, Symbol role) -> void
|
|
69
|
+
def add_named_tokens: (String path, Array[Frontend::Token] tokens, Array[String] names, Symbol kind, Symbol role) -> void
|
|
70
|
+
|
|
71
|
+
# @rbs (name: String, kind: Symbol, role: Symbol, key: symbol_key, path: String,
|
|
72
|
+
# span: Frontend::SourceSpan, data: symbol_data) -> void
|
|
73
|
+
def add_occurrence: (name: String, kind: Symbol, role: Symbol, key: symbol_key, path: String, span: Frontend::SourceSpan, data: symbol_data) -> void
|
|
74
|
+
|
|
75
|
+
# @rbs (String name) -> symbol_key
|
|
76
|
+
def global_key: (String name) -> symbol_key
|
|
77
|
+
|
|
78
|
+
# @rbs (String path, Integer rule_id, String name) -> symbol_key
|
|
79
|
+
def parameter_key: (String path, Integer rule_id, String name) -> symbol_key
|
|
80
|
+
|
|
81
|
+
# @rbs (Array[String] parameters) -> String
|
|
82
|
+
def parameter_signature: (Array[String] parameters) -> String
|
|
83
|
+
|
|
84
|
+
# @rbs (Frontend::AST::Include declaration) -> String?
|
|
85
|
+
def canonical_include_target: (Frontend::AST::Include declaration) -> String?
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/symbol_index_precedence_references.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Indexes rule-scoped item and alternative precedence references.
|
|
6
|
+
module SymbolIndexPrecedenceReferences
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
# @rbs (String path, Frontend::SourceDocument document, Frontend::AST::Alternative alternative,
|
|
10
|
+
# Frontend::Location? following, Frontend::AST::Rule rule, Integer rule_id) -> void
|
|
11
|
+
def collect_alternative_precedence: (String path, Frontend::SourceDocument document, Frontend::AST::Alternative alternative, Frontend::Location? following, Frontend::AST::Rule rule, Integer rule_id) -> void
|
|
12
|
+
|
|
13
|
+
# @rbs (String path, Frontend::Token token, String name, Frontend::AST::Rule rule,
|
|
14
|
+
# Integer rule_id) -> void
|
|
15
|
+
def add_rule_reference: (String path, Frontend::Token token, String name, Frontend::AST::Rule rule, Integer rule_id) -> void
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Generated from lib/ibex/lsp/symbol_index_source_queries.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module LSP
|
|
5
|
+
# Locates lossless frontend tokens used by the symbol index.
|
|
6
|
+
module SymbolIndexSourceQueries
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
# @rbs (Frontend::SourceDocument document, Frontend::Location start,
|
|
10
|
+
# Frontend::Location? finish) -> Array[Frontend::Token]
|
|
11
|
+
def tokens_between: (Frontend::SourceDocument document, Frontend::Location start, Frontend::Location? finish) -> Array[Frontend::Token]
|
|
12
|
+
|
|
13
|
+
# @rbs (Frontend::SourceDocument document, Frontend::Location location, String value) -> Frontend::Token?
|
|
14
|
+
def token_at: (Frontend::SourceDocument document, Frontend::Location location, String value) -> Frontend::Token?
|
|
15
|
+
|
|
16
|
+
# @rbs (Frontend::SourceDocument document, Frontend::Token lhs_token) -> Array[Frontend::Token]
|
|
17
|
+
def parameter_tokens: (Frontend::SourceDocument document, Frontend::Token lhs_token) -> Array[Frontend::Token]
|
|
18
|
+
|
|
19
|
+
# @rbs (Frontend::AST::declaration declaration) -> Array[String]
|
|
20
|
+
def declaration_reference_names: (Frontend::AST::declaration declaration) -> Array[String]
|
|
21
|
+
|
|
22
|
+
# @rbs (Frontend::Location left, Frontend::Location right) -> bool
|
|
23
|
+
def location_before?: (Frontend::Location left, Frontend::Location right) -> bool
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|