ibex 0.1.0 → 0.2.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 +247 -104
- data/docs/architecture.md +322 -28
- data/docs/cst-migration.md +107 -0
- data/docs/cst.md +213 -0
- data/docs/development.md +129 -0
- data/docs/editor-setup.md +25 -0
- data/docs/error-ux.md +60 -0
- data/docs/grammar-reference.md +458 -18
- data/docs/lexer-migration.md +51 -0
- data/docs/racc-migration.md +34 -6
- data/docs/release-readiness.md +163 -0
- data/docs/stability.md +124 -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/sets.rb +5 -4
- data/lib/ibex/artifact_set.rb +63 -0
- data/lib/ibex/cli/ambiguity.rb +66 -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 +116 -0
- data/lib/ibex/cli/documentation.rb +67 -0
- data/lib/ibex/cli/error_messages.rb +177 -0
- data/lib/ibex/cli/explain.rb +76 -0
- data/lib/ibex/cli/formatting.rb +386 -0
- data/lib/ibex/cli/generation_artifacts.rb +138 -0
- data/lib/ibex/cli/generation_error_messages.rb +39 -0
- data/lib/ibex/cli/grammar_tests.rb +122 -0
- data/lib/ibex/cli/ir_tools.rb +184 -0
- data/lib/ibex/cli/lsp.rb +33 -0
- data/lib/ibex/cli/outputs.rb +91 -8
- data/lib/ibex/cli/racc_migration.rb +87 -0
- data/lib/ibex/cli/samples.rb +92 -0
- data/lib/ibex/cli/watch.rb +103 -0
- data/lib/ibex/cli.rb +506 -37
- data/lib/ibex/codegen/action_locations.rb +103 -0
- data/lib/ibex/codegen/action_method_source.rb +210 -0
- data/lib/ibex/codegen/action_source.rb +118 -0
- data/lib/ibex/codegen/ambiguity.rb +173 -0
- data/lib/ibex/codegen/cst_metadata.rb +171 -0
- data/lib/ibex/codegen/documentation.rb +170 -0
- data/lib/ibex/codegen/explain.rb +312 -0
- data/lib/ibex/codegen/generated_action_abi.rb +288 -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 +323 -2
- data/lib/ibex/codegen/report.rb +46 -6
- data/lib/ibex/codegen/ruby.rb +334 -59
- data/lib/ibex/codegen/ruby_actions.rb +143 -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 +90 -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/coverage/collector.rb +188 -0
- data/lib/ibex/coverage/event_stream.rb +97 -0
- data/lib/ibex/coverage/report.rb +259 -0
- data/lib/ibex/coverage/runtime_event_validator.rb +160 -0
- data/lib/ibex/coverage.rb +13 -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/frontend/ast.rb +145 -6
- data/lib/ibex/frontend/bootstrap_parser.rb +47 -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 +407 -0
- data/lib/ibex/frontend/generated_parser.rb +614 -190
- data/lib/ibex/frontend/generated_parser_base.rb +164 -30
- data/lib/ibex/frontend/generated_parser_includes.rb +61 -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 +247 -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/regenerator.rb +26 -1
- data/lib/ibex/frontend/resolution.rb +69 -0
- data/lib/ibex/frontend/resolver.rb +217 -0
- data/lib/ibex/frontend/rule_documentation.rb +103 -0
- data/lib/ibex/frontend/source_cursor.rb +132 -8
- 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 +81 -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 +216 -26
- 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 +8 -3
- data/lib/ibex/frontend.rb +13 -2
- data/lib/ibex/generation_input.rb +57 -0
- data/lib/ibex/generation_manifest.rb +200 -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 +38 -5
- data/lib/ibex/ir/grammar_ir.rb +137 -24
- data/lib/ibex/ir/lexer_ir.rb +76 -0
- data/lib/ibex/ir/migration.rb +120 -0
- data/lib/ibex/ir/serialize.rb +110 -19
- data/lib/ibex/ir/validator/automaton.rb +345 -0
- data/lib/ibex/ir/validator/base.rb +129 -0
- data/lib/ibex/ir/validator/grammar.rb +604 -0
- data/lib/ibex/ir/validator/lexer.rb +113 -0
- data/lib/ibex/ir/validator.rb +62 -0
- data/lib/ibex/ir.rb +57 -4
- data/lib/ibex/lalr/build_metrics.rb +23 -0
- data/lib/ibex/lalr/builder.rb +379 -52
- data/lib/ibex/lalr/conflict.rb +1 -0
- data/lib/ibex/lalr/conflict_search.rb +11 -5
- data/lib/ibex/lalr/counterexample.rb +20 -5
- data/lib/ibex/lalr/direct_lookaheads.rb +236 -0
- data/lib/ibex/lalr/ielr_partition.rb +152 -0
- data/lib/ibex/lalr/on_error_reductions.rb +74 -0
- data/lib/ibex/lalr.rb +7 -0
- data/lib/ibex/location.rb +129 -0
- data/lib/ibex/lsp/document_handlers.rb +66 -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 +78 -0
- data/lib/ibex/lsp/navigation_handlers.rb +56 -0
- data/lib/ibex/lsp/position_codec.rb +109 -0
- data/lib/ibex/lsp/protocol_error.rb +33 -0
- data/lib/ibex/lsp/request_handlers.rb +45 -0
- data/lib/ibex/lsp/request_support.rb +87 -0
- data/lib/ibex/lsp/server.rb +146 -0
- data/lib/ibex/lsp/symbol_index.rb +241 -0
- data/lib/ibex/lsp/symbol_index_builder.rb +267 -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 +17 -0
- data/lib/ibex/lsp/transport.rb +118 -0
- data/lib/ibex/lsp/workspace.rb +127 -0
- data/lib/ibex/lsp/workspace_analyzer.rb +199 -0
- data/lib/ibex/lsp.rb +32 -0
- data/lib/ibex/normalize/declarations.rb +140 -7
- data/lib/ibex/normalize/diagnostics.rb +50 -5
- data/lib/ibex/normalize/expander.rb +59 -55
- data/lib/ibex/normalize/expression.rb +60 -39
- data/lib/ibex/normalize/inline_expansion.rb +414 -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 +69 -0
- data/lib/ibex/normalize/parameter_lowering.rb +126 -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 +199 -0
- data/lib/ibex/normalize/recovery_declarations.rb +84 -0
- data/lib/ibex/normalize.rb +179 -14
- 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 +94 -0
- data/lib/ibex/racc_migration.rb +12 -0
- data/lib/ibex/rake_task.rb +116 -0
- data/lib/ibex/samples.rb +186 -0
- data/lib/ibex/table_simulation/result.rb +51 -0
- data/lib/ibex/table_simulation/simulator.rb +253 -0
- data/lib/ibex/table_simulation/step.rb +60 -0
- data/lib/ibex/table_simulation/text.rb +31 -0
- data/lib/ibex/table_simulation.rb +13 -0
- data/lib/ibex/tables.rb +9 -70
- data/lib/ibex/version.rb +1 -1
- data/lib/ibex/watch/runner.rb +172 -0
- data/lib/ibex/watch/source_snapshot.rb +93 -0
- data/lib/ibex/watch.rb +11 -0
- data/lib/ibex.rb +25 -1
- data/schema/automaton-ir-v1.schema.json +401 -0
- data/schema/automaton-ir-v2.schema.json +58 -0
- data/schema/benchmark-v1.schema.json +212 -0
- data/schema/benchmark-v2.schema.json +61 -0
- data/schema/cst-v1.json +170 -0
- data/schema/error-ux-v1.schema.json +258 -0
- data/schema/explain-v1.schema.json +433 -0
- data/schema/frontend-diagnostics-v1.schema.json +154 -0
- data/schema/generation-manifest-v1.schema.json +115 -0
- data/schema/grammar-ir-v1.schema.json +426 -0
- data/schema/grammar-ir-v2.schema.json +779 -0
- data/schema/lexer-ir-v1.schema.json +215 -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/runtime-coverage-v1.schema.json +86 -0
- data/schema/runtime-event-v1.schema.json +308 -0
- data/schema/table-simulation-v1.schema.json +70 -0
- data/sig/ibex/artifact_set.rbs +37 -0
- data/sig/ibex/cli/ambiguity.rbs +22 -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 +38 -0
- data/sig/ibex/cli/documentation.rbs +25 -0
- data/sig/ibex/cli/error_messages.rbs +57 -0
- data/sig/ibex/cli/explain.rbs +25 -0
- data/sig/ibex/cli/formatting.rbs +103 -0
- data/sig/ibex/cli/generation_artifacts.rbs +50 -0
- data/sig/ibex/cli/generation_error_messages.rbs +19 -0
- data/sig/ibex/cli/grammar_tests.rbs +36 -0
- data/sig/ibex/cli/ir_tools.rbs +51 -0
- data/sig/ibex/cli/lsp.rbs +14 -0
- data/sig/ibex/cli/outputs.rbs +17 -0
- data/sig/ibex/cli/racc_migration.rbs +30 -0
- data/sig/ibex/cli/samples.rbs +30 -0
- data/sig/ibex/cli/watch.rbs +43 -0
- data/sig/ibex/cli.rbs +104 -5
- 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 +85 -0
- data/sig/ibex/codegen/generated_action_abi.rbs +101 -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 +84 -4
- data/sig/ibex/codegen/report.rbs +8 -0
- data/sig/ibex/codegen/ruby.rbs +97 -23
- 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 +25 -0
- data/sig/ibex/codegen/ruby_table_metadata.rbs +26 -0
- data/sig/ibex/codegen/ruby_value_printers.rbs +28 -0
- data/sig/ibex/coverage/collector.rbs +76 -0
- data/sig/ibex/coverage/event_stream.rbs +42 -0
- data/sig/ibex/coverage/report.rbs +100 -0
- data/sig/ibex/coverage/runtime_event_validator.rbs +68 -0
- data/sig/ibex/coverage.rbs +7 -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/frontend/ast.rbs +208 -19
- data/sig/ibex/frontend/bootstrap_parser.rbs +11 -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 +135 -0
- data/sig/ibex/frontend/generated_parser.rbs +218 -68
- data/sig/ibex/frontend/generated_parser_base.rbs +61 -10
- 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 +54 -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/regenerator.rbs +11 -0
- data/sig/ibex/frontend/resolution.rbs +33 -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 +36 -3
- 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 +53 -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 +73 -5
- data/sig/ibex/frontend/token_adapter/rule_state.rbs +20 -0
- data/sig/ibex/frontend/token_adapter.rbs +5 -2
- data/sig/ibex/frontend.rbs +1 -1
- data/sig/ibex/generation_input.rbs +37 -0
- data/sig/ibex/generation_manifest.rbs +67 -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 +8 -2
- data/sig/ibex/ir/grammar_ir.rbs +75 -15
- data/sig/ibex/ir/lexer_ir.rbs +57 -0
- data/sig/ibex/ir/migration.rbs +34 -0
- data/sig/ibex/ir/serialize.rbs +23 -6
- data/sig/ibex/ir/validator/automaton.rbs +109 -0
- data/sig/ibex/ir/validator/base.rbs +65 -0
- data/sig/ibex/ir/validator/grammar.rbs +184 -0
- data/sig/ibex/ir/validator/lexer.rbs +37 -0
- data/sig/ibex/ir/validator.rbs +16 -0
- data/sig/ibex/ir.rbs +38 -4
- data/sig/ibex/lalr/build_metrics.rbs +20 -0
- data/sig/ibex/lalr/builder.rbs +95 -15
- data/sig/ibex/lalr/conflict_search.rbs +7 -3
- data/sig/ibex/lalr/counterexample.rbs +5 -2
- data/sig/ibex/lalr/direct_lookaheads.rbs +86 -0
- data/sig/ibex/lalr/ielr_partition.rbs +59 -0
- data/sig/ibex/lalr/on_error_reductions.rbs +22 -0
- data/sig/ibex/lalr.rbs +6 -0
- 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 +30 -0
- data/sig/ibex/lsp/position_codec.rbs +40 -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 +78 -0
- data/sig/ibex/lsp/symbol_index_builder.rbs +87 -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 +25 -0
- data/sig/ibex/lsp/transport.rbs +35 -0
- data/sig/ibex/lsp/workspace.rbs +41 -0
- data/sig/ibex/lsp/workspace_analyzer.rbs +69 -0
- data/sig/ibex/lsp.rbs +7 -0
- data/sig/ibex/normalize/declarations.rbs +31 -0
- data/sig/ibex/normalize/diagnostics.rbs +9 -0
- data/sig/ibex/normalize/expander.rbs +20 -14
- data/sig/ibex/normalize/expression.rbs +10 -10
- data/sig/ibex/normalize/inline_expansion.rbs +120 -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 +32 -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 +46 -0
- data/sig/ibex/normalize/recovery_declarations.rbs +24 -0
- data/sig/ibex/normalize.rbs +123 -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 +53 -0
- data/sig/ibex/racc_migration.rbs +8 -0
- data/sig/ibex/rake_task.rbs +51 -0
- data/sig/ibex/samples.rbs +51 -0
- data/sig/ibex/table_simulation/result.rbs +32 -0
- data/sig/ibex/table_simulation/simulator.rbs +98 -0
- data/sig/ibex/table_simulation/step.rbs +40 -0
- data/sig/ibex/table_simulation/text.rbs +14 -0
- data/sig/ibex/table_simulation.rbs +7 -0
- data/sig/ibex/tables.rbs +0 -26
- data/sig/ibex/watch/runner.rbs +48 -0
- data/sig/ibex/watch/source_snapshot.rbs +42 -0
- data/sig/ibex/watch.rbs +7 -0
- data/sig/ibex.rbs +2 -0
- metadata +301 -16
- 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,103 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/formatting.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# CLI coordination for deterministic, semantics-preserving grammar formatting.
|
|
5
|
+
# rubocop:disable Metrics/ModuleLength -- transaction lifecycle stays cohesive and auditable.
|
|
6
|
+
module CLIFormatting
|
|
7
|
+
type formatting_settings = { paths: Array[String], mode: Symbol, check: bool, write: bool, ?stdin_filename: String, ?help: bool }
|
|
8
|
+
|
|
9
|
+
type formatting_result = { path: String, label: String, source: String, formatted: String }
|
|
10
|
+
|
|
11
|
+
type formatting_target = { path: String, label: String, target: String, formatted: String, mode: Integer, directory: String, basename: String, changed: bool, installed: bool, ?stage: String, ?backup: String }
|
|
12
|
+
|
|
13
|
+
type formatting_cleanup_result = { errors: Array[String], remaining: Array[String] }
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
18
|
+
def run_format_command: (Array[String] arguments) -> Integer
|
|
19
|
+
|
|
20
|
+
# @rbs (Array[String] arguments) -> formatting_settings
|
|
21
|
+
def formatting_options: (Array[String] arguments) -> formatting_settings
|
|
22
|
+
|
|
23
|
+
# @rbs (formatting_settings settings) -> OptionParser
|
|
24
|
+
def formatting_option_parser: (formatting_settings settings) -> OptionParser
|
|
25
|
+
|
|
26
|
+
# @rbs (formatting_settings settings) -> void
|
|
27
|
+
def validate_formatting_settings!: (formatting_settings settings) -> void
|
|
28
|
+
|
|
29
|
+
# @rbs (formatting_settings settings, Array[String] paths) -> void
|
|
30
|
+
def validate_formatting_operation!: (formatting_settings settings, Array[String] paths) -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (formatting_settings settings, Array[String] paths) -> void
|
|
33
|
+
def validate_formatting_stdin!: (formatting_settings settings, Array[String] paths) -> void
|
|
34
|
+
|
|
35
|
+
# @rbs (formatting_settings settings) -> [Array[formatting_result], bool]
|
|
36
|
+
def prepare_formatting_results: (formatting_settings settings) -> [ Array[formatting_result], bool ]
|
|
37
|
+
|
|
38
|
+
# @rbs (Array[formatting_result] results) -> Integer
|
|
39
|
+
def check_formatting_results: (Array[formatting_result] results) -> Integer
|
|
40
|
+
|
|
41
|
+
# @rbs (Array[formatting_result] results) -> Integer
|
|
42
|
+
def write_formatting_results: (Array[formatting_result] results) -> Integer
|
|
43
|
+
|
|
44
|
+
# @rbs (Array[formatting_result] results) -> Array[formatting_target]
|
|
45
|
+
def formatting_targets: (Array[formatting_result] results) -> Array[formatting_target]
|
|
46
|
+
|
|
47
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
48
|
+
def validate_unique_formatting_targets!: (Array[formatting_target] targets) -> void
|
|
49
|
+
|
|
50
|
+
# @rbs (Array[formatting_target] targets) -> [formatting_target, formatting_target]?
|
|
51
|
+
def duplicate_formatting_target_pair: (Array[formatting_target] targets) -> [ formatting_target, formatting_target ]?
|
|
52
|
+
|
|
53
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
54
|
+
def transactionally_write_formatted: (Array[formatting_target] targets) -> void
|
|
55
|
+
|
|
56
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
57
|
+
def stage_formatting_targets: (Array[formatting_target] targets) -> void
|
|
58
|
+
|
|
59
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
60
|
+
def backup_formatting_targets: (Array[formatting_target] targets) -> void
|
|
61
|
+
|
|
62
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
63
|
+
def install_formatting_targets: (Array[formatting_target] targets) -> void
|
|
64
|
+
|
|
65
|
+
# @rbs (Array[formatting_target] targets) -> Array[String]
|
|
66
|
+
def rollback_formatting_targets: (Array[formatting_target] targets) -> Array[String]
|
|
67
|
+
|
|
68
|
+
# @rbs (Array[formatting_target] targets, preserve_installed_backups: bool) ->
|
|
69
|
+
# formatting_cleanup_result
|
|
70
|
+
def cleanup_formatting_artifacts: (Array[formatting_target] targets, preserve_installed_backups: bool) -> formatting_cleanup_result
|
|
71
|
+
|
|
72
|
+
# @rbs (String path) -> String?
|
|
73
|
+
def remove_formatting_artifact: (String path) -> String?
|
|
74
|
+
|
|
75
|
+
# @rbs (StandardError error, Array[String] rollback_errors,
|
|
76
|
+
# formatting_cleanup_result cleanup, Array[String] sync_errors) -> Ibex::Error
|
|
77
|
+
def formatting_transaction_error: (StandardError error, Array[String] rollback_errors, formatting_cleanup_result cleanup, Array[String] sync_errors) -> Ibex::Error
|
|
78
|
+
|
|
79
|
+
# @rbs (formatting_cleanup_result cleanup, Array[String] sync_errors) -> void
|
|
80
|
+
def report_formatting_cleanup_warning: (formatting_cleanup_result cleanup, Array[String] sync_errors) -> void
|
|
81
|
+
|
|
82
|
+
# @rbs (Array[formatting_target] targets) -> void
|
|
83
|
+
def sync_formatting_directories!: (Array[formatting_target] targets) -> void
|
|
84
|
+
|
|
85
|
+
# @rbs (Array[formatting_target] targets) -> Array[String]
|
|
86
|
+
def sync_formatting_directories_best_effort: (Array[formatting_target] targets) -> Array[String]
|
|
87
|
+
|
|
88
|
+
# @rbs (Array[formatting_target] targets) -> Array[String]
|
|
89
|
+
def sync_formatting_directories: (Array[formatting_target] targets) -> Array[String]
|
|
90
|
+
|
|
91
|
+
# @rbs (String directory) -> void
|
|
92
|
+
def sync_formatting_directory: (String directory) -> void
|
|
93
|
+
|
|
94
|
+
# @rbs (String value) -> String
|
|
95
|
+
def formatting_label: (String value) -> String
|
|
96
|
+
|
|
97
|
+
# @rbs (String value) -> bool
|
|
98
|
+
def formatting_control_bytes?: (String value) -> bool
|
|
99
|
+
|
|
100
|
+
# @rbs (Integer byte) -> bool
|
|
101
|
+
def control_byte?: (Integer byte) -> bool
|
|
102
|
+
end
|
|
103
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/generation_artifacts.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Collects, verifies, and transactionally publishes CLI generation outputs.
|
|
5
|
+
module CLIGenerationArtifacts
|
|
6
|
+
private def report_status: (String) -> void
|
|
7
|
+
|
|
8
|
+
private def verify_file: (String, String, String) -> void
|
|
9
|
+
|
|
10
|
+
private def default_output_path: (String, String) -> String
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
# @rbs () -> void
|
|
15
|
+
def begin_artifact_generation: () -> void
|
|
16
|
+
|
|
17
|
+
# @rbs (Symbol kind, String path, String content, ?mode: Integer?, ?status: bool) -> Artifact
|
|
18
|
+
def register_artifact: (Symbol kind, String path, String content, ?mode: Integer?, ?status: bool) -> Artifact
|
|
19
|
+
|
|
20
|
+
# @rbs (Array[String] source_paths) -> Integer
|
|
21
|
+
def finish_artifact_generation: (Array[String] source_paths) -> Integer
|
|
22
|
+
|
|
23
|
+
# @rbs () -> void
|
|
24
|
+
def add_generation_manifest: () -> void
|
|
25
|
+
|
|
26
|
+
# @rbs () -> void
|
|
27
|
+
def verify_artifact_generation: () -> void
|
|
28
|
+
|
|
29
|
+
# @rbs (Symbol kind) -> String
|
|
30
|
+
def artifact_label: (Symbol kind) -> String
|
|
31
|
+
|
|
32
|
+
# @rbs () -> ArtifactSet
|
|
33
|
+
def generation_artifacts: () -> ArtifactSet
|
|
34
|
+
|
|
35
|
+
# @rbs () -> bool
|
|
36
|
+
def generation_inputs_stable?: () -> bool
|
|
37
|
+
|
|
38
|
+
# @rbs () -> void
|
|
39
|
+
def ensure_generation_inputs_stable!: () -> void
|
|
40
|
+
|
|
41
|
+
# @rbs (String path, String source) -> GenerationInput
|
|
42
|
+
def record_generation_input: (String path, String source) -> GenerationInput
|
|
43
|
+
|
|
44
|
+
# @rbs () -> String
|
|
45
|
+
def manifest_output_path: () -> String
|
|
46
|
+
|
|
47
|
+
# @rbs () -> Hash[String, untyped]
|
|
48
|
+
def generation_manifest_options: () -> Hash[String, untyped]
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/generation_error_messages.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Optional example-keyed error-message support for parser generation.
|
|
5
|
+
module CLIGenerationErrorMessages
|
|
6
|
+
private def record_generation_input: (String, String) -> GenerationInput
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
# @rbs (OptionParser options) -> void
|
|
11
|
+
def add_error_messages_generation_option: (OptionParser options) -> void
|
|
12
|
+
|
|
13
|
+
# @rbs (IR::Automaton automaton) -> Hash[Integer, untyped]
|
|
14
|
+
def configured_error_messages: (IR::Automaton automaton) -> Hash[Integer, untyped]
|
|
15
|
+
|
|
16
|
+
# @rbs () -> void
|
|
17
|
+
def validate_messages_options: () -> void
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/grammar_tests.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# `%test` command parsing and human-readable result reporting.
|
|
5
|
+
module CLIGrammarTests
|
|
6
|
+
type grammar_test_settings = { mode: Symbol, algorithm: Symbol, entry_isolation: bool, timeout: Integer, coverage: Integer?, ?help: bool }
|
|
7
|
+
|
|
8
|
+
private def print_help: (OptionParser) -> Integer
|
|
9
|
+
|
|
10
|
+
private def resolve_grammar_path: (String) -> Frontend::Resolution
|
|
11
|
+
|
|
12
|
+
private def handle_grammar_warnings: (IR::Grammar, String) -> void
|
|
13
|
+
|
|
14
|
+
private def build_automaton: (IR::Grammar, String) -> IR::Automaton
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
19
|
+
def run_grammar_tests_command: (Array[String] arguments) -> Integer
|
|
20
|
+
|
|
21
|
+
# @rbs (grammar_test_settings settings) -> OptionParser
|
|
22
|
+
def grammar_test_option_parser: (grammar_test_settings settings) -> OptionParser
|
|
23
|
+
|
|
24
|
+
# @rbs (Array[String] remaining, OptionParser options) -> String
|
|
25
|
+
def single_grammar_test_path: (Array[String] remaining, OptionParser options) -> String
|
|
26
|
+
|
|
27
|
+
# @rbs (Array[GrammarTests::Result] results) -> Integer
|
|
28
|
+
def render_grammar_test_results: (Array[GrammarTests::Result] results) -> Integer
|
|
29
|
+
|
|
30
|
+
# @rbs (GrammarTests::ProductionCoverage coverage, Integer minimum, Integer failures) -> Integer
|
|
31
|
+
def render_grammar_test_coverage: (GrammarTests::ProductionCoverage coverage, Integer minimum, Integer failures) -> Integer
|
|
32
|
+
|
|
33
|
+
# @rbs (GrammarTests::Result result) -> String
|
|
34
|
+
def grammar_test_failure: (GrammarTests::Result result) -> String
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/ir_tools.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
type migrate_ir_options = { paths: Array[String], ?to: Integer, ?output: String }
|
|
5
|
+
|
|
6
|
+
# CLI validation and structural comparison for versioned IR documents.
|
|
7
|
+
module CLIIRTools
|
|
8
|
+
private def same_file_target?: (String left, String right) -> bool
|
|
9
|
+
|
|
10
|
+
private def atomic_write_ir: (String path, String source) -> void
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
15
|
+
def run_validate_ir_command: (Array[String] arguments) -> Integer
|
|
16
|
+
|
|
17
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
18
|
+
def run_compare_command: (Array[String] arguments) -> Integer
|
|
19
|
+
|
|
20
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
21
|
+
def run_migrate_ir_command: (Array[String] arguments) -> Integer
|
|
22
|
+
|
|
23
|
+
# @rbs (Array[String] arguments) -> migrate_ir_options
|
|
24
|
+
def migrate_ir_options: (Array[String] arguments) -> migrate_ir_options
|
|
25
|
+
|
|
26
|
+
# @rbs (Array[String] arguments, String command) -> String
|
|
27
|
+
def single_ir_path: (Array[String] arguments, String command) -> String
|
|
28
|
+
|
|
29
|
+
# @rbs (IR::Grammar | IR::Automaton | IR::Lexer before,
|
|
30
|
+
# IR::Grammar | IR::Automaton | IR::Lexer after) -> Hash[Symbol, untyped]
|
|
31
|
+
def compare_ir: (IR::Grammar | IR::Automaton | IR::Lexer before, IR::Grammar | IR::Automaton | IR::Lexer after) -> Hash[Symbol, untyped]
|
|
32
|
+
|
|
33
|
+
# @rbs (IR::Lexer before, IR::Lexer after) -> Hash[Symbol, untyped]
|
|
34
|
+
def compare_lexers: (IR::Lexer before, IR::Lexer after) -> Hash[Symbol, untyped]
|
|
35
|
+
|
|
36
|
+
# @rbs (IR::Grammar before, IR::Grammar after) -> Hash[Symbol, untyped]
|
|
37
|
+
def compare_grammars: (IR::Grammar before, IR::Grammar after) -> Hash[Symbol, untyped]
|
|
38
|
+
|
|
39
|
+
# @rbs (IR::Grammar grammar) -> Array[String]
|
|
40
|
+
def production_shapes: (IR::Grammar grammar) -> Array[String]
|
|
41
|
+
|
|
42
|
+
# @rbs (IR::Automaton automaton) -> Integer
|
|
43
|
+
def transition_count: (IR::Automaton automaton) -> Integer
|
|
44
|
+
|
|
45
|
+
# @rbs (IR::Automaton automaton, Symbol kind) -> Integer
|
|
46
|
+
def summary_count: (IR::Automaton automaton, Symbol kind) -> Integer
|
|
47
|
+
|
|
48
|
+
# @rbs (Integer before, Integer after) -> Hash[Symbol, Integer]
|
|
49
|
+
def numeric_change: (Integer before, Integer after) -> Hash[Symbol, Integer]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/lsp.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# CLI boundary for the stdio-only language server.
|
|
5
|
+
module CLILSP
|
|
6
|
+
private
|
|
7
|
+
|
|
8
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
9
|
+
def run_lsp_command: (Array[String] arguments) -> Integer
|
|
10
|
+
|
|
11
|
+
# @rbs (Hash[Symbol, bool] settings) -> OptionParser
|
|
12
|
+
def lsp_option_parser: (Hash[Symbol, bool] settings) -> OptionParser
|
|
13
|
+
end
|
|
14
|
+
end
|
data/sig/ibex/cli/outputs.rbs
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
module Ibex
|
|
4
4
|
# Files, warnings, and progress emitted by CLI pipeline stages.
|
|
5
5
|
module CLIOutputs
|
|
6
|
+
private def register_artifact: (Symbol, String, String, ?mode: Integer?, ?status: bool) -> Artifact
|
|
7
|
+
|
|
6
8
|
WARNING_MESSAGES: Hash[Symbol, ^(IR::grammar_warning) -> String]
|
|
7
9
|
|
|
8
10
|
private
|
|
@@ -19,6 +21,15 @@ module Ibex
|
|
|
19
21
|
# @rbs (IR::Automaton automaton, String input_path) -> void
|
|
20
22
|
def report_conflicts: (IR::Automaton automaton, String input_path) -> void
|
|
21
23
|
|
|
24
|
+
# @rbs (IR::conflict_summary summary, String input_path) -> Array[String]
|
|
25
|
+
def conflict_messages: (IR::conflict_summary summary, String input_path) -> Array[String]
|
|
26
|
+
|
|
27
|
+
# @rbs (IR::Automaton automaton, String input_path) -> void
|
|
28
|
+
def suggest_ielr: (IR::Automaton automaton, String input_path) -> void
|
|
29
|
+
|
|
30
|
+
# @rbs (Integer count, String kind) -> String
|
|
31
|
+
def conflict_count: (Integer count, String kind) -> String
|
|
32
|
+
|
|
22
33
|
# @rbs (IR::Automaton automaton, String input_path) -> void
|
|
23
34
|
def write_report: (IR::Automaton automaton, String input_path) -> void
|
|
24
35
|
|
|
@@ -27,5 +38,11 @@ module Ibex
|
|
|
27
38
|
|
|
28
39
|
# @rbs (String message) -> void
|
|
29
40
|
def report_status: (String message) -> void
|
|
41
|
+
|
|
42
|
+
# @rbs (String path, String source) -> void
|
|
43
|
+
def atomic_write_ir: (String path, String source) -> void
|
|
44
|
+
|
|
45
|
+
# @rbs (String path) -> Integer
|
|
46
|
+
def ir_file_mode: (String path) -> Integer
|
|
30
47
|
end
|
|
31
48
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/racc_migration.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Static racc migration checks and differential harness generation.
|
|
5
|
+
module CLIRaccMigration
|
|
6
|
+
type migration_check_settings = { format: String, ?help: bool }
|
|
7
|
+
|
|
8
|
+
type migration_harness_settings = { ?output: String, ?help: bool }
|
|
9
|
+
|
|
10
|
+
private def input_path: (Array[String]) -> String
|
|
11
|
+
|
|
12
|
+
private def atomic_write_ir: (String path, String source) -> void
|
|
13
|
+
|
|
14
|
+
private def same_file_target?: (String left, String right) -> bool
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
19
|
+
def run_migrate_check_command: (Array[String] arguments) -> Integer
|
|
20
|
+
|
|
21
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
22
|
+
def run_migrate_harness_command: (Array[String] arguments) -> Integer
|
|
23
|
+
|
|
24
|
+
# @rbs (migration_check_settings settings) -> OptionParser
|
|
25
|
+
def migrate_check_options: (migration_check_settings settings) -> OptionParser
|
|
26
|
+
|
|
27
|
+
# @rbs (migration_harness_settings settings) -> OptionParser
|
|
28
|
+
def migrate_harness_options: (migration_harness_settings settings) -> OptionParser
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/samples.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# CLI entry point for bounded grammar sentence generation.
|
|
5
|
+
module CLISamples
|
|
6
|
+
private def print_help: (OptionParser) -> Integer
|
|
7
|
+
|
|
8
|
+
private def input_path: (Array[String]) -> String
|
|
9
|
+
|
|
10
|
+
private def handle_grammar_warnings: (IR::Grammar, String) -> void
|
|
11
|
+
|
|
12
|
+
private def warning_categories: (String) -> Array[Symbol]
|
|
13
|
+
|
|
14
|
+
private def normalize_grammar_path: (String) -> IR::Grammar
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
# @rbs (Array[String] arguments) -> Integer
|
|
19
|
+
def run_samples_command: (Array[String] arguments) -> Integer
|
|
20
|
+
|
|
21
|
+
# @rbs () -> OptionParser
|
|
22
|
+
def samples_option_parser: () -> OptionParser
|
|
23
|
+
|
|
24
|
+
# @rbs (String path) -> IR::Grammar
|
|
25
|
+
def grammar_for_samples: (String path) -> IR::Grammar
|
|
26
|
+
|
|
27
|
+
# @rbs (String name, Integer value) -> Integer
|
|
28
|
+
def positive_sample_option!: (String name, Integer value) -> Integer
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Generated from lib/ibex/cli/watch.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Long-running CLI generation over stable source snapshots.
|
|
5
|
+
module CLIWatch
|
|
6
|
+
private def process_grammar: (String) -> Integer
|
|
7
|
+
|
|
8
|
+
private def generation_artifacts: () -> ArtifactSet
|
|
9
|
+
|
|
10
|
+
private def report_status: (String) -> void
|
|
11
|
+
|
|
12
|
+
# Rendered watch generation awaiting its stability-guarded publication.
|
|
13
|
+
class Build
|
|
14
|
+
attr_reader artifacts: ArtifactSet
|
|
15
|
+
|
|
16
|
+
attr_reader statuses: Array[String]
|
|
17
|
+
|
|
18
|
+
attr_reader source_paths: Array[String]
|
|
19
|
+
|
|
20
|
+
attr_reader attempted_paths: Array[String]
|
|
21
|
+
|
|
22
|
+
attr_reader source_records: Array[GenerationInput]
|
|
23
|
+
|
|
24
|
+
# rubocop:disable Layout/LineLength
|
|
25
|
+
# @rbs (artifacts: ArtifactSet, statuses: Array[String], source_paths: Array[String], attempted_paths: Array[String], source_records: Array[GenerationInput]) -> void
|
|
26
|
+
def initialize: (artifacts: ArtifactSet, statuses: Array[String], source_paths: Array[String], attempted_paths: Array[String], source_records: Array[GenerationInput]) -> void
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
# @rbs (String path) -> Integer
|
|
32
|
+
def run_watch: (String path) -> Integer
|
|
33
|
+
|
|
34
|
+
# @rbs (String path) -> Build
|
|
35
|
+
def prepare_watch_generation: (String path) -> Build
|
|
36
|
+
|
|
37
|
+
# @rbs (Build build, Watch::SourceSnapshot snapshot, ^() -> bool continue) -> void
|
|
38
|
+
def publish_watch_generation: (Build build, Watch::SourceSnapshot snapshot, ^() -> bool continue) -> void
|
|
39
|
+
|
|
40
|
+
# @rbs (String path) -> Array[String]
|
|
41
|
+
def watch_failure_paths: (String path) -> Array[String]
|
|
42
|
+
end
|
|
43
|
+
end
|
data/sig/ibex/cli.rbs
CHANGED
|
@@ -1,19 +1,33 @@
|
|
|
1
1
|
# Generated from lib/ibex/cli.rb with RBS::Inline
|
|
2
2
|
|
|
3
3
|
module Ibex
|
|
4
|
+
CLI_FEATURE_ROOT: String
|
|
5
|
+
|
|
4
6
|
interface _CLIOutput
|
|
5
7
|
def puts: (*untyped) -> untyped
|
|
6
8
|
|
|
7
9
|
def write: (String) -> untyped
|
|
8
10
|
end
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
interface _CLIInput
|
|
13
|
+
def read: () -> String
|
|
14
|
+
|
|
15
|
+
def gets: () -> String?
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
type cli_options = { emit: String, mode: Symbol, table: Symbol, ?cst_trivia: Symbol, line_convert: bool, ?line_convert_all: bool, counterexample_max_tokens: Integer, counterexample_max_configurations: Integer, ?from: String, ?algorithm: Symbol, ?suggest_ielr: bool, ?entry_isolation: bool, ?warnings: Array[Symbol], ?output: String, ?embedded: bool, ?debug: bool, ?verbose: bool, ?rbs: String | true, ?action_source: String | true, ?manifest: String | true, ?watch: bool, ?dot: String, ?mermaid: String, ?html: String, ?railroad: String, ?messages: String, ?messages_update: String | true, ?messages_algorithm_explicit: bool, ?sample_count: Integer, ?sample_seed: Integer, ?sample_max_tokens: Integer, ?sample_max_depth: Integer, ?sample_max_expansions: Integer, ?log_file: String, ?executable: String, ?frozen: bool, ?omit_actions: bool, ?superclass: String, ?verify_output: bool, ?check_only: bool, ?status: bool, ?profile: bool, ?debug_flags: String, ?version: bool, ?runtime_version: bool, ?copyright: bool, ?help: bool, ?explain_state: Integer, ?explain_token: String, ?explain_format: String, ?check_ambiguity: bool, ?check_format: String }
|
|
11
19
|
|
|
12
20
|
# Command-line pipeline coordinator.
|
|
13
21
|
# rubocop:disable Metrics/ClassLength -- inline type contracts add lines without adding runtime responsibilities.
|
|
14
22
|
class CLI
|
|
23
|
+
SUBCOMMAND_HANDLERS: Hash[String, [ Symbol, Symbol ]]
|
|
24
|
+
|
|
15
25
|
include CLICounterexampleOptions
|
|
16
26
|
|
|
27
|
+
include CLIGenerationErrorMessages
|
|
28
|
+
|
|
29
|
+
include CLIGenerationArtifacts
|
|
30
|
+
|
|
17
31
|
include CLIOutputs
|
|
18
32
|
|
|
19
33
|
@options: cli_options
|
|
@@ -22,17 +36,27 @@ module Ibex
|
|
|
22
36
|
|
|
23
37
|
@stdout: _CLIOutput
|
|
24
38
|
|
|
25
|
-
#
|
|
26
|
-
|
|
39
|
+
# rubocop:disable Layout/LineLength
|
|
40
|
+
# @rbs (Array[String] arguments, ?stdin: _CLIInput, ?stdout: _CLIOutput, ?stderr: _CLIOutput, ?watch_clock: (^() -> Float)?, ?watch_sleeper: (^(Float) -> void)?, ?watch_iteration_hook: (^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil))?) -> Integer
|
|
41
|
+
def self.start: (Array[String] arguments, ?stdin: _CLIInput, ?stdout: _CLIOutput, ?stderr: _CLIOutput, ?watch_clock: (^() -> Float)?, ?watch_sleeper: (^(Float) -> void)?, ?watch_iteration_hook: (^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil))?) -> Integer
|
|
27
42
|
|
|
28
|
-
# @rbs (stdout: _CLIOutput, stderr: _CLIOutput) -> void
|
|
29
|
-
def initialize: (stdout: _CLIOutput, stderr: _CLIOutput) -> void
|
|
43
|
+
# @rbs (?stdin: _CLIInput, stdout: _CLIOutput, stderr: _CLIOutput, ?watch_clock: (^() -> Float)?, ?watch_sleeper: (^(Float) -> void)?, ?watch_iteration_hook: (^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil))?) -> void
|
|
44
|
+
def initialize: (stdout: _CLIOutput, stderr: _CLIOutput, ?stdin: _CLIInput, ?watch_clock: (^() -> Float)?, ?watch_sleeper: (^(Float) -> void)?, ?watch_iteration_hook: (^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil))?) -> void
|
|
30
45
|
|
|
31
46
|
# @rbs (Array[String] arguments) -> Integer
|
|
32
47
|
def run: (Array[String] arguments) -> Integer
|
|
33
48
|
|
|
34
49
|
private
|
|
35
50
|
|
|
51
|
+
# @rbs (Array[String] arguments) -> Integer?
|
|
52
|
+
def dispatch_subcommand: (Array[String] arguments) -> Integer?
|
|
53
|
+
|
|
54
|
+
# @rbs (Symbol feature) -> void
|
|
55
|
+
def activate_cli_feature: (Symbol feature) -> void
|
|
56
|
+
|
|
57
|
+
# @rbs (String path) -> Integer
|
|
58
|
+
def run_watch_feature: (String path) -> Integer
|
|
59
|
+
|
|
36
60
|
# @rbs () -> OptionParser
|
|
37
61
|
def option_parser: () -> OptionParser
|
|
38
62
|
|
|
@@ -42,6 +66,9 @@ module Ibex
|
|
|
42
66
|
# @rbs (OptionParser options) -> void
|
|
43
67
|
def add_output_options: (OptionParser options) -> void
|
|
44
68
|
|
|
69
|
+
# @rbs (OptionParser options) -> void
|
|
70
|
+
def add_signature_output_options: (OptionParser options) -> void
|
|
71
|
+
|
|
45
72
|
# @rbs (OptionParser options) -> void
|
|
46
73
|
def add_compatibility_options: (OptionParser options) -> void
|
|
47
74
|
|
|
@@ -54,9 +81,48 @@ module Ibex
|
|
|
54
81
|
# @rbs (Array[String] remaining) -> String
|
|
55
82
|
def input_path: (Array[String] remaining) -> String
|
|
56
83
|
|
|
84
|
+
# @rbs () -> void
|
|
85
|
+
def validate_generation_options: () -> void
|
|
86
|
+
|
|
87
|
+
# @rbs () -> void
|
|
88
|
+
def validate_manifest_generation_options: () -> void
|
|
89
|
+
|
|
90
|
+
# @rbs () -> void
|
|
91
|
+
def validate_action_source_generation_options: () -> void
|
|
92
|
+
|
|
93
|
+
# @rbs () -> void
|
|
94
|
+
def validate_verification_generation_options: () -> void
|
|
95
|
+
|
|
96
|
+
# @rbs () -> void
|
|
97
|
+
def validate_watch_information_options: () -> void
|
|
98
|
+
|
|
99
|
+
# @rbs () -> void
|
|
100
|
+
def validate_watch_generation_options: () -> void
|
|
101
|
+
|
|
102
|
+
# @rbs (String input_path, ?source_paths: Array[String]) -> void
|
|
103
|
+
def validate_generation_paths!: (String input_path, ?source_paths: Array[String]) -> void
|
|
104
|
+
|
|
105
|
+
# @rbs (String left, String right) -> bool
|
|
106
|
+
def same_file_target?: (String left, String right) -> bool
|
|
107
|
+
|
|
108
|
+
# @rbs (String path) -> [String, String]
|
|
109
|
+
def portable_target_key: (String path) -> [ String, String ]
|
|
110
|
+
|
|
111
|
+
# @rbs (String path, ?Hash[String, bool] seen) -> String
|
|
112
|
+
def canonical_target_path: (String path, ?Hash[String, bool] seen) -> String
|
|
113
|
+
|
|
114
|
+
# @rbs (String input_path) -> Hash[Symbol, String?]
|
|
115
|
+
def generation_paths: (String input_path) -> Hash[Symbol, String?]
|
|
116
|
+
|
|
57
117
|
# @rbs (String path) -> Integer
|
|
58
118
|
def process_grammar: (String path) -> Integer
|
|
59
119
|
|
|
120
|
+
# @rbs (String path) -> Frontend::Resolution
|
|
121
|
+
def resolve_grammar_path: (String path) -> Frontend::Resolution
|
|
122
|
+
|
|
123
|
+
# @rbs (String path) -> IR::Grammar
|
|
124
|
+
def normalize_grammar_path: (String path) -> IR::Grammar
|
|
125
|
+
|
|
60
126
|
# @rbs (String path) -> Integer
|
|
61
127
|
def process_ir: (String path) -> Integer
|
|
62
128
|
|
|
@@ -81,6 +147,12 @@ module Ibex
|
|
|
81
147
|
# @rbs (IR::Grammar grammar) -> Integer
|
|
82
148
|
def emit_grammar: (IR::Grammar grammar) -> Integer
|
|
83
149
|
|
|
150
|
+
# @rbs (IR::Grammar grammar) -> Integer
|
|
151
|
+
def emit_lexer: (IR::Grammar grammar) -> Integer
|
|
152
|
+
|
|
153
|
+
# @rbs (IR::Grammar grammar) -> Integer
|
|
154
|
+
def emit_sets: (IR::Grammar grammar) -> Integer
|
|
155
|
+
|
|
84
156
|
# @rbs (IR::Grammar grammar, String input_path) -> Integer
|
|
85
157
|
def emit_automaton: (IR::Grammar grammar, String input_path) -> Integer
|
|
86
158
|
|
|
@@ -90,9 +162,30 @@ module Ibex
|
|
|
90
162
|
# @rbs (IR::Automaton automaton, String input_path) -> Integer
|
|
91
163
|
def generate_ruby: (IR::Automaton automaton, String input_path) -> Integer
|
|
92
164
|
|
|
165
|
+
# @rbs (IR::Automaton automaton, String output_path, String source, String? action_source) -> Integer
|
|
166
|
+
def verify_generated_outputs: (IR::Automaton automaton, String output_path, String source, String? action_source) -> Integer
|
|
167
|
+
|
|
168
|
+
# @rbs (String path, String source, String label) -> void
|
|
169
|
+
def verify_file: (String path, String source, String label) -> void
|
|
170
|
+
|
|
93
171
|
# @rbs (IR::Automaton automaton, String output_path) -> void
|
|
94
172
|
def write_rbs: (IR::Automaton automaton, String output_path) -> void
|
|
95
173
|
|
|
174
|
+
# @rbs (String output_path) -> String
|
|
175
|
+
def rbs_output_path: (String output_path) -> String
|
|
176
|
+
|
|
177
|
+
# @rbs (IR::Automaton automaton) -> String
|
|
178
|
+
def rbs_source: (IR::Automaton automaton) -> String
|
|
179
|
+
|
|
180
|
+
# @rbs (String output_path, String source) -> void
|
|
181
|
+
def write_action_source: (String output_path, String source) -> void
|
|
182
|
+
|
|
183
|
+
# @rbs (String output_path) -> String
|
|
184
|
+
def action_source_output_path: (String output_path) -> String
|
|
185
|
+
|
|
186
|
+
# @rbs (IR::Automaton automaton) -> String
|
|
187
|
+
def action_source_source: (IR::Automaton automaton) -> String
|
|
188
|
+
|
|
96
189
|
# @rbs (IR::Automaton automaton, String input_path) -> Integer
|
|
97
190
|
def emit_loaded_automaton: (IR::Automaton automaton, String input_path) -> Integer
|
|
98
191
|
|
|
@@ -104,5 +197,11 @@ module Ibex
|
|
|
104
197
|
|
|
105
198
|
# @rbs (IR::Automaton automaton) -> void
|
|
106
199
|
def write_visualizations: (IR::Automaton automaton) -> void
|
|
200
|
+
|
|
201
|
+
# @rbs (IR::Grammar grammar) -> void
|
|
202
|
+
def write_railroad: (IR::Grammar grammar) -> void
|
|
203
|
+
|
|
204
|
+
# @rbs (String output_path) -> String
|
|
205
|
+
def manifest_output_path_for: (String output_path) -> String
|
|
107
206
|
end
|
|
108
207
|
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Generated from lib/ibex/codegen/action_locations.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Codegen
|
|
5
|
+
# Rewrites semantic-location expressions without touching Ruby literals,
|
|
6
|
+
# comments, heredoc bodies, or ordinary instance/class variables.
|
|
7
|
+
class ActionLocations
|
|
8
|
+
SEMANTIC_HELPERS: Array[String]
|
|
9
|
+
|
|
10
|
+
@source: String
|
|
11
|
+
|
|
12
|
+
@maximum: Integer
|
|
13
|
+
|
|
14
|
+
@location: IR::location
|
|
15
|
+
|
|
16
|
+
# @rbs (String source, maximum: Integer, location: IR::location) -> void
|
|
17
|
+
def initialize: (String source, maximum: Integer, location: IR::location) -> void
|
|
18
|
+
|
|
19
|
+
# @rbs () -> String
|
|
20
|
+
def rewrite: () -> String
|
|
21
|
+
|
|
22
|
+
# @rbs () -> bool
|
|
23
|
+
def references?: () -> bool
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
# @rbs () -> String
|
|
28
|
+
def mutable_binary_source_copy: () -> String
|
|
29
|
+
|
|
30
|
+
# @rbs () -> Array[[Integer, String]]
|
|
31
|
+
def semantic_references: () -> Array[[ Integer, String ]]
|
|
32
|
+
|
|
33
|
+
# Give every Ripper implementation syntactically valid input while
|
|
34
|
+
# preserving byte offsets and lexical string/comment boundaries.
|
|
35
|
+
# @rbs () -> String
|
|
36
|
+
def lexable_source: () -> String
|
|
37
|
+
|
|
38
|
+
# @rbs () -> Array[Integer]
|
|
39
|
+
def line_offsets: () -> Array[Integer]
|
|
40
|
+
|
|
41
|
+
# @rbs (String spelling) -> String
|
|
42
|
+
def replacement_for: (String spelling) -> String
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|