Class: CFGHelper::ChainingFree
- Inherits:
-
Object
- Object
- CFGHelper::ChainingFree
- Defined in:
- lib/cfg_helper/chaining_free.rb
Overview
remove chaining rules from CFG
Instance Method Summary collapse
Instance Method Details
#rebuild_rules(current_rules) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/cfg_helper/chaining_free.rb', line 16 def rebuild_rules(current_rules) res = {} @vars.each { |v| res[v] = [] } current_rules.each do |l, r| res[l] << r.chars unless res[l].include? r.chars end res end |
#run(rules, vars) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/cfg_helper/chaining_free.rb', line 6 def run(rules, vars) @rules = rules @vars = vars c_r = _chaining_relation # build transivity relation from _chaining_relation(K) as A # remove _chaining_relation from rules _rebuild_rules + c_r.map { |r| _transitivity_relation r }.reduce(:concat) - c_r end |