bibtex-ruby 1.3.11 → 1.3.12

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.

Potentially problematic release.


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

@@ -17,7 +17,6 @@
17
17
  #++
18
18
 
19
19
  require 'strscan'
20
- require 'forwardable'
21
20
 
22
21
  module BibTeX
23
22
 
@@ -26,13 +25,11 @@ module BibTeX
26
25
  #
27
26
  class Lexer
28
27
  extend Forwardable
29
- include Enumerable
30
28
 
31
29
  attr_reader :options, :stack, :mode, :scanner
32
30
  attr_writer :mode
33
31
 
34
32
  def_delegator :@scanner, :string, :data
35
- def_delegators :@stack, :each
36
33
 
37
34
  DEFAULTS = { :include => [:errors], :strict => true }.freeze
38
35
 
@@ -11,7 +11,7 @@ require 'strscan'
11
11
  module BibTeX
12
12
  class NameParser < Racc::Parser
13
13
 
14
- module_eval(<<'...end names.y/module_eval...', 'names.y', 78)
14
+ module_eval(<<'...end names.y/module_eval...', 'names.y', 94)
15
15
 
16
16
  def initialize(options = {})
17
17
  self.options.merge!(options)
@@ -104,18 +104,18 @@ module_eval(<<'...end names.y/module_eval...', 'names.y', 78)
104
104
  def scan_literal
105
105
  @brace_level = 1
106
106
 
107
- while @brace_level > 0
108
- @word[1] << @src.scan_until(/[\{\}]/o).to_s
109
-
110
- case @src.matched
111
- when '{'
112
- @brace_level += 1
113
- when '}'
114
- @brace_level -= 1
115
- else
116
- @brace_level = 0
117
- error_unbalanced
118
- end
107
+ while @brace_level > 0
108
+ @word[1] << @src.scan_until(/[\{\}]/o).to_s
109
+
110
+ case @src.matched
111
+ when '{'
112
+ @brace_level += 1
113
+ when '}'
114
+ @brace_level -= 1
115
+ else
116
+ @brace_level = 0
117
+ error_unbalanced
118
+ end
119
119
  end
120
120
  end
121
121
 
