bibtex-ruby 1.3.6 → 1.3.7

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bibtex-ruby might be problematic. Click here for more details.

@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bibtex-ruby (1.3.6)
4
+ bibtex-ruby (1.3.7)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -1,7 +1,15 @@
1
+ === 1.3.7 / 2011-06-30
2
+
3
+ * Added option to toggle dropping/non-dropping behaviour of 'von' parts
4
+ when exporting to CiteProc/CSL
5
+ * Fixed name parser not accepting 'von' parts starting with upper case words
6
+ in sort order (#11)
7
+ * Added support for multi-line string literals (#15)
8
+
1
9
  === 1.3.6 / 2011-06-11
2
10
 
3
11
  * Refactored lexer and parser for speed
4
- * Added support for @strings with braced values (fixes #10)
12
+ * Added support for @strings with braced values (#10)
5
13
 
6
14
  === 1.3.5 / 2011-06-07
7
15
 
data/Manifest CHANGED
@@ -58,6 +58,7 @@ test/bibtex/test_bibliography.rb
58
58
  test/bibtex/test_elements.rb
59
59
  test/bibtex/test_entry.rb
60
60
  test/bibtex/test_lexer.rb
61
+ test/bibtex/test_name_parser.rb
61
62
  test/bibtex/test_names.rb
62
63
  test/bibtex/test_parser.rb
63
64
  test/bibtex/test_string.rb
@@ -43,7 +43,18 @@ Feature: BibTeX Names
43
43
  | bb CC,XX, AA | AA | bb | CC | XX |
44
44
  | bb CC,xx, AA | AA | bb | CC | xx |
45
45
  | BB,, AA | AA | | BB | |
46
-
46
+ | CC dd BB, AA | AA | CC dd | BB | |
47
+ | BB, AA | AA | | BB | |
48
+
49
+ @sort @wip
50
+ Scenarios: Long von parts
51
+ | name | first | von | last | jr |
52
+ | bb cc dd CC, AA | AA | bb cc dd | CC | |
53
+ | bb CC dd CC, AA | AA | bb CC dd | CC | |
54
+ | BB cc dd CC, AA | AA | BB cc dd | CC | |
55
+ | BB CC dd CC, AA | AA | BB CC dd | CC | |
56
+
57
+
47
58
  Scenarios: Decoret further remarks
48
59
  | name | first | von | last | jr |
49
60
  # | Paul \'Emile Victor | Paul \'Emile | | Victor | |
@@ -72,3 +83,4 @@ Feature: BibTeX Names
72
83
  | {Barnes and} {Noble, Inc.} | {Barnes and} | | {Noble, Inc.} | |
73
84
  | {Barnes} {and} {Noble,} {Inc.} | {Barnes} {and} {Noble,} | | {Inc.} | |
74
85
  | Charles Louis Xavier Joseph de la Vallee Poussin | Charles Louis Xavier Joseph | de la | Vallee Poussin | |
86
+
@@ -2,6 +2,11 @@ When /^I parse the name "(.*)"$/ do |string|
2
2
  @name = BibTeX::Name.parse(string)
3
3
  end
4
4
 
5
+ When /^I parse the names "(.*)"$/ do |string|
6
+ @names = BibTeX::Names.parse(string)
7
+ end
8
+
9
+
5
10
  Then /^the parts should be:$/ do |table|
6
11
  table.hashes.each do |row|
7
12
  assert_equal [row['first'], row['von'], row['last'], row['jr']],
@@ -10,4 +15,4 @@ Then /^the parts should be:$/ do |table|
10
15
  # assert_equal v, @name.send(k).to_s
11
16
  # end
12
17
  end
13
- end
18
+ end
@@ -43,7 +43,7 @@ module BibTeX
43
43
  #
44
44
  Log = Logger.new(STDERR)
45
45
  Log.level = ENV.has_key?('DEBUG') ? Logger::DEBUG : Logger::WARN
46
- Log.datetime_format = "%Y-%m-%d %H:%M:%S"
46
+ Log.datetime_format = '%Y-%m-%d %H:%M:%S'
47
47
 
48
48
  def self.log; BibTeX::Log end
49
49
  end
@@ -204,7 +204,7 @@ module BibTeX
204
204
  end
205
205
 
206
206
  def parse_literal
207
- match = @scanner.scan_until(/[\{\}"\n]/o)
207
+ match = @scanner.scan_until(/[\{\}"]/o)
208
208
  case @scanner.matched
209
209
  when '{'
210
210
  @brace_level += 1
@@ -6,32 +6,31 @@ rule 1 result:
6
6
  rule 2 result: names
7
7
  rule 3 names: name
8
8
  rule 4 names: names AND name
9
- rule 5 name: last
10
- rule 6 name: u_words last
11
- rule 7 name: sort COMMA first
12
- rule 8 sort: u_words
13
- rule 9 sort: LWORD
14
- rule 10 sort: von LWORD
15
- rule 11 sort: von u_words
16
- rule 12 last: word
17
- rule 13 last: von LWORD
18
- rule 14 last: von u_words
19
- rule 15 first: opt_words
20
- rule 16 first: opt_words COMMA opt_words
21
- rule 17 u_words: u_word
22
- rule 18 u_words: u_words u_word
23
- rule 19 u_word: UWORD
24
- rule 20 u_word: PWORD
25
- rule 21 von: LWORD
26
- rule 22 von: von u_words LWORD
27
- rule 23 von: von LWORD
28
- rule 24 words: word
29
- rule 25 words: words word
30
- rule 26 opt_words:
31
- rule 27 opt_words: words
32
- rule 28 word: LWORD
33
- rule 29 word: UWORD
34
- rule 30 word: PWORD
9
+ rule 5 name: word
10
+ rule 6 name: u_words word
11
+ rule 7 name: u_words von last
12
+ rule 8 name: von last
13
+ rule 9 name: last COMMA first
14
+ rule 10 name: von last COMMA first
15
+ rule 11 name: u_words von last COMMA first
16
+ rule 12 von: LWORD
17
+ rule 13 von: von LWORD
18
+ rule 14 von: von u_words LWORD
19
+ rule 15 last: LWORD
20
+ rule 16 last: u_words
21
+ rule 17 first: opt_words
22
+ rule 18 first: opt_words COMMA opt_words
23
+ rule 19 u_words: u_word
24
+ rule 20 u_words: u_words u_word
25
+ rule 21 u_word: UWORD
26
+ rule 22 u_word: PWORD
27
+ rule 23 words: word
28
+ rule 24 words: words word
29
+ rule 25 opt_words:
30
+ rule 26 opt_words: words
31
+ rule 27 word: LWORD
32
+ rule 28 word: UWORD
33
+ rule 29 word: PWORD
35
34
 
36
35
  ------- Symbols -------
37
36
 
@@ -48,43 +47,40 @@ rule 30 word: PWORD
48
47
  on left : 3 4
49
48
  name (11)
50
49
  on right: 3 4
51
- on left : 5 6 7
52
- last (12)
53
- on right: 5 6
54
- on left : 12 13 14
50
+ on left : 5 6 7 8 9 10 11
51
+ word (12)
52
+ on right: 5 6 23 24
53
+ on left : 27 28 29
55
54
  u_words (13)
56
- on right: 6 8 11 14 18 22
57
- on left : 17 18
58
- sort (14)
59
- on right: 7
60
- on left : 8 9 10 11
61
- first (15)
62
- on right: 7
55
+ on right: 6 7 11 14 16 20
56
+ on left : 19 20
57
+ von (14)
58
+ on right: 7 8 10 11 13 14
59
+ on left : 12 13 14
60
+ last (15)
61
+ on right: 7 8 9 10 11
63
62
  on left : 15 16
64
- von (16)
65
- on right: 10 11 13 14 22 23
66
- on left : 21 22 23
67
- word (17)
68
- on right: 12 24 25
69
- on left : 28 29 30
70
- opt_words (18)
71
- on right: 15 16
72
- on left : 26 27
73
- u_word (19)
63
+ first (16)
64
+ on right: 9 10 11
65
+ on left : 17 18
66
+ opt_words (17)
74
67
  on right: 17 18
75
- on left : 19 20
76
- words (20)
77
- on right: 25 27
78
- on left : 24 25
68
+ on left : 25 26
69
+ u_word (18)
70
+ on right: 19 20
71
+ on left : 21 22
72
+ words (19)
73
+ on right: 24 26
74
+ on left : 23 24
79
75
 
80
76
  **Terminals, with rules where they appear
81
77
 
82
78
  $end (0)
83
79
  error (1)
84
- COMMA (2) 7 16
85
- UWORD (3) 19 29
86
- LWORD (4) 9 10 13 21 22 23 28
87
- PWORD (5) 20 30
80
+ COMMA (2) 9 10 11 18
81
+ UWORD (3) 21 28
82
+ LWORD (4) 12 13 14 15 27
83
+ PWORD (5) 22 29
88
84
  AND (6) 4
89
85
  ERROR (7)
90
86
 
@@ -93,25 +89,24 @@ rule 30 word: PWORD
93
89
  state 0
94
90
 
95
91
 
96
- UWORD shift, and go to state 11
97
- LWORD shift, and go to state 7
98
- PWORD shift, and go to state 12
92
+ UWORD shift, and go to state 10
93
+ LWORD shift, and go to state 8
94
+ PWORD shift, and go to state 11
99
95
  $default reduce using rule 1 (result)
100
96
 
101
97
  result go to state 1
102
98
  names go to state 2
103
99
  name go to state 3
104
- last go to state 4
100
+ word go to state 4
105
101
  u_words go to state 5
106
- sort go to state 6
107
- von go to state 8
108
- word go to state 9
109
- u_word go to state 10
102
+ von go to state 6
103
+ last go to state 7
104
+ u_word go to state 9
110
105
 
111
106
  state 1
112
107
 
113
108
 
114
- $end shift, and go to state 13
109
+ $end shift, and go to state 12
115
110
 
116
111
 
117
112
  state 2
@@ -119,7 +114,7 @@ state 2
119
114
  2) result : names _
120
115
  4) names : names _ AND name
121
116
 
122
- AND shift, and go to state 14
117
+ AND shift, and go to state 13
123
118
  $default reduce using rule 2 (result)
124
119
 
125
120
 
@@ -132,210 +127,209 @@ state 3
132
127
 
133
128
  state 4
134
129
 
135
- 5) name : last _
130
+ 5) name : word _
136
131
 
137
132
  $default reduce using rule 5 (name)
138
133
 
139
134
 
140
135
  state 5
141
136
 
142
- 6) name : u_words _ last
143
- 8) sort : u_words _
144
- 18) u_words : u_words _ u_word
137
+ 6) name : u_words _ word
138
+ 7) name : u_words _ von last
139
+ 11) name : u_words _ von last COMMA first
140
+ 16) last : u_words _
141
+ 20) u_words : u_words _ u_word
145
142
 
