Class: Lrama::Grammar::Parameterized::Resolver
- Inherits:
-
Object
- Object
- Lrama::Grammar::Parameterized::Resolver
- Defined in:
- lib/lrama/grammar/parameterized/resolver.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
- #add_rule(rule) ⇒ Object
- #created_lhs(lhs_s_value) ⇒ Object
- #find_inline(token) ⇒ Object
- #find_rule(token) ⇒ Object
-
#initialize ⇒ Resolver
constructor
A new instance of Resolver.
- #redefined_rules ⇒ Object
Constructor Details
#initialize ⇒ Resolver
Returns a new instance of Resolver.
12 13 14 15 |
# File 'lib/lrama/grammar/parameterized/resolver.rb', line 12 def initialize @rules = [] @created_lhs_list = [] end |
Instance Attribute Details
#created_lhs_list ⇒ Object
: Array
9 10 11 |
# File 'lib/lrama/grammar/parameterized/resolver.rb', line 9 def created_lhs_list @created_lhs_list end |
#rules ⇒ Object
: Array
8 9 10 |
# File 'lib/lrama/grammar/parameterized/resolver.rb', line 8 def rules @rules end |
Instance Method Details
#add_rule(rule) ⇒ Object
18 19 20 |
# File 'lib/lrama/grammar/parameterized/resolver.rb', line 18 def add_rule(rule) @rules << rule end |
#created_lhs(lhs_s_value) ⇒ Object
33 34 35 |
# File 'lib/lrama/grammar/parameterized/resolver.rb', line 33 def created_lhs(lhs_s_value) @created_lhs_list.reverse.find { |created_lhs| created_lhs.s_value == lhs_s_value } end |
#find_inline(token) ⇒ Object
28 29 30 |
# File 'lib/lrama/grammar/parameterized/resolver.rb', line 28 def find_inline(token) @rules.reverse.find { |rule| rule.name == token.s_value && rule.inline? } end |
#find_rule(token) ⇒ Object
23 24 25 |
# File 'lib/lrama/grammar/parameterized/resolver.rb', line 23 def find_rule(token) select_rules(@rules, token).last end |
#redefined_rules ⇒ Object
38 39 40 |
# File 'lib/lrama/grammar/parameterized/resolver.rb', line 38 def redefined_rules @rules.select { |rule| @rules.count { |r| r.name == rule.name && r.required_parameters_count == rule.required_parameters_count } > 1 } end |