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,100 @@
|
|
|
1
|
+
# Generated from lib/ibex/coverage/report.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Coverage
|
|
5
|
+
# Versioned, mergeable runtime coverage result.
|
|
6
|
+
class Report
|
|
7
|
+
IDENTIFIER: String
|
|
8
|
+
|
|
9
|
+
SCHEMA_VERSION: Integer
|
|
10
|
+
|
|
11
|
+
MAX_DOCUMENT_BYTES: Integer
|
|
12
|
+
|
|
13
|
+
MAX_TOTAL: Integer
|
|
14
|
+
|
|
15
|
+
MAX_COUNT: Integer
|
|
16
|
+
|
|
17
|
+
ROOT_KEYS: Array[String]
|
|
18
|
+
|
|
19
|
+
TOTAL_KEYS: Array[String]
|
|
20
|
+
|
|
21
|
+
HIT_KEYS: Array[String]
|
|
22
|
+
|
|
23
|
+
attr_reader grammar_digest: String
|
|
24
|
+
|
|
25
|
+
attr_reader table_format_version: Integer
|
|
26
|
+
|
|
27
|
+
attr_reader state_count: Integer
|
|
28
|
+
|
|
29
|
+
attr_reader production_count: Integer
|
|
30
|
+
|
|
31
|
+
attr_reader sessions: Integer
|
|
32
|
+
|
|
33
|
+
attr_reader event_count: Integer
|
|
34
|
+
|
|
35
|
+
attr_reader state_hits: Hash[Integer, Integer]
|
|
36
|
+
|
|
37
|
+
attr_reader production_hits: Hash[Integer, Integer]
|
|
38
|
+
|
|
39
|
+
# rubocop:disable Layout/LineLength
|
|
40
|
+
# @rbs (grammar_digest: String, table_format_version: Integer, state_count: Integer, production_count: Integer, sessions: Integer, event_count: Integer, state_hits: Hash[Integer, Integer], production_hits: Hash[Integer, Integer]) -> void
|
|
41
|
+
def initialize: (grammar_digest: String, table_format_version: Integer, state_count: Integer, production_count: Integer, sessions: Integer, event_count: Integer, state_hits: Hash[Integer, Integer], production_hits: Hash[Integer, Integer]) -> void
|
|
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 path) -> Report
|
|
50
|
+
def self.load_file: (String path) -> Report
|
|
51
|
+
|
|
52
|
+
# @rbs (untyped value, source: String) -> Report
|
|
53
|
+
def self.from_h: (untyped value, source: String) -> Report
|
|
54
|
+
|
|
55
|
+
# @rbs (Array[Report] reports) -> Report
|
|
56
|
+
def self.merge: (Array[Report] reports) -> Report
|
|
57
|
+
|
|
58
|
+
private
|
|
59
|
+
|
|
60
|
+
# @rbs (untyped input) -> String
|
|
61
|
+
def validate_digest: (untyped input) -> String
|
|
62
|
+
|
|
63
|
+
# @rbs (untyped input, String name) -> Integer
|
|
64
|
+
def positive_integer: (untyped input, String name) -> Integer
|
|
65
|
+
|
|
66
|
+
# @rbs (untyped input, String name, minimum: Integer) -> Integer
|
|
67
|
+
def total_integer: (untyped input, String name, minimum: Integer) -> Integer
|
|
68
|
+
|
|
69
|
+
# @rbs (Hash[Integer, Integer] input, Integer total, String kind) -> Hash[Integer, Integer]
|
|
70
|
+
def validate_hits: (Hash[Integer, Integer] input, Integer total, String kind) -> Hash[Integer, Integer]
|
|
71
|
+
|
|
72
|
+
# @rbs (Hash[Integer, Integer] hits) -> Array[Hash[String, Integer]]
|
|
73
|
+
def hit_documents: (Hash[Integer, Integer] hits) -> Array[Hash[String, Integer]]
|
|
74
|
+
|
|
75
|
+
# @rbs () -> void
|
|
76
|
+
def validate_event_bounds: () -> void
|
|
77
|
+
|
|
78
|
+
# @rbs (untyped value, String source, String name) -> Hash[String, untyped]
|
|
79
|
+
private def self.string_hash: (untyped value, String source, String name) -> Hash[String, untyped]
|
|
80
|
+
|
|
81
|
+
# @rbs (untyped value, untyped total, String source, String kind) -> Hash[Integer, Integer]
|
|
82
|
+
private def self.parse_hits: (untyped value, untyped total, String source, String kind) -> Hash[Integer, Integer]
|
|
83
|
+
|
|
84
|
+
# @rbs (untyped entry, untyped total, Integer previous, String source, String kind) -> [Integer, Integer]
|
|
85
|
+
private def self.parse_hit: (untyped entry, untyped total, Integer previous, String source, String kind) -> [ Integer, Integer ]
|
|
86
|
+
|
|
87
|
+
# @rbs (Report expected, Report actual) -> void
|
|
88
|
+
private def self.ensure_compatible: (Report expected, Report actual) -> void
|
|
89
|
+
|
|
90
|
+
# @rbs (Array[Integer] values, String name) -> Integer
|
|
91
|
+
private def self.checked_sum: (Array[Integer] values, String name) -> Integer
|
|
92
|
+
|
|
93
|
+
# @rbs (Array[Hash[Integer, Integer]] collections, String kind) -> Hash[Integer, Integer]
|
|
94
|
+
private def self.merge_hits: (Array[Hash[Integer, Integer]] collections, String kind) -> Hash[Integer, Integer]
|
|
95
|
+
|
|
96
|
+
# @rbs (String source, String message) -> bot
|
|
97
|
+
private def self.invalid: (String source, String message) -> bot
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Generated from lib/ibex/coverage/runtime_event_validator.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module Coverage
|
|
5
|
+
# Dependency-free structural validation for runtime-event schema version 1.
|
|
6
|
+
module RuntimeEventValidator
|
|
7
|
+
TOKEN_KEYS: Array[String]
|
|
8
|
+
|
|
9
|
+
LOCATION_KEYS: Array[String]
|
|
10
|
+
|
|
11
|
+
VALIDATORS: Hash[String, Symbol]
|
|
12
|
+
|
|
13
|
+
# @rbs (Hash[String, untyped] document) -> bool
|
|
14
|
+
def self.valid?: (Hash[String, untyped] document) -> bool
|
|
15
|
+
|
|
16
|
+
# @rbs (Hash[String, untyped] data) -> bool
|
|
17
|
+
private def self.valid_start?: (Hash[String, untyped] data) -> bool
|
|
18
|
+
|
|
19
|
+
# @rbs (Hash[String, untyped] data) -> bool
|
|
20
|
+
private def self.valid_shift?: (Hash[String, untyped] data) -> bool
|
|
21
|
+
|
|
22
|
+
# @rbs (Hash[String, untyped] data) -> bool
|
|
23
|
+
private def self.valid_reduce?: (Hash[String, untyped] data) -> bool
|
|
24
|
+
|
|
25
|
+
# @rbs (Hash[String, untyped] data, reasons: Array[String]) -> bool
|
|
26
|
+
private def self.valid_token_event?: (Hash[String, untyped] data, reasons: Array[String]) -> bool
|
|
27
|
+
|
|
28
|
+
# @rbs (Hash[String, untyped] data) -> bool
|
|
29
|
+
private def self.valid_error?: (Hash[String, untyped] data) -> bool
|
|
30
|
+
|
|
31
|
+
# @rbs (Hash[String, untyped] data) -> bool
|
|
32
|
+
private def self.valid_discard?: (Hash[String, untyped] data) -> bool
|
|
33
|
+
|
|
34
|
+
# @rbs (Hash[String, untyped] data) -> bool
|
|
35
|
+
private def self.valid_reject?: (Hash[String, untyped] data) -> bool
|
|
36
|
+
|
|
37
|
+
# @rbs (Hash[String, untyped] data) -> bool
|
|
38
|
+
private def self.valid_recover?: (Hash[String, untyped] data) -> bool
|
|
39
|
+
|
|
40
|
+
# @rbs (Hash[String, untyped] data) -> bool
|
|
41
|
+
private def self.valid_accept?: (Hash[String, untyped] data) -> bool
|
|
42
|
+
|
|
43
|
+
# @rbs (Hash[String, untyped] data) -> bool
|
|
44
|
+
private def self.valid_token_fields?: (Hash[String, untyped] data) -> bool
|
|
45
|
+
|
|
46
|
+
# @rbs (untyped value) -> bool
|
|
47
|
+
private def self.summary?: (untyped value) -> bool
|
|
48
|
+
|
|
49
|
+
# @rbs (untyped value) -> bool
|
|
50
|
+
private def self.composite_summary?: (untyped value) -> bool
|
|
51
|
+
|
|
52
|
+
# @rbs (untyped value) -> bool
|
|
53
|
+
private def self.location?: (untyped value) -> bool
|
|
54
|
+
|
|
55
|
+
# @rbs (Hash[String, untyped] data, Array[String] keys) -> bool
|
|
56
|
+
private def self.exact_keys?: (Hash[String, untyped] data, Array[String] keys) -> bool
|
|
57
|
+
|
|
58
|
+
# @rbs (untyped value) -> bool
|
|
59
|
+
private def self.integer?: (untyped value) -> bool
|
|
60
|
+
|
|
61
|
+
# @rbs (untyped value) -> bool
|
|
62
|
+
private def self.optional_integer?: (untyped value) -> bool
|
|
63
|
+
|
|
64
|
+
# @rbs (untyped value) -> bool
|
|
65
|
+
private def self.optional_string?: (untyped value) -> bool
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/parser.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# Strict line-oriented parser for the ibex-messages v1 and v2 formats.
|
|
6
|
+
class Parser
|
|
7
|
+
include ParserV2
|
|
8
|
+
|
|
9
|
+
ESCAPES: untyped
|
|
10
|
+
|
|
11
|
+
@lines: Array[String]
|
|
12
|
+
|
|
13
|
+
@file: String
|
|
14
|
+
|
|
15
|
+
# @rbs (String source, file: String) -> void
|
|
16
|
+
def initialize: (String source, file: String) -> void
|
|
17
|
+
|
|
18
|
+
# @rbs () -> Document
|
|
19
|
+
def parse: () -> Document
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
# @rbs () -> Document
|
|
24
|
+
def parse_v1: () -> Document
|
|
25
|
+
|
|
26
|
+
# @rbs () -> Integer
|
|
27
|
+
def validate_header: () -> Integer
|
|
28
|
+
|
|
29
|
+
# @rbs (Hash[Integer, Integer] declarations, Integer state, Integer index, String line) -> void
|
|
30
|
+
def reject_duplicate: (Hash[Integer, Integer] declarations, Integer state, Integer index, String line) -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (Integer opening_index, Integer state, :active | :removed status) -> [Entry, Integer]
|
|
33
|
+
def parse_entry: (Integer opening_index, Integer state, :active | :removed status) -> [ Entry, Integer ]
|
|
34
|
+
|
|
35
|
+
# @rbs (Array[String] message_lines, Integer opening_index, Integer index, Integer state,
|
|
36
|
+
# :active | :removed status) -> [Entry, Integer]
|
|
37
|
+
def close_entry: (Array[String] message_lines, Integer opening_index, Integer index, Integer state, :active | :removed status) -> [ Entry, Integer ]
|
|
38
|
+
|
|
39
|
+
# @rbs (Array[String] message_lines, String line, Integer index) -> void
|
|
40
|
+
def read_entry_line: (Array[String] message_lines, String line, Integer index) -> void
|
|
41
|
+
|
|
42
|
+
# @rbs (String content, Integer line, Integer content_column) -> String
|
|
43
|
+
def decode_line: (String content, Integer line, Integer content_column) -> String
|
|
44
|
+
|
|
45
|
+
# @rbs (String line) -> bool
|
|
46
|
+
def ignorable?: (String line) -> bool
|
|
47
|
+
|
|
48
|
+
# @rbs () -> String
|
|
49
|
+
def top_level_expectation: () -> String
|
|
50
|
+
|
|
51
|
+
# @rbs (String line) -> Integer
|
|
52
|
+
def column: (String line) -> Integer
|
|
53
|
+
|
|
54
|
+
# @rbs (Integer line, Integer column, String message) -> bot
|
|
55
|
+
def fail_at: (Integer line, Integer column, String message) -> bot
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/parser_v2.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# Sentence-keyed ibex-messages v2 parsing, mixed into Parser so both
|
|
6
|
+
# versions share UTF-8, escape, and positioned-diagnostic helpers.
|
|
7
|
+
module ParserV2
|
|
8
|
+
private def ignorable?: (String) -> bool
|
|
9
|
+
|
|
10
|
+
private def column: (String) -> Integer
|
|
11
|
+
|
|
12
|
+
private def fail_at: (Integer, Integer, String) -> bot
|
|
13
|
+
|
|
14
|
+
private def decode_line: (String, Integer, Integer) -> String
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
# @rbs () -> Document
|
|
19
|
+
def parse_v2: () -> Document
|
|
20
|
+
|
|
21
|
+
# @rbs (Entry entry, Array[Entry] entries, Hash[String, Integer] identifiers,
|
|
22
|
+
# Hash[String, Integer] keys) -> void
|
|
23
|
+
def record_v2_entry: (Entry entry, Array[Entry] entries, Hash[String, Integer] identifiers, Hash[String, Integer] keys) -> void
|
|
24
|
+
|
|
25
|
+
# @rbs (Integer opening_index) -> [Entry, Integer]
|
|
26
|
+
def parse_v2_entry: (Integer opening_index) -> [ Entry, Integer ]
|
|
27
|
+
|
|
28
|
+
# @rbs (Integer opening_index) ->
|
|
29
|
+
# [:active | :unreachable | :removed, Array[String]?, Integer?]
|
|
30
|
+
def parse_v2_opening: (Integer opening_index) -> [ :active | :unreachable | :removed, Array[String]?, Integer? ]
|
|
31
|
+
|
|
32
|
+
# @rbs (Integer opening_index, :active | :unreachable | :removed status, Array[String]? sentence,
|
|
33
|
+
# Integer? state) -> [Entry, Integer]
|
|
34
|
+
def read_v2_entry_body: (Integer opening_index, :active | :unreachable | :removed status, Array[String]? sentence, Integer? state) -> [ Entry, Integer ]
|
|
35
|
+
|
|
36
|
+
# @rbs (Integer opening_index, Integer index, :active | :unreachable | :removed status,
|
|
37
|
+
# Array[String]? sentence, Integer? state, String? error_id, String? entry_name,
|
|
38
|
+
# Array[String] message_lines) -> [Entry, Integer]
|
|
39
|
+
def close_v2_entry: (Integer opening_index, Integer index, :active | :unreachable | :removed status, Array[String]? sentence, Integer? state, String? error_id, String? entry_name, Array[String] message_lines) -> [ Entry, Integer ]
|
|
40
|
+
|
|
41
|
+
# @rbs (String line, Integer index, String? error_id, Integer? state, String? entry_name,
|
|
42
|
+
# Array[String] message_lines) -> [String?, Integer?, String?]
|
|
43
|
+
def read_v2_metadata: (String line, Integer index, String? error_id, Integer? state, String? entry_name, Array[String] message_lines) -> [ String?, Integer?, String? ]
|
|
44
|
+
|
|
45
|
+
# @rbs (Array[String] message_lines, String line, Integer index) -> void
|
|
46
|
+
def append_v2_message_line: (Array[String] message_lines, String line, Integer index) -> void
|
|
47
|
+
|
|
48
|
+
# @rbs (String source, Integer line) -> Array[String]
|
|
49
|
+
def parse_sentence: (String source, Integer line) -> Array[String]
|
|
50
|
+
|
|
51
|
+
# @rbs (String source, Integer index) -> Integer
|
|
52
|
+
def skip_sentence_space: (String source, Integer index) -> Integer
|
|
53
|
+
|
|
54
|
+
# @rbs (String source, Integer index, Integer line) -> [String, Integer]
|
|
55
|
+
def read_sentence_token: (String source, Integer index, Integer line) -> [ String, Integer ]
|
|
56
|
+
|
|
57
|
+
# @rbs (String source, Integer index, String quote, Integer line) -> Integer
|
|
58
|
+
def quoted_token_end: (String source, Integer index, String quote, Integer line) -> Integer
|
|
59
|
+
|
|
60
|
+
# @rbs (String source, Integer index, String quote, Integer line) -> Integer
|
|
61
|
+
def scan_quoted_token: (String source, Integer index, String quote, Integer line) -> Integer
|
|
62
|
+
|
|
63
|
+
# @rbs (Hash[String, Integer] declarations, String key, Integer line, String label) -> void
|
|
64
|
+
def reject_v2_duplicate: (Hash[String, Integer] declarations, String key, Integer line, String label) -> void
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/renderer.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# @rbs (IR::Automaton automaton, Array[Entry] entries) -> String
|
|
6
|
+
def self?.render_entries: (IR::Automaton automaton, Array[Entry] entries) -> String
|
|
7
|
+
|
|
8
|
+
# @rbs (Array[String] lines, IR::Automaton automaton, Entry entry) -> void
|
|
9
|
+
def append_entry: (Array[String] lines, IR::Automaton automaton, Entry entry) -> void
|
|
10
|
+
|
|
11
|
+
# @rbs (Entry entry) -> String
|
|
12
|
+
def entry_heading: (Entry entry) -> String
|
|
13
|
+
|
|
14
|
+
# @rbs (Array[String] lines, IR::Automaton automaton, Entry entry) -> void
|
|
15
|
+
def append_expected_tokens: (Array[String] lines, IR::Automaton automaton, Entry entry) -> void
|
|
16
|
+
|
|
17
|
+
# @rbs (String line) -> String
|
|
18
|
+
def encode_line: (String line) -> String
|
|
19
|
+
|
|
20
|
+
# @rbs (IR::Automaton automaton, IR::AutomatonState state) -> Array[String]
|
|
21
|
+
def expected_tokens: (IR::Automaton automaton, IR::AutomatonState state) -> Array[String]
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/sentence_search.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# Finds deterministic shortest token sentences that reach each syntax
|
|
6
|
+
# error state without running semantic actions.
|
|
7
|
+
class SentenceSearch
|
|
8
|
+
DEFAULT_MAX_TOKENS: Integer
|
|
9
|
+
|
|
10
|
+
DEFAULT_MAX_CONFIGURATIONS: Integer
|
|
11
|
+
|
|
12
|
+
class Witness < Struct[String | Array[String] | Integer]
|
|
13
|
+
attr_accessor entry(): String
|
|
14
|
+
|
|
15
|
+
attr_accessor tokens(): Array[String]
|
|
16
|
+
|
|
17
|
+
attr_accessor state(): Integer
|
|
18
|
+
|
|
19
|
+
def self.new: (?entry: String, ?tokens: Array[String], ?state: Integer) -> instance
|
|
20
|
+
| ({ ?entry: String, ?tokens: Array[String], ?state: Integer }) -> instance
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
@explored: Integer
|
|
24
|
+
|
|
25
|
+
@input_candidates: Array[IR::GrammarSymbol]
|
|
26
|
+
|
|
27
|
+
@candidates: Array[IR::GrammarSymbol]
|
|
28
|
+
|
|
29
|
+
@max_configurations: Integer
|
|
30
|
+
|
|
31
|
+
@max_tokens: Integer
|
|
32
|
+
|
|
33
|
+
@grammar: IR::Grammar
|
|
34
|
+
|
|
35
|
+
@automaton: IR::Automaton
|
|
36
|
+
|
|
37
|
+
# @rbs (IR::Automaton automaton, ?max_tokens: Integer, ?max_configurations: Integer) -> void
|
|
38
|
+
def initialize: (IR::Automaton automaton, ?max_tokens: Integer, ?max_configurations: Integer) -> void
|
|
39
|
+
|
|
40
|
+
# @rbs () -> Hash[Integer, Witness]
|
|
41
|
+
def all: () -> Hash[Integer, Witness]
|
|
42
|
+
|
|
43
|
+
# @rbs (Array[String] tokens, ?entry: String?) -> Integer?
|
|
44
|
+
def state_for: (Array[String] tokens, ?entry: String?) -> Integer?
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
|
|
48
|
+
# @rbs (Array[Integer] states, String name, bool final) ->
|
|
49
|
+
# [Symbol, Array[Integer] | Integer | nil]
|
|
50
|
+
def consume_sentence_token: (Array[Integer] states, String name, bool final) -> [ Symbol, Array[Integer] | Integer | nil ]
|
|
51
|
+
|
|
52
|
+
# @rbs (String name, bool final) -> IR::GrammarSymbol?
|
|
53
|
+
def sentence_symbol: (String name, bool final) -> IR::GrammarSymbol?
|
|
54
|
+
|
|
55
|
+
# @rbs () -> Array[IR::GrammarSymbol]
|
|
56
|
+
def grammar_terminals: () -> Array[IR::GrammarSymbol]
|
|
57
|
+
|
|
58
|
+
# @rbs (String entry, Integer initial_state, Hash[Integer, bool] targets,
|
|
59
|
+
# Hash[Integer, Witness] witnesses) -> void
|
|
60
|
+
def search_entry: (String entry, Integer initial_state, Hash[Integer, bool] targets, Hash[Integer, Witness] witnesses) -> void
|
|
61
|
+
|
|
62
|
+
# @rbs (String entry, Array[Integer] states, Array[String] prefix, Hash[Integer, bool] targets,
|
|
63
|
+
# Hash[Integer, Witness] witnesses) -> void
|
|
64
|
+
def collect_errors: (String entry, Array[Integer] states, Array[String] prefix, Hash[Integer, bool] targets, Hash[Integer, Witness] witnesses) -> void
|
|
65
|
+
|
|
66
|
+
# @rbs (Array[[Array[Integer], Array[String]]] queue, Hash[Array[Integer], bool] visited,
|
|
67
|
+
# Array[Integer] states, Array[String] prefix) -> void
|
|
68
|
+
def enqueue_shifts: (Array[[ Array[Integer], Array[String] ]] queue, Hash[Array[Integer], bool] visited, Array[Integer] states, Array[String] prefix) -> void
|
|
69
|
+
|
|
70
|
+
# @rbs (Array[Integer] initial, Integer token_id) -> [Symbol, Array[Integer] | Integer | nil]
|
|
71
|
+
def advance: (Array[Integer] initial, Integer token_id) -> [ Symbol, Array[Integer] | Integer | nil ]
|
|
72
|
+
|
|
73
|
+
# @rbs (Array[Integer] states, Integer production_id) -> Array[Integer]?
|
|
74
|
+
def reduce_stack: (Array[Integer] states, Integer production_id) -> Array[Integer]?
|
|
75
|
+
|
|
76
|
+
# @rbs () -> void
|
|
77
|
+
def count_configuration!: () -> void
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages/update.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
module ErrorMessages
|
|
5
|
+
# @rbs (IR::Automaton automaton, ?existing: Document?, ?max_tokens: Integer,
|
|
6
|
+
# ?max_configurations: Integer) -> String
|
|
7
|
+
def self?.render: (IR::Automaton automaton, ?existing: Document?, ?max_tokens: Integer, ?max_configurations: Integer) -> String
|
|
8
|
+
|
|
9
|
+
# @rbs (IR::Automaton automaton, ?existing: Document?, ?max_tokens: Integer,
|
|
10
|
+
# ?max_configurations: Integer) -> Update
|
|
11
|
+
def self?.update: (IR::Automaton automaton, ?existing: Document?, ?max_tokens: Integer, ?max_configurations: Integer) -> Update
|
|
12
|
+
|
|
13
|
+
# @rbs (Array[Entry] entries, Hash[Integer, bool] covered,
|
|
14
|
+
# Hash[Integer, SentenceSearch::Witness] witnesses, Array[String] uncovered, Integer next_id) -> void
|
|
15
|
+
def self?.add_uncovered_entries: (Array[Entry] entries, Hash[Integer, bool] covered, Hash[Integer, SentenceSearch::Witness] witnesses, Array[String] uncovered, Integer next_id) -> void
|
|
16
|
+
|
|
17
|
+
# @rbs (Document document, SentenceSearch search, Hash[Integer, SentenceSearch::Witness] witnesses,
|
|
18
|
+
# Hash[Symbol, Array[String]] classifications, Integer next_id) ->
|
|
19
|
+
# [Array[Entry], Hash[Integer, bool], Integer]
|
|
20
|
+
def update_existing_entries: (Document document, SentenceSearch search, Hash[Integer, SentenceSearch::Witness] witnesses, Hash[Symbol, Array[String]] classifications, Integer next_id) -> [ Array[Entry], Hash[Integer, bool], Integer ]
|
|
21
|
+
|
|
22
|
+
# @rbs (Entry entry, SentenceSearch search, Array[Entry] entries, Hash[Integer, bool] covered,
|
|
23
|
+
# Hash[Symbol, Array[String]] classifications, Integer next_id) -> Integer
|
|
24
|
+
def update_sentence_entry: (Entry entry, SentenceSearch search, Array[Entry] entries, Hash[Integer, bool] covered, Hash[Symbol, Array[String]] classifications, Integer next_id) -> Integer
|
|
25
|
+
|
|
26
|
+
# @rbs (Document document, Hash[Integer, SentenceSearch::Witness] witnesses,
|
|
27
|
+
# Hash[Symbol, Array[String]] classifications, Integer next_id) ->
|
|
28
|
+
# [Array[Entry], Hash[Integer, bool], Integer]
|
|
29
|
+
def migrate_legacy_entries: (Document document, Hash[Integer, SentenceSearch::Witness] witnesses, Hash[Symbol, Array[String]] classifications, Integer next_id) -> [ Array[Entry], Hash[Integer, bool], Integer ]
|
|
30
|
+
|
|
31
|
+
# @rbs (Entry entry, Integer next_id) -> Entry
|
|
32
|
+
def with_error_id: (Entry entry, Integer next_id) -> Entry
|
|
33
|
+
|
|
34
|
+
# @rbs (Document document) -> Integer
|
|
35
|
+
def next_error_id: (Document document) -> Integer
|
|
36
|
+
|
|
37
|
+
# @rbs (Integer number) -> String
|
|
38
|
+
def format_error_id: (Integer number) -> String
|
|
39
|
+
|
|
40
|
+
# @rbs (Entry entry) -> [Integer, Integer, String]
|
|
41
|
+
def entry_sort_key: (Entry entry) -> [ Integer, Integer, String ]
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Generated from lib/ibex/error_messages.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Ibex
|
|
4
|
+
# Parses, validates, and deterministically updates example-keyed syntax
|
|
5
|
+
# error messages.
|
|
6
|
+
module ErrorMessages
|
|
7
|
+
HEADER_V1: ::String
|
|
8
|
+
|
|
9
|
+
HEADER: ::String
|
|
10
|
+
|
|
11
|
+
# One active or archived error-sentence entry with its source line.
|
|
12
|
+
class Entry
|
|
13
|
+
attr_reader state: Integer?
|
|
14
|
+
|
|
15
|
+
attr_reader status: :active | :unreachable | :removed
|
|
16
|
+
|
|
17
|
+
attr_reader message: String?
|
|
18
|
+
|
|
19
|
+
attr_reader line: Integer
|
|
20
|
+
|
|
21
|
+
attr_reader sentence: Array[String]?
|
|
22
|
+
|
|
23
|
+
attr_reader error_id: String?
|
|
24
|
+
|
|
25
|
+
attr_reader entry: String?
|
|
26
|
+
|
|
27
|
+
# @rbs (state: Integer?, status: :active | :unreachable | :removed, message: String?, line: Integer,
|
|
28
|
+
# ?sentence: Array[String]?, ?error_id: String?, ?entry: String?) -> void
|
|
29
|
+
def initialize: (state: Integer?, status: :active | :unreachable | :removed, message: String?, line: Integer, ?sentence: Array[String]?, ?error_id: String?, ?entry: String?) -> void
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Immutable parsed messages document.
|
|
33
|
+
class Document
|
|
34
|
+
attr_reader version: Integer
|
|
35
|
+
|
|
36
|
+
attr_reader entries: Array[Entry]
|
|
37
|
+
|
|
38
|
+
# @rbs (entries: Array[Entry], ?version: Integer) -> void
|
|
39
|
+
def initialize: (entries: Array[Entry], ?version: Integer) -> void
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Deterministic update output and review classifications.
|
|
43
|
+
class Update
|
|
44
|
+
attr_reader source: String
|
|
45
|
+
|
|
46
|
+
attr_reader uncovered: Array[String]
|
|
47
|
+
|
|
48
|
+
attr_reader unreachable: Array[String]
|
|
49
|
+
|
|
50
|
+
attr_reader moved: Array[String]
|
|
51
|
+
|
|
52
|
+
# @rbs (source: String, uncovered: Array[String], unreachable: Array[String], moved: Array[String]) -> void
|
|
53
|
+
def initialize: (source: String, uncovered: Array[String], unreachable: Array[String], moved: Array[String]) -> void
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @rbs (String source, file: String) -> Document
|
|
57
|
+
def self?.parse: (String source, file: String) -> Document
|
|
58
|
+
|
|
59
|
+
# @rbs (String path) -> Document
|
|
60
|
+
def self?.load: (String path) -> Document
|
|
61
|
+
|
|
62
|
+
# @rbs (IR::Automaton automaton) -> Array[IR::AutomatonState]
|
|
63
|
+
def self?.error_states: (IR::Automaton automaton) -> Array[IR::AutomatonState]
|
|
64
|
+
|
|
65
|
+
# @rbs (Document document, IR::Automaton automaton, file: String) -> Hash[Integer, String]
|
|
66
|
+
def self?.messages_for: (Document document, IR::Automaton automaton, file: String) -> Hash[Integer, String]
|
|
67
|
+
|
|
68
|
+
# @rbs (Document document, IR::Automaton automaton, file: String) ->
|
|
69
|
+
# Hash[Integer, { id: String, message: String }]
|
|
70
|
+
def self?.records_for: (Document document, IR::Automaton automaton, file: String) -> Hash[Integer, { id: String, message: String }]
|
|
71
|
+
|
|
72
|
+
# @rbs (Document document, IR::Automaton automaton, file: String) ->
|
|
73
|
+
# Hash[Integer, { id: String, message: String }]
|
|
74
|
+
def self?.legacy_records_for: (Document document, IR::Automaton automaton, file: String) -> Hash[Integer, { id: String, message: String }]
|
|
75
|
+
|
|
76
|
+
# @rbs (IR::Automaton automaton) -> Array[IR::GrammarSymbol]
|
|
77
|
+
def ordinary_terminals: (IR::Automaton automaton) -> Array[IR::GrammarSymbol]
|
|
78
|
+
|
|
79
|
+
# @rbs (IR::parser_action? action) -> bool
|
|
80
|
+
def error_action?: (IR::parser_action? action) -> bool
|
|
81
|
+
|
|
82
|
+
# @rbs (String file, Integer line, Integer column, String message) -> bot
|
|
83
|
+
def fail_at: (String file, Integer line, Integer column, String message) -> bot
|
|
84
|
+
end
|
|
85
|
+
end
|