bibtex-ruby 1.3.11 → 1.3.12

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.

@@ -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