239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
|
# File 'lib/okura/serializer.rb', line 239
def compile(input,output)
cts=Okura::CharTypes.new
parser=Okura::Parser::CharType.new
parser.on_chartype_def{|name,invoke,group,length|
cts.define_type(name,invoke,group,length)
}
parser.on_mapping_single{|char,type,ctypes|
cts.define_map char,cts.named(type),ctypes.map{|ct|cts.named(ct)}
}
parser.on_mapping_range{|from,to,type,ctypes|
(from..to).each{|char|
cts.define_map char,cts.named(type),ctypes.map{|ct|cts.named(ct)}
}
}
parser.parse_all input
::Marshal.dump(cts,output)
cts
end
|