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,36 @@
|
|
|
1
|
+
# Generated from lib/ibex/racc_migration/checker.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module RaccMigration
|
|
5
|
+
# Checks syntax, normalization, superclass, and runtime-coupling hazards.
|
|
6
|
+
# Semantic action code is treated as opaque data and never executed.
|
|
7
|
+
class Checker
|
|
8
|
+
RACC_REQUIRE: Regexp
|
|
9
|
+
|
|
10
|
+
RACC_CONSTANT: Regexp
|
|
11
|
+
|
|
12
|
+
# @rbs (String source, file: String) -> Report
|
|
13
|
+
def check: (String source, file: String) -> Report
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
# @rbs (Frontend::Diagnostic diagnostic) -> Finding
|
|
18
|
+
def syntax_finding: (Frontend::Diagnostic diagnostic) -> Finding
|
|
19
|
+
|
|
20
|
+
# @rbs (Frontend::AST::Root ast) -> Array[Finding]
|
|
21
|
+
def superclass_findings: (Frontend::AST::Root ast) -> Array[Finding]
|
|
22
|
+
|
|
23
|
+
# @rbs (Frontend::AST::Root ast) -> Array[Finding]
|
|
24
|
+
def user_code_findings: (Frontend::AST::Root ast) -> Array[Finding]
|
|
25
|
+
|
|
26
|
+
# @rbs (Frontend::AST::Root ast) -> Array[Finding]
|
|
27
|
+
def normalization_findings: (Frontend::AST::Root ast) -> Array[Finding]
|
|
28
|
+
|
|
29
|
+
# @rbs (String message, Frontend::Location fallback) -> [Frontend::Location, String]
|
|
30
|
+
def error_location: (String message, Frontend::Location fallback) -> [ Frontend::Location, String ]
|
|
31
|
+
|
|
32
|
+
# @rbs (Array[Finding] findings) -> Array[Finding]
|
|
33
|
+
def sort_findings: (Array[Finding] findings) -> Array[Finding]
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Generated from lib/ibex/racc_migration/harness.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module RaccMigration
|
|
5
|
+
# Emits, but never executes, a subprocess-separated differential harness.
|
|
6
|
+
class Harness
|
|
7
|
+
CLASS_NAME: Regexp
|
|
8
|
+
|
|
9
|
+
# @rbs (String class_name) -> String
|
|
10
|
+
def self.generate: (String class_name) -> String
|
|
11
|
+
|
|
12
|
+
# @rbs () -> String
|
|
13
|
+
def self.template: () -> String
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Generated from lib/ibex/racc_migration/report.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module RaccMigration
|
|
5
|
+
# One immutable migration compatibility observation.
|
|
6
|
+
class Finding
|
|
7
|
+
SEVERITIES: Array[Symbol]
|
|
8
|
+
|
|
9
|
+
attr_reader code: String
|
|
10
|
+
|
|
11
|
+
attr_reader severity: Symbol
|
|
12
|
+
|
|
13
|
+
attr_reader message: String
|
|
14
|
+
|
|
15
|
+
attr_reader location: Frontend::Location?
|
|
16
|
+
|
|
17
|
+
attr_reader suggestion: String
|
|
18
|
+
|
|
19
|
+
# @rbs (code: String, severity: Symbol, message: String, location: Frontend::Location?,
|
|
20
|
+
# suggestion: String) -> void
|
|
21
|
+
def initialize: (code: String, severity: Symbol, message: String, location: Frontend::Location?, suggestion: String) -> void
|
|
22
|
+
|
|
23
|
+
# @rbs () -> Hash[String, untyped]
|
|
24
|
+
def to_h: () -> Hash[String, untyped]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Versioned result of checking one grammar without executing its code.
|
|
28
|
+
class Report
|
|
29
|
+
SCHEMA_VERSION: Integer
|
|
30
|
+
|
|
31
|
+
attr_reader file: String
|
|
32
|
+
|
|
33
|
+
attr_reader class_name: String?
|
|
34
|
+
|
|
35
|
+
attr_reader findings: Array[Finding]
|
|
36
|
+
|
|
37
|
+
# @rbs (file: String, class_name: String?, findings: Array[Finding]) -> void
|
|
38
|
+
def initialize: (file: String, class_name: String?, findings: Array[Finding]) -> void
|
|
39
|
+
|
|
40
|
+
# @rbs () -> bool
|
|
41
|
+
def compatible?: () -> bool
|
|
42
|
+
|
|
43
|
+
# @rbs () -> Hash[String, untyped]
|
|
44
|
+
def to_h: () -> Hash[String, untyped]
|
|
45
|
+
|
|
46
|
+
# @rbs (*untyped) -> String
|
|
47
|
+
def to_json: (*untyped) -> String
|
|
48
|
+
|
|
49
|
+
# @rbs () -> String
|
|
50
|
+
def to_text: () -> String
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Generated from lib/ibex/rake_task.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Declares grammar-to-parser generation in a Rakefile.
|
|
5
|
+
class RakeTask < Rake::TaskLib
|
|
6
|
+
attr_accessor grammar: String?
|
|
7
|
+
|
|
8
|
+
attr_accessor output: String?
|
|
9
|
+
|
|
10
|
+
attr_accessor options: Array[String]
|
|
11
|
+
|
|
12
|
+
attr_accessor action_source: String | true | nil
|
|
13
|
+
|
|
14
|
+
# @rbs (String | Symbol name) ?{ (RakeTask) -> void } -> void
|
|
15
|
+
def initialize: (String | Symbol name) ?{ (RakeTask) -> void } -> void
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
# @rbs () -> void
|
|
20
|
+
def define: () -> void
|
|
21
|
+
|
|
22
|
+
# @rbs () -> void
|
|
23
|
+
def reject_watch_option!: () -> void
|
|
24
|
+
|
|
25
|
+
# @rbs (String target) -> String?
|
|
26
|
+
def configured_action_source: (String target) -> String?
|
|
27
|
+
|
|
28
|
+
# @rbs (String target) -> String
|
|
29
|
+
def default_action_source_path: (String target) -> String
|
|
30
|
+
|
|
31
|
+
# @rbs (String source) -> Array[String]
|
|
32
|
+
def grammar_prerequisites: (String source) -> Array[String]
|
|
33
|
+
|
|
34
|
+
# @rbs () -> Symbol
|
|
35
|
+
def configured_mode: () -> Symbol
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Rake
|
|
40
|
+
class TaskLib
|
|
41
|
+
def initialize: () -> void
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
class Task
|
|
45
|
+
def self.define_task: (Hash[String | Symbol, String | Array[String]]) -> Task
|
|
46
|
+
| (Hash[String | Symbol, String | Array[String]]) { (untyped, untyped) -> void } -> Task
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
class FileTask < Task
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Generated from lib/ibex/samples.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Generates bounded terminal sentences from Grammar IR.
|
|
5
|
+
class Samples
|
|
6
|
+
DEFAULT_MAX_EXPANSIONS: Integer
|
|
7
|
+
|
|
8
|
+
# @rbs (IR::Grammar grammar, ?seed: Integer, ?max_tokens: Integer, ?max_depth: Integer,
|
|
9
|
+
# ?max_expansions: Integer) -> void
|
|
10
|
+
def initialize: (IR::Grammar grammar, ?seed: Integer, ?max_tokens: Integer, ?max_depth: Integer, ?max_expansions: Integer) -> void
|
|
11
|
+
|
|
12
|
+
# @rbs (?count: Integer) -> Array[Array[String]]
|
|
13
|
+
def generate: (?count: Integer) -> Array[Array[String]]
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
# @rbs () -> Hash[Integer, Integer?]
|
|
18
|
+
def compute_minimum_costs: () -> Hash[Integer, Integer?]
|
|
19
|
+
|
|
20
|
+
# @rbs () -> Hash[Integer, Integer?]
|
|
21
|
+
def compute_minimum_heights: () -> Hash[Integer, Integer?]
|
|
22
|
+
|
|
23
|
+
# @rbs (Integer terminal_value) { (IR::Production, Hash[Integer, Integer?]) -> Integer? }
|
|
24
|
+
# -> Hash[Integer, Integer?]
|
|
25
|
+
def compute_minimum_values: (Integer terminal_value) { (IR::Production, Hash[Integer, Integer?]) -> Integer? } -> Hash[Integer, Integer?]
|
|
26
|
+
|
|
27
|
+
# @rbs (Hash[Integer, Integer?] values, Integer terminal_value) -> Array[Integer]
|
|
28
|
+
def seed_terminal_values: (Hash[Integer, Integer?] values, Integer terminal_value) -> Array[Integer]
|
|
29
|
+
|
|
30
|
+
# @rbs (Hash[Integer, Integer?] values, Array[Integer] queue, Integer symbol_id, Integer? candidate) -> void
|
|
31
|
+
def update_minimum: (Hash[Integer, Integer?] values, Array[Integer] queue, Integer symbol_id, Integer? candidate) -> void
|
|
32
|
+
|
|
33
|
+
# @rbs (IR::Production production, Hash[Integer, Integer?] values) -> Array[Integer]?
|
|
34
|
+
def resolved_rhs_values: (IR::Production production, Hash[Integer, Integer?] values) -> Array[Integer]?
|
|
35
|
+
|
|
36
|
+
# @rbs (IR::GrammarSymbol start, Integer remaining_expansions) -> [Array[String], Integer]
|
|
37
|
+
def expand: (IR::GrammarSymbol start, Integer remaining_expansions) -> [ Array[String], Integer ]
|
|
38
|
+
|
|
39
|
+
# @rbs (Integer nonterminal_id, Integer budget, Integer depth) -> IR::Production
|
|
40
|
+
def choose_production: (Integer nonterminal_id, Integer budget, Integer depth) -> IR::Production
|
|
41
|
+
|
|
42
|
+
# @rbs (Integer symbol_id) -> Integer
|
|
43
|
+
def minimum_cost!: (Integer symbol_id) -> Integer
|
|
44
|
+
|
|
45
|
+
# @rbs (IR::Production production) -> Integer?
|
|
46
|
+
def production_cost: (IR::Production production) -> Integer?
|
|
47
|
+
|
|
48
|
+
# @rbs (IR::Production production) -> Integer?
|
|
49
|
+
def production_height: (IR::Production production) -> Integer?
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_simulation/result.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableSimulation
|
|
5
|
+
# Final immutable simulation document.
|
|
6
|
+
class Result
|
|
7
|
+
IDENTIFIER: String
|
|
8
|
+
|
|
9
|
+
SCHEMA_VERSION: Integer
|
|
10
|
+
|
|
11
|
+
attr_reader grammar_digest: String
|
|
12
|
+
|
|
13
|
+
attr_reader algorithm: String
|
|
14
|
+
|
|
15
|
+
attr_reader tokens: Array[String]
|
|
16
|
+
|
|
17
|
+
attr_reader status: Symbol
|
|
18
|
+
|
|
19
|
+
attr_reader steps: Array[Step]
|
|
20
|
+
|
|
21
|
+
# @rbs (grammar_digest: String, algorithm: String, tokens: Array[String], status: Symbol,
|
|
22
|
+
# steps: Array[Step]) -> void
|
|
23
|
+
def initialize: (grammar_digest: String, algorithm: String, tokens: Array[String], status: Symbol, steps: Array[Step]) -> void
|
|
24
|
+
|
|
25
|
+
# @rbs () -> Hash[String, untyped]
|
|
26
|
+
def to_h: () -> Hash[String, untyped]
|
|
27
|
+
|
|
28
|
+
# @rbs (*untyped) -> String
|
|
29
|
+
def to_json: (*untyped) -> String
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_simulation/simulator.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableSimulation
|
|
5
|
+
# Deterministic, semantic-action-free table interpreter.
|
|
6
|
+
class Simulator
|
|
7
|
+
DEFAULT_MAX_STEPS: Integer
|
|
8
|
+
|
|
9
|
+
DEFAULT_MAX_STACK: Integer
|
|
10
|
+
|
|
11
|
+
EOF_NAME: String
|
|
12
|
+
|
|
13
|
+
ERROR_NAME: String
|
|
14
|
+
|
|
15
|
+
IMPLICIT_ERROR: IR::error_action
|
|
16
|
+
|
|
17
|
+
attr_reader automaton: IR::Automaton
|
|
18
|
+
|
|
19
|
+
attr_reader max_steps: Integer
|
|
20
|
+
|
|
21
|
+
attr_reader max_stack: Integer
|
|
22
|
+
|
|
23
|
+
attr_reader eof: IR::GrammarSymbol
|
|
24
|
+
|
|
25
|
+
# @rbs (IR::Automaton automaton, ?max_steps: Integer, ?max_stack: Integer) -> void
|
|
26
|
+
def initialize: (IR::Automaton automaton, ?max_steps: Integer, ?max_stack: Integer) -> void
|
|
27
|
+
|
|
28
|
+
# @rbs () -> Session
|
|
29
|
+
def start: () -> Session
|
|
30
|
+
|
|
31
|
+
# @rbs (Array[String] tokens) -> Result
|
|
32
|
+
def simulate: (Array[String] tokens) -> Result
|
|
33
|
+
|
|
34
|
+
# @rbs (String spelling) -> IR::GrammarSymbol
|
|
35
|
+
def terminal: (String spelling) -> IR::GrammarSymbol
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
# @rbs (Array[IR::GrammarSymbol] terminals) -> Hash[String, Array[IR::GrammarSymbol]]
|
|
40
|
+
def terminal_aliases: (Array[IR::GrammarSymbol] terminals) -> Hash[String, Array[IR::GrammarSymbol]]
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Stateful token-at-a-time table simulation session.
|
|
44
|
+
class Session
|
|
45
|
+
@tokens: Array[String]
|
|
46
|
+
|
|
47
|
+
@steps: Array[Step]
|
|
48
|
+
|
|
49
|
+
attr_reader status: Symbol?
|
|
50
|
+
|
|
51
|
+
# @rbs (Simulator simulator) -> void
|
|
52
|
+
def initialize: (Simulator simulator) -> void
|
|
53
|
+
|
|
54
|
+
# @rbs (String spelling) -> Array[Step]
|
|
55
|
+
def push: (String spelling) -> Array[Step]
|
|
56
|
+
|
|
57
|
+
# @rbs () -> Array[Step]
|
|
58
|
+
def steps: () -> Array[Step]
|
|
59
|
+
|
|
60
|
+
# @rbs () -> Array[String]
|
|
61
|
+
def tokens: () -> Array[String]
|
|
62
|
+
|
|
63
|
+
# @rbs () -> Result
|
|
64
|
+
def finish: () -> Result
|
|
65
|
+
|
|
66
|
+
private
|
|
67
|
+
|
|
68
|
+
# @rbs (IR::GrammarSymbol terminal, eof: bool) -> Array[Step]
|
|
69
|
+
def process: (IR::GrammarSymbol terminal, eof: bool) -> Array[Step]
|
|
70
|
+
|
|
71
|
+
# @rbs (IR::AutomatonState state, Integer token_id) -> [IR::parser_action, String]
|
|
72
|
+
def action_for: (IR::AutomatonState state, Integer token_id) -> [ IR::parser_action, String ]
|
|
73
|
+
|
|
74
|
+
# @rbs (IR::AutomatonState state, IR::GrammarSymbol terminal, IR::parser_action action, String source) -> void
|
|
75
|
+
def record_shift: (IR::AutomatonState state, IR::GrammarSymbol terminal, IR::parser_action action, String source) -> void
|
|
76
|
+
|
|
77
|
+
# @rbs (IR::AutomatonState state, IR::GrammarSymbol terminal, IR::parser_action action, String source) -> void
|
|
78
|
+
def record_reduce: (IR::AutomatonState state, IR::GrammarSymbol terminal, IR::parser_action action, String source) -> void
|
|
79
|
+
|
|
80
|
+
# @rbs (IR::AutomatonState state, IR::GrammarSymbol terminal, String action, String source) -> void
|
|
81
|
+
def record_terminal: (IR::AutomatonState state, IR::GrammarSymbol terminal, String action, String source) -> void
|
|
82
|
+
|
|
83
|
+
# @rbs (IR::AutomatonState state, IR::GrammarSymbol terminal, String action, String source,
|
|
84
|
+
# before: Integer, ?production_id: Integer?, ?lhs: String?, ?rhs_length: Integer?,
|
|
85
|
+
# ?target_state: Integer?) -> void
|
|
86
|
+
def append_step: (IR::AutomatonState state, IR::GrammarSymbol terminal, String action, String source, before: Integer, ?production_id: Integer?, ?lhs: String?, ?rhs_length: Integer?, ?target_state: Integer?) -> void
|
|
87
|
+
|
|
88
|
+
# @rbs () -> IR::AutomatonState
|
|
89
|
+
def current_state: () -> IR::AutomatonState
|
|
90
|
+
|
|
91
|
+
# @rbs () -> void
|
|
92
|
+
def enforce_stack_budget!: () -> void
|
|
93
|
+
|
|
94
|
+
# @rbs () -> void
|
|
95
|
+
def ensure_active!: () -> void
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_simulation/step.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableSimulation
|
|
5
|
+
# One immutable parser-table action.
|
|
6
|
+
class Step
|
|
7
|
+
attr_reader sequence: Integer
|
|
8
|
+
|
|
9
|
+
attr_reader state: Integer
|
|
10
|
+
|
|
11
|
+
attr_reader token_id: Integer
|
|
12
|
+
|
|
13
|
+
attr_reader token: String
|
|
14
|
+
|
|
15
|
+
attr_reader action: String
|
|
16
|
+
|
|
17
|
+
attr_reader action_source: String
|
|
18
|
+
|
|
19
|
+
attr_reader production_id: Integer?
|
|
20
|
+
|
|
21
|
+
attr_reader lhs: String?
|
|
22
|
+
|
|
23
|
+
attr_reader rhs_length: Integer?
|
|
24
|
+
|
|
25
|
+
attr_reader target_state: Integer?
|
|
26
|
+
|
|
27
|
+
attr_reader stack_depth_before: Integer
|
|
28
|
+
|
|
29
|
+
attr_reader stack_depth_after: Integer
|
|
30
|
+
|
|
31
|
+
# @rbs (sequence: Integer, state: Integer, token_id: Integer, token: String, action: String,
|
|
32
|
+
# action_source: String, production_id: Integer?, lhs: String?, rhs_length: Integer?,
|
|
33
|
+
# target_state: Integer?, stack_depth_before: Integer, stack_depth_after: Integer) -> void
|
|
34
|
+
def initialize: (sequence: Integer, state: Integer, token_id: Integer, token: String, action: String, action_source: String, production_id: Integer?, lhs: String?, rhs_length: Integer?, target_state: Integer?, stack_depth_before: Integer, stack_depth_after: Integer) -> void
|
|
35
|
+
|
|
36
|
+
# @rbs () -> Hash[String, untyped]
|
|
37
|
+
def to_h: () -> Hash[String, untyped]
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Generated from lib/ibex/table_simulation/text.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module TableSimulation
|
|
5
|
+
# Stable one-line renderer for simulation steps.
|
|
6
|
+
module Text
|
|
7
|
+
# @rbs (Step step) -> String
|
|
8
|
+
def self.render_step: (Step step) -> String
|
|
9
|
+
|
|
10
|
+
# @rbs (Result result) -> String
|
|
11
|
+
def self.render: (Result result) -> String
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
data/sig/ibex/tables.rbs
CHANGED
|
@@ -18,32 +18,6 @@ module Ibex
|
|
|
18
18
|
| ({ ?actions: untyped, ?gotos: untyped, ?default_actions: untyped }) -> instance
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
# Sparse table represented by per-row offsets and ownership checks.
|
|
22
|
-
class Compact
|
|
23
|
-
attr_reader offsets: Array[Integer]
|
|
24
|
-
|
|
25
|
-
attr_reader values: Array[untyped]
|
|
26
|
-
|
|
27
|
-
attr_reader checks: Array[Integer?]
|
|
28
|
-
|
|
29
|
-
attr_reader row_count: Integer
|
|
30
|
-
|
|
31
|
-
# @rbs (Array[Hash[Integer, untyped]] rows) -> Compact
|
|
32
|
-
def self.build: (Array[Hash[Integer, untyped]] rows) -> Compact
|
|
33
|
-
|
|
34
|
-
# @rbs (Array[Integer] columns, Array[Integer?] checks) -> Integer
|
|
35
|
-
private def self.find_offset: (Array[Integer] columns, Array[Integer?] checks) -> Integer
|
|
36
|
-
|
|
37
|
-
# @rbs (offsets: Array[Integer], values: Array[untyped], checks: Array[Integer?], row_count: Integer) -> void
|
|
38
|
-
def initialize: (offsets: Array[Integer], values: Array[untyped], checks: Array[Integer?], row_count: Integer) -> void
|
|
39
|
-
|
|
40
|
-
# @rbs (Integer row, Integer column) -> untyped
|
|
41
|
-
def lookup: (Integer row, Integer column) -> untyped
|
|
42
|
-
|
|
43
|
-
# @rbs (Integer row) -> Hash[Integer, untyped]
|
|
44
|
-
def row: (Integer row) -> Hash[Integer, untyped]
|
|
45
|
-
end
|
|
46
|
-
|
|
47
21
|
# @rbs (IR::Automaton automaton, ?format: Symbol | String) -> TableSet
|
|
48
22
|
def self?.build: (IR::Automaton automaton, ?format: Symbol | String) -> TableSet
|
|
49
23
|
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Generated from lib/ibex/watch/runner.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Watch
|
|
5
|
+
# Polls source fingerprints, debounces changes, and publishes stable builds.
|
|
6
|
+
class Runner
|
|
7
|
+
DEFAULT_INTERVAL: Float
|
|
8
|
+
|
|
9
|
+
DEFAULT_DEBOUNCE: Float
|
|
10
|
+
|
|
11
|
+
# rubocop:disable Layout/LineLength
|
|
12
|
+
# @rbs (paths: Array[String], build: ^() -> untyped, publish: ^(untyped, SourceSnapshot, ^() -> bool) -> void, failure_paths: ^() -> Array[String], stderr: untyped, clock: ^() -> Float, sleeper: ^(Float) -> void, iteration_hook: ^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil), ?interval: Float, ?debounce: Float) -> void
|
|
13
|
+
def initialize: (paths: Array[String], build: ^() -> untyped, publish: ^(untyped, SourceSnapshot, ^() -> bool) -> void, failure_paths: ^() -> Array[String], stderr: untyped, clock: ^() -> Float, sleeper: ^(Float) -> void, iteration_hook: ^(Symbol, Integer, Array[String]) -> (Integer | Symbol | nil), ?interval: Float, ?debounce: Float) -> void
|
|
14
|
+
|
|
15
|
+
# @rbs () -> Integer
|
|
16
|
+
def run: () -> Integer
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
# @rbs (SourceSnapshot before) -> [SourceSnapshot, bool]
|
|
21
|
+
def build_once: (SourceSnapshot before) -> [ SourceSnapshot, bool ]
|
|
22
|
+
|
|
23
|
+
# @rbs (SourceSnapshot snapshot) -> SourceSnapshot
|
|
24
|
+
def wait_for_change: (SourceSnapshot snapshot) -> SourceSnapshot
|
|
25
|
+
|
|
26
|
+
# @rbs (SourceSnapshot changed) -> SourceSnapshot
|
|
27
|
+
def debounce: (SourceSnapshot changed) -> SourceSnapshot
|
|
28
|
+
|
|
29
|
+
# @rbs (Exception error) -> void
|
|
30
|
+
def report_failure: (Exception error) -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (SourceSnapshot before, Exception error) -> [SourceSnapshot, bool]
|
|
33
|
+
def failed_build: (SourceSnapshot before, Exception error) -> [ SourceSnapshot, bool ]
|
|
34
|
+
|
|
35
|
+
# @rbs (Exception error, SourceSnapshot snapshot) -> void
|
|
36
|
+
def report_failure_once: (Exception error, SourceSnapshot snapshot) -> void
|
|
37
|
+
|
|
38
|
+
# @rbs (Symbol event) -> Integer?
|
|
39
|
+
def stop_status: (Symbol event) -> Integer?
|
|
40
|
+
|
|
41
|
+
# @rbs (Array[String] paths) -> Array[String]
|
|
42
|
+
def normalize_paths: (Array[String] paths) -> Array[String]
|
|
43
|
+
|
|
44
|
+
# @rbs () { () -> Integer } -> Integer
|
|
45
|
+
def with_signal_handlers: () { () -> Integer } -> Integer
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Generated from lib/ibex/watch/source_snapshot.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Watch
|
|
5
|
+
# Stable metadata and content fingerprints for watched source paths.
|
|
6
|
+
class SourceSnapshot
|
|
7
|
+
attr_reader paths: Array[String]
|
|
8
|
+
|
|
9
|
+
# @rbs (Array[String] paths) -> void
|
|
10
|
+
def initialize: (Array[String] paths) -> void
|
|
11
|
+
|
|
12
|
+
# @rbs (SourceSnapshot other) -> bool
|
|
13
|
+
def ==: (SourceSnapshot other) -> bool
|
|
14
|
+
|
|
15
|
+
# Every path in this snapshot must have had the same value in the older snapshot.
|
|
16
|
+
# @rbs (SourceSnapshot older) -> bool
|
|
17
|
+
def unchanged_since?: (SourceSnapshot older) -> bool
|
|
18
|
+
|
|
19
|
+
attr_reader entries: Hash[String, Hash[Symbol, untyped]]
|
|
20
|
+
|
|
21
|
+
# @rbs (String path) -> Hash[Symbol, untyped]?
|
|
22
|
+
def entry: (String path) -> Hash[Symbol, untyped]?
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
# @rbs (String path) -> Hash[Symbol, untyped]
|
|
27
|
+
def fingerprint: (String path) -> Hash[Symbol, untyped]
|
|
28
|
+
|
|
29
|
+
# @rbs (File::Stat stat) -> Hash[Symbol, untyped]
|
|
30
|
+
def stat_signature: (File::Stat stat) -> Hash[Symbol, untyped]
|
|
31
|
+
|
|
32
|
+
# @rbs (File::Stat stat) -> Symbol
|
|
33
|
+
def file_kind: (File::Stat stat) -> Symbol
|
|
34
|
+
|
|
35
|
+
# @rbs (Time time) -> Integer
|
|
36
|
+
def nanoseconds: (Time time) -> Integer
|
|
37
|
+
|
|
38
|
+
# @rbs (Hash[Symbol, untyped] value, String path) -> void
|
|
39
|
+
def add_resolved_target: (Hash[Symbol, untyped] value, String path) -> void
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
data/sig/ibex/watch.rbs
ADDED