Class: Lrama::Grammar::ParameterizingRule::Resolver
- Inherits:
-
Object
- Object
- Lrama::Grammar::ParameterizingRule::Resolver
- Defined in:
- lib/lrama/grammar/parameterizing_rule/resolver.rb
Instance Attribute Summary collapse
-
#created_lhs_list ⇒ Object
Returns the value of attribute created_lhs_list.
-
#rules ⇒ Object
Returns the value of attribute rules.
Instance Method Summary collapse
- #add_parameterizing_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.
9 10 11 12 |
# File 'lib/lrama/grammar/parameterizing_rule/resolver.rb', line 9 def initialize @rules = [] @created_lhs_list = [] end |
Instance Attribute Details
#created_lhs_list ⇒ Object
Returns the value of attribute created_lhs_list.
7 8 9 |
# File 'lib/lrama/grammar/parameterizing_rule/resolver.rb', line 7 def created_lhs_list @created_lhs_list end |
#rules ⇒ Object
Returns the value of attribute rules.
7 8 9 |
# File 'lib/lrama/grammar/parameterizing_rule/resolver.rb', line 7 def rules @rules end |
Instance Method Details
#add_parameterizing_rule(rule) ⇒ Object
14 15 16 |
# File 'lib/lrama/grammar/parameterizing_rule/resolver.rb', line 14 def add_parameterizing_rule(rule) @rules << rule end |
#created_lhs(lhs_s_value) ⇒ Object
26 27 28 |
# File 'lib/lrama/grammar/parameterizing_rule/resolver.rb', line 26 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
22 23 24 |
# File 'lib/lrama/grammar/parameterizing_rule/resolver.rb', line 22 def find_inline(token) @rules.reverse.find { |rule| rule.name == token.s_value && rule.is_inline } end |
#find_rule(token) ⇒ Object
18 19 20 |
# File 'lib/lrama/grammar/parameterizing_rule/resolver.rb', line 18 def find_rule(token) select_rules(@rules, token).last end |
#redefined_rules ⇒ Object
30 31 32 |
# File 'lib/lrama/grammar/parameterizing_rule/resolver.rb', line 30 def redefined_rules @rules.select { |rule| @rules.count { |r| r.name == rule.name && r.required_parameters_count == rule.required_parameters_count } > 1 } end |