Class: Lrama::Grammar::ParameterizingRule::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/lrama/grammar/parameterizing_rule/resolver.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeResolver

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_listObject

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

#rulesObject

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_rulesObject



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