@@ -186,7 +186,7 @@ racc_goto_default = [
186
186
  racc_reduce_table = [
187
187
  0, 0, :racc_error,
188
188
  0, 9, :_reduce_1,
189
- 1, 9, :_reduce_2,
189
+ 1, 9, :_reduce_none,
190
190
  1, 10, :_reduce_3,
191
191
  3, 10, :_reduce_4,
192
192
  1, 11, :_reduce_5,
@@ -196,24 +196,24 @@ racc_reduce_table = [
196
196
  3, 11, :_reduce_9,
197
197
  4, 11, :_reduce_10,
198
198
  5, 11, :_reduce_11,
199
- 1, 14, :_reduce_12,
199
+ 1, 14, :_reduce_none,
200
200
  2, 14, :_reduce_13,
201
201
  3, 14, :_reduce_14,
202
- 1, 15, :_reduce_15,
203
- 1, 15, :_reduce_16,
202
+ 1, 15, :_reduce_none,
203
+ 1, 15, :_reduce_none,
204
204
  1, 16, :_reduce_17,
205
205
  3, 16, :_reduce_18,
206
- 1, 13, :_reduce_19,
206
+ 1, 13, :_reduce_none,
207
207
  2, 13, :_reduce_20,
208
- 1, 18, :_reduce_21,
209
- 1, 18, :_reduce_22,
210
- 1, 19, :_reduce_23,
208
+ 1, 18, :_reduce_none,
209
+ 1, 18, :_reduce_none,
210
+ 1, 19, :_reduce_none,
211
211
  2, 19, :_reduce_24,
212
- 0, 17, :_reduce_25,
213
- 1, 17, :_reduce_26,
214
- 1, 12, :_reduce_27,
215
- 1, 12, :_reduce_28,
216
- 1, 12, :_reduce_29 ]
212
+ 0, 17, :_reduce_none,
213
+ 1, 17, :_reduce_none,
214
+ 1, 12, :_reduce_none,
215
+ 1, 12, :_reduce_none,
216
+ 1, 12, :_reduce_none ]
217
217
 
218
218
  racc_reduce_n = 30
219
219
 
@@ -284,201 +284,143 @@ module_eval(<<'.,.,', 'names.y', 31)
284
284
  end
285
285
  .,.,
286
286
 
287
- module_eval(<<'.,.,', 'names.y', 32)
288
- def _reduce_2(val, _values, result)
289
- result = val[0]
290
- result
291
- end
292
- .,.,
287
+ # reduce 2 omitted
293
288
 
294
- module_eval(<<'.,.,', 'names.y', 34)
289
+ module_eval(<<'.,.,', 'names.y', 33)
295
290
  def _reduce_3(val, _values, result)
296
291
  result = [val[0]]
297
292
  result
298
293
  end
299
294
  .,.,
300
295
 
301
- module_eval(<<'.,.,', 'names.y', 35)
296
+ module_eval(<<'.,.,', 'names.y', 34)
302
297
  def _reduce_4(val, _values, result)
303
298
  result << val[2]
304
299
  result
305
300
  end
306
301
  .,.,
307
302
 
308
- module_eval(<<'.,.,', 'names.y', 37)
303
+ module_eval(<<'.,.,', 'names.y', 38)
309
304
  def _reduce_5(val, _values, result)
310
- result = Name.new(:last => val[0])
305
+ result = Name.new(:last => val[0])
306
+
311
307
  result
312
308
  end
313
309
  .,.,
314
310
 
315
- module_eval(<<'.,.,', 'names.y', 38)
311
+ module_eval(<<'.,.,', 'names.y', 42)
316
312
  def _reduce_6(val, _values, result)
317
- result = Name.new(:first => val[0], :last => val[1])
313
+ result = Name.new(:first => val[0], :last => val[1])
314
+
318
315
  result
319
316
  end
320
317
  .,.,
321
318
 
322
- module_eval(<<'.,.,', 'names.y', 39)
319
+ module_eval(<<'.,.,', 'names.y', 46)
323
320
  def _reduce_7(val, _values, result)
324
- result = Name.new(:first => val[0], :von => val[1], :last => val[2])
321
+ result = Name.new(:first => val[0], :von => val[1], :last => val[2])
322
+
325
323
  result
326
324
  end
327
325
  .,.,
328
326
 
329
- module_eval(<<'.,.,', 'names.y', 40)
327
+ module_eval(<<'.,.,', 'names.y', 50)
330
328
  def _reduce_8(val, _values, result)
331
- result = Name.new(:von => val[0], :last => val[1])
329
+ result = Name.new(:von => val[0], :last => val[1])
330
+
332
331
  result
333
332
  end
334
333
  .,.,
335
334
 
336
- module_eval(<<'.,.,', 'names.y', 41)
335
+ module_eval(<<'.,.,', 'names.y', 54)
337
336
  def _reduce_9(val, _values, result)
338
- result = Name.new(:last => val[0], :jr => val[2][0], :first => val[2][1])
337
+ result = Name.new(:last => val[0], :jr => val[2][0], :first => val[2][1])
338
+
339
339
  result
340
340
  end
341
341
  .,.,
342
342
 
343
- module_eval(<<'.,.,', 'names.y', 42)
343
+ module_eval(<<'.,.,', 'names.y', 58)
344
344
  def _reduce_10(val, _values, result)
345
- result = Name.new(:von => val[0], :last => val[1], :jr => val[3][0], :first => val[3][1])
345
+ result = Name.new(:von => val[0], :last => val[1], :jr => val[3][0], :first => val[3][1])
346
+
346
347
  result
347
348
  end
348
349
  .,.,
349
350
 
350
- module_eval(<<'.,.,', 'names.y', 43)
351
+ module_eval(<<'.,.,', 'names.y', 62)
351
352
  def _reduce_11(val, _values, result)
352
- result = Name.new(:von => val[0,2].join(' '), :last => val[2], :jr => val[4][0], :first => val[4][1])
353
+ result = Name.new(:von => val[0,2].join(' '), :last => val[2], :jr => val[4][0], :first => val[4][1])
354
+
353
355
  result
354
356
  end
355
357
  .,.,
356
358
 
357
- module_eval(<<'.,.,', 'names.y', 45)
358
- def _reduce_12(val, _values, result)
359
- result = val[0]
360
- result
361
- end
362
- .,.,
359
+ # reduce 12 omitted
363
360
 
364
- module_eval(<<'.,.,', 'names.y', 46)
361
+ module_eval(<<'.,.,', 'names.y', 67)
365
362
  def _reduce_13(val, _values, result)
366
363
  result = val.join(' ')
367
364
  result
368
365
  end
369
366
  .,.,
370
367
 
371
- module_eval(<<'.,.,', 'names.y', 47)
368
+ module_eval(<<'.,.,', 'names.y', 68)
372
369
  def _reduce_14(val, _values, result)
373
370
  result = val.join(' ')
374
371
  result
375
372
  end
376
373
  .,.,
377
374
 
378
- module_eval(<<'.,.,', 'names.y', 49)
379
- def _reduce_15(val, _values, result)
380
- result = val[0]
381
- result
382
- end
383
- .,.,
375
+ # reduce 15 omitted
384
376
 
385
- module_eval(<<'.,.,', 'names.y', 50)
386
- def _reduce_16(val, _values, result)
387
- result = val[0]
388
- result
389
- end
390
- .,.,
377
+ # reduce 16 omitted
391
378
 
392
- module_eval(<<'.,.,', 'names.y', 52)
379
+ module_eval(<<'.,.,', 'names.y', 72)
393
380
  def _reduce_17(val, _values, result)
394
381
  result = [nil,val[0]]
395
382
  result
396
383
  end
397
384
  .,.,
398
385
 
399
- module_eval(<<'.,.,', 'names.y', 53)
386
+ module_eval(<<'.,.,', 'names.y', 73)
400
387
  def _reduce_18(val, _values, result)
401
388
  result = [val[0],val[2]]
402
389
  result
403
390
  end
404
391
  .,.,
405
392
 
406
- module_eval(<<'.,.,', 'names.y', 55)
407
- def _reduce_19(val, _values, result)
408
- result = val[0]
409
- result
410
- end
411
- .,.,
393
+ # reduce 19 omitted
412
394
 
413
- module_eval(<<'.,.,', 'names.y', 56)
395
+ module_eval(<<'.,.,', 'names.y', 76)
414
396
  def _reduce_20(val, _values, result)
415
- result = val[0,2].join(' ')
397
+ result = val.join(' ')
416
398
  result
417
399
  end
418
400
  .,.,
419
401
 
420
- module_eval(<<'.,.,', 'names.y', 58)
421
- def _reduce_21(val, _values, result)
422
- result = val[0]
423
- result
424
- end
425
- .,.,
402
+ # reduce 21 omitted
426
403
 
427
- module_eval(<<'.,.,', 'names.y', 59)
428
- def _reduce_22(val, _values, result)
429
- result = val[0]
430
- result
431
- end
432
- .,.,
404
+ # reduce 22 omitted
433
405
 
434
- module_eval(<<'.,.,', 'names.y', 61)
435
- def _reduce_23(val, _values, result)
436
- result = val[0]
437
- result
438
- end
439
- .,.,
406
+ # reduce 23 omitted
440
407
 
441
- module_eval(<<'.,.,', 'names.y', 62)
408
+ module_eval(<<'.,.,', 'names.y', 81)
442
409
  def _reduce_24(val, _values, result)
443
- result = val[0,2].join(' ')
410
+ result = val.join(' ')
444
411
  result
445
412
  end
446
413
  .,.,
447
414
 
448
- module_eval(<<'.,.,', 'names.y', 64)
449
- def _reduce_25(val, _values, result)
450
- result = nil
451
- result
452
- end
453
- .,.,
415
+ # reduce 25 omitted
454
416
 
455
- module_eval(<<'.,.,', 'names.y', 65)
456
- def _reduce_26(val, _values, result)
457
- result = val[0]
458
- result
459
- end
460
- .,.,
417
+ # reduce 26 omitted
461
418
 
462
- module_eval(<<'.,.,', 'names.y', 67)
463
- def _reduce_27(val, _values, result)
464
- result = val[0]
465
- result
466
- end
467
- .,.,
419
+ # reduce 27 omitted
468
420
 
469
- module_eval(<<'.,.,', 'names.y', 68)
470
- def _reduce_28(val, _values, result)
471
- result = val[0]
472
- result
473
- end
474
- .,.,
421
+ # reduce 28 omitted
475
422
 
476
- module_eval(<<'.,.,', 'names.y', 69)
477
- def _reduce_29(val, _values, result)
478
- result = val[0]
479
- result
480
- end
481
- .,.,
423
+ # reduce 29 omitted
482
424
 
483
425
  def _reduce_none(val, _values, result)
484
426
  val[0]
@@ -16,7 +16,7 @@
16
16
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  #++
18
18
  #
19
- # A BibTeX grammar for the parser generator +racc+
19
+ # A BibTeX Names grammar for the parser generator +racc+
20
20
  #
21
21
 
22
22
  # -*- racc -*-
@@ -29,45 +29,61 @@ expect 0
29
29
 
30
30
  rule
31
31
 
32
- result : { result = [] }
33
- | names { result = val[0] }
32
+ result : { result = [] } | names
34
33
 
35
- names : name { result = [val[0]] }
36
- | names AND name { result << val[2] }
34
+ names : name { result = [val[0]] }
35
+ | names AND name { result << val[2] }
37
36
 
38
- name : word { result = Name.new(:last => val[0]) }
39
- | u_words word { result = Name.new(:first => val[0], :last => val[1]) }
40
- | u_words von last { result = Name.new(:first => val[0], :von => val[1], :last => val[2]) }
41
- | von last { result = Name.new(:von => val[0], :last => val[1]) }
42
- | last COMMA first { result = Name.new(:last => val[0], :jr => val[2][0], :first => val[2][1]) }
43
- | von last COMMA first { result = Name.new(:von => val[0], :last => val[1], :jr => val[3][0], :first => val[3][1]) }
44
- | u_words von last COMMA first { result = Name.new(:von => val[0,2].join(' '), :last => val[2], :jr => val[4][0], :first => val[4][1]) }
45
-
46
- von : LWORD { result = val[0] }
47
- | von LWORD { result = val.join(' ') }
48
- | von u_words LWORD { result = val.join(' ') }
49
-
50
- last : LWORD { result = val[0] }
51
- | u_words { result = val[0] }
37
+ name : word
38
+ {
39
+ result = Name.new(:last => val[0])
40
+ }
41
+ | u_words word
42
+ {
43
+ result = Name.new(:first => val[0], :last => val[1])
44
+ }
45
+ | u_words von last
46
+ {
47
+ result = Name.new(:first => val[0], :von => val[1], :last => val[2])
48
+ }
49
+ | von last
50
+ {
51
+ result = Name.new(:von => val[0], :last => val[1])
52
+ }
53
+ | last COMMA first
54
+ {
55
+ result = Name.new(:last => val[0], :jr => val[2][0], :first => val[2][1])
56
+ }
57
+ | von last COMMA first
58
+ {
59
+ result = Name.new(:von => val[0], :last => val[1], :jr => val[3][0], :first => val[3][1])
60
+ }
61
+ | u_words von last COMMA first
62
+ {
63
+ result = Name.new(:von => val[0,2].join(' '), :last => val[2], :jr => val[4][0], :first => val[4][1])
64
+ }
65
+ ;
66
+
67
+ von : LWORD
68
+ | von LWORD { result = val.join(' ') }
69
+ | von u_words LWORD { result = val.join(' ') }
70
+
71
+ last : LWORD | u_words
52
72
 
53
- first : opt_words { result = [nil,val[0]] }
54
- | opt_words COMMA opt_words { result = [val[0],val[2]] }
73
+ first : opt_words { result = [nil,val[0]] }
74
+ | opt_words COMMA opt_words { result = [val[0],val[2]] }
55
75
 
56
- u_words : u_word { result = val[0] }
57
- | u_words u_word { result = val[0,2].join(' ') }
76
+ u_words : u_word
77
+ | u_words u_word { result = val.join(' ') }
58
78
 
59
- u_word : UWORD { result = val[0] }
60
- | PWORD { result = val[0] }
79
+ u_word : UWORD | PWORD
61
80
 
62
- words : word { result = val[0] }
63
- | words word { result = val[0,2].join(' ') }
81
+ words : word
82
+ | words word { result = val.join(' ') }
64
83
 
65
- opt_words : { result = nil }
66
- | words { result = val[0] }
84
+ opt_words : /* empty */ | words
67
85
 
68
- word : LWORD { result = val[0] }
69
- | UWORD { result = val[0] }
70
- | PWORD { result = val[0] }
86
+ word : LWORD | UWORD | PWORD
71
87
 
72
88
  end
73
89
 
@@ -167,18 +183,18 @@ require 'strscan'
167
183
  def scan_literal
168
184
  @brace_level = 1
169
185
 
170
- while @brace_level > 0
171
- @word[1] << @src.scan_until(/[\{\}]/o).to_s
172
-
173
- case @src.matched
174
- when '{'
175
- @brace_level += 1
176
- when '}'
177
- @brace_level -= 1
178
- else
179
- @brace_level = 0
180
- error_unbalanced
181
- end
186
+ while @brace_level > 0
187
+ @word[1] << @src.scan_until(/[\{\}]/o).to_s
188
+
189
+ case @src.matched
190
+ when '{'
191
+ @brace_level += 1
192
+ when '}'
193
+ @brace_level -= 1
194
+ else
195
+ @brace_level = 0
196
+ error_unbalanced
197
+ end
182
198
  end
183
199
  end
184
200