lrama 0.7.0 → 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 +5 -6
- data/.github/workflows/test.yaml +25 -14
- data/Gemfile +4 -3
- data/NEWS.md +370 -35
- data/README.md +7 -88
- data/Rakefile +3 -2
- data/Steepfile +11 -5
- data/doc/Index.md +1 -1
- 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 +18 -5
- data/lib/lrama/command.rb +95 -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 +28 -7
- data/lib/lrama/erb.rb +29 -0
- data/lib/lrama/grammar/auxiliary.rb +6 -1
- data/lib/lrama/grammar/binding.rb +37 -25
- 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 +61 -1
- data/lib/lrama/grammar/rule_builder.rb +84 -69
- 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 +231 -35
- data/lib/lrama/lexer/location.rb +25 -8
- data/lib/lrama/lexer/token/base.rb +73 -0
- data/lib/lrama/lexer/token/char.rb +15 -2
- data/lib/lrama/lexer/token/empty.rb +14 -0
- data/lib/lrama/lexer/token/ident.rb +2 -2
- data/lib/lrama/lexer/token/instantiate_rule.rb +4 -4
- 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 +2 -2
- data/lib/lrama/lexer/token/token.rb +11 -0
- data/lib/lrama/lexer/token/user_code.rb +63 -37
- data/lib/lrama/lexer/token.rb +6 -56
- data/lib/lrama/lexer.rb +51 -23
- data/lib/lrama/logger.rb +12 -2
- data/lib/lrama/option_parser.rb +63 -9
- data/lib/lrama/options.rb +25 -7
- data/lib/lrama/output.rb +4 -11
- data/lib/lrama/parser.rb +854 -723
- 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 +33 -4
- 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 +301 -200
- data/lib/lrama/states.rb +447 -175
- 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/parser.y +495 -404
- data/rbs_collection.lock.yaml +27 -3
- data/rbs_collection.yaml +2 -0
- data/sig/generated/lrama/bitmap.rbs +12 -4
- 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 +26 -6
- data/sig/generated/lrama/erb.rbs +14 -0
- data/sig/generated/lrama/grammar/auxiliary.rbs +16 -0
- data/sig/generated/lrama/grammar/binding.rbs +18 -12
- 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/location.rbs +12 -3
- data/sig/generated/lrama/lexer/token/base.rbs +53 -0
- data/sig/generated/lrama/lexer/token/char.rbs +9 -2
- data/sig/generated/lrama/lexer/token/empty.rbs +11 -0
- data/sig/generated/lrama/lexer/token/ident.rbs +2 -2
- data/sig/generated/lrama/lexer/token/instantiate_rule.rbs +5 -5
- 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 +2 -2
- data/sig/generated/lrama/lexer/token/token.rbs +10 -0
- data/sig/generated/lrama/lexer/token/user_code.rbs +2 -2
- data/sig/generated/lrama/lexer/token.rbs +1 -39
- data/sig/generated/lrama/lexer.rbs +54 -0
- data/sig/generated/lrama/logger.rbs +6 -0
- data/sig/generated/lrama/option_parser.rbs +52 -0
- data/sig/{lrama → generated/lrama}/options.rbs +27 -3
- 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 +126 -66
- 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 -45
- data/sig/generated/lrama/trace_reporter.rbs +0 -25
- 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/grammar/auxiliary.rbs +0 -10
- 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 -47
- 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/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
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/code/rule_action.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class Code
|
|
6
|
+
class RuleAction < Code
|
|
7
|
+
@rule: Rule
|
|
8
|
+
|
|
9
|
+
# @rbs (type: ::Symbol, token_code: Lexer::Token::UserCode, rule: Rule) -> void
|
|
10
|
+
def initialize: (type: ::Symbol, token_code: Lexer::Token::UserCode, rule: Rule) -> void
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
# * ($$) yyval
|
|
15
|
+
# * (@$) yyloc
|
|
16
|
+
# * ($:$) error
|
|
17
|
+
# * ($1) yyvsp[i]
|
|
18
|
+
# * (@1) yylsp[i]
|
|
19
|
+
# * ($:1) i - 1
|
|
20
|
+
#
|
|
21
|
+
#
|
|
22
|
+
# Consider a rule like
|
|
23
|
+
#
|
|
24
|
+
# class: keyword_class { $1 } tSTRING { $2 + $3 } keyword_end { $class = $1 + $keyword_end }
|
|
25
|
+
#
|
|
26
|
+
# For the semantic action of original rule:
|
|
27
|
+
#
|
|
28
|
+
# "Rule" class: keyword_class { $1 } tSTRING { $2 + $3 } keyword_end { $class = $1 + $keyword_end }
|
|
29
|
+
# "Position in grammar" $1 $2 $3 $4 $5
|
|
30
|
+
# "Index for yyvsp" -4 -3 -2 -1 0
|
|
31
|
+
# "$:n" $:1 $:2 $:3 $:4 $:5
|
|
32
|
+
# "index of $:n" -5 -4 -3 -2 -1
|
|
33
|
+
#
|
|
34
|
+
#
|
|
35
|
+
# For the first midrule action:
|
|
36
|
+
#
|
|
37
|
+
# "Rule" class: keyword_class { $1 } tSTRING { $2 + $3 } keyword_end { $class = $1 + $keyword_end }
|
|
38
|
+
# "Position in grammar" $1
|
|
39
|
+
# "Index for yyvsp" 0
|
|
40
|
+
# "$:n" $:1
|
|
41
|
+
#
|
|
42
|
+
# @rbs (Reference ref) -> String
|
|
43
|
+
def reference_to_c: (Reference ref) -> String
|
|
44
|
+
|
|
45
|
+
# @rbs () -> Integer
|
|
46
|
+
def position_in_rhs: () -> Integer
|
|
47
|
+
|
|
48
|
+
# If this is midrule action, RHS is an RHS of the original rule.
|
|
49
|
+
#
|
|
50
|
+
# @rbs () -> Array[Grammar::Symbol]
|
|
51
|
+
def rhs: () -> Array[Grammar::Symbol]
|
|
52
|
+
|
|
53
|
+
# Unlike `rhs`, LHS is always an LHS of the rule.
|
|
54
|
+
#
|
|
55
|
+
# @rbs () -> Grammar::Symbol
|
|
56
|
+
def lhs: () -> Grammar::Symbol
|
|
57
|
+
|
|
58
|
+
# @rbs (Reference ref) -> bot
|
|
59
|
+
def raise_tag_not_found_error: (Reference ref) -> bot
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/code.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class Code
|
|
6
|
+
# delegated
|
|
7
|
+
def s_value: () -> String
|
|
8
|
+
|
|
9
|
+
def line: () -> Integer
|
|
10
|
+
|
|
11
|
+
def column: () -> Integer
|
|
12
|
+
|
|
13
|
+
def references: () -> Array[Lrama::Grammar::Reference]
|
|
14
|
+
|
|
15
|
+
extend Forwardable
|
|
16
|
+
|
|
17
|
+
attr_reader type: ::Symbol
|
|
18
|
+
|
|
19
|
+
attr_reader token_code: Lexer::Token::UserCode
|
|
20
|
+
|
|
21
|
+
# @rbs (type: ::Symbol, token_code: Lexer::Token::UserCode) -> void
|
|
22
|
+
def initialize: (type: ::Symbol, token_code: Lexer::Token::UserCode) -> void
|
|
23
|
+
|
|
24
|
+
# @rbs (Code other) -> bool
|
|
25
|
+
def ==: (Code other) -> bool
|
|
26
|
+
|
|
27
|
+
# $$, $n, @$, @n are translated to C code
|
|
28
|
+
#
|
|
29
|
+
# @rbs () -> String
|
|
30
|
+
def translated_code: () -> String
|
|
31
|
+
|
|
32
|
+
private
|
|
33
|
+
|
|
34
|
+
# @rbs (Lrama::Grammar::Reference ref) -> bot
|
|
35
|
+
def reference_to_c: (Lrama::Grammar::Reference ref) -> bot
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/counter.rb with RBS::Inline
|
|
2
|
+
|
|
1
3
|
module Lrama
|
|
2
4
|
class Grammar
|
|
3
5
|
class Counter
|
|
4
6
|
@number: Integer
|
|
5
7
|
|
|
8
|
+
# @rbs (Integer number) -> void
|
|
6
9
|
def initialize: (Integer number) -> void
|
|
7
10
|
|
|
11
|
+
# @rbs () -> Integer
|
|
8
12
|
def increment: () -> Integer
|
|
9
13
|
end
|
|
10
14
|
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/destructor.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class Destructor
|
|
6
|
+
attr_reader ident_or_tags: Array[Lexer::Token::Ident | Lexer::Token::Tag]
|
|
7
|
+
|
|
8
|
+
attr_reader token_code: Lexer::Token::UserCode
|
|
9
|
+
|
|
10
|
+
attr_reader lineno: Integer
|
|
11
|
+
|
|
12
|
+
# @rbs (ident_or_tags: Array[Lexer::Token::Ident|Lexer::Token::Tag], token_code: Lexer::Token::UserCode, lineno: Integer) -> void
|
|
13
|
+
def initialize: (ident_or_tags: Array[Lexer::Token::Ident | Lexer::Token::Tag], token_code: Lexer::Token::UserCode, lineno: Integer) -> void
|
|
14
|
+
|
|
15
|
+
# @rbs (Lexer::Token::Tag tag) -> String
|
|
16
|
+
def translated_code: (Lexer::Token::Tag tag) -> String
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/error_token.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class ErrorToken
|
|
6
|
+
attr_reader ident_or_tags: Array[Lexer::Token::Ident | Lexer::Token::Tag]
|
|
7
|
+
|
|
8
|
+
attr_reader token_code: Lexer::Token::UserCode
|
|
9
|
+
|
|
10
|
+
attr_reader lineno: Integer
|
|
11
|
+
|
|
12
|
+
# @rbs (ident_or_tags: Array[Lexer::Token::Ident|Lexer::Token::Tag], token_code: Lexer::Token::UserCode, lineno: Integer) -> void
|
|
13
|
+
def initialize: (ident_or_tags: Array[Lexer::Token::Ident | Lexer::Token::Tag], token_code: Lexer::Token::UserCode, lineno: Integer) -> void
|
|
14
|
+
|
|
15
|
+
# @rbs (Lexer::Token::Tag tag) -> String
|
|
16
|
+
def translated_code: (Lexer::Token::Tag tag) -> String
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/inline/resolver.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class Inline
|
|
6
|
+
class Resolver
|
|
7
|
+
# @rbs (Lrama::Grammar::RuleBuilder rule_builder) -> void
|
|
8
|
+
def initialize: (Lrama::Grammar::RuleBuilder rule_builder) -> void
|
|
9
|
+
|
|
10
|
+
# @rbs () -> Array[Lrama::Grammar::RuleBuilder]
|
|
11
|
+
def resolve: () -> Array[Lrama::Grammar::RuleBuilder]
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
# @rbs (Lrama::Grammar::Parameterized::Rhs rhs, Lrama::Lexer::Token token, Integer index, Lrama::Grammar::Parameterized::Rule rule) -> Lrama::Grammar::RuleBuilder
|
|
16
|
+
def build_rule: (Lrama::Grammar::Parameterized::Rhs rhs, Lrama::Lexer::Token token, Integer index, Lrama::Grammar::Parameterized::Rule rule) -> Lrama::Grammar::RuleBuilder
|
|
17
|
+
|
|
18
|
+
# @rbs (Lrama::Grammar::RuleBuilder builder, Lrama::Grammar::Parameterized::Rhs rhs, Integer index, Lrama::Lexer::Token token, Lrama::Grammar::Parameterized::Rule rule) -> void
|
|
19
|
+
def resolve_rhs: (Lrama::Grammar::RuleBuilder builder, Lrama::Grammar::Parameterized::Rhs rhs, Integer index, Lrama::Lexer::Token token, Lrama::Grammar::Parameterized::Rule rule) -> void
|
|
20
|
+
|
|
21
|
+
# @rbs (Lrama::Grammar::Parameterized::Rhs rhs, Integer index) -> Lrama::Lexer::Token::UserCode
|
|
22
|
+
def replace_user_code: (Lrama::Grammar::Parameterized::Rhs rhs, Integer index) -> Lrama::Lexer::Token::UserCode
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/parameterized/resolver.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class Parameterized
|
|
6
|
+
class Resolver
|
|
7
|
+
attr_accessor rules: Array[Rule]
|
|
8
|
+
|
|
9
|
+
attr_accessor created_lhs_list: Array[Lexer::Token::Base]
|
|
10
|
+
|
|
11
|
+
# @rbs () -> void
|
|
12
|
+
def initialize: () -> void
|
|
13
|
+
|
|
14
|
+
# @rbs (Rule rule) -> Array[Rule]
|
|
15
|
+
def add_rule: (Rule rule) -> Array[Rule]
|
|
16
|
+
|
|
17
|
+
# @rbs (Lexer::Token::InstantiateRule token) -> Rule?
|
|
18
|
+
def find_rule: (Lexer::Token::InstantiateRule token) -> Rule?
|
|
19
|
+
|
|
20
|
+
# @rbs (Lexer::Token::Base token) -> Rule?
|
|
21
|
+
def find_inline: (Lexer::Token::Base token) -> Rule?
|
|
22
|
+
|
|
23
|
+
# @rbs (String lhs_s_value) -> Lexer::Token::Base?
|
|
24
|
+
def created_lhs: (String lhs_s_value) -> Lexer::Token::Base?
|
|
25
|
+
|
|
26
|
+
# @rbs () -> Array[Rule]
|
|
27
|
+
def redefined_rules: () -> Array[Rule]
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
# @rbs (Array[Rule] rules, Lexer::Token::InstantiateRule token) -> Array[Rule]
|
|
32
|
+
def select_rules: (Array[Rule] rules, Lexer::Token::InstantiateRule token) -> Array[Rule]
|
|
33
|
+
|
|
34
|
+
# @rbs (Array[Rule] rules) -> Array[Rule]
|
|
35
|
+
def reject_inline_rules: (Array[Rule] rules) -> Array[Rule]
|
|
36
|
+
|
|
37
|
+
# @rbs (Array[Rule] rules, String rule_name) -> Array[Rule]
|
|
38
|
+
def select_rules_by_name: (Array[Rule] rules, String rule_name) -> Array[Rule]
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/parameterized/rhs.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class Parameterized
|
|
6
|
+
class Rhs
|
|
7
|
+
attr_accessor symbols: Array[Lexer::Token::Base]
|
|
8
|
+
|
|
9
|
+
attr_accessor user_code: Lexer::Token::UserCode?
|
|
10
|
+
|
|
11
|
+
attr_accessor precedence_sym: Grammar::Symbol?
|
|
12
|
+
|
|
13
|
+
# @rbs () -> void
|
|
14
|
+
def initialize: () -> void
|
|
15
|
+
|
|
16
|
+
# @rbs (Grammar::Binding bindings) -> Lexer::Token::UserCode?
|
|
17
|
+
def resolve_user_code: (Grammar::Binding bindings) -> Lexer::Token::UserCode?
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/parameterized/rule.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class Parameterized
|
|
6
|
+
class Rule
|
|
7
|
+
attr_reader name: String
|
|
8
|
+
|
|
9
|
+
attr_reader parameters: Array[Lexer::Token::Base]
|
|
10
|
+
|
|
11
|
+
attr_reader rhs: Array[Rhs]
|
|
12
|
+
|
|
13
|
+
attr_reader required_parameters_count: Integer
|
|
14
|
+
|
|
15
|
+
attr_reader tag: Lexer::Token::Tag?
|
|
16
|
+
|
|
17
|
+
# @rbs (String name, Array[Lexer::Token::Base] parameters, Array[Rhs] rhs, tag: Lexer::Token::Tag?, is_inline: bool) -> void
|
|
18
|
+
def initialize: (String name, Array[Lexer::Token::Base] parameters, Array[Rhs] rhs, tag: Lexer::Token::Tag?, is_inline: bool) -> void
|
|
19
|
+
|
|
20
|
+
# @rbs () -> String
|
|
21
|
+
def to_s: () -> String
|
|
22
|
+
|
|
23
|
+
# @rbs () -> bool
|
|
24
|
+
def inline?: () -> bool
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/percent_code.rb with RBS::Inline
|
|
2
|
+
|
|
1
3
|
module Lrama
|
|
2
4
|
class Grammar
|
|
3
5
|
class PercentCode
|
|
6
|
+
@name: String
|
|
7
|
+
|
|
8
|
+
@code: String
|
|
9
|
+
|
|
4
10
|
attr_reader name: String
|
|
11
|
+
|
|
5
12
|
attr_reader code: String
|
|
6
13
|
|
|
14
|
+
# @rbs (String name, String code) -> void
|
|
7
15
|
def initialize: (String name, String code) -> void
|
|
8
16
|
end
|
|
9
17
|
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/precedence.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class Precedence
|
|
6
|
+
include Comparable
|
|
7
|
+
|
|
8
|
+
type type_enum = :left | :right | :nonassoc | :precedence
|
|
9
|
+
|
|
10
|
+
attr_accessor type: type_enum
|
|
11
|
+
|
|
12
|
+
attr_accessor symbol: Grammar::Symbol
|
|
13
|
+
|
|
14
|
+
attr_accessor precedence: Integer
|
|
15
|
+
|
|
16
|
+
attr_accessor s_value: String
|
|
17
|
+
|
|
18
|
+
attr_accessor lineno: Integer
|
|
19
|
+
|
|
20
|
+
def initialize: (?type: type_enum, ?symbol: Grammar::Symbol, ?precedence: Integer, ?s_value: ::String, ?lineno: Integer) -> void
|
|
21
|
+
|
|
22
|
+
attr_reader used_by_lalr: Array[State::ResolvedConflict]
|
|
23
|
+
|
|
24
|
+
attr_reader used_by_ielr: Array[State::ResolvedConflict]
|
|
25
|
+
|
|
26
|
+
# @rbs (Precedence other) -> Integer
|
|
27
|
+
def <=>: (Precedence other) -> Integer
|
|
28
|
+
|
|
29
|
+
# @rbs (State::ResolvedConflict resolved_conflict) -> void
|
|
30
|
+
def mark_used_by_lalr: (State::ResolvedConflict resolved_conflict) -> void
|
|
31
|
+
|
|
32
|
+
# @rbs (State::ResolvedConflict resolved_conflict) -> void
|
|
33
|
+
def mark_used_by_ielr: (State::ResolvedConflict resolved_conflict) -> void
|
|
34
|
+
|
|
35
|
+
# @rbs () -> bool
|
|
36
|
+
def used_by?: () -> bool
|
|
37
|
+
|
|
38
|
+
# @rbs () -> bool
|
|
39
|
+
def used_by_lalr?: () -> bool
|
|
40
|
+
|
|
41
|
+
# @rbs () -> bool
|
|
42
|
+
def used_by_ielr?: () -> bool
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/printer.rb with RBS::Inline
|
|
2
|
+
|
|
1
3
|
module Lrama
|
|
2
4
|
class Grammar
|
|
3
|
-
class
|
|
5
|
+
class Printer
|
|
4
6
|
attr_accessor ident_or_tags: Array[Lexer::Token::Ident | Lexer::Token::Tag]
|
|
5
|
-
|
|
7
|
+
|
|
8
|
+
attr_accessor token_code: Lexer::Token::UserCode
|
|
9
|
+
|
|
6
10
|
attr_accessor lineno: Integer
|
|
7
11
|
|
|
8
|
-
def initialize: (?ident_or_tags: Array[Lexer::Token::Ident|Lexer::Token::Tag], ?token_code:
|
|
12
|
+
def initialize: (?ident_or_tags: Array[Lexer::Token::Ident | Lexer::Token::Tag], ?token_code: Lexer::Token::UserCode, ?lineno: Integer) -> void
|
|
9
13
|
|
|
14
|
+
# @rbs (Lexer::Token::Tag tag) -> String
|
|
10
15
|
def translated_code: (Lexer::Token::Tag tag) -> String
|
|
11
16
|
end
|
|
12
17
|
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/reference.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
# type: :dollar or :at
|
|
6
|
+
# name: String (e.g. $$, $foo, $expr.right)
|
|
7
|
+
# number: Integer (e.g. $1)
|
|
8
|
+
# index: Integer
|
|
9
|
+
# ex_tag: "$<tag>1" (Optional)
|
|
10
|
+
class Reference
|
|
11
|
+
attr_accessor type: ::Symbol
|
|
12
|
+
|
|
13
|
+
attr_accessor name: String
|
|
14
|
+
|
|
15
|
+
attr_accessor number: Integer
|
|
16
|
+
|
|
17
|
+
attr_accessor index: Integer
|
|
18
|
+
|
|
19
|
+
attr_accessor ex_tag: Lexer::Token::Base?
|
|
20
|
+
|
|
21
|
+
attr_accessor first_column: Integer
|
|
22
|
+
|
|
23
|
+
attr_accessor last_column: Integer
|
|
24
|
+
|
|
25
|
+
def initialize: (type: ::Symbol, first_column: Integer, last_column: Integer, ?name: String, ?number: Integer, ?index: Integer, ?ex_tag: Lexer::Token::Base?) -> void
|
|
26
|
+
|
|
27
|
+
# @rbs () -> (String|Integer)
|
|
28
|
+
def value: () -> (String | Integer)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/rule.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
# _rhs holds original RHS element. Use rhs to refer to Symbol.
|
|
6
|
+
class Rule
|
|
7
|
+
interface _DelegatedMethods
|
|
8
|
+
def lhs: () -> Grammar::Symbol
|
|
9
|
+
|
|
10
|
+
def rhs: () -> Array[Grammar::Symbol]
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
attr_accessor id: Integer
|
|
14
|
+
|
|
15
|
+
attr_accessor _lhs: Lexer::Token::Base
|
|
16
|
+
|
|
17
|
+
attr_accessor lhs: Grammar::Symbol
|
|
18
|
+
|
|
19
|
+
attr_accessor lhs_tag: Lexer::Token::Tag?
|
|
20
|
+
|
|
21
|
+
attr_accessor _rhs: Array[Lexer::Token::Base]
|
|
22
|
+
|
|
23
|
+
attr_accessor rhs: Array[Grammar::Symbol]
|
|
24
|
+
|
|
25
|
+
attr_accessor token_code: Lexer::Token::UserCode?
|
|
26
|
+
|
|
27
|
+
attr_accessor position_in_original_rule_rhs: Integer
|
|
28
|
+
|
|
29
|
+
attr_accessor nullable: bool
|
|
30
|
+
|
|
31
|
+
attr_accessor precedence_sym: Grammar::Symbol?
|
|
32
|
+
|
|
33
|
+
attr_accessor lineno: Integer?
|
|
34
|
+
|
|
35
|
+
def initialize: (?id: Integer, ?_lhs: Lexer::Token::Base?, ?lhs: Lexer::Token::Base, ?lhs_tag: Lexer::Token::Tag?, ?_rhs: Array[Lexer::Token::Base], ?rhs: Array[Grammar::Symbol], ?token_code: Lexer::Token::UserCode?, ?position_in_original_rule_rhs: Integer?, ?nullable: bool, ?precedence_sym: Grammar::Symbol?, ?lineno: Integer?) -> void
|
|
36
|
+
|
|
37
|
+
attr_accessor original_rule: Rule
|
|
38
|
+
|
|
39
|
+
# @rbs (Rule other) -> bool
|
|
40
|
+
def ==: (Rule other) -> bool
|
|
41
|
+
|
|
42
|
+
# @rbs () -> String
|
|
43
|
+
def display_name: () -> String
|
|
44
|
+
|
|
45
|
+
# @rbs () -> String
|
|
46
|
+
def display_name_without_action: () -> String
|
|
47
|
+
|
|
48
|
+
# @rbs () -> (RailroadDiagrams::Skip | RailroadDiagrams::Sequence)
|
|
49
|
+
def to_diagrams: () -> (RailroadDiagrams::Skip | RailroadDiagrams::Sequence)
|
|
50
|
+
|
|
51
|
+
# Used by #user_actions
|
|
52
|
+
#
|
|
53
|
+
# @rbs () -> String
|
|
54
|
+
def as_comment: () -> String
|
|
55
|
+
|
|
56
|
+
# @rbs () -> String
|
|
57
|
+
def with_actions: () -> String
|
|
58
|
+
|
|
59
|
+
# opt_nl: ε <-- empty_rule
|
|
60
|
+
# | '\n' <-- not empty_rule
|
|
61
|
+
#
|
|
62
|
+
# @rbs () -> bool
|
|
63
|
+
def empty_rule?: () -> bool
|
|
64
|
+
|
|
65
|
+
# @rbs () -> Precedence?
|
|
66
|
+
def precedence: () -> Precedence?
|
|
67
|
+
|
|
68
|
+
# @rbs () -> bool
|
|
69
|
+
def initial_rule?: () -> bool
|
|
70
|
+
|
|
71
|
+
# @rbs () -> String?
|
|
72
|
+
def translated_code: () -> String?
|
|
73
|
+
|
|
74
|
+
# @rbs () -> bool
|
|
75
|
+
def contains_at_reference?: () -> bool
|
|
76
|
+
|
|
77
|
+
private
|
|
78
|
+
|
|
79
|
+
# @rbs () -> Array[(RailroadDiagrams::Terminal | RailroadDiagrams::NonTerminal)]
|
|
80
|
+
def rhs_to_diagram: () -> Array[RailroadDiagrams::Terminal | RailroadDiagrams::NonTerminal]
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/rule_builder.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class RuleBuilder
|
|
6
|
+
@position_in_original_rule_rhs: Integer?
|
|
7
|
+
|
|
8
|
+
@skip_preprocess_references: bool
|
|
9
|
+
|
|
10
|
+
@rules: Array[Rule]
|
|
11
|
+
|
|
12
|
+
@rule_builders_for_parameterized: Array[RuleBuilder]
|
|
13
|
+
|
|
14
|
+
@rule_builders_for_derived_rules: Array[RuleBuilder]
|
|
15
|
+
|
|
16
|
+
@parameterized_rules: Array[Rule]
|
|
17
|
+
|
|
18
|
+
@midrule_action_rules: Array[Rule]
|
|
19
|
+
|
|
20
|
+
@replaced_rhs: Array[Lexer::Token::Base]?
|
|
21
|
+
|
|
22
|
+
attr_accessor lhs: Lexer::Token::Base?
|
|
23
|
+
|
|
24
|
+
attr_accessor line: Integer?
|
|
25
|
+
|
|
26
|
+
attr_reader rule_counter: Counter
|
|
27
|
+
|
|
28
|
+
attr_reader midrule_action_counter: Counter
|
|
29
|
+
|
|
30
|
+
attr_reader parameterized_resolver: Grammar::Parameterized::Resolver
|
|
31
|
+
|
|
32
|
+
attr_reader lhs_tag: Lexer::Token::Tag?
|
|
33
|
+
|
|
34
|
+
attr_reader rhs: Array[Lexer::Token::Base]
|
|
35
|
+
|
|
36
|
+
attr_reader user_code: Lexer::Token::UserCode?
|
|
37
|
+
|
|
38
|
+
attr_reader precedence_sym: Grammar::Symbol?
|
|
39
|
+
|
|
40
|
+
# @rbs (Counter rule_counter, Counter midrule_action_counter, Grammar::Parameterized::Resolver parameterized_resolver, ?Integer position_in_original_rule_rhs, ?lhs_tag: Lexer::Token::Tag?, ?skip_preprocess_references: bool) -> void
|
|
41
|
+
def initialize: (Counter rule_counter, Counter midrule_action_counter, Grammar::Parameterized::Resolver parameterized_resolver, ?Integer position_in_original_rule_rhs, ?lhs_tag: Lexer::Token::Tag?, ?skip_preprocess_references: bool) -> void
|
|
42
|
+
|
|
43
|
+
# @rbs (Lexer::Token::Base rhs) -> void
|
|
44
|
+
def add_rhs: (Lexer::Token::Base rhs) -> void
|
|
45
|
+
|
|
46
|
+
# @rbs (Lexer::Token::UserCode? user_code) -> void
|
|
47
|
+
def user_code=: (Lexer::Token::UserCode? user_code) -> void
|
|
48
|
+
|
|
49
|
+
# @rbs (Grammar::Symbol? precedence_sym) -> void
|
|
50
|
+
def precedence_sym=: (Grammar::Symbol? precedence_sym) -> void
|
|
51
|
+
|
|
52
|
+
# @rbs () -> void
|
|
53
|
+
def complete_input: () -> void
|
|
54
|
+
|
|
55
|
+
# @rbs () -> void
|
|
56
|
+
def setup_rules: () -> void
|
|
57
|
+
|
|
58
|
+
# @rbs () -> Array[Grammar::Rule]
|
|
59
|
+
def rules: () -> Array[Grammar::Rule]
|
|
60
|
+
|
|
61
|
+
# @rbs () -> bool
|
|
62
|
+
def has_inline_rules?: () -> bool
|
|
63
|
+
|
|
64
|
+
private
|
|
65
|
+
|
|
66
|
+
# @rbs () -> void
|
|
67
|
+
def freeze_rhs: () -> void
|
|
68
|
+
|
|
69
|
+
# @rbs () -> void
|
|
70
|
+
def preprocess_references: () -> void
|
|
71
|
+
|
|
72
|
+
# @rbs () -> void
|
|
73
|
+
def build_rules: () -> void
|
|
74
|
+
|
|
75
|
+
# rhs is a mixture of variety type of tokens like `Ident`, `InstantiateRule`, `UserCode` and so on.
|
|
76
|
+
# `#process_rhs` replaces some kind of tokens to `Ident` so that all `@replaced_rhs` are `Ident` or `Char`.
|
|
77
|
+
#
|
|
78
|
+
# @rbs () -> void
|
|
79
|
+
def process_rhs: () -> void
|
|
80
|
+
|
|
81
|
+
# @rbs () -> void
|
|
82
|
+
def resolve_inline_rules: () -> void
|
|
83
|
+
|
|
84
|
+
# @rbs () -> void
|
|
85
|
+
def numberize_references: () -> void
|
|
86
|
+
|
|
87
|
+
# @rbs () -> void
|
|
88
|
+
def flush_user_code: () -> void
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Generated from lib/lrama/grammar/symbol.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Lrama
|
|
4
|
+
class Grammar
|
|
5
|
+
class Symbol
|
|
6
|
+
attr_accessor id: Lexer::Token::Base
|
|
7
|
+
|
|
8
|
+
attr_accessor alias_name: String?
|
|
9
|
+
|
|
10
|
+
attr_reader number: Integer
|
|
11
|
+
|
|
12
|
+
attr_accessor number_bitmap: Bitmap::bitmap
|
|
13
|
+
|
|
14
|
+
attr_accessor tag: Lexer::Token::Tag?
|
|
15
|
+
|
|
16
|
+
attr_accessor token_id: Integer
|
|
17
|
+
|
|
18
|
+
attr_accessor nullable: bool
|
|
19
|
+
|
|
20
|
+
attr_accessor precedence: Precedence?
|
|
21
|
+
|
|
22
|
+
attr_accessor printer: Printer?
|
|
23
|
+
|
|
24
|
+
attr_accessor destructor: Destructor?
|
|
25
|
+
|
|
26
|
+
attr_accessor error_token: ErrorToken
|
|
27
|
+
|
|
28
|
+
attr_accessor first_set: Set[Grammar::Symbol]
|
|
29
|
+
|
|
30
|
+
attr_accessor first_set_bitmap: Bitmap::bitmap
|
|
31
|
+
|
|
32
|
+
attr_reader term: bool
|
|
33
|
+
|
|
34
|
+
attr_writer eof_symbol: bool
|
|
35
|
+
|
|
36
|
+
attr_writer error_symbol: bool
|
|
37
|
+
|
|
38
|
+
attr_writer undef_symbol: bool
|
|
39
|
+
|
|
40
|
+
attr_writer accept_symbol: bool
|
|
41
|
+
|
|
42
|
+
# @rbs (id: Lexer::Token::Base, term: bool, ?alias_name: String?, ?number: Integer?, ?tag: Lexer::Token::Tag?,
|
|
43
|
+
# ?token_id: Integer?, ?nullable: bool?, ?precedence: Precedence?, ?printer: Printer?) -> void
|
|
44
|
+
def initialize: (id: Lexer::Token::Base, term: bool, ?alias_name: String?, ?number: Integer?, ?tag: Lexer::Token::Tag?, ?token_id: Integer?, ?nullable: bool?, ?precedence: Precedence?, ?printer: Printer?) -> void
|
|
45
|
+
|
|
46
|
+
# @rbs (Integer) -> void
|
|
47
|
+
def number=: (Integer) -> void
|
|
48
|
+
|
|
49
|
+
# @rbs () -> bool
|
|
50
|
+
def term?: () -> bool
|
|
51
|
+
|
|
52
|
+
# @rbs () -> bool
|
|
53
|
+
def nterm?: () -> bool
|
|
54
|
+
|
|
55
|
+
# @rbs () -> bool
|
|
56
|
+
def eof_symbol?: () -> bool
|
|
57
|
+
|
|
58
|
+
# @rbs () -> bool
|
|
59
|
+
def error_symbol?: () -> bool
|
|
60
|
+
|
|
61
|
+
# @rbs () -> bool
|
|
62
|
+
def undef_symbol?: () -> bool
|
|
63
|
+
|
|
64
|
+
# @rbs () -> bool
|
|
65
|
+
def accept_symbol?: () -> bool
|
|
66
|
+
|
|
67
|
+
# @rbs () -> bool
|
|
68
|
+
def midrule?: () -> bool
|
|
69
|
+
|
|
70
|
+
# @rbs () -> String
|
|
71
|
+
def name: () -> String
|
|
72
|
+
|
|
73
|
+
# @rbs () -> String
|
|
74
|
+
def display_name: () -> String
|
|
75
|
+
|
|
76
|
+
# name for yysymbol_kind_t
|
|
77
|
+
#
|
|
78
|
+
# See: b4_symbol_kind_base
|
|
79
|
+
# @type var name: String
|
|
80
|
+
# @rbs () -> String
|
|
81
|
+
def enum_name: () -> String
|
|
82
|
+
|
|
83
|
+
# comment for yysymbol_kind_t
|
|
84
|
+
#
|
|
85
|
+
# @rbs () -> String?
|
|
86
|
+
def comment: () -> String?
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|