namae 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,470 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.4.8
4
+ # from Racc grammer file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+
9
+ require 'singleton'
10
+ require 'strscan'
11
+
12
+ module Namae
13
+ class Parser < Racc::Parser
14
+
15
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 90)
16
+
17
+ include Singleton
18
+
19
+ attr_reader :options
20
+
21
+ def initialize
22
+ @input, @options = StringScanner.new(''), {
23
+ :debug => false,
24
+ :comma => ',',
25
+ :separator => /\s*(\band\b|\&)\s*/i,
26
+ :title => /\s*\b(sir|lord|(prof|dr|md|ph\.?d)\.?)(\s+|$)/i,
27
+ :appellation => /\s*\b((mrs?|ms|fr|hr)\.?|miss|herr|frau)(\s+|$)/i
28
+ }
29
+ end
30
+
31
+ def debug?
32
+ options[:debug] || ENV['DEBUG']
33
+ end
34
+
35
+ def separator
36
+ options[:separator]
37
+ end
38
+
39
+ def comma
40
+ options[:comma]
41
+ end
42
+
43
+ def title
44
+ options[:title]
45
+ end
46
+
47
+ def appellation
48
+ options[:appellation]
49
+ end
50
+
51
+ def parse(input)
52
+ parse!(input)
53
+ rescue => e
54
+ warn e.message if debug?
55
+ []
56
+ end
57
+
58
+ def parse!(string)
59
+ @yydebug = debug?
60
+ input.string = string.strip
61
+ do_parse
62
+ end
63
+
64
+ private
65
+
66
+ def next_token
67
+ case
68
+ when input.nil?, input.eos?
69
+ nil
70
+ when input.scan(separator)
71
+ [:AND, nil]
72
+ when input.scan(/\s*,\s*/)
73
+ [:COMMA, nil]
74
+ when input.scan(/\s+/)
75
+ next_token
76
+ when input.scan(title)
77
+ [:TITLE, input.matched.strip]
78
+ when input.scan(appellation)
79
+ [:APPELLATION, input.matched.strip]
80
+ when input.scan(/((\\\w+)?\{[^\}]*\})*[[:upper:]][^\s#{comma}]*/)
81
+ [:UWORD, input.matched]
82
+ when input.scan(/((\\\w+)?\{[^\}]*\})*[[:lower:]][^\s#{comma}]*/)
83
+ [:LWORD, input.matched]
84
+ when input.scan(/(\\\w+)?\{[^\}]*\}[^\s#{comma}]*/)
85
+ [:PWORD, input.matched]
86
+ when input.scan(/('[^'\n]+')|("[^"\n]+")/)
87
+ [:NICK, input.matched[1...-1]]
88
+ else
89
+ raise ArgumentError,
90
+ "Failed to parse name #{input.string.inspect}: unmatched data at offset #{input.pos}"
91
+ end
92
+ end
93
+
94
+ def on_error(tid, value, stack)
95
+ raise ArgumentError,
96
+ "Failed to parse name: unexpected '#{value}' at #{stack.inspect}"
97
+ end
98
+
99
+ attr_reader :input
100
+
101
+ # -*- racc -*-
102
+ ...end parser.y/module_eval...
103
+ ##### State transition tables begin ###
104
+
105
+ racc_action_table = [
106
+ -34, 16, -22, -36, -22, -35, -22, -34, 17, -22,
107
+ -36, -22, -35, -34, 53, -22, 14, 12, 15, 55,
108
+ -34, 7, 8, 14, 12, 15, 42, 33, 7, 8,
109
+ 14, 22, 15, 24, 14, 22, 15, 24, 30, 28,
110
+ 31, 30, 28, 31, 49, 48, 50, 30, 39, 31,
111
+ 49, 48, 50, 49, 48, 50, 30, 28, 31, 30,
112
+ 43, 31, 49, 48, 50, 30, 28, 31, 49, 48,
113
+ 50, 14, 22, 15, 30, 32, 31, 30, 28, 31 ]
114
+
115
+ racc_action_check = [
116
+ 22, 1, 39, 15, 28, 14, 28, 22, 1, 39,
117
+ 15, 28, 14, 12, 41, 12, 0, 0, 0, 45,
118
+ 12, 0, 0, 17, 17, 17, 27, 16, 17, 17,
119
+ 20, 20, 20, 20, 9, 9, 9, 9, 25, 25,
120
+ 25, 21, 21, 21, 55, 55, 55, 24, 24, 24,
121
+ 53, 53, 53, 47, 47, 47, 10, 10, 10, 29,
122
+ 29, 29, 32, 32, 32, 35, 35, 35, 42, 42,
123
+ 42, 5, 5, 5, 40, 11, 40, 38, 38, 38 ]
124
+
125
+ racc_action_pointer = [
126
+ 13, 1, nil, nil, nil, 68, nil, nil, nil, 31,
127
+ 53, 73, 13, nil, 5, 3, 27, 20, nil, nil,
128
+ 27, 38, 0, nil, 44, 35, nil, 24, 4, 56,
129
+ nil, nil, 59, nil, nil, 62, nil, nil, 74, 2,
130
+ 71, 12, 65, nil, nil, 17, nil, 50, nil, nil,
131
+ nil, nil, nil, 47, nil, 41, nil, nil, nil ]
132
+
133
+ racc_action_default = [
134
+ -1, -37, -2, -4, -5, -37, -8, -9, -10, -23,
135
+ -37, -37, -19, -26, -28, -29, -37, -37, -6, -7,
136
+ -37, -37, -19, -11, -37, -37, -27, -15, -20, -23,
137
+ -28, -29, -32, 59, -3, -37, -15, -12, -37, -19,
138
+ -23, -14, -32, -21, -16, -24, -30, -33, -34, -35,
139
+ -36, -14, -13, -32, -17, -32, -31, -18, -25 ]
140
+
141
+ racc_goto_table = [
142
+ 3, 26, 19, 44, 58, 18, 1, nil, 27, 23,
143
+ 9, 2, 26, 54, nil, 20, nil, 3, nil, 36,
144
+ 23, 26, 37, 41, 57, 21, nil, 9, 34, 25,
145
+ nil, nil, 26, 51, 40, nil, 52, nil, nil, nil,
146
+ 35, nil, nil, nil, 38, nil, nil, 56 ]
147
+
148
+ racc_goto_check = [
149
+ 3, 12, 4, 10, 11, 3, 1, nil, 8, 3,
150
+ 7, 2, 12, 10, nil, 7, nil, 3, nil, 8,
151
+ 3, 12, 8, 8, 10, 9, nil, 7, 2, 9,
152
+ nil, nil, 12, 8, 7, nil, 8, nil, nil, nil,
153
+ 9, nil, nil, nil, 9, nil, nil, 3 ]
154
+
155
+ racc_goto_pointer = [
156
+ nil, 6, 11, 0, -3, nil, nil, 10, -2, 20,
157
+ -29, -51, -8, nil ]
158
+
159
+ racc_goto_default = [
160
+ nil, nil, nil, 46, 4, 5, 6, 29, 11, 10,
161
+ nil, 45, 13, 47 ]
162
+
163
+ racc_reduce_table = [
164
+ 0, 0, :racc_error,
165
+ 0, 11, :_reduce_1,
166
+ 1, 11, :_reduce_2,
167
+ 3, 11, :_reduce_3,
168
+ 1, 12, :_reduce_4,
169
+ 1, 12, :_reduce_none,
170
+ 2, 12, :_reduce_6,
171
+ 2, 12, :_reduce_7,
172
+ 1, 12, :_reduce_none,
173
+ 1, 15, :_reduce_9,
174
+ 1, 15, :_reduce_10,
175
+ 2, 14, :_reduce_11,
176
+ 3, 14, :_reduce_12,
177
+ 4, 14, :_reduce_13,
178
+ 3, 14, :_reduce_14,
179
+ 2, 14, :_reduce_15,
180
+ 3, 16, :_reduce_16,
181
+ 4, 16, :_reduce_17,
182
+ 5, 16, :_reduce_18,
183
+ 1, 19, :_reduce_none,
184
+ 2, 19, :_reduce_20,
185
+ 3, 19, :_reduce_21,
186
+ 1, 18, :_reduce_none,
187
+ 1, 18, :_reduce_none,
188
+ 1, 20, :_reduce_24,
189
+ 3, 20, :_reduce_25,
190
+ 1, 17, :_reduce_none,
191
+ 2, 17, :_reduce_27,
192
+ 1, 22, :_reduce_none,
193
+ 1, 22, :_reduce_none,
194
+ 1, 23, :_reduce_none,
195
+ 2, 23, :_reduce_31,
196
+ 0, 21, :_reduce_none,
197
+ 1, 21, :_reduce_none,
198
+ 1, 13, :_reduce_none,
199
+ 1, 13, :_reduce_none,
200
+ 1, 13, :_reduce_none ]
201
+
202
+ racc_reduce_n = 37
203
+
204
+ racc_shift_n = 59
205
+
206
+ racc_token_table = {
207
+ false => 0,
208
+ :error => 1,
209
+ :COMMA => 2,
210
+ :UWORD => 3,
211
+ :LWORD => 4,
212
+ :PWORD => 5,
213
+ :NICK => 6,
214
+ :AND => 7,
215
+ :APPELLATION => 8,
216
+ :TITLE => 9 }
217
+
218
+ racc_nt_base = 10
219
+
220
+ racc_use_result_var = true
221
+
222
+ Racc_arg = [
223
+ racc_action_table,
224
+ racc_action_check,
225
+ racc_action_default,
226
+ racc_action_pointer,
227
+ racc_goto_table,
228
+ racc_goto_check,
229
+ racc_goto_default,
230
+ racc_goto_pointer,
231
+ racc_nt_base,
232
+ racc_reduce_table,
233
+ racc_token_table,
234
+ racc_shift_n,
235
+ racc_reduce_n,
236
+ racc_use_result_var ]
237
+
238
+ Racc_token_to_s_table = [
239
+ "$end",
240
+ "error",
241
+ "COMMA",
242
+ "UWORD",
243
+ "LWORD",
244
+ "PWORD",
245
+ "NICK",
246
+ "AND",
247
+ "APPELLATION",
248
+ "TITLE",
249
+ "$start",
250
+ "names",
251
+ "name",
252
+ "word",
253
+ "display_order",
254
+ "honorific",
255
+ "sort_order",
256
+ "u_words",
257
+ "last",
258
+ "von",
259
+ "first",
260
+ "opt_words",
261
+ "u_word",
262
+ "words" ]
263
+
264
+ Racc_debug_parser = false
265
+
266
+ ##### State transition tables end #####
267
+
268
+ # reduce 0 omitted
269
+
270
+ module_eval(<<'.,.,', 'parser.y', 10)
271
+ def _reduce_1(val, _values, result)
272
+ result = []
273
+ result
274
+ end
275
+ .,.,
276
+
277
+ module_eval(<<'.,.,', 'parser.y', 11)
278
+ def _reduce_2(val, _values, result)
279
+ result = [val[0]]
280
+ result
281
+ end
282
+ .,.,
283
+
284
+ module_eval(<<'.,.,', 'parser.y', 12)
285
+ def _reduce_3(val, _values, result)
286
+ result = val[0] << val[2]
287
+ result
288
+ end
289
+ .,.,
290
+
291
+ module_eval(<<'.,.,', 'parser.y', 14)
292
+ def _reduce_4(val, _values, result)
293
+ result = Name.new(:given => val[0])
294
+ result
295
+ end
296
+ .,.,
297
+
298
+ # reduce 5 omitted
299
+
300
+ module_eval(<<'.,.,', 'parser.y', 16)
301
+ def _reduce_6(val, _values, result)
302
+ result = val[0].merge(:family => val[1])
303
+ result
304
+ end
305
+ .,.,
306
+
307
+ module_eval(<<'.,.,', 'parser.y', 17)
308
+ def _reduce_7(val, _values, result)
309
+ result = val[1].merge(val[0])
310
+ result
311
+ end
312
+ .,.,
313
+
314
+ # reduce 8 omitted
315
+
316
+ module_eval(<<'.,.,', 'parser.y', 20)
317
+ def _reduce_9(val, _values, result)
318
+ result = Name.new(:appellation => val[0])
319
+ result
320
+ end
321
+ .,.,
322
+
323
+ module_eval(<<'.,.,', 'parser.y', 21)
324
+ def _reduce_10(val, _values, result)
325
+ result = Name.new(:title => val[0])
326
+ result
327
+ end
328
+ .,.,
329
+
330
+ module_eval(<<'.,.,', 'parser.y', 25)
331
+ def _reduce_11(val, _values, result)
332
+ result = Name.new(:given => val[0], :family => val[1])
333
+
334
+ result
335
+ end
336
+ .,.,
337
+
338
+ module_eval(<<'.,.,', 'parser.y', 29)
339
+ def _reduce_12(val, _values, result)
340
+ result = Name.new(:given => val[0], :nick => val[1], :family => val[2])
341
+
342
+ result
343
+ end
344
+ .,.,
345
+
346
+ module_eval(<<'.,.,', 'parser.y', 33)
347
+ def _reduce_13(val, _values, result)
348
+ result = Name.new(:given => val[0], :nick => val[1],
349
+ :particle => val[2], :family => val[3])
350
+
351
+ result
352
+ end
353
+ .,.,
354
+
355
+ module_eval(<<'.,.,', 'parser.y', 38)
356
+ def _reduce_14(val, _values, result)
357
+ result = Name.new(:given => val[0], :particle => val[1],
358
+ :family => val[2])
359
+
360
+ result
361
+ end
362
+ .,.,
363
+
364
+ module_eval(<<'.,.,', 'parser.y', 43)
365
+ def _reduce_15(val, _values, result)
366
+ result = Name.new(:particle => val[0], :family => val[1])
367
+
368
+ result
369
+ end
370
+ .,.,
371
+
372
+ module_eval(<<'.,.,', 'parser.y', 48)
373
+ def _reduce_16(val, _values, result)
374
+ result = Name.new(:family => val[0], :suffix => val[2][0],
375
+ :given => val[2][1])
376
+
377
+ result
378
+ end
379
+ .,.,
380
+
381
+ module_eval(<<'.,.,', 'parser.y', 53)
382
+ def _reduce_17(val, _values, result)
383
+ result = Name.new(:particle => val[0], :family => val[1],
384
+ :suffix => val[3][0], :given => val[3][1])
385
+
386
+ result
387
+ end
388
+ .,.,
389
+
390
+ module_eval(<<'.,.,', 'parser.y', 58)
391
+ def _reduce_18(val, _values, result)
392
+ result = Name.new(:particle => val[0,2].join(' '), :family => val[2],
393
+ :suffix => val[4][0], :given => val[4][1])
394
+
395
+ result
396
+ end
397
+ .,.,
398
+
399
+ # reduce 19 omitted
400
+
401
+ module_eval(<<'.,.,', 'parser.y', 64)
402
+ def _reduce_20(val, _values, result)
403
+ result = val.join(' ')
404
+ result
405
+ end
406
+ .,.,
407
+
408
+ module_eval(<<'.,.,', 'parser.y', 65)
409
+ def _reduce_21(val, _values, result)
410
+ result = val.join(' ')
411
+ result
412
+ end
413
+ .,.,
414
+
415
+ # reduce 22 omitted
416
+
417
+ # reduce 23 omitted
418
+
419
+ module_eval(<<'.,.,', 'parser.y', 69)
420
+ def _reduce_24(val, _values, result)
421
+ result = [nil,val[0]]
422
+ result
423
+ end
424
+ .,.,
425
+
426
+ module_eval(<<'.,.,', 'parser.y', 70)
427
+ def _reduce_25(val, _values, result)
428
+ result = [val[0],val[2]]
429
+ result
430
+ end
431
+ .,.,
432
+
433
+ # reduce 26 omitted
434
+
435
+ module_eval(<<'.,.,', 'parser.y', 73)
436
+ def _reduce_27(val, _values, result)
437
+ result = val.join(' ')
438
+ result
439
+ end
440
+ .,.,
441
+
442
+ # reduce 28 omitted
443
+
444
+ # reduce 29 omitted
445
+
446
+ # reduce 30 omitted
447
+
448
+ module_eval(<<'.,.,', 'parser.y', 78)
449
+ def _reduce_31(val, _values, result)
450
+ result = val.join(' ')
451
+ result
452
+ end
453
+ .,.,
454
+
455
+ # reduce 32 omitted
456
+
457
+ # reduce 33 omitted
458
+
459
+ # reduce 34 omitted
460
+
461
+ # reduce 35 omitted
462
+
463
+ # reduce 36 omitted
464
+
465
+ def _reduce_none(val, _values, result)
466
+ val[0]
467
+ end
468
+
469
+ end # class Parser
470
+ end # module Namae