146
- UWORD shift, and go to state 11
147
- LWORD shift, and go to state 18
148
- PWORD shift, and go to state 12
149
- $default reduce using rule 8 (sort)
143
+ UWORD shift, and go to state 10
144
+ LWORD shift, and go to state 16
145
+ PWORD shift, and go to state 11
146
+ $default reduce using rule 16 (last)
150
147
 
151
- last go to state 15
152
- word go to state 9
153
- von go to state 16
148
+ word go to state 14
149
+ von go to state 15
154
150
  u_word go to state 17
155
151
 
156
152
  state 6
157
153
 
158
- 7) name : sort _ COMMA first
154
+ 8) name : von _ last
155
+ 10) name : von _ last COMMA first
156
+ 13) von : von _ LWORD
157
+ 14) von : von _ u_words LWORD
159
158
 
160
- COMMA shift, and go to state 19
159
+ UWORD shift, and go to state 21
160
+ LWORD shift, and go to state 19
161
+ PWORD shift, and go to state 22
161
162
 
163
+ last go to state 18
164
+ u_words go to state 20
165
+ u_word go to state 9
162
166
 
163
167
  state 7
164
168
 
165
- 9) sort : LWORD _
166
- 21) von : LWORD _
167
- 28) word : LWORD _
169
+ 9) name : last _ COMMA first
168
170
 
