class Suika::Lattice

@!visibility private

Attributes

begin_nodes[R]

@!visibility private

end_nodes[R]

@!visibility private

length[R]

@!visibility private

Public Class Methods

new(length) click to toggle source

@!visibility private

# File lib/suika/lattice.rb, line 10
def initialize(length)
  @length = length
  @begin_nodes = Array.new(length + 1) { [] }
  @end_nodes = Array.new(length + 1) { [] }
  bos = Node.new(surface: 'BOS', unknown: false, left_id: 0, right_id: 0, cost: 0, attrs: [])
  @end_nodes[0].push(bos)
  eos = Node.new(surface: 'EOS', unknown: false, left_id: 0, right_id: 0, cost: 0, attrs: [])
  @begin_nodes[length].push(eos)
end

Public Instance Methods

insert(begin_id, end_id, surface, unknown, left_id, right_id, cost, attrs) click to toggle source

@!visibility private

# File lib/suika/lattice.rb, line 21
def insert(begin_id, end_id, surface, unknown, left_id, right_id, cost, attrs)
  node = Node.new(surface: surface, unknown: unknown, left_id: left_id, right_id: right_id, cost: cost, attrs: attrs)
  @begin_nodes[begin_id].push(node)
  @end_nodes[end_id].push(node)
end