bibtex-ruby 1.3.5 → 1.3.6
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.
- data/Gemfile.lock +4 -2
- data/History.txt +5 -0
- data/Manifest +4 -0
- data/README.md +9 -12
- data/bibtex-ruby.gemspec +1 -0
- data/features/issues/braced_strings.feature +48 -0
- data/features/issues/trailing_comma.feature +21 -0
- data/features/step_definitions/bibtex_steps.rb +9 -1
- data/features/strings.feature +1 -0
- data/lib/bibtex/bibliography.rb +25 -22
- data/lib/bibtex/bibtex.y +11 -23
- data/lib/bibtex/elements.rb +11 -13
- data/lib/bibtex/entry.rb +4 -2
- data/lib/bibtex/lexer.rb +142 -163
- data/lib/bibtex/names.rb +10 -10
- data/lib/bibtex/parser.output +135 -132
- data/lib/bibtex/parser.rb +69 -81
- data/lib/bibtex/utilities.rb +1 -1
- data/lib/bibtex/version.rb +1 -1
- data/test/bibtex/test_lexer.rb +11 -0
- data/test/fixtures/benchmark.bib +1 -1
- data/test/profile.dot +129 -74
- data/test/profile.rb +4 -2
- metadata +18 -3
data/lib/bibtex/names.rb
CHANGED
@@ -124,13 +124,13 @@ module BibTeX
|
|
124
124
|
[prefix, last, first, suffix].compact.join(' ')
|
125
125
|
end
|
126
126
|
|
127
|
-
alias
|
127
|
+
alias display display_order
|
128
128
|
|
129
129
|
def sort_order
|
130
130
|
[[prefix,last].compact.join(' '), suffix, first].compact.join(', ')
|
131
131
|
end
|
132
132
|
|
133
|
-
alias
|
133
|
+
alias to_s sort_order
|
134
134
|
|
135
135
|
def <=>(other)
|
136
136
|
other.is_a?(Name) ? [last, prefix, first, suffix].compact.join(' ') <=> [other.last, other.prefix, other.first, other.suffix].compact.join(' ') : super
|
@@ -158,14 +158,14 @@ module BibTeX
|
|
158
158
|
hash
|
159
159
|
end
|
160
160
|
|
161
|
-
alias
|
162
|
-
alias
|
163
|
-
alias
|
164
|
-
alias
|
165
|
-
alias
|
166
|
-
alias
|
167
|
-
alias
|
168
|
-
alias
|
161
|
+
alias family last
|
162
|
+
alias family= last=
|
163
|
+
alias given first
|
164
|
+
alias given= first=
|
165
|
+
alias jr suffix
|
166
|
+
alias jr= suffix=
|
167
|
+
alias von prefix
|
168
|
+
alias von= prefix=
|
169
169
|
|
170
170
|
end
|
171
171
|
end
|
data/lib/bibtex/parser.output
CHANGED
@@ -22,20 +22,20 @@ rule 17 string_assignment: NAME EQ string_value
|
|
22
22
|
rule 18 string_value: string_literal
|
23
23
|
rule 19 string_value: string_value SHARP string_literal
|
24
24
|
rule 20 string_literal: NAME
|
25
|
-
rule 21 string_literal:
|
26
|
-
rule 22
|
27
|
-
rule 23 entry: entry_head assignments
|
28
|
-
rule 24 entry: entry_head RBRACE
|
29
|
-
rule 25
|
30
|
-
rule 26
|
31
|
-
rule 27 key:
|
32
|
-
rule 28 key: NUMBER
|
33
|
-
rule 29
|
34
|
-
rule 30 assignments:
|
35
|
-
rule 31
|
36
|
-
rule 32
|
37
|
-
rule 33 value:
|
38
|
-
rule 34 value:
|
25
|
+
rule 21 string_literal: LBRACE content RBRACE
|
26
|
+
rule 22 string_literal: STRING_LITERAL
|
27
|
+
rule 23 entry: entry_head assignments RBRACE
|
28
|
+
rule 24 entry: entry_head assignments COMMA RBRACE
|
29
|
+
rule 25 entry: entry_head RBRACE
|
30
|
+
rule 26 entry_head: NAME LBRACE key COMMA
|
31
|
+
rule 27 key: NAME
|
32
|
+
rule 28 key: NUMBER
|
33
|
+
rule 29 key: NUMBER NAME
|
34
|
+
rule 30 assignments: assignment
|
35
|
+
rule 31 assignments: assignments COMMA assignment
|
36
|
+
rule 32 assignment: NAME EQ value
|
37
|
+
rule 33 value: string_value
|
38
|
+
rule 34 value: NUMBER
|
39
39
|
|
40
40
|
------- Symbols -------
|
41
41
|
|
@@ -67,54 +67,54 @@ rule 34 value: LBRACE content RBRACE
|
|
67
67
|
on left : 15
|
68
68
|
entry (25)
|
69
69
|
on right: 11
|
70
|
-
on left :
|
70
|
+
on left : 23 24 25
|
71
71
|
content (26)
|
72
|
-
on right: 12
|
72
|
+
on right: 12 21
|
73
73
|
on left : 13 14
|
74
74
|
string_value (27)
|
75
|
-
on right: 15 17 19
|
75
|
+
on right: 15 17 19 33
|
76
76
|
on left : 18 19
|
77
77
|
string_assignment (28)
|
78
78
|
on right: 16
|
79
79
|
on left : 17
|
80
80
|
string_literal (29)
|
81
81
|
on right: 18 19
|
82
|
-
on left : 20 21
|
82
|
+
on left : 20 21 22
|
83
83
|
entry_head (30)
|
84
|
-
on right:
|
85
|
-
on left :
|
84
|
+
on right: 23 24 25
|
85
|
+
on left : 26
|
86
86
|
assignments (31)
|
87
|
-
on right:
|
88
|
-
on left :
|
87
|
+
on right: 23 24 31
|
88
|
+
on left : 30 31
|
89
89
|
key (32)
|
90
|
-
on right:
|
91
|
-
on left :
|
90
|
+
on right: 26
|
91
|
+
on left : 27 28 29
|
92
92
|
assignment (33)
|
93
|
-
on right:
|
94
|
-
on left :
|
93
|
+
on right: 30 31
|
94
|
+
on left : 32
|
95
95
|
value (34)
|
96
|
-
on right:
|
97
|
-
on left :
|
96
|
+
on right: 32
|
97
|
+
on left : 33 34
|
98
98
|
|
99
99
|
**Terminals, with rules where they appear
|
100
100
|
|
101
101
|
$end (0)
|
102
102
|
error (1)
|
103
103
|
AT (2) 5
|
104
|
-
COMMA (3)
|
104
|
+
COMMA (3) 24 26 31
|
105
105
|
COMMENT (4) 12
|
106
106
|
CONTENT (5) 14
|
107
107
|
ERROR (6) 7
|
108
|
-
EQ (7) 17
|
109
|
-
LBRACE (8) 12 15 16
|
108
|
+
EQ (7) 17 32
|
109
|
+
LBRACE (8) 12 15 16 21 26
|
110
110
|
META_CONTENT (9) 6
|
111
|
-
NAME (10) 17 20
|
112
|
-
NUMBER (11)
|
111
|
+
NAME (10) 17 20 26 27 29 32
|
112
|
+
NUMBER (11) 28 29 34
|
113
113
|
PREAMBLE (12) 15
|
114
|
-
RBRACE (13) 12 15 16
|
114
|
+
RBRACE (13) 12 15 16 21 23 24 25
|
115
115
|
SHARP (14) 19
|
116
116
|
STRING (15) 16
|
117
|
-
STRING_LITERAL (16)
|
117
|
+
STRING_LITERAL (16) 22
|
118
118
|
|
119
119
|
--------- State ---------
|
120
120
|
|
@@ -256,9 +256,9 @@ state 16
|
|
256
256
|
|
257
257
|
state 17
|
258
258
|
|
259
|
-
|
260
|
-
|
261
|
-
|
259
|
+
23) entry : entry_head _ assignments RBRACE
|
260
|
+
24) entry : entry_head _ assignments COMMA RBRACE
|
261
|
+
25) entry : entry_head _ RBRACE
|
262
262
|
|
263
263
|
NAME shift, and go to state 26
|
264
264
|
RBRACE shift, and go to state 24
|
@@ -268,7 +268,7 @@ state 17
|
|
268
268
|
|
269
269
|
state 18
|
270
270
|
|
271
|
-
|
271
|
+
26) entry_head : NAME _ LBRACE key COMMA
|
272
272
|
|
273
273
|
LBRACE shift, and go to state 27
|
274
274
|
|
@@ -292,8 +292,9 @@ state 21
|
|
292
292
|
|
293
293
|
15) preamble : PREAMBLE LBRACE _ string_value RBRACE
|
294
294
|
|
295
|
+
LBRACE shift, and go to state 33
|
295
296
|
NAME shift, and go to state 32
|
296
|
-
STRING_LITERAL shift, and go to state
|
297
|
+
STRING_LITERAL shift, and go to state 34
|
297
298
|
|
298
299
|
string_value go to state 30
|
299
300
|
string_literal go to state 31
|
@@ -302,55 +303,55 @@ state 22
|
|
302
303
|
|
303
304
|
16) string : STRING LBRACE _ string_assignment RBRACE
|
304
305
|
|
305
|
-
NAME shift, and go to state
|
306
|
+
NAME shift, and go to state 36
|
306
307
|
|
307
|
-
string_assignment go to state
|
308
|
+
string_assignment go to state 35
|
308
309
|
|
309
310
|
state 23
|
310
311
|
|
311
|
-
|
312
|
-
|
313
|
-
|
312
|
+
23) entry : entry_head assignments _ RBRACE
|
313
|
+
24) entry : entry_head assignments _ COMMA RBRACE
|
314
|
+
31) assignments : assignments _ COMMA assignment
|
314
315
|
|
315
|
-
COMMA shift, and go to state
|
316
|
-
RBRACE shift, and go to state
|
316
|
+
COMMA shift, and go to state 38
|
317
|
+
RBRACE shift, and go to state 37
|
317
318
|
|
318
319
|
|
319
320
|
state 24
|
320
321
|
|
321
|
-
|
322
|
+
25) entry : entry_head RBRACE _
|
322
323
|
|
323
|
-
$default reduce using rule
|
324
|
+
$default reduce using rule 25 (entry)
|
324
325
|
|
325
326
|
|
326
327
|
state 25
|
327
328
|
|
328
|
-
|
329
|
+
30) assignments : assignment _
|
329
330
|
|
330
|
-
$default reduce using rule
|
331
|
+
$default reduce using rule 30 (assignments)
|
331
332
|
|
332
333
|
|
333
334
|
state 26
|
334
335
|
|
335
|
-
|
336
|
+
32) assignment : NAME _ EQ value
|
336
337
|
|
337
|
-
EQ shift, and go to state
|
338
|
+
EQ shift, and go to state 39
|
338
339
|
|
339
340
|
|
340
341
|
state 27
|
341
342
|
|
342
|
-
|
343
|
+
26) entry_head : NAME LBRACE _ key COMMA
|
343
344
|
|
344
|
-
NAME shift, and go to state
|
345
|
-
NUMBER shift, and go to state
|
345
|
+
NAME shift, and go to state 41
|
346
|
+
NUMBER shift, and go to state 42
|
346
347
|
|
347
|
-
key go to state
|
348
|
+
key go to state 40
|
348
349
|
|
349
350
|
state 28
|
350
351
|
|
351
352
|
12) comment : COMMENT LBRACE content _ RBRACE
|
352
353
|
|
353
|
-
RBRACE shift, and go to state
|
354
|
+
RBRACE shift, and go to state 43
|
354
355
|
|
355
356
|
|
356
357
|
state 29
|
@@ -365,8 +366,8 @@ state 30
|
|
365
366
|
15) preamble : PREAMBLE LBRACE string_value _ RBRACE
|
366
367
|
19) string_value : string_value _ SHARP string_literal
|
367
368
|
|
368
|
-
RBRACE shift, and go to state
|
369
|
-
SHARP shift, and go to state
|
369
|
+
RBRACE shift, and go to state 44
|
370
|
+
SHARP shift, and go to state 45
|
370
371
|
|
371
372
|
|
372
373
|
state 31
|
@@ -385,204 +386,206 @@ state 32
|
|
385
386
|
|
386
387
|
state 33
|
387
388
|
|
388
|
-
21) string_literal :
|
389
|
+
21) string_literal : LBRACE _ content RBRACE
|
389
390
|
|
390
|
-
|
391
|
+
CONTENT shift, and go to state 29
|
392
|
+
$default reduce using rule 13 (content)
|
391
393
|
|
394
|
+
content go to state 46
|
392
395
|
|
393
396
|
state 34
|
394
397
|
|
395
|
-
|
398
|
+
22) string_literal : STRING_LITERAL _
|
396
399
|
|
397
|
-
|
400
|
+
$default reduce using rule 22 (string_literal)
|
398
401
|
|
399
402
|
|
400
403
|
state 35
|
401
404
|
|
402
|
-
|
405
|
+
16) string : STRING LBRACE string_assignment _ RBRACE
|
403
406
|
|
404
|
-
|
407
|
+
RBRACE shift, and go to state 47
|
405
408
|
|
406
409
|
|
407
410
|
state 36
|
408
411
|
|
409
|
-
|
412
|
+
17) string_assignment : NAME _ EQ string_value
|
410
413
|
|
411
|
-
|
414
|
+
EQ shift, and go to state 48
|
412
415
|
|
413
416
|
|
414
417
|
state 37
|
415
418
|
|
416
|
-
23) entry : entry_head assignments
|
417
|
-
30) assignments : assignments COMMA _ assignment
|
419
|
+
23) entry : entry_head assignments RBRACE _
|
418
420
|
|
419
|
-
|
420
|
-
RBRACE shift, and go to state 47
|
421
|
+
$default reduce using rule 23 (entry)
|
421
422
|
|
422
|
-
assignment go to state 48
|
423
423
|
|
424
424
|
state 38
|
425
425
|
|
426
|
-
|
426
|
+
24) entry : entry_head assignments COMMA _ RBRACE
|
427
|
+
31) assignments : assignments COMMA _ assignment
|
427
428
|
|
428
|
-
|
429
|
-
|
430
|
-
NUMBER shift, and go to state 51
|
431
|
-
STRING_LITERAL shift, and go to state 33
|
429
|
+
NAME shift, and go to state 26
|
430
|
+
RBRACE shift, and go to state 49
|
432
431
|
|
433
|
-
|
434
|
-
string_value go to state 49
|
435
|
-
value go to state 50
|
432
|
+
assignment go to state 50
|
436
433
|
|
437
434
|
state 39
|
438
435
|
|
439
|
-
|
436
|
+
32) assignment : NAME EQ _ value
|
440
437
|
|
441
|
-
|
438
|
+
LBRACE shift, and go to state 33
|
439
|
+
NAME shift, and go to state 32
|
440
|
+
NUMBER shift, and go to state 53
|
441
|
+
STRING_LITERAL shift, and go to state 34
|
442
442
|
|
443
|
+
string_literal go to state 31
|
444
|
+
string_value go to state 51
|
445
|
+
value go to state 52
|
443
446
|
|
444
447
|
state 40
|
445
448
|
|
446
|
-
26)
|
449
|
+
26) entry_head : NAME LBRACE key _ COMMA
|
447
450
|
|
448
|
-
|
451
|
+
COMMA shift, and go to state 54
|
449
452
|
|
450
453
|
|
451
454
|
state 41
|
452
455
|
|
453
|
-
27) key :
|
454
|
-
28) key : NUMBER _ NAME
|
456
|
+
27) key : NAME _
|
455
457
|
|
456
|
-
NAME shift, and go to state 54
|
457
458
|
$default reduce using rule 27 (key)
|
458
459
|
|
459
460
|
|
460
461
|
state 42
|
461
462
|
|
462
|
-
|
463
|
+
28) key : NUMBER _
|
464
|
+
29) key : NUMBER _ NAME
|
463
465
|
|
464
|
-
|
466
|
+
NAME shift, and go to state 55
|
467
|
+
$default reduce using rule 28 (key)
|
465
468
|
|
466
469
|
|
467
470
|
state 43
|
468
471
|
|
469
|
-
|
472
|
+
12) comment : COMMENT LBRACE content RBRACE _
|
470
473
|
|
471
|
-
$default reduce using rule
|
474
|
+
$default reduce using rule 12 (comment)
|
472
475
|
|
473
476
|
|
474
477
|
state 44
|
475
478
|
|
476
|
-
|
479
|
+
15) preamble : PREAMBLE LBRACE string_value RBRACE _
|
477
480
|
|
478
|
-
|
479
|
-
STRING_LITERAL shift, and go to state 33
|
481
|
+
$default reduce using rule 15 (preamble)
|
480
482
|
|
481
|
-
string_literal go to state 55
|
482
483
|
|
483
484
|
state 45
|
484
485
|
|
485
|
-
|
486
|
+
19) string_value : string_value SHARP _ string_literal
|
486
487
|
|
487
|
-
|
488
|
+
LBRACE shift, and go to state 33
|
489
|
+
NAME shift, and go to state 32
|
490
|
+
STRING_LITERAL shift, and go to state 34
|
488
491
|
|
492
|
+
string_literal go to state 56
|
489
493
|
|
490
494
|
state 46
|
491
495
|
|
492
|
-
|
496
|
+
21) string_literal : LBRACE content _ RBRACE
|
493
497
|
|
494
|
-
|
495
|
-
STRING_LITERAL shift, and go to state 33
|
498
|
+
RBRACE shift, and go to state 57
|
496
499
|
|
497
|
-
string_value go to state 56
|
498
|
-
string_literal go to state 31
|
499
500
|
|
500
501
|
state 47
|
501
502
|
|
502
|
-
|
503
|
+
16) string : STRING LBRACE string_assignment RBRACE _
|
503
504
|
|
504
|
-
$default reduce using rule
|
505
|
+
$default reduce using rule 16 (string)
|
505
506
|
|
506
507
|
|
507
508
|
state 48
|
508
509
|
|
509
|
-
|
510
|
+
17) string_assignment : NAME EQ _ string_value
|
510
511
|
|
511
|
-
|
512
|
+
LBRACE shift, and go to state 33
|
513
|
+
NAME shift, and go to state 32
|
514
|
+
STRING_LITERAL shift, and go to state 34
|
512
515
|
|
516
|
+
string_value go to state 58
|
517
|
+
string_literal go to state 31
|
513
518
|
|
514
519
|
state 49
|
515
520
|
|
516
|
-
|
517
|
-
32) value : string_value _
|
521
|
+
24) entry : entry_head assignments COMMA RBRACE _
|
518
522
|
|
519
|
-
|
520
|
-
$default reduce using rule 32 (value)
|
523
|
+
$default reduce using rule 24 (entry)
|
521
524
|
|
522
525
|
|
523
526
|
state 50
|
524
527
|
|
525
|
-
31)
|
528
|
+
31) assignments : assignments COMMA assignment _
|
526
529
|
|
527
|
-
$default reduce using rule 31 (
|
530
|
+
$default reduce using rule 31 (assignments)
|
528
531
|
|
529
532
|
|
530
533
|
state 51
|
531
534
|
|
532
|
-
|
535
|
+
19) string_value : string_value _ SHARP string_literal
|
536
|
+
33) value : string_value _
|
533
537
|
|
538
|
+
SHARP shift, and go to state 45
|
534
539
|
$default reduce using rule 33 (value)
|
535
540
|
|
536
541
|
|
537
542
|
state 52
|
538
543
|
|
539
|
-
|
544
|
+
32) assignment : NAME EQ value _
|
540
545
|
|
541
|
-
|
542
|
-
$default reduce using rule 13 (content)
|
546
|
+
$default reduce using rule 32 (assignment)
|
543
547
|
|
544
|
-
content go to state 57
|
545
548
|
|
546
549
|
state 53
|
547
550
|
|
548
|
-
|
551
|
+
34) value : NUMBER _
|
549
552
|
|
550
|
-
$default reduce using rule
|
553
|
+
$default reduce using rule 34 (value)
|
551
554
|
|
552
555
|
|
553
556
|
state 54
|
554
557
|
|
555
|
-
|
558
|
+
26) entry_head : NAME LBRACE key COMMA _
|
556
559
|
|
557
|
-
$default reduce using rule
|
560
|
+
$default reduce using rule 26 (entry_head)
|
558
561
|
|
559
562
|
|
560
563
|
state 55
|
561
564
|
|
562
|
-
|
565
|
+
29) key : NUMBER NAME _
|
563
566
|
|
564
|
-
$default reduce using rule
|
567
|
+
$default reduce using rule 29 (key)
|
565
568
|
|
566
569
|
|
567
570
|
state 56
|
568
571
|
|
569
|
-
|
570
|
-
19) string_value : string_value _ SHARP string_literal
|
572
|
+
19) string_value : string_value SHARP string_literal _
|
571
573
|
|
572
|
-
|
573
|
-
$default reduce using rule 17 (string_assignment)
|
574
|
+
$default reduce using rule 19 (string_value)
|
574
575
|
|
575
576
|
|
576
577
|
state 57
|
577
578
|
|
578
|
-
|
579
|
+
21) string_literal : LBRACE content RBRACE _
|
579
580
|
|
580
|
-
|
581
|
+
$default reduce using rule 21 (string_literal)
|
581
582
|
|
582
583
|
|
583
584
|
state 58
|
584
585
|
|
585
|
-
|
586
|
+
17) string_assignment : NAME EQ string_value _
|
587
|
+
19) string_value : string_value _ SHARP string_literal
|
586
588
|
|
587
|
-
|
589
|
+
SHARP shift, and go to state 45
|
590
|
+
$default reduce using rule 17 (string_assignment)
|
588
591
|
|