def self.primitive_table
@primitive_table ||= Hash.new([:name]).tap do |h|
{
'()' => [:other],
'=' => [:verb, :other, :other],
'<>+-*%$|,#' => [:verb, :verb, :verb],
'^' => [:verb, :verb, :modifier],
'~"' => [:modifier, :verb, :verb],
'.:@' => [:modifier, :modifier, :modifier],
';' => [:verb, :modifier, :verb],
'!' => [:verb, :modifier, :modifier],
'/\\' => [:modifier, :modifier, :verb],
'[' => [:verb, nil, :verb],
']' => [:verb],
'{' => [:verb, :verb, :verb, nil, nil, nil, :verb],
'}' => [:modifier, :verb, :verb, nil, nil, nil, :modifier],
'`' => [:modifier, nil, :modifier],
'&' => [:modifier, :modifier, :modifier, nil, :modifier],
'?' => [:verb, :verb],
'a' => [:name, :noun, :noun],
'ACeEIjorv' => [:name, :verb],
'bdfHMT' => [:name, :modifier],
'Dt' => [:name, :modifier, :modifier],
'F' => [:name, :modifier, :modifier, :modifier, :modifier,
:modifier, :modifier],
'iu' => [:name, :verb, :verb],
'L' => [:name, :verb, :modifier],
'mny' => [:param],
'p' => [:name, :verb, :verb, :verb],
'qsZ' => [:name, nil, :verb],
'S' => [:name, nil, :modifier],
'u' => [:param, :verb, :verb],
'v' => [:param, :verb],
'x' => [:param, nil, :verb],
}.each {|k, v| k.each_char {|c| h[c] = v } }
end
end