169
- $end reduce using rule 28 (word)
170
- COMMA reduce using rule 9 (sort)
171
- AND reduce using rule 28 (word)
172
- $default reduce using rule 21 (von)
171
+ COMMA shift, and go to state 23
173
172
 
174
173
 
175
174
  state 8
176
175
 
177
- 10) sort : von _ LWORD
178
- 11) sort : von _ u_words
179
- 13) last : von _ LWORD
180
- 14) last : von _ u_words
181
- 22) von : von _ u_words LWORD
182
- 23) von : von _ LWORD
176
+ 12) von : LWORD _
177
+ 15) last : LWORD _
178
+ 27) word : LWORD _
183
179
 
184
- UWORD shift, and go to state 22
185
- LWORD shift, and go to state 20
186
- PWORD shift, and go to state 23
180
+ $end reduce using rule 27 (word)
181
+ COMMA reduce using rule 15 (last)
182
+ AND reduce using rule 27 (word)
183
+ $default reduce using rule 12 (von)
187
184
 
188
- u_words go to state 21
189
- u_word go to state 10
190
185
 
191
186
  state 9
192
187
 
193
- 12) last : word _
188
+ 19) u_words : u_word _
194
189
 
195
- $default reduce using rule 12 (last)
190
+ $default reduce using rule 19 (u_words)
196
191
 
