lrama 0.6.11 → 0.7.1
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/.gitattributes +2 -0
- data/.github/workflows/codespell.yaml +1 -1
- data/.github/workflows/gh-pages.yml +45 -0
- data/.github/workflows/test.yaml +57 -18
- data/.gitignore +1 -0
- data/.rdoc_options +2 -0
- data/Gemfile +6 -3
- data/NEWS.md +427 -32
- data/README.md +43 -95
- data/Rakefile +14 -1
- data/Steepfile +12 -4
- data/doc/Index.md +58 -0
- data/doc/development/compressed_state_table/parser.rb +2 -0
- data/doc/development/profiling.md +44 -0
- data/exe/lrama +1 -1
- data/lib/lrama/bitmap.rb +19 -3
- data/lib/lrama/command.rb +96 -43
- data/lib/lrama/context.rb +22 -24
- data/lib/lrama/counterexamples/derivation.rb +14 -4
- data/lib/lrama/counterexamples/example.rb +47 -22
- data/lib/lrama/counterexamples/node.rb +30 -0
- data/lib/lrama/counterexamples/path.rb +12 -14
- data/lib/lrama/counterexamples/state_item.rb +24 -1
- data/lib/lrama/counterexamples/triple.rb +27 -9
- data/lib/lrama/counterexamples.rb +216 -88
- data/lib/lrama/diagram.rb +77 -0
- data/lib/lrama/digraph.rb +52 -1
- data/lib/lrama/erb.rb +29 -0
- data/lib/lrama/grammar/auxiliary.rb +6 -1
- data/lib/lrama/grammar/binding.rb +60 -16
- data/lib/lrama/grammar/code/destructor_code.rb +11 -0
- data/lib/lrama/grammar/code/initial_action_code.rb +3 -0
- data/lib/lrama/grammar/code/no_reference_code.rb +3 -0
- data/lib/lrama/grammar/code/printer_code.rb +11 -0
- data/lib/lrama/grammar/code/rule_action.rb +17 -0
- data/lib/lrama/grammar/code.rb +16 -1
- data/lib/lrama/grammar/counter.rb +10 -0
- data/lib/lrama/grammar/destructor.rb +14 -1
- data/lib/lrama/grammar/error_token.rb +14 -1
- data/lib/lrama/grammar/inline/resolver.rb +80 -0
- data/lib/lrama/grammar/inline.rb +3 -0
- data/lib/lrama/grammar/{parameterizing_rule → parameterized}/resolver.rb +19 -8
- data/lib/lrama/grammar/{parameterizing_rule → parameterized}/rhs.rb +7 -2
- data/lib/lrama/grammar/parameterized/rule.rb +36 -0
- data/lib/lrama/grammar/parameterized.rb +5 -0
- data/lib/lrama/grammar/percent_code.rb +12 -1
- data/lib/lrama/grammar/precedence.rb +43 -1
- data/lib/lrama/grammar/printer.rb +9 -0
- data/lib/lrama/grammar/reference.rb +13 -0
- data/lib/lrama/grammar/rule.rb +69 -1
- data/lib/lrama/grammar/rule_builder.rb +84 -81
- data/lib/lrama/grammar/stdlib.y +68 -48
- data/lib/lrama/grammar/symbol.rb +63 -19
- data/lib/lrama/grammar/symbols/resolver.rb +64 -3
- data/lib/lrama/grammar/type.rb +13 -1
- data/lib/lrama/grammar/union.rb +12 -1
- data/lib/lrama/grammar.rb +236 -35
- data/lib/lrama/lexer/grammar_file.rb +8 -1
- data/lib/lrama/lexer/location.rb +42 -9
- data/lib/lrama/lexer/token/base.rb +73 -0
- data/lib/lrama/lexer/token/char.rb +16 -2
- data/lib/lrama/lexer/token/empty.rb +14 -0
- data/lib/lrama/lexer/token/ident.rb +3 -2
- data/lib/lrama/lexer/token/instantiate_rule.rb +8 -3
- data/lib/lrama/lexer/token/int.rb +14 -0
- data/lib/lrama/lexer/token/str.rb +11 -0
- data/lib/lrama/lexer/token/tag.rb +5 -3
- data/lib/lrama/lexer/token/token.rb +11 -0
- data/lib/lrama/lexer/token/user_code.rb +68 -38
- data/lib/lrama/lexer/token.rb +7 -45
- data/lib/lrama/lexer.rb +55 -28
- data/lib/lrama/logger.rb +16 -2
- data/lib/lrama/option_parser.rb +71 -15
- data/lib/lrama/options.rb +26 -7
- data/lib/lrama/output.rb +4 -11
- data/lib/lrama/parser.rb +858 -721
- data/lib/lrama/reporter/conflicts.rb +44 -0
- data/lib/lrama/reporter/grammar.rb +39 -0
- data/lib/lrama/reporter/precedences.rb +54 -0
- data/lib/lrama/reporter/profile/call_stack.rb +45 -0
- data/lib/lrama/reporter/profile/memory.rb +44 -0
- data/lib/lrama/reporter/profile.rb +4 -0
- data/lib/lrama/reporter/rules.rb +43 -0
- data/lib/lrama/reporter/states.rb +387 -0
- data/lib/lrama/reporter/terms.rb +44 -0
- data/lib/lrama/reporter.rb +39 -0
- data/lib/lrama/state/action/goto.rb +33 -0
- data/lib/lrama/state/action/reduce.rb +71 -0
- data/lib/lrama/state/action/shift.rb +39 -0
- data/lib/lrama/state/action.rb +5 -0
- data/lib/lrama/state/inadequacy_annotation.rb +140 -0
- data/lib/lrama/{states → state}/item.rb +40 -3
- data/lib/lrama/state/reduce_reduce_conflict.rb +14 -1
- data/lib/lrama/state/resolved_conflict.rb +38 -4
- data/lib/lrama/state/shift_reduce_conflict.rb +14 -1
- data/lib/lrama/state.rb +416 -28
- data/lib/lrama/states.rb +483 -144
- data/lib/lrama/tracer/actions.rb +22 -0
- data/lib/lrama/tracer/closure.rb +30 -0
- data/lib/lrama/tracer/duration.rb +38 -0
- data/lib/lrama/tracer/only_explicit_rules.rb +24 -0
- data/lib/lrama/tracer/rules.rb +23 -0
- data/lib/lrama/tracer/state.rb +33 -0
- data/lib/lrama/tracer.rb +51 -0
- data/lib/lrama/version.rb +2 -1
- data/lib/lrama/warnings/conflicts.rb +27 -0
- data/lib/lrama/warnings/implicit_empty.rb +29 -0
- data/lib/lrama/warnings/name_conflicts.rb +63 -0
- data/lib/lrama/warnings/redefined_rules.rb +23 -0
- data/lib/lrama/warnings/required.rb +23 -0
- data/lib/lrama/warnings/useless_precedence.rb +25 -0
- data/lib/lrama/warnings.rb +33 -0
- data/lib/lrama.rb +5 -5
- data/lrama.gemspec +1 -1
- data/parser.y +496 -404
- data/rbs_collection.lock.yaml +27 -3
- data/rbs_collection.yaml +2 -0
- data/sig/generated/lrama/bitmap.rbs +19 -0
- data/sig/generated/lrama/counterexamples/derivation.rbs +36 -0
- data/sig/generated/lrama/counterexamples/example.rbs +58 -0
- data/sig/generated/lrama/counterexamples/node.rbs +18 -0
- data/sig/generated/lrama/counterexamples/path.rbs +23 -0
- data/sig/generated/lrama/counterexamples/state_item.rbs +19 -0
- data/sig/generated/lrama/counterexamples/triple.rbs +32 -0
- data/sig/generated/lrama/counterexamples.rbs +98 -0
- data/sig/generated/lrama/diagram.rbs +34 -0
- data/sig/generated/lrama/digraph.rbs +59 -0
- data/sig/generated/lrama/erb.rbs +14 -0
- data/sig/generated/lrama/grammar/auxiliary.rbs +16 -0
- data/sig/generated/lrama/grammar/binding.rbs +40 -0
- data/sig/generated/lrama/grammar/code/destructor_code.rbs +26 -0
- data/sig/{lrama → generated/lrama}/grammar/code/initial_action_code.rbs +6 -0
- data/sig/{lrama → generated/lrama}/grammar/code/no_reference_code.rbs +6 -0
- data/sig/generated/lrama/grammar/code/printer_code.rbs +26 -0
- data/sig/generated/lrama/grammar/code/rule_action.rbs +63 -0
- data/sig/generated/lrama/grammar/code.rbs +38 -0
- data/sig/{lrama → generated/lrama}/grammar/counter.rbs +4 -0
- data/sig/generated/lrama/grammar/destructor.rbs +19 -0
- data/sig/generated/lrama/grammar/error_token.rbs +19 -0
- data/sig/generated/lrama/grammar/inline/resolver.rbs +26 -0
- data/sig/generated/lrama/grammar/parameterized/resolver.rbs +42 -0
- data/sig/generated/lrama/grammar/parameterized/rhs.rbs +21 -0
- data/sig/generated/lrama/grammar/parameterized/rule.rbs +28 -0
- data/sig/{lrama → generated/lrama}/grammar/percent_code.rbs +8 -0
- data/sig/generated/lrama/grammar/precedence.rbs +45 -0
- data/sig/{lrama/grammar/error_token.rbs → generated/lrama/grammar/printer.rbs} +8 -3
- data/sig/generated/lrama/grammar/reference.rbs +31 -0
- data/sig/generated/lrama/grammar/rule.rbs +83 -0
- data/sig/generated/lrama/grammar/rule_builder.rbs +91 -0
- data/sig/generated/lrama/grammar/symbol.rbs +89 -0
- data/sig/generated/lrama/grammar/symbols/resolver.rbs +131 -0
- data/sig/generated/lrama/grammar/type.rbs +21 -0
- data/sig/generated/lrama/grammar/union.rbs +17 -0
- data/sig/generated/lrama/grammar.rbs +289 -0
- data/sig/generated/lrama/lexer/grammar_file.rbs +28 -0
- data/sig/generated/lrama/lexer/location.rbs +61 -0
- data/sig/generated/lrama/lexer/token/base.rbs +53 -0
- data/sig/generated/lrama/lexer/token/char.rbs +17 -0
- data/sig/generated/lrama/lexer/token/empty.rbs +11 -0
- data/sig/generated/lrama/lexer/token/ident.rbs +10 -0
- data/sig/generated/lrama/lexer/token/instantiate_rule.rbs +22 -0
- data/sig/generated/lrama/lexer/token/int.rbs +13 -0
- data/sig/generated/lrama/lexer/token/str.rbs +10 -0
- data/sig/generated/lrama/lexer/token/tag.rbs +12 -0
- data/sig/generated/lrama/lexer/token/token.rbs +10 -0
- data/sig/{lrama → generated/lrama}/lexer/token/user_code.rbs +8 -3
- data/sig/generated/lrama/lexer/token.rbs +8 -0
- data/sig/generated/lrama/lexer.rbs +54 -0
- data/sig/generated/lrama/logger.rbs +20 -0
- data/sig/generated/lrama/option_parser.rbs +52 -0
- data/sig/{lrama → generated/lrama}/options.rbs +27 -2
- data/sig/generated/lrama/reporter/conflicts.rbs +18 -0
- data/sig/generated/lrama/reporter/grammar.rbs +13 -0
- data/sig/generated/lrama/reporter/precedences.rbs +15 -0
- data/sig/generated/lrama/reporter/profile/call_stack.rbs +19 -0
- data/sig/generated/lrama/reporter/profile/memory.rbs +19 -0
- data/sig/generated/lrama/reporter/rules.rbs +13 -0
- data/sig/generated/lrama/reporter/states.rbs +69 -0
- data/sig/generated/lrama/reporter/terms.rbs +13 -0
- data/sig/generated/lrama/reporter.rbs +13 -0
- data/sig/generated/lrama/state/action/goto.rbs +28 -0
- data/sig/generated/lrama/state/action/reduce.rbs +49 -0
- data/sig/generated/lrama/state/action/shift.rbs +33 -0
- data/sig/generated/lrama/state/inadequacy_annotation.rbs +45 -0
- data/sig/generated/lrama/state/item.rbs +75 -0
- data/sig/generated/lrama/state/reduce_reduce_conflict.rbs +19 -0
- data/sig/generated/lrama/state/resolved_conflict.rbs +38 -0
- data/sig/generated/lrama/state/shift_reduce_conflict.rbs +19 -0
- data/sig/generated/lrama/state.rbs +231 -0
- data/sig/generated/lrama/states.rbs +215 -0
- data/sig/generated/lrama/tracer/actions.rbs +13 -0
- data/sig/generated/lrama/tracer/closure.rbs +13 -0
- data/sig/generated/lrama/tracer/duration.rbs +18 -0
- data/sig/generated/lrama/tracer/only_explicit_rules.rbs +13 -0
- data/sig/generated/lrama/tracer/rules.rbs +13 -0
- data/sig/generated/lrama/tracer/state.rbs +16 -0
- data/sig/generated/lrama/tracer.rbs +23 -0
- data/sig/generated/lrama/version.rbs +5 -0
- data/sig/generated/lrama/warnings/conflicts.rbs +13 -0
- data/sig/generated/lrama/warnings/implicit_empty.rbs +17 -0
- data/sig/generated/lrama/warnings/name_conflicts.rbs +31 -0
- data/sig/generated/lrama/warnings/redefined_rules.rbs +13 -0
- data/sig/generated/lrama/warnings/required.rbs +13 -0
- data/sig/generated/lrama/warnings/useless_precedence.rbs +13 -0
- data/sig/generated/lrama/warnings.rbs +11 -0
- data/sig/railroad_diagrams/railroad_diagrams.rbs +16 -0
- data/template/bison/_yacc.h +8 -0
- data/template/diagram/diagram.html +102 -0
- metadata +142 -77
- data/lib/lrama/counterexamples/production_path.rb +0 -19
- data/lib/lrama/counterexamples/start_path.rb +0 -23
- data/lib/lrama/counterexamples/transition_path.rb +0 -19
- data/lib/lrama/diagnostics.rb +0 -36
- data/lib/lrama/grammar/parameterizing_rule/rule.rb +0 -24
- data/lib/lrama/grammar/parameterizing_rule.rb +0 -5
- data/lib/lrama/grammar_validator.rb +0 -37
- data/lib/lrama/report/duration.rb +0 -27
- data/lib/lrama/report/profile.rb +0 -16
- data/lib/lrama/report.rb +0 -4
- data/lib/lrama/state/reduce.rb +0 -37
- data/lib/lrama/state/shift.rb +0 -15
- data/lib/lrama/states_reporter.rb +0 -362
- data/lib/lrama/trace_reporter.rb +0 -30
- data/sig/lrama/bitmap.rbs +0 -7
- data/sig/lrama/counterexamples/derivation.rbs +0 -33
- data/sig/lrama/counterexamples/example.rbs +0 -45
- data/sig/lrama/counterexamples/path.rbs +0 -21
- data/sig/lrama/counterexamples/production_path.rbs +0 -11
- data/sig/lrama/counterexamples/start_path.rbs +0 -13
- data/sig/lrama/counterexamples/state_item.rbs +0 -10
- data/sig/lrama/counterexamples/transition_path.rbs +0 -11
- data/sig/lrama/counterexamples/triple.rbs +0 -20
- data/sig/lrama/counterexamples.rbs +0 -29
- data/sig/lrama/digraph.rbs +0 -23
- data/sig/lrama/grammar/auxiliary.rbs +0 -10
- data/sig/lrama/grammar/binding.rbs +0 -19
- data/sig/lrama/grammar/code/destructor_code.rbs +0 -14
- data/sig/lrama/grammar/code/printer_code.rbs +0 -14
- data/sig/lrama/grammar/code/rule_action.rbs +0 -19
- data/sig/lrama/grammar/code.rbs +0 -24
- data/sig/lrama/grammar/destructor.rbs +0 -13
- data/sig/lrama/grammar/parameterizing_rule/resolver.rbs +0 -24
- data/sig/lrama/grammar/parameterizing_rule/rhs.rbs +0 -14
- data/sig/lrama/grammar/parameterizing_rule/rule.rbs +0 -16
- data/sig/lrama/grammar/parameterizing_rule.rbs +0 -6
- data/sig/lrama/grammar/precedence.rbs +0 -13
- data/sig/lrama/grammar/printer.rbs +0 -13
- data/sig/lrama/grammar/reference.rbs +0 -22
- data/sig/lrama/grammar/rule.rbs +0 -45
- data/sig/lrama/grammar/rule_builder.rbs +0 -48
- data/sig/lrama/grammar/symbol.rbs +0 -38
- data/sig/lrama/grammar/symbols/resolver.rbs +0 -60
- data/sig/lrama/grammar/type.rbs +0 -11
- data/sig/lrama/grammar/union.rbs +0 -12
- data/sig/lrama/grammar.rbs +0 -108
- data/sig/lrama/lexer/grammar_file.rbs +0 -17
- data/sig/lrama/lexer/location.rbs +0 -26
- data/sig/lrama/lexer/token/char.rbs +0 -8
- data/sig/lrama/lexer/token/ident.rbs +0 -8
- data/sig/lrama/lexer/token/instantiate_rule.rbs +0 -14
- data/sig/lrama/lexer/token/tag.rbs +0 -9
- data/sig/lrama/lexer/token.rbs +0 -23
- data/sig/lrama/report/duration.rbs +0 -11
- data/sig/lrama/report/profile.rbs +0 -7
- data/sig/lrama/state/reduce.rbs +0 -20
- data/sig/lrama/state/reduce_reduce_conflict.rbs +0 -13
- data/sig/lrama/state/resolved_conflict.rbs +0 -14
- data/sig/lrama/state/shift.rbs +0 -14
- data/sig/lrama/state/shift_reduce_conflict.rbs +0 -13
- data/sig/lrama/state.rbs +0 -79
- data/sig/lrama/states/item.rbs +0 -30
- data/sig/lrama/states.rbs +0 -101
- data/sig/lrama/warning.rbs +0 -16
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class Lexer
|
|
3
|
-
class GrammarFile
|
|
4
|
-
class Text < String
|
|
5
|
-
end
|
|
6
|
-
attr_reader path: String
|
|
7
|
-
attr_reader text: String
|
|
8
|
-
|
|
9
|
-
@lines: Array[String]
|
|
10
|
-
|
|
11
|
-
def initialize: (String path, String text) -> void
|
|
12
|
-
|
|
13
|
-
def ==: (GrammarFile other) -> bool
|
|
14
|
-
def lines: () -> Array[String]
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class Lexer
|
|
3
|
-
class Location
|
|
4
|
-
attr_reader grammar_file: GrammarFile
|
|
5
|
-
attr_reader first_line: Integer
|
|
6
|
-
attr_reader first_column: Integer
|
|
7
|
-
attr_reader last_line: Integer
|
|
8
|
-
attr_reader last_column: Integer
|
|
9
|
-
|
|
10
|
-
def initialize: (grammar_file: GrammarFile, first_line: Integer, first_column: Integer, last_line: Integer, last_column: Integer) -> void
|
|
11
|
-
|
|
12
|
-
def ==: (Location other) -> bool
|
|
13
|
-
def partial_location: (Integer, Integer) -> Location
|
|
14
|
-
def generate_error_message: (String) -> String
|
|
15
|
-
def line_with_carets: () -> String
|
|
16
|
-
|
|
17
|
-
private
|
|
18
|
-
|
|
19
|
-
def path: () -> String
|
|
20
|
-
def blanks: () -> String
|
|
21
|
-
def carets: () -> String
|
|
22
|
-
def text: () -> String
|
|
23
|
-
def _text: () -> Array[String]
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class Lexer
|
|
3
|
-
class Token
|
|
4
|
-
class InstantiateRule < Token
|
|
5
|
-
attr_reader args: Array[Lexer::Token]
|
|
6
|
-
attr_reader lhs_tag: Lexer::Token::Tag?
|
|
7
|
-
|
|
8
|
-
def initialize: (s_value: String, ?alias_name: String, ?location: Location, ?args: Array[Lexer::Token], ?lhs_tag: Lexer::Token::Tag?) -> void
|
|
9
|
-
def rule_name: () -> String
|
|
10
|
-
def args_count: () -> Integer
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
data/sig/lrama/lexer/token.rbs
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class Lexer
|
|
3
|
-
class Token
|
|
4
|
-
attr_reader s_value: String
|
|
5
|
-
attr_accessor alias_name: String
|
|
6
|
-
attr_reader location: Location
|
|
7
|
-
attr_accessor referred: bool
|
|
8
|
-
|
|
9
|
-
def initialize: (s_value: String, ?alias_name: String, ?location: Location) -> void
|
|
10
|
-
|
|
11
|
-
def to_s: () -> String
|
|
12
|
-
def referred_by?: (String string) -> bool
|
|
13
|
-
def ==: (Token other) -> bool
|
|
14
|
-
def first_line: () -> Integer
|
|
15
|
-
def first_column: () -> Integer
|
|
16
|
-
def last_line: () -> Integer
|
|
17
|
-
def last_column: () -> Integer
|
|
18
|
-
alias line first_line
|
|
19
|
-
alias column first_column
|
|
20
|
-
def invalid_ref: (Lrama::Grammar::Reference ref, String message) -> bot
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
data/sig/lrama/state/reduce.rbs
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class State
|
|
3
|
-
class Reduce
|
|
4
|
-
@item: States::Item
|
|
5
|
-
@look_ahead: Array[Grammar::Symbol]?
|
|
6
|
-
@not_selected_symbols: Array[Grammar::Symbol]
|
|
7
|
-
|
|
8
|
-
attr_reader item: States::Item
|
|
9
|
-
attr_reader look_ahead: Array[Grammar::Symbol]?
|
|
10
|
-
attr_reader not_selected_symbols: Array[Grammar::Symbol]
|
|
11
|
-
attr_accessor default_reduction: bool
|
|
12
|
-
|
|
13
|
-
def initialize: (States::Item item) -> void
|
|
14
|
-
def rule: -> Grammar::Rule
|
|
15
|
-
def look_ahead=: (Array[Grammar::Symbol] look_ahead) -> Array[Grammar::Symbol]
|
|
16
|
-
def add_not_selected_symbol: (Grammar::Symbol sym) -> Array[Grammar::Symbol]
|
|
17
|
-
def selected_look_ahead: () -> (::Array[Grammar::Symbol?])
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class State
|
|
3
|
-
class ReduceReduceConflict
|
|
4
|
-
attr_accessor symbols: Array[Grammar::Symbol]
|
|
5
|
-
attr_accessor reduce1: State::Reduce
|
|
6
|
-
attr_accessor reduce2: State::Reduce
|
|
7
|
-
|
|
8
|
-
def initialize: (?symbols: Array[Grammar::Symbol], ?reduce1: State::Reduce, ?reduce2: State::Reduce) -> void
|
|
9
|
-
|
|
10
|
-
def type: () -> :reduce_reduce
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class State
|
|
3
|
-
class ResolvedConflict
|
|
4
|
-
attr_accessor symbol: Grammar::Symbol
|
|
5
|
-
attr_accessor reduce: State::Reduce
|
|
6
|
-
attr_accessor which: (:reduce | :shift)
|
|
7
|
-
attr_accessor same_prec: bool
|
|
8
|
-
|
|
9
|
-
def initialize: (?symbol: Grammar::Symbol, ?reduce: State::Reduce, ?which: (:reduce | :shift), ?same_prec: bool) -> void
|
|
10
|
-
|
|
11
|
-
def report_message: () -> (::String | bot)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
data/sig/lrama/state/shift.rbs
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class State
|
|
3
|
-
class Shift
|
|
4
|
-
@next_sym: Grammar::Symbol
|
|
5
|
-
@next_items: Array[States::Item]
|
|
6
|
-
|
|
7
|
-
attr_reader next_sym: Grammar::Symbol
|
|
8
|
-
attr_reader next_items: Array[States::Item]
|
|
9
|
-
attr_accessor not_selected: bool
|
|
10
|
-
|
|
11
|
-
def initialize: (Grammar::Symbol next_sym, Array[States::Item] next_items) -> void
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class State
|
|
3
|
-
class ShiftReduceConflict
|
|
4
|
-
attr_accessor symbols: Array[Grammar::Symbol]
|
|
5
|
-
attr_accessor shift: State::Shift
|
|
6
|
-
attr_accessor reduce: State::Reduce
|
|
7
|
-
|
|
8
|
-
def initialize: (?symbols: Array[Grammar::Symbol], ?shift: State::Shift, ?reduce: State::Reduce) -> void
|
|
9
|
-
|
|
10
|
-
def type: () -> :shift_reduce
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
data/sig/lrama/state.rbs
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class State
|
|
3
|
-
@id: untyped
|
|
4
|
-
|
|
5
|
-
@accessing_symbol: untyped
|
|
6
|
-
|
|
7
|
-
@kernels: untyped
|
|
8
|
-
|
|
9
|
-
@items: Array[States::Item]
|
|
10
|
-
|
|
11
|
-
@items_to_state: untyped
|
|
12
|
-
|
|
13
|
-
@conflicts: Array[State::ShiftReduceConflict|State::ReduceReduceConflict]
|
|
14
|
-
|
|
15
|
-
@resolved_conflicts: untyped
|
|
16
|
-
|
|
17
|
-
@default_reduction_rule: untyped
|
|
18
|
-
|
|
19
|
-
@closure: untyped
|
|
20
|
-
|
|
21
|
-
@nterm_transitions: untyped
|
|
22
|
-
|
|
23
|
-
@term_transitions: untyped
|
|
24
|
-
|
|
25
|
-
@transitions: Array[[Shift, State]]
|
|
26
|
-
|
|
27
|
-
attr_reader id: untyped
|
|
28
|
-
|
|
29
|
-
attr_reader accessing_symbol: untyped
|
|
30
|
-
|
|
31
|
-
attr_reader kernels: untyped
|
|
32
|
-
|
|
33
|
-
attr_reader conflicts: Array[State::ShiftReduceConflict|State::ReduceReduceConflict]
|
|
34
|
-
|
|
35
|
-
attr_reader resolved_conflicts: untyped
|
|
36
|
-
|
|
37
|
-
attr_reader default_reduction_rule: untyped
|
|
38
|
-
|
|
39
|
-
attr_reader closure: untyped
|
|
40
|
-
|
|
41
|
-
attr_reader items: Array[States::Item]
|
|
42
|
-
|
|
43
|
-
attr_accessor shifts: Array[Shift]
|
|
44
|
-
|
|
45
|
-
attr_accessor reduces: untyped
|
|
46
|
-
|
|
47
|
-
def initialize: (untyped id, untyped accessing_symbol, Array[States::Item] kernels) -> void
|
|
48
|
-
|
|
49
|
-
def closure=: (untyped closure) -> untyped
|
|
50
|
-
|
|
51
|
-
def non_default_reduces: () -> untyped
|
|
52
|
-
|
|
53
|
-
def compute_shifts_reduces: () -> untyped
|
|
54
|
-
|
|
55
|
-
def set_items_to_state: (untyped items, untyped next_state) -> untyped
|
|
56
|
-
|
|
57
|
-
def set_look_ahead: (untyped rule, untyped look_ahead) -> untyped
|
|
58
|
-
|
|
59
|
-
def nterm_transitions: () -> untyped
|
|
60
|
-
|
|
61
|
-
def term_transitions: () -> untyped
|
|
62
|
-
|
|
63
|
-
def transitions: () -> Array[[Shift, State]]
|
|
64
|
-
|
|
65
|
-
def selected_term_transitions: () -> untyped
|
|
66
|
-
|
|
67
|
-
def transition: (untyped sym) -> untyped
|
|
68
|
-
|
|
69
|
-
def find_reduce_by_item!: (untyped item) -> untyped
|
|
70
|
-
|
|
71
|
-
def default_reduction_rule=: (untyped default_reduction_rule) -> untyped
|
|
72
|
-
|
|
73
|
-
def has_conflicts?: () -> untyped
|
|
74
|
-
|
|
75
|
-
def sr_conflicts: () -> untyped
|
|
76
|
-
|
|
77
|
-
def rr_conflicts: () -> untyped
|
|
78
|
-
end
|
|
79
|
-
end
|
data/sig/lrama/states/item.rbs
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class States
|
|
3
|
-
class Item
|
|
4
|
-
extend Forwardable
|
|
5
|
-
include Grammar::Rule::_DelegatedMethods
|
|
6
|
-
|
|
7
|
-
attr_accessor rule: Grammar::Rule
|
|
8
|
-
attr_accessor position: Integer
|
|
9
|
-
|
|
10
|
-
def initialize: (?rule: Grammar::Rule, ?position: Integer) -> void
|
|
11
|
-
|
|
12
|
-
def hash: () -> Integer
|
|
13
|
-
def rule_id: () -> Integer
|
|
14
|
-
def empty_rule?: () -> bool
|
|
15
|
-
def number_of_rest_symbols: () -> Integer
|
|
16
|
-
def next_sym: () -> Grammar::Symbol
|
|
17
|
-
def next_next_sym: () -> Grammar::Symbol
|
|
18
|
-
def previous_sym: () -> Grammar::Symbol
|
|
19
|
-
def end_of_rule?: () -> bool
|
|
20
|
-
def beginning_of_rule?: () -> bool
|
|
21
|
-
def start_item?: () -> bool
|
|
22
|
-
def new_by_next_position: () -> States::Item
|
|
23
|
-
def symbols_before_dot: () -> Array[Grammar::Symbol]
|
|
24
|
-
def symbols_after_dot: () -> Array[Grammar::Symbol]
|
|
25
|
-
def to_s: () -> ::String
|
|
26
|
-
def display_name: () -> ::String
|
|
27
|
-
def display_rest: () -> ::String
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
data/sig/lrama/states.rbs
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class States
|
|
3
|
-
include Grammar::_DelegatedMethods
|
|
4
|
-
|
|
5
|
-
@grammar: untyped
|
|
6
|
-
|
|
7
|
-
@warning: untyped
|
|
8
|
-
|
|
9
|
-
@trace_state: untyped
|
|
10
|
-
|
|
11
|
-
@states: Array[State]
|
|
12
|
-
|
|
13
|
-
@direct_read_sets: untyped
|
|
14
|
-
|
|
15
|
-
@reads_relation: untyped
|
|
16
|
-
|
|
17
|
-
@read_sets: untyped
|
|
18
|
-
|
|
19
|
-
@includes_relation: untyped
|
|
20
|
-
|
|
21
|
-
@lookback_relation: untyped
|
|
22
|
-
|
|
23
|
-
@follow_sets: untyped
|
|
24
|
-
|
|
25
|
-
@la: untyped
|
|
26
|
-
|
|
27
|
-
extend Forwardable
|
|
28
|
-
|
|
29
|
-
include Lrama::Report::Duration
|
|
30
|
-
|
|
31
|
-
attr_reader states: Array[State]
|
|
32
|
-
|
|
33
|
-
attr_reader reads_relation: untyped
|
|
34
|
-
|
|
35
|
-
attr_reader includes_relation: untyped
|
|
36
|
-
|
|
37
|
-
attr_reader lookback_relation: untyped
|
|
38
|
-
|
|
39
|
-
def initialize: (untyped grammar, untyped warning, ?trace_state: bool) -> void
|
|
40
|
-
|
|
41
|
-
def compute: () -> untyped
|
|
42
|
-
|
|
43
|
-
def reporter: () -> untyped
|
|
44
|
-
|
|
45
|
-
def states_count: () -> untyped
|
|
46
|
-
|
|
47
|
-
def direct_read_sets: () -> untyped
|
|
48
|
-
|
|
49
|
-
def read_sets: () -> untyped
|
|
50
|
-
|
|
51
|
-
def follow_sets: () -> untyped
|
|
52
|
-
|
|
53
|
-
def la: () -> untyped
|
|
54
|
-
|
|
55
|
-
private
|
|
56
|
-
|
|
57
|
-
def sr_conflicts: () -> untyped
|
|
58
|
-
|
|
59
|
-
def rr_conflicts: () -> untyped
|
|
60
|
-
|
|
61
|
-
def trace_state: () { (untyped) -> untyped } -> (untyped | nil)
|
|
62
|
-
|
|
63
|
-
def create_state: (untyped accessing_symbol, untyped kernels, untyped states_created) -> (::Array[untyped | false] | ::Array[untyped | true])
|
|
64
|
-
|
|
65
|
-
def setup_state: (untyped state) -> untyped
|
|
66
|
-
|
|
67
|
-
def enqueue_state: (untyped states, untyped state) -> untyped
|
|
68
|
-
|
|
69
|
-
def compute_lr0_states: () -> untyped
|
|
70
|
-
|
|
71
|
-
def nterm_transitions: () -> untyped
|
|
72
|
-
|
|
73
|
-
def compute_direct_read_sets: () -> untyped
|
|
74
|
-
|
|
75
|
-
def compute_reads_relation: () -> untyped
|
|
76
|
-
|
|
77
|
-
def compute_read_sets: () -> untyped
|
|
78
|
-
|
|
79
|
-
def transition: (untyped state, untyped symbols) -> untyped
|
|
80
|
-
|
|
81
|
-
def compute_includes_relation: () -> untyped
|
|
82
|
-
|
|
83
|
-
def compute_lookback_relation: () -> untyped
|
|
84
|
-
|
|
85
|
-
def compute_follow_sets: () -> untyped
|
|
86
|
-
|
|
87
|
-
def compute_look_ahead_sets: () -> untyped
|
|
88
|
-
|
|
89
|
-
def bitmap_to_terms: (untyped bit) -> untyped
|
|
90
|
-
|
|
91
|
-
def compute_conflicts: () -> untyped
|
|
92
|
-
|
|
93
|
-
def compute_shift_reduce_conflicts: () -> untyped
|
|
94
|
-
|
|
95
|
-
def compute_reduce_reduce_conflicts: () -> untyped
|
|
96
|
-
|
|
97
|
-
def compute_default_reduction: () -> untyped
|
|
98
|
-
|
|
99
|
-
def check_conflicts: () -> untyped
|
|
100
|
-
end
|
|
101
|
-
end
|
data/sig/lrama/warning.rbs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
module Lrama
|
|
2
|
-
class Warning
|
|
3
|
-
interface _Appendable
|
|
4
|
-
def <<: (String message) -> self
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
@out: _Appendable
|
|
8
|
-
|
|
9
|
-
attr_reader errors: Array[String]
|
|
10
|
-
attr_reader warns: Array[String]
|
|
11
|
-
def initialize: (?_Appendable out) -> void
|
|
12
|
-
def error: (String message) -> void
|
|
13
|
-
def warn: (String message) -> void
|
|
14
|
-
def has_error?: -> bool
|
|
15
|
-
end
|
|
16
|
-
end
|