namae 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -2
- data/lib/namae/name.rb +7 -0
- data/lib/namae/parser.rb +142 -153
- data/lib/namae/parser.y +28 -37
- data/lib/namae/version.rb +1 -1
- data/lib/namae.rb +1 -1
- metadata +17 -33
- data/.codeclimate.yml +0 -16
- data/.coveralls.yml +0 -1
- data/.document +0 -7
- data/.rspec +0 -2
- data/.rubocop.yml +0 -1156
- data/.simplecov +0 -4
- data/.travis.yml +0 -38
- data/.yardopts +0 -3
- data/Gemfile +0 -26
- data/Rakefile +0 -74
- data/cucumber.yml +0 -1
- data/features/bibtex.feature +0 -78
- data/features/examples.feature +0 -36
- data/features/lists.feature +0 -138
- data/features/step_definitions/namae_steps.rb +0 -45
- data/features/suffix.feature +0 -49
- data/features/support/env.rb +0 -24
- data/features/title.feature +0 -17
- data/namae.gemspec +0 -70
- data/spec/namae/name_spec.rb +0 -133
- data/spec/namae/parser_spec.rb +0 -259
- data/spec/namae/utility_spec.rb +0 -21
- data/spec/spec_helper.rb +0 -32
- data/spec/thread_safety_spec.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65795210d2525956c6d9e1774ee7e9c633130871e7d8cd74737ad8b0b4340e7e
|
4
|
+
data.tar.gz: 50e15bc59fb1eb82f967ddcfda467354209debfdd65a3f264c5625de2da3fa89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2385d90450515879dc4e5dea141ad34a95c4279fde33954b7d3b3ca831977600efda9030d2e8acd76db7f2632f0e16c9a5be022525bc075de512c923109b2ea0
|
7
|
+
data.tar.gz: 52d8470e03f68cb81118d8dcf9859213c8509cc4deab5f6f498dc632dd6e4d04d8c13a87150d2d9b5e3aa0c650bf94f340f03df96736bc31b7d7cf0f91877e97
|
data/README.md
CHANGED
@@ -4,8 +4,8 @@ Namae is a parser for human names. It recognizes personal names of various
|
|
4
4
|
cultural backgrounds and tries to split them into their component parts
|
5
5
|
(e.g., given and family names, honorifics etc.).
|
6
6
|
|
7
|
-
[![
|
8
|
-
[![Coverage
|
7
|
+
[![CI](https://github.com/berkmancenter/namae/actions/workflows/ci.yml/badge.svg)](https://github.com/berkmancenter/namae/actions/workflows/ci.yml)
|
8
|
+
[![Coverage](https://coveralls.io/repos/github/berkmancenter/namae/badge.svg?branch=master)](https://coveralls.io/github/berkmancenter/namae?branch=master)
|
9
9
|
[![Gem Version](https://badge.fury.io/rb/namae.svg)](http://badge.fury.io/rb/namae)
|
10
10
|
[![Code Climate](https://codeclimate.com/github/berkmancenter/namae/badges/gpa.svg)](https://codeclimate.com/github/berkmancenter/namae)
|
11
11
|
|
@@ -121,6 +121,16 @@ ambiguous. For example, multiple family names are always possible in sort-order:
|
|
121
121
|
Whilst in display-order, multiple family names are only supported when the
|
122
122
|
name contains a particle or a nickname.
|
123
123
|
|
124
|
+
Namae tries to detect common particles using the `:uppercase_particle` lexer
|
125
|
+
pattern. If you prefer to always include particles with the family name, you
|
126
|
+
can set the the `:include_particle_in_family` parser option.
|
127
|
+
|
128
|
+
Namae.parse 'Ludwig von Beethoven'
|
129
|
+
#-> [#<Name family="Beethoven" given="Ludwig" particle="von">]
|
130
|
+
|
131
|
+
Namae.options[:include_particle_in_family] = true
|
132
|
+
#-> [#<Name family="von Beethoven" given="Ludwig">]
|
133
|
+
|
124
134
|
Configuration
|
125
135
|
-------------
|
126
136
|
You can tweak some of Namae's parse rules by configuring the parser's
|
data/lib/namae/name.rb
CHANGED
@@ -183,6 +183,13 @@ module Namae
|
|
183
183
|
self
|
184
184
|
end
|
185
185
|
|
186
|
+
def merge_particles!
|
187
|
+
self.family = [dropping_particle, particle, family].compact.join(' ')
|
188
|
+
self.dropping_particle = nil
|
189
|
+
self.particle = nil
|
190
|
+
self
|
191
|
+
end
|
192
|
+
|
186
193
|
# @return [String] a string representation of the name
|
187
194
|
def inspect
|
188
195
|
"#<Name #{each_pair.map { |k,v| [k,v.inspect].join('=') if v }.compact.join(' ')}>"
|
data/lib/namae/parser.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#
|
2
2
|
# DO NOT MODIFY!!!!
|
3
|
-
# This file is automatically generated by Racc 1.
|
4
|
-
# from Racc grammar file "".
|
3
|
+
# This file is automatically generated by Racc 1.7.3
|
4
|
+
# from Racc grammar file "parser.y".
|
5
5
|
#
|
6
6
|
|
7
7
|
require 'racc/parser.rb'
|
@@ -11,7 +11,7 @@ require 'strscan'
|
|
11
11
|
module Namae
|
12
12
|
class Parser < Racc::Parser
|
13
13
|
|
14
|
-
module_eval(<<'...end parser.y/module_eval...', 'parser.y',
|
14
|
+
module_eval(<<'...end parser.y/module_eval...', 'parser.y', 111)
|
15
15
|
|
16
16
|
@defaults = {
|
17
17
|
:debug => false,
|
@@ -23,7 +23,7 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 122)
|
|
23
23
|
:title => /\s*\b(sir|lord|count(ess)?|(gen|adm|col|maj|capt|cmdr|lt|sgt|cpl|pvt|pastor|pr|reverend|rev|elder|deacon|deaconess|father|fr|rabbi|cantor|vicar|prof|dr|md|ph\.?d)\.?)(\s+|$)/i,
|
24
24
|
:suffix => /\s*\b(JR|Jr|jr|SR|Sr|sr|[IVX]{2,})(\.|\b)/,
|
25
25
|
:appellation => /\s*\b((mrs?|ms|fr|hr)\.?|miss|herr|frau)(\s+|$)/i,
|
26
|
-
:uppercase_particle => /\s*\b(
|
26
|
+
:uppercase_particle => /\s*\b(D[aiu]|De[rs]?|St\.?|Saint|La|Les|V[ao]n)(\s+|$)/
|
27
27
|
}
|
28
28
|
|
29
29
|
class << self
|
@@ -90,7 +90,9 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 122)
|
|
90
90
|
def parse!(string)
|
91
91
|
@input = StringScanner.new(normalize(string))
|
92
92
|
reset
|
93
|
-
do_parse
|
93
|
+
names = do_parse
|
94
|
+
names.map(&:merge_particles!) if include_particle_in_family?
|
95
|
+
names
|
94
96
|
end
|
95
97
|
|
96
98
|
def normalize(string)
|
@@ -207,86 +209,84 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 122)
|
|
207
209
|
##### State transition tables begin ###
|
208
210
|
|
209
211
|
racc_action_table = [
|
210
|
-
-
|
211
|
-
-41, -
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
212
|
+
-43, 36, 26, 37, -41, 38, 39, -43, -42, -43,
|
213
|
+
-43, -41, -40, -41, -41, -42, 45, -42, -42, -40,
|
214
|
+
50, -40, -40, 72, 59, 58, 60, 73, 16, 13,
|
215
|
+
17, -36, 61, 7, 18, 65, 14, 16, 25, 17,
|
216
|
+
16, 25, 17, 28, 18, 14, 65, 45, 14, 36,
|
217
|
+
34, 37, 68, 16, 13, 17, 26, 35, 7, 18,
|
218
|
+
18, 14, 16, 25, 17, 28, 36, 34, 37, 45,
|
219
|
+
14, 36, 34, 37, 35, 36, 34, 37, 45, 35,
|
220
|
+
36, 52, 37, 35, -22, -22, -22, 18, 35, 59,
|
221
|
+
58, 60, -22, 36, 34, 37, 45, 61, 36, 34,
|
222
|
+
37, 35, 59, 58, 60, 65, 35, nil, nil, 45,
|
223
|
+
61, 59, 58, 60, 59, 58, 60, nil, 45, 61,
|
224
|
+
19, nil, 61, 59, 58, 60, -40, 20, -24, nil,
|
225
|
+
nil, 61, nil, -40 ]
|
223
226
|
|
224
227
|
racc_action_check = [
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
228
|
+
14, 48, 8, 48, 16, 11, 19, 14, 17, 14,
|
229
|
+
14, 16, 25, 16, 16, 17, 27, 17, 17, 25,
|
230
|
+
31, 25, 25, 55, 55, 55, 55, 56, 0, 0,
|
231
|
+
0, 55, 55, 0, 0, 56, 0, 5, 5, 5,
|
232
|
+
9, 9, 9, 9, 43, 5, 44, 46, 9, 10,
|
233
|
+
10, 10, 49, 20, 20, 20, 64, 10, 20, 20,
|
234
|
+
66, 20, 23, 23, 23, 23, 24, 24, 24, 67,
|
235
|
+
23, 28, 28, 28, 24, 29, 29, 29, 70, 28,
|
236
|
+
33, 33, 33, 29, 34, 34, 34, 75, 33, 38,
|
237
|
+
38, 38, 34, 41, 41, 41, 38, 38, 47, 47,
|
238
|
+
47, 41, 50, 50, 50, 77, 47, nil, nil, 50,
|
239
|
+
50, 68, 68, 68, 73, 73, 73, nil, 68, 68,
|
240
|
+
1, nil, 73, 78, 78, 78, 13, 1, 13, nil,
|
241
|
+
nil, 78, nil, 13 ]
|
238
242
|
|
239
243
|
racc_action_pointer = [
|
240
|
-
|
241
|
-
|
242
|
-
nil, nil,
|
243
|
-
nil,
|
244
|
-
nil,
|
245
|
-
|
246
|
-
nil, nil,
|
247
|
-
|
248
|
-
114, nil ]
|
244
|
+
25, 120, nil, nil, nil, 34, nil, nil, -7, 37,
|
245
|
+
46, 3, nil, 126, 0, nil, 4, 8, nil, 6,
|
246
|
+
50, nil, nil, 59, 63, 12, nil, 6, 68, 72,
|
247
|
+
nil, 18, nil, 77, 81, nil, nil, nil, 86, nil,
|
248
|
+
nil, 90, nil, 35, 36, nil, 37, 95, -2, 50,
|
249
|
+
99, nil, nil, nil, nil, 21, 25, nil, nil, nil,
|
250
|
+
nil, nil, nil, nil, 47, nil, 51, 59, 108, nil,
|
251
|
+
68, nil, nil, 111, nil, 78, nil, 95, 120, nil ]
|
249
252
|
|
250
253
|
racc_action_default = [
|
251
|
-
-1, -
|
252
|
-
-
|
253
|
-
-6, -7, -
|
254
|
-
-31, -
|
255
|
-
|
256
|
-
-
|
257
|
-
-
|
258
|
-
-
|
259
|
-
-29, -13 ]
|
254
|
+
-1, -52, -2, -4, -5, -52, -8, -9, -10, -25,
|
255
|
+
-52, -52, -19, -22, -23, -30, -32, -33, -50, -52,
|
256
|
+
-52, -6, -7, -52, -52, -22, -51, -44, -52, -52,
|
257
|
+
-31, -15, -20, -25, -24, -23, -32, -33, -38, 80,
|
258
|
+
-3, -52, -15, -48, -45, -46, -44, -52, -25, -14,
|
259
|
+
-38, -21, -22, -16, -26, -39, -28, -34, -40, -41,
|
260
|
+
-42, -43, -14, -11, -49, -47, -48, -44, -38, -17,
|
261
|
+
-52, -35, -37, -52, -12, -48, -18, -27, -29, -13 ]
|
260
262
|
|
261
263
|
racc_goto_table = [
|
262
|
-
3,
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
nil, nil, nil, nil, nil,
|
269
|
-
nil, nil, nil, nil, nil, nil, nil, nil,
|
270
|
-
72 ]
|
264
|
+
3, 30, 43, 1, 22, 21, 56, 53, 31, 27,
|
265
|
+
32, 63, 78, 70, nil, 30, nil, nil, 56, 69,
|
266
|
+
3, 66, 42, 27, 32, 30, 46, 49, 24, 32,
|
267
|
+
9, nil, 29, 51, 74, 23, 56, 76, 77, 62,
|
268
|
+
30, 32, 75, 79, 2, 67, 41, 32, 8, nil,
|
269
|
+
9, 47, nil, nil, nil, 71, nil, nil, 48, nil,
|
270
|
+
nil, nil, nil, nil, 40, nil, nil, nil, 8, nil,
|
271
|
+
nil, nil, nil, nil, nil, nil, nil, nil, 71 ]
|
271
272
|
|
272
273
|
racc_goto_check = [
|
273
|
-
3,
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
8, nil, nil, nil, nil, nil,
|
279
|
-
nil, nil, nil, nil, nil,
|
280
|
-
nil, nil, nil, nil, nil, nil, nil, nil,
|
281
|
-
3 ]
|
274
|
+
3, 19, 9, 1, 4, 3, 18, 13, 11, 3,
|
275
|
+
14, 10, 16, 17, nil, 19, nil, nil, 18, 13,
|
276
|
+
3, 9, 11, 3, 14, 19, 11, 11, 12, 14,
|
277
|
+
8, nil, 12, 14, 10, 8, 18, 13, 18, 11,
|
278
|
+
19, 14, 9, 10, 2, 11, 12, 14, 7, nil,
|
279
|
+
8, 12, nil, nil, nil, 3, nil, nil, 8, nil,
|
280
|
+
nil, nil, nil, nil, 2, nil, nil, nil, 7, nil,
|
281
|
+
nil, nil, nil, nil, nil, nil, nil, nil, 3 ]
|
282
282
|
|
283
283
|
racc_goto_pointer = [
|
284
|
-
nil,
|
285
|
-
-
|
284
|
+
nil, 3, 44, 0, -1, nil, nil, 48, 30, -25,
|
285
|
+
-32, -2, 23, -31, 0, nil, -61, -42, -32, -8 ]
|
286
286
|
|
287
287
|
racc_goto_default = [
|
288
|
-
nil, nil, nil,
|
289
|
-
nil, 11, 10, nil,
|
288
|
+
nil, nil, nil, 57, 4, 5, 6, 64, 33, nil,
|
289
|
+
nil, 11, 10, nil, 12, 54, 55, nil, 44, 15 ]
|
290
290
|
|
291
291
|
racc_reduce_table = [
|
292
292
|
0, 0, :racc_error,
|
@@ -304,15 +304,15 @@ racc_reduce_table = [
|
|
304
304
|
5, 16, :_reduce_12,
|
305
305
|
6, 16, :_reduce_13,
|
306
306
|
3, 16, :_reduce_14,
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
4, 18, :_reduce_19,
|
312
|
-
5, 18, :_reduce_20,
|
307
|
+
2, 16, :_reduce_15,
|
308
|
+
3, 18, :_reduce_16,
|
309
|
+
4, 18, :_reduce_17,
|
310
|
+
5, 18, :_reduce_18,
|
313
311
|
1, 24, :_reduce_none,
|
314
|
-
2, 24, :
|
315
|
-
3, 24, :
|
312
|
+
2, 24, :_reduce_20,
|
313
|
+
3, 24, :_reduce_21,
|
314
|
+
1, 26, :_reduce_none,
|
315
|
+
1, 26, :_reduce_none,
|
316
316
|
1, 23, :_reduce_none,
|
317
317
|
1, 23, :_reduce_none,
|
318
318
|
1, 25, :_reduce_26,
|
@@ -321,29 +321,30 @@ racc_reduce_table = [
|
|
321
321
|
3, 25, :_reduce_29,
|
322
322
|
1, 20, :_reduce_none,
|
323
323
|
2, 20, :_reduce_31,
|
324
|
-
1,
|
325
|
-
1,
|
326
|
-
1, 27, :_reduce_none,
|
327
|
-
2, 27, :_reduce_35,
|
328
|
-
0, 28, :_reduce_none,
|
324
|
+
1, 31, :_reduce_none,
|
325
|
+
1, 31, :_reduce_none,
|
329
326
|
1, 28, :_reduce_none,
|
330
|
-
|
331
|
-
|
327
|
+
2, 28, :_reduce_35,
|
328
|
+
0, 29, :_reduce_none,
|
329
|
+
1, 29, :_reduce_none,
|
330
|
+
0, 27, :_reduce_none,
|
331
|
+
1, 27, :_reduce_none,
|
332
|
+
1, 15, :_reduce_none,
|
332
333
|
1, 15, :_reduce_none,
|
333
334
|
1, 15, :_reduce_none,
|
334
335
|
1, 15, :_reduce_none,
|
335
336
|
0, 21, :_reduce_none,
|
336
337
|
1, 21, :_reduce_none,
|
337
|
-
1,
|
338
|
-
2,
|
338
|
+
1, 30, :_reduce_none,
|
339
|
+
2, 30, :_reduce_47,
|
339
340
|
0, 22, :_reduce_none,
|
340
341
|
1, 22, :_reduce_none,
|
341
342
|
1, 19, :_reduce_none,
|
342
|
-
2, 19, :
|
343
|
+
2, 19, :_reduce_51 ]
|
343
344
|
|
344
|
-
racc_reduce_n =
|
345
|
+
racc_reduce_n = 52
|
345
346
|
|
346
|
-
racc_shift_n =
|
347
|
+
racc_shift_n = 80
|
347
348
|
|
348
349
|
racc_token_table = {
|
349
350
|
false => 0,
|
@@ -378,6 +379,7 @@ Racc_arg = [
|
|
378
379
|
racc_shift_n,
|
379
380
|
racc_reduce_n,
|
380
381
|
racc_use_result_var ]
|
382
|
+
Ractor.make_shareable(Racc_arg) if defined?(Ractor)
|
381
383
|
|
382
384
|
Racc_token_to_s_table = [
|
383
385
|
"$end",
|
@@ -406,11 +408,13 @@ Racc_token_to_s_table = [
|
|
406
408
|
"last",
|
407
409
|
"von",
|
408
410
|
"first",
|
411
|
+
"particle",
|
409
412
|
"opt_words",
|
410
413
|
"words",
|
411
414
|
"opt_comma",
|
412
415
|
"suffices",
|
413
416
|
"u_word" ]
|
417
|
+
Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
|
414
418
|
|
415
419
|
Racc_debug_parser = false
|
416
420
|
|
@@ -480,36 +484,36 @@ module_eval(<<'.,.,', 'parser.y', 22)
|
|
480
484
|
|
481
485
|
module_eval(<<'.,.,', 'parser.y', 26)
|
482
486
|
def _reduce_11(val, _values, result)
|
483
|
-
result = Name.new(
|
484
|
-
:suffix => val[2], :title => val[3]
|
487
|
+
result = Name.new(
|
488
|
+
:given => val[0], :family => val[1], :suffix => val[2], :title => val[3]
|
489
|
+
)
|
485
490
|
|
486
491
|
result
|
487
492
|
end
|
488
493
|
.,.,
|
489
494
|
|
490
|
-
module_eval(<<'.,.,', 'parser.y',
|
495
|
+
module_eval(<<'.,.,', 'parser.y', 32)
|
491
496
|
def _reduce_12(val, _values, result)
|
492
|
-
result = Name.new(
|
493
|
-
:family => val[2], :suffix => val[3], :title => val[4]
|
497
|
+
result = Name.new(
|
498
|
+
:given => val[0], :nick => val[1], :family => val[2], :suffix => val[3], :title => val[4]
|
499
|
+
)
|
494
500
|
|
495
501
|
result
|
496
502
|
end
|
497
503
|
.,.,
|
498
504
|
|
499
|
-
module_eval(<<'.,.,', 'parser.y',
|
505
|
+
module_eval(<<'.,.,', 'parser.y', 38)
|
500
506
|
def _reduce_13(val, _values, result)
|
501
|
-
result = Name.new(
|
502
|
-
:particle => val[2], :family => val[3],
|
503
|
-
:suffix => val[4], :title => val[5])
|
507
|
+
result = Name.new(
|
508
|
+
:given => val[0], :nick => val[1], :particle => val[2], :family => val[3], :suffix => val[4], :title => val[5])
|
504
509
|
|
505
510
|
result
|
506
511
|
end
|
507
512
|
.,.,
|
508
513
|
|
509
|
-
module_eval(<<'.,.,', 'parser.y',
|
514
|
+
module_eval(<<'.,.,', 'parser.y', 43)
|
510
515
|
def _reduce_14(val, _values, result)
|
511
|
-
result = Name.new(:given => val[0], :particle => val[1],
|
512
|
-
:family => val[2])
|
516
|
+
result = Name.new(:given => val[0], :particle => val[1], :family => val[2])
|
513
517
|
|
514
518
|
result
|
515
519
|
end
|
@@ -517,105 +521,88 @@ module_eval(<<'.,.,', 'parser.y', 42)
|
|
517
521
|
|
518
522
|
module_eval(<<'.,.,', 'parser.y', 47)
|
519
523
|
def _reduce_15(val, _values, result)
|
520
|
-
|
521
|
-
Name.new(:given => val[0], :family => val[1,2].join(' '))
|
522
|
-
else
|
523
|
-
Name.new(:given => val[0], :particle => val[1], :family => val[2])
|
524
|
-
end
|
524
|
+
result = Name.new(:particle => val[0], :family => val[1])
|
525
525
|
|
526
526
|
result
|
527
527
|
end
|
528
528
|
.,.,
|
529
529
|
|
530
|
-
module_eval(<<'.,.,', 'parser.y',
|
530
|
+
module_eval(<<'.,.,', 'parser.y', 52)
|
531
531
|
def _reduce_16(val, _values, result)
|
532
|
-
result = Name.new(
|
532
|
+
result = Name.new({
|
533
|
+
:family => val[0], :suffix => val[2][0], :given => val[2][1]
|
534
|
+
}, !!val[2][0])
|
533
535
|
|
534
536
|
result
|
535
537
|
end
|
536
538
|
.,.,
|
537
539
|
|
538
|
-
module_eval(<<'.,.,', 'parser.y',
|
540
|
+
module_eval(<<'.,.,', 'parser.y', 58)
|
539
541
|
def _reduce_17(val, _values, result)
|
540
|
-
result = Name.new({
|
541
|
-
:
|
542
|
+
result = Name.new({
|
543
|
+
:particle => val[0], :family => val[1], :suffix => val[3][0], :given => val[3][1]
|
544
|
+
}, !!val[3][0])
|
542
545
|
|
543
546
|
result
|
544
547
|
end
|
545
548
|
.,.,
|
546
549
|
|
547
|
-
module_eval(<<'.,.,', 'parser.y',
|
550
|
+
module_eval(<<'.,.,', 'parser.y', 64)
|
548
551
|
def _reduce_18(val, _values, result)
|
549
|
-
result =
|
550
|
-
|
551
|
-
|
552
|
-
Name.new({ :particle => val[0], :family => val[1], :suffix => val[3][0], :given => val[3][1] }, !!val[3][0])
|
553
|
-
end
|
552
|
+
result = Name.new({
|
553
|
+
:particle => val[0,2].join(' '), :family => val[2], :suffix => val[4][0], :given => val[4][1]
|
554
|
+
}, !!val[4][0])
|
554
555
|
|
555
556
|
result
|
556
557
|
end
|
557
558
|
.,.,
|
558
559
|
|
559
|
-
|
560
|
-
def _reduce_19(val, _values, result)
|
561
|
-
result = Name.new({ :particle => val[0], :family => val[1],
|
562
|
-
:suffix => val[3][0], :given => val[3][1] }, !!val[3][0])
|
563
|
-
|
564
|
-
result
|
565
|
-
end
|
566
|
-
.,.,
|
560
|
+
# reduce 19 omitted
|
567
561
|
|
568
|
-
module_eval(<<'.,.,', 'parser.y',
|
562
|
+
module_eval(<<'.,.,', 'parser.y', 71)
|
569
563
|
def _reduce_20(val, _values, result)
|
570
|
-
result = Name.new({ :particle => val[0,2].join(' '), :family => val[2],
|
571
|
-
:suffix => val[4][0], :given => val[4][1] }, !!val[4][0])
|
572
|
-
|
573
|
-
result
|
574
|
-
end
|
575
|
-
.,.,
|
576
|
-
|
577
|
-
# reduce 21 omitted
|
578
|
-
|
579
|
-
module_eval(<<'.,.,', 'parser.y', 84)
|
580
|
-
def _reduce_22(val, _values, result)
|
581
564
|
result = val.join(' ')
|
582
565
|
result
|
583
566
|
end
|
584
567
|
.,.,
|
585
568
|
|
586
|
-
module_eval(<<'.,.,', 'parser.y',
|
587
|
-
def
|
569
|
+
module_eval(<<'.,.,', 'parser.y', 72)
|
570
|
+
def _reduce_21(val, _values, result)
|
588
571
|
result = val.join(' ')
|
589
572
|
result
|
590
573
|
end
|
591
574
|
.,.,
|
592
575
|
|
576
|
+
# reduce 22 omitted
|
577
|
+
|
578
|
+
# reduce 23 omitted
|
579
|
+
|
593
580
|
# reduce 24 omitted
|
594
581
|
|
595
582
|
# reduce 25 omitted
|
596
583
|
|
597
|
-
module_eval(<<'.,.,', 'parser.y',
|
584
|
+
module_eval(<<'.,.,', 'parser.y', 78)
|
598
585
|
def _reduce_26(val, _values, result)
|
599
586
|
result = [nil,val[0]]
|
600
587
|
result
|
601
588
|
end
|
602
589
|
.,.,
|
603
590
|
|
604
|
-
module_eval(<<'.,.,', 'parser.y',
|
591
|
+
module_eval(<<'.,.,', 'parser.y', 79)
|
605
592
|
def _reduce_27(val, _values, result)
|
606
593
|
result = [val[2],val[0]]
|
607
594
|
result
|
608
595
|
end
|
609
596
|
.,.,
|
610
597
|
|
611
|
-
module_eval(<<'.,.,', 'parser.y',
|
598
|
+
module_eval(<<'.,.,', 'parser.y', 80)
|
612
599
|
def _reduce_28(val, _values, result)
|
613
600
|
result = [val[0],nil]
|
614
601
|
result
|
615
602
|
end
|
616
603
|
.,.,
|
617
604
|
|
618
|
-
module_eval(<<'.,.,', 'parser.y',
|
605
|
+
module_eval(<<'.,.,', 'parser.y', 81)
|
619
606
|
def _reduce_29(val, _values, result)
|
620
607
|
result = [val[0],val[2]]
|
621
608
|
result
|
@@ -624,7 +611,7 @@ module_eval(<<'.,.,', 'parser.y', 92)
|
|
624
611
|
|
625
612
|
# reduce 30 omitted
|
626
613
|
|
627
|
-
module_eval(<<'.,.,', 'parser.y',
|
614
|
+
module_eval(<<'.,.,', 'parser.y', 84)
|
628
615
|
def _reduce_31(val, _values, result)
|
629
616
|
result = val.join(' ')
|
630
617
|
result
|
@@ -637,7 +624,7 @@ module_eval(<<'.,.,', 'parser.y', 95)
|
|
637
624
|
|
638
625
|
# reduce 34 omitted
|
639
626
|
|
640
|
-
module_eval(<<'.,.,', 'parser.y',
|
627
|
+
module_eval(<<'.,.,', 'parser.y', 89)
|
641
628
|
def _reduce_35(val, _values, result)
|
642
629
|
result = val.join(' ')
|
643
630
|
result
|
@@ -664,21 +651,23 @@ module_eval(<<'.,.,', 'parser.y', 100)
|
|
664
651
|
|
665
652
|
# reduce 45 omitted
|
666
653
|
|
667
|
-
|
668
|
-
|
654
|
+
# reduce 46 omitted
|
655
|
+
|
656
|
+
module_eval(<<'.,.,', 'parser.y', 99)
|
657
|
+
def _reduce_47(val, _values, result)
|
669
658
|
result = val.join(' ')
|
670
659
|
result
|
671
660
|
end
|
672
661
|
.,.,
|
673
662
|
|
674
|
-
# reduce 47 omitted
|
675
|
-
|
676
663
|
# reduce 48 omitted
|
677
664
|
|
678
665
|
# reduce 49 omitted
|
679
666
|
|
680
|
-
|
681
|
-
|
667
|
+
# reduce 50 omitted
|
668
|
+
|
669
|
+
module_eval(<<'.,.,', 'parser.y', 104)
|
670
|
+
def _reduce_51(val, _values, result)
|
682
671
|
result = val.join(' ')
|
683
672
|
result
|
684
673
|
end
|