Module: Bparity::Formal::AldebaranExporter

Defined in:
lib/bparity/formal/lts.rb

Class Method Summary collapse

Class Method Details

.call(lts) ⇒ Object



224
225
226
227
228
229
230
231
232
# File 'lib/bparity/formal/lts.rb', line 224

def call(lts)
  states = lts.states.each_with_index.to_h
  lines = ["des (#{states.fetch(lts.initial)},#{lts.transitions.length},#{states.length})"]
  lts.transitions.each do |transition|
    label = JSON.generate("#{transition.input}/#{transition.output}")
    lines << "(#{states.fetch(transition.from)},#{label},#{states.fetch(transition.to)})"
  end
  lines.join("\n") << "\n"
end