197
192
 
198
193
  state 10
199
194
 
200
- 17) u_words : u_word _
195
+ 21) u_word : UWORD _
196
+ 28) word : UWORD _
201
197
 
202
- $default reduce using rule 17 (u_words)
198
+ $end reduce using rule 28 (word)
199
+ AND reduce using rule 28 (word)
200
+ $default reduce using rule 21 (u_word)
203
201
 
204
202
 
205
203
  state 11
206
204
 
207
- 19) u_word : UWORD _
208
- 29) word : UWORD _
205
+ 22) u_word : PWORD _
206
+ 29) word : PWORD _
209
207
 
210
208
  $end reduce using rule 29 (word)
211
209
  AND reduce using rule 29 (word)
212
- $default reduce using rule 19 (u_word)
210
+ $default reduce using rule 22 (u_word)
213
211
 
214
212
 
215
213
  state 12
216
214
 
217
- 20) u_word : PWORD _
218
- 30) word : PWORD _
219
215
 
220
- $end reduce using rule 30 (word)
221
- AND reduce using rule 30 (word)
222
- $default reduce using rule 20 (u_word)
216
+ $end shift, and go to state 24
223
217
 
224
218
 
225
219
  state 13
226
220
 
221
+ 4) names : names AND _ name
227
222
 
228
- $end shift, and go to state 24
223
+ UWORD shift, and go to state 10
224
+ LWORD shift, and go to state 8
225
+ PWORD shift, and go to state 11
229
226
 
227
+ name go to state 25
228
+ word go to state 4
229
+ u_words go to state 5
230
+ von go to state 6
231
+ last go to state 7
232
+ u_word go to state 9
230
233
 
231
234
  state 14
232
235
 
233
- 4) names : names AND _ name
236
+ 6) name : u_words word _
234
237
 
235
- UWORD shift, and go to state 11
236
- LWORD shift, and go to state 7
237
- PWORD shift, and go to state 12
238
+ $default reduce using rule 6 (name)
238
239
 
239
- name go to state 25
240
- last go to state 4
241
- u_words go to state 5
242
- sort go to state 6
243
- von go to state 8
244
- word go to state 9
245
- u_word go to state 10
246
240
 
247
241
  state 15
248
242
 
249
- 6) name : u_words last _
243
+ 7) name : u_words von _ last
244
+ 11) name : u_words von _ last COMMA first
245
+ 13) von : von _ LWORD
246
+ 14) von : von _ u_words LWORD
250
247
 
251
- $default reduce using rule 6 (name)
248
+ UWORD shift, and go to state 21
249
+ LWORD shift, and go to state 19
250
+ PWORD shift, and go to state 22
252
251
 
252
+ last go to state 26
253
+ u_words go to state 20
254
+ u_word go to state 9
253
255
 
254
256
  state 16
255
257
 
256
- 13) last : von _ LWORD
257
- 14) last : von _ u_words
258
- 22) von : von _ u_words LWORD
259
- 23) von : von _ LWORD
258
+ 12) von : LWORD _
259
+ 27) word : LWORD _
260
260
 
261
- UWORD shift, and go to state 22
262
- LWORD shift, and go to state 26
263
- PWORD shift, and go to state 23
261
+ $end reduce using rule 27 (word)
262
+ AND reduce using rule 27 (word)
263
+ $default reduce using rule 12 (von)
264
264
 
265
- u_words go to state 27
266
- u_word go to state 10
267
265
 
268
266
  state 17
269
267
 
270
- 18) u_words : u_words u_word _
268
+ 20) u_words : u_words u_word _
271
269
 
272
- $default reduce using rule 18 (u_words)
270
+ $default reduce using rule 20 (u_words)
273
271
 
274
272
 
275
273
  state 18
276
274
 
277
- 21) von : LWORD _
278
- 28) word : LWORD _
275
+ 8) name : von last _
276
+ 10) name : von last _ COMMA first
279
277
 
280
- $end reduce using rule 28 (word)
281
- AND reduce using rule 28 (word)
282
- $default reduce using rule 21 (von)
278
+ COMMA shift, and go to state 27
279
+ $default reduce using rule 8 (name)
283
280
 
