Class: CFGHelper::ChomskyNFSimplifier

Inherits:
Object
  • Object
show all
Defined in:
lib/cfg_helper/chomsky_nf_simplifier.rb

Overview

simplify chomsky normal form

Instance Method Summary collapse

Instance Method Details

#run(new_rules, alphabet) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/cfg_helper/chomsky_nf_simplifier.rb', line 6

def run(new_rules, alphabet)
  vars_with_one_letter = _vars_with_one_letter new_rules, alphabet

  return new_rules if vars_with_one_letter.empty?

  extendible_rules = _find_extendible_rules new_rules, vars_with_one_letter.keys

  return new_rules if extendible_rules.empty?

  missing_rules = _missing_rules extendible_rules, vars_with_one_letter

  _add_missing_rules missing_rules, new_rules

  new_rules
end