Class: CFGHelper::ChomskyNF

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

Overview

convert to Chomsky Normal Form

Instance Method Summary collapse

Instance Method Details

#run(rules, alphabet) ⇒ Object



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

def run(rules, alphabet)
  new_rules = {}
  @rules    = rules
  @alphabet = alphabet

  # add cases like (A, a), (B, b)
  _add_single_vars new_rules

  # change rules like (X, aX) to (X, AX)
  _handle_simple_rule new_rules

  _handle_all_rule new_rules
end

#simplify(rules) ⇒ Object



22
23
24
25
26
# File 'lib/cfg_helper/chomsky_nf.rb', line 22

def simplify(rules)
  simplifier = CFGHelper::ChomskyNFSimplifier.new

  simplifier.run rules, @alphabet
end