284
281
 
285
282
  state 19
286
283
 
287
- 7) name : sort COMMA _ first
284
+ 13) von : von LWORD _
285
+ 15) last : LWORD _
288
286
 
289
- UWORD shift, and go to state 33
290
- LWORD shift, and go to state 32
291
- PWORD shift, and go to state 34
292
- $default reduce using rule 26 (opt_words)
287
+ $end reduce using rule 15 (last)
288
+ COMMA reduce using rule 15 (last)
289
+ AND reduce using rule 15 (last)
290
+ $default reduce using rule 13 (von)
293
291
 
294
- first go to state 28
295
- opt_words go to state 29
296
- word go to state 30
297
- words go to state 31
298
292
 
299
293
  state 20
300
294
 
301
- 10) sort : von LWORD _
302
- 13) last : von LWORD _
303
- 23) von : von LWORD _
295
+ 14) von : von u_words _ LWORD
296
+ 16) last : u_words _
297
+ 20) u_words : u_words _ u_word
304
298
 
305
- $end reduce using rule 13 (last)
306
- COMMA reduce using rule 10 (sort)
307
- AND reduce using rule 13 (last)
308
- $default reduce using rule 23 (von)
299
+ UWORD shift, and go to state 21
300
+ LWORD shift, and go to state 28
301
+ PWORD shift, and go to state 22
302
+ $default reduce using rule 16 (last)
309
303
 
304
+ u_word go to state 17
310
305
 
311
306
  state 21
312
307
 
313
- 11) sort : von u_words _
314
- 14) last : von u_words _
315
- 18) u_words : u_words _ u_word
316
- 22) von : von u_words _ LWORD
308
+ 21) u_word : UWORD _
317
309
 
318
- UWORD shift, and go to state 22
319
- LWORD shift, and go to state 35
320
- PWORD shift, and go to state 23
321
- COMMA reduce using rule 11 (sort)
322
- $default reduce using rule 14 (last)
310
+ $default reduce using rule 21 (u_word)
323
311
 
324
- u_word go to state 17
325
312
 
326
313
  state 22
327
314
 
328
- 19) u_word : UWORD _
315
+ 22) u_word : PWORD _
329
316
 
330
- $default reduce using rule 19 (u_word)
317
+ $default reduce using rule 22 (u_word)
331
318
 
332
319
 
333
320
  state 23
334
321
 
335
- 20) u_word : PWORD _
322
+ 9) name : last COMMA _ first
336
323
 
337
- $default reduce using rule 20 (u_word)
324
+ UWORD shift, and go to state 34
325
+ LWORD shift, and go to state 33
326
+ PWORD shift, and go to state 35
327
+ $default reduce using rule 25 (opt_words)
338
328
 
329
+ first go to state 29
330
+ opt_words go to state 30
331
+ word go to state 31
332
+ words go to state 32
339
333
 
340
334
  state 24
341
335
 
@@ -352,113 +346,141 @@ state 25
352
346
 
353
347
  state 26
354
348
 
355
- 13) last : von LWORD _
356
- 23) von : von LWORD _
349
+ 7) name : u_words von last _
350
+ 11) name : u_words von last _ COMMA first
357
351
 
358
- $end reduce using rule 13 (last)
359
- AND reduce using rule 13 (last)
360
- $default reduce using rule 23 (von)
352
+ COMMA shift, and go to state 36
353
+ $default reduce using rule 7 (name)
361
354
 
362
355
 
363
356
  state 27
364
357
 
365
- 14) last : von u_words _
366
- 18) u_words : u_words _ u_word
367
- 22) von : von u_words _ LWORD
358
+ 10) name : von last COMMA _ first
368
359
 
369
- UWORD shift, and go to state 22
370
- LWORD shift, and go to state 35
371
- PWORD shift, and go to state 23
372
- $default reduce using rule 14 (last)
360
+ UWORD shift, and go to state 34
361
+ LWORD shift, and go to state 33
362
+ PWORD shift, and go to state 35
363
+ $default reduce using rule 25 (opt_words)
373
364
 
374
- u_word go to state 17
365
+ first go to state 37
366
+ opt_words go to state 30
367
+ word go to state 31
368
+ words go to state 32
375
369
 
376
370
  state 28
377
371
 
378
- 7) name : sort COMMA first _
372
+ 14) von : von u_words LWORD _
379
373
 
380
- $default reduce using rule 7 (name)
374
+ $default reduce using rule 14 (von)
381
375
 
382
376
 
383
377
  state 29
384
378
 
385
- 15) first : opt_words _
386
- 16) first : opt_words _ COMMA opt_words
379
+ 9) name : last COMMA first _
387
380
 
388
- COMMA shift, and go to state 36
389
- $default reduce using rule 15 (first)
381
+ $default reduce using rule 9 (name)
390
382
 
391
383
 
392
384
  state 30
393
385
 
394
- 24) words : word _
386
+ 17) first : opt_words _
387
+ 18) first : opt_words _ COMMA opt_words
395
388
 
396
- $default reduce using rule 24 (words)
389
+ COMMA shift, and go to state 38
390
+ $default reduce using rule 17 (first)
397
391
 
398
392
 
399
393
  state 31
400
394
 
401
- 25) words : words _ word
402
- 27) opt_words : words _
395
+ 23) words : word _
403
396
 
404
- UWORD shift, and go to state 33
405
- LWORD shift, and go to state 32
406
- PWORD shift, and go to state 34
407
- $default reduce using rule 27 (opt_words)
397
+ $default reduce using rule 23 (words)
408
398
 
409
- word go to state 37
410
399
 
411
400
  state 32
412
401
 
413
- 28) word : LWORD _
402
+ 24) words : words _ word
403
+ 26) opt_words : words _
414
404
 
415
- $default reduce using rule 28 (word)
405
+ UWORD shift, and go to state 34
406
+ LWORD shift, and go to state 33
407
+ PWORD shift, and go to state 35
408
+ $default reduce using rule 26 (opt_words)
416
409
 
410
+ word go to state 39
417
411
 
418
412
  state 33
419
413
 
420
- 29) word : UWORD _
414
+ 27) word : LWORD _
421
415
 
422
- $default reduce using rule 29 (word)
416
+ $default reduce using rule 27 (word)
423
417
 
424
418
 
425
419
  state 34
426
420
 
427
- 30) word : PWORD _
421
+ 28) word : UWORD _
428
422
 
429
- $default reduce using rule 30 (word)
423
+ $default reduce using rule 28 (word)
430
424
 
431
425
 
432
426
  state 35
433
427
 
434
- 22) von : von u_words LWORD _
428
+ 29) word : PWORD _
435
429
 
436
- $default reduce using rule 22 (von)
430
+ $default reduce using rule 29 (word)
437
431
 
438
432
 
439
433
  state 36
440
434
 
441
- 16) first : opt_words COMMA _ opt_words
435
+ 11) name : u_words von last COMMA _ first
442
436
 
443
- UWORD shift, and go to state 33
444
- LWORD shift, and go to state 32
445
- PWORD shift, and go to state 34
446
- $default reduce using rule 26 (opt_words)
437
+ UWORD shift, and go to state 34
438
+ LWORD shift, and go to state 33
439
+ PWORD shift, and go to state 35
440
+ $default reduce using rule 25 (opt_words)
447
441
 
448
- opt_words go to state 38
449
- word go to state 30
450
- words go to state 31
442
+ first go to state 40
443
+ opt_words go to state 30
444
+ word go to state 31
445
+ words go to state 32
451
446
 
452
447
  state 37
453
448
 
454
- 25) words : words word _
449
+ 10) name : von last COMMA first _
455
450
 
456
- $default reduce using rule 25 (words)
451
+ $default reduce using rule 10 (name)
457
452
 
458
453
 
459
454
  state 38
460
455
 
461
- 16) first : opt_words COMMA opt_words _
456
+ 18) first : opt_words COMMA _ opt_words
457
+
458
+ UWORD shift, and go to state 34
459
+ LWORD shift, and go to state 33
460
+ PWORD shift, and go to state 35
461
+ $default reduce using rule 25 (opt_words)
462
+
463
+ opt_words go to state 41
464
+ word go to state 31
465
+ words go to state 32
466
+
467
+ state 39
468
+
469
+ 24) words : words word _
470
+
471
+ $default reduce using rule 24 (words)
472
+
473
+
474
+ state 40
475
+
476
+ 11) name : u_words von last COMMA first _
477
+
478
+ $default reduce using rule 11 (name)
479
+
480
+
481
+ state 41
482
+
483
+ 18) first : opt_words COMMA opt_words _
462
484
 
463
- $default reduce using rule 16 (first)
485
+ $default reduce using rule 18 (first)
464
486