biodiversity 3.1.7 → 3.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +2 -0
- data/biodiversity.gemspec +1 -1
- data/lib/biodiversity/parser/scientific_name_canonical.rb +10 -21
- data/lib/biodiversity/parser/scientific_name_clean.rb +629 -919
- data/lib/biodiversity/parser/scientific_name_dirty.rb +54 -82
- data/lib/biodiversity/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1655d5f7cba11e28f66fec5bf3e0b82e118e637
|
4
|
+
data.tar.gz: f499f992128929e495f79632bd43aef993297fcc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 221cfe8f65d0eec4c1d3c01b82156000c8ea9f01dabe2771571a1f0fbda76e7bf4cd16147be572cd958f67c2dc0add2665e8ead43fc9ad1b6677766326f1ae25
|
7
|
+
data.tar.gz: 670e24f41c5ef54a830f9e3299e6999b8ba162fcb3ca16430f56f501464be5ec6f6ff00068a87e8296600565558af14315b2b01d9ca3884a7af05b6f9c75569c
|
data/CHANGELOG
CHANGED
data/biodiversity.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.executables = ["nnparse", "parserver"]
|
17
17
|
gem.require_paths = ["lib"]
|
18
18
|
|
19
|
-
gem.add_runtime_dependency "treetop", "~> 1.4"
|
19
|
+
gem.add_runtime_dependency "treetop", "~> 1.4.1"
|
20
20
|
gem.add_runtime_dependency "parallel", "~> 1.4"
|
21
21
|
gem.add_runtime_dependency "unicode_utils", "~> 1.4"
|
22
22
|
|
@@ -44,7 +44,7 @@ module ScientificNameCanonical
|
|
44
44
|
if node_cache[:root].has_key?(index)
|
45
45
|
cached = node_cache[:root][index]
|
46
46
|
if cached
|
47
|
-
|
47
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
48
48
|
@index = cached.interval.end
|
49
49
|
end
|
50
50
|
return cached
|
@@ -54,13 +54,11 @@ module ScientificNameCanonical
|
|
54
54
|
r1 = _nt_multinomial_with_garbage
|
55
55
|
r1.extend(Root0)
|
56
56
|
if r1
|
57
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
58
57
|
r0 = r1
|
59
58
|
else
|
60
59
|
r2 = _nt_uninomial_with_garbage
|
61
60
|
r2.extend(Root1)
|
62
61
|
if r2
|
63
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
64
62
|
r0 = r2
|
65
63
|
else
|
66
64
|
@index = i0
|
@@ -194,7 +192,7 @@ module ScientificNameCanonical
|
|
194
192
|
if node_cache[:multinomial_with_garbage].has_key?(index)
|
195
193
|
cached = node_cache[:multinomial_with_garbage][index]
|
196
194
|
if cached
|
197
|
-
|
195
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
198
196
|
@index = cached.interval.end
|
199
197
|
end
|
200
198
|
return cached
|
@@ -233,7 +231,6 @@ module ScientificNameCanonical
|
|
233
231
|
r1 = nil
|
234
232
|
end
|
235
233
|
if r1
|
236
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
237
234
|
r0 = r1
|
238
235
|
else
|
239
236
|
i8, s8 = index, []
|
@@ -260,7 +257,6 @@ module ScientificNameCanonical
|
|
260
257
|
r8 = nil
|
261
258
|
end
|
262
259
|
if r8
|
263
|
-
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
264
260
|
r0 = r8
|
265
261
|
else
|
266
262
|
i13, s13 = index, []
|
@@ -287,7 +283,6 @@ module ScientificNameCanonical
|
|
287
283
|
r13 = nil
|
288
284
|
end
|
289
285
|
if r13
|
290
|
-
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
291
286
|
r0 = r13
|
292
287
|
else
|
293
288
|
@index = i0
|
@@ -334,7 +329,7 @@ module ScientificNameCanonical
|
|
334
329
|
if node_cache[:uninomial_with_garbage].has_key?(index)
|
335
330
|
cached = node_cache[:uninomial_with_garbage][index]
|
336
331
|
if cached
|
337
|
-
|
332
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
338
333
|
@index = cached.interval.end
|
339
334
|
end
|
340
335
|
return cached
|
@@ -391,7 +386,7 @@ module ScientificNameCanonical
|
|
391
386
|
if node_cache[:garbage].has_key?(index)
|
392
387
|
cached = node_cache[:garbage][index]
|
393
388
|
if cached
|
394
|
-
|
389
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
395
390
|
@index = cached.interval.end
|
396
391
|
end
|
397
392
|
return cached
|
@@ -402,9 +397,9 @@ module ScientificNameCanonical
|
|
402
397
|
r2 = _nt_space
|
403
398
|
s1 << r2
|
404
399
|
if r2
|
405
|
-
if
|
406
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
407
|
-
@index +=
|
400
|
+
if has_terminal?("$$g@rbg3$$", false, index)
|
401
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 10))
|
402
|
+
@index += 10
|
408
403
|
else
|
409
404
|
terminal_parse_failure("$$g@rbg3$$")
|
410
405
|
r3 = nil
|
@@ -419,18 +414,16 @@ module ScientificNameCanonical
|
|
419
414
|
r1 = nil
|
420
415
|
end
|
421
416
|
if r1
|
422
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
423
417
|
r0 = r1
|
424
418
|
else
|
425
419
|
i4, s4 = index, []
|
426
420
|
r5 = _nt_space
|
427
421
|
s4 << r5
|
428
422
|
if r5
|
429
|
-
if has_terminal?(
|
423
|
+
if has_terminal?('\G["\',.]', true, index)
|
430
424
|
r6 = true
|
431
425
|
@index += 1
|
432
426
|
else
|
433
|
-
terminal_parse_failure('["\',.]')
|
434
427
|
r6 = nil
|
435
428
|
end
|
436
429
|
s4 << r6
|
@@ -440,11 +433,10 @@ module ScientificNameCanonical
|
|
440
433
|
if r7
|
441
434
|
s8, i8 = [], index
|
442
435
|
loop do
|
443
|
-
if has_terminal?(
|
436
|
+
if has_terminal?('\G[^щ]', true, index)
|
444
437
|
r9 = true
|
445
438
|
@index += 1
|
446
439
|
else
|
447
|
-
terminal_parse_failure('[^щ]')
|
448
440
|
r9 = nil
|
449
441
|
end
|
450
442
|
if r9
|
@@ -466,7 +458,6 @@ module ScientificNameCanonical
|
|
466
458
|
r4 = nil
|
467
459
|
end
|
468
460
|
if r4
|
469
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
470
461
|
r0 = r4
|
471
462
|
else
|
472
463
|
i10, s10 = index, []
|
@@ -475,11 +466,10 @@ module ScientificNameCanonical
|
|
475
466
|
if r11
|
476
467
|
s12, i12 = [], index
|
477
468
|
loop do
|
478
|
-
if has_terminal?(
|
469
|
+
if has_terminal?('\G[^ш]', true, index)
|
479
470
|
r13 = true
|
480
471
|
@index += 1
|
481
472
|
else
|
482
|
-
terminal_parse_failure('[^ш]')
|
483
473
|
r13 = nil
|
484
474
|
end
|
485
475
|
if r13
|
@@ -504,7 +494,6 @@ module ScientificNameCanonical
|
|
504
494
|
r10 = nil
|
505
495
|
end
|
506
496
|
if r10
|
507
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
508
497
|
r0 = r10
|
509
498
|
else
|
510
499
|
@index = i0
|
@@ -56,7 +56,7 @@ module ScientificNameClean
|
|
56
56
|
if node_cache[:root].has_key?(index)
|
57
57
|
cached = node_cache[:root][index]
|
58
58
|
if cached
|
59
|
-
|
59
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
60
60
|
@index = cached.interval.end
|
61
61
|
end
|
62
62
|
return cached
|
@@ -180,7 +180,7 @@ module ScientificNameClean
|
|
180
180
|
if node_cache[:scientific_name_5].has_key?(index)
|
181
181
|
cached = node_cache[:scientific_name_5][index]
|
182
182
|
if cached
|
183
|
-
|
183
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
184
184
|
@index = cached.interval.end
|
185
185
|
end
|
186
186
|
return cached
|
@@ -215,7 +215,6 @@ module ScientificNameClean
|
|
215
215
|
r1 = nil
|
216
216
|
end
|
217
217
|
if r1
|
218
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
219
218
|
r0 = r1
|
220
219
|
else
|
221
220
|
i7, s7 = index, []
|
@@ -246,12 +245,10 @@ module ScientificNameClean
|
|
246
245
|
r7 = nil
|
247
246
|
end
|
248
247
|
if r7
|
249
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
250
248
|
r0 = r7
|
251
249
|
else
|
252
250
|
r13 = _nt_scientific_name_4
|
253
251
|
if r13
|
254
|
-
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
255
252
|
r0 = r13
|
256
253
|
else
|
257
254
|
@index = i0
|
@@ -355,7 +352,7 @@ module ScientificNameClean
|
|
355
352
|
if node_cache[:scientific_name_4].has_key?(index)
|
356
353
|
cached = node_cache[:scientific_name_4][index]
|
357
354
|
if cached
|
358
|
-
|
355
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
359
356
|
@index = cached.interval.end
|
360
357
|
end
|
361
358
|
return cached
|
@@ -390,7 +387,6 @@ module ScientificNameClean
|
|
390
387
|
r1 = nil
|
391
388
|
end
|
392
389
|
if r1
|
393
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
394
390
|
r0 = r1
|
395
391
|
else
|
396
392
|
i7, s7 = index, []
|
@@ -406,11 +402,10 @@ module ScientificNameClean
|
|
406
402
|
r11 = _nt_space
|
407
403
|
s7 << r11
|
408
404
|
if r11
|
409
|
-
if has_terminal?(
|
405
|
+
if has_terminal?('\G[\\?]', true, index)
|
410
406
|
r13 = true
|
411
407
|
@index += 1
|
412
408
|
else
|
413
|
-
terminal_parse_failure('[\\?]')
|
414
409
|
r13 = nil
|
415
410
|
end
|
416
411
|
if r13
|
@@ -432,12 +427,10 @@ module ScientificNameClean
|
|
432
427
|
r7 = nil
|
433
428
|
end
|
434
429
|
if r7
|
435
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
436
430
|
r0 = r7
|
437
431
|
else
|
438
432
|
r14 = _nt_scientific_name_3
|
439
433
|
if r14
|
440
|
-
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
441
434
|
r0 = r14
|
442
435
|
else
|
443
436
|
@index = i0
|
@@ -492,7 +485,7 @@ module ScientificNameClean
|
|
492
485
|
if node_cache[:scientific_name_3].has_key?(index)
|
493
486
|
cached = node_cache[:scientific_name_3][index]
|
494
487
|
if cached
|
495
|
-
|
488
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
496
489
|
@index = cached.interval.end
|
497
490
|
end
|
498
491
|
return cached
|
@@ -519,12 +512,10 @@ module ScientificNameClean
|
|
519
512
|
r1 = nil
|
520
513
|
end
|
521
514
|
if r1
|
522
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
523
515
|
r0 = r1
|
524
516
|
else
|
525
517
|
r5 = _nt_scientific_name_2
|
526
518
|
if r5
|
527
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
528
519
|
r0 = r5
|
529
520
|
else
|
530
521
|
@index = i0
|
@@ -578,7 +569,7 @@ module ScientificNameClean
|
|
578
569
|
if node_cache[:scientific_name_2].has_key?(index)
|
579
570
|
cached = node_cache[:scientific_name_2][index]
|
580
571
|
if cached
|
581
|
-
|
572
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
582
573
|
@index = cached.interval.end
|
583
574
|
end
|
584
575
|
return cached
|
@@ -605,12 +596,10 @@ module ScientificNameClean
|
|
605
596
|
r1 = nil
|
606
597
|
end
|
607
598
|
if r1
|
608
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
609
599
|
r0 = r1
|
610
600
|
else
|
611
601
|
r5 = _nt_scientific_name_1
|
612
602
|
if r5
|
613
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
614
603
|
r0 = r5
|
615
604
|
else
|
616
605
|
@index = i0
|
@@ -628,7 +617,7 @@ module ScientificNameClean
|
|
628
617
|
if node_cache[:scientific_name_1].has_key?(index)
|
629
618
|
cached = node_cache[:scientific_name_1][index]
|
630
619
|
if cached
|
631
|
-
|
620
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
632
621
|
@index = cached.interval.end
|
633
622
|
end
|
634
623
|
return cached
|
@@ -637,17 +626,14 @@ module ScientificNameClean
|
|
637
626
|
i0 = index
|
638
627
|
r1 = _nt_multiuninomial_name
|
639
628
|
if r1
|
640
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
641
629
|
r0 = r1
|
642
630
|
else
|
643
631
|
r2 = _nt_multinomial_name
|
644
632
|
if r2
|
645
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
646
633
|
r0 = r2
|
647
634
|
else
|
648
635
|
r3 = _nt_uninomial_name
|
649
636
|
if r3
|
650
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
651
637
|
r0 = r3
|
652
638
|
else
|
653
639
|
@index = i0
|
@@ -689,7 +675,7 @@ module ScientificNameClean
|
|
689
675
|
if node_cache[:status_part].has_key?(index)
|
690
676
|
cached = node_cache[:status_part][index]
|
691
677
|
if cached
|
692
|
-
|
678
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
693
679
|
@index = cached.interval.end
|
694
680
|
end
|
695
681
|
return cached
|
@@ -716,12 +702,10 @@ module ScientificNameClean
|
|
716
702
|
r1 = nil
|
717
703
|
end
|
718
704
|
if r1
|
719
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
720
705
|
r0 = r1
|
721
706
|
else
|
722
707
|
r5 = _nt_status_word
|
723
708
|
if r5
|
724
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
725
709
|
r0 = r5
|
726
710
|
else
|
727
711
|
@index = i0
|
@@ -755,7 +739,7 @@ module ScientificNameClean
|
|
755
739
|
if node_cache[:status_word].has_key?(index)
|
756
740
|
cached = node_cache[:status_word][index]
|
757
741
|
if cached
|
758
|
-
|
742
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
759
743
|
@index = cached.interval.end
|
760
744
|
end
|
761
745
|
return cached
|
@@ -765,11 +749,10 @@ module ScientificNameClean
|
|
765
749
|
r1 = _nt_latin_word
|
766
750
|
s0 << r1
|
767
751
|
if r1
|
768
|
-
if has_terminal?(
|
752
|
+
if has_terminal?('\G[\\.]', true, index)
|
769
753
|
r2 = true
|
770
754
|
@index += 1
|
771
755
|
else
|
772
|
-
terminal_parse_failure('[\\.]')
|
773
756
|
r2 = nil
|
774
757
|
end
|
775
758
|
s0 << r2
|
@@ -822,7 +805,7 @@ module ScientificNameClean
|
|
822
805
|
if node_cache[:unparsed].has_key?(index)
|
823
806
|
cached = node_cache[:unparsed][index]
|
824
807
|
if cached
|
825
|
-
|
808
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
826
809
|
@index = cached.interval.end
|
827
810
|
end
|
828
811
|
return cached
|
@@ -832,7 +815,7 @@ module ScientificNameClean
|
|
832
815
|
s1, i1 = [], index
|
833
816
|
loop do
|
834
817
|
if index < input_length
|
835
|
-
r2 =
|
818
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
836
819
|
@index += 1
|
837
820
|
else
|
838
821
|
terminal_parse_failure("any character")
|
@@ -1226,7 +1209,7 @@ module ScientificNameClean
|
|
1226
1209
|
if node_cache[:multinomial_name].has_key?(index)
|
1227
1210
|
cached = node_cache[:multinomial_name][index]
|
1228
1211
|
if cached
|
1229
|
-
|
1212
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1230
1213
|
@index = cached.interval.end
|
1231
1214
|
end
|
1232
1215
|
return cached
|
@@ -1282,7 +1265,6 @@ module ScientificNameClean
|
|
1282
1265
|
r1 = nil
|
1283
1266
|
end
|
1284
1267
|
if r1
|
1285
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
1286
1268
|
r0 = r1
|
1287
1269
|
else
|
1288
1270
|
i12, s12 = index, []
|
@@ -1342,7 +1324,6 @@ module ScientificNameClean
|
|
1342
1324
|
r12 = nil
|
1343
1325
|
end
|
1344
1326
|
if r12
|
1345
|
-
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
1346
1327
|
r0 = r12
|
1347
1328
|
else
|
1348
1329
|
i25, s25 = index, []
|
@@ -1386,7 +1367,6 @@ module ScientificNameClean
|
|
1386
1367
|
r25 = nil
|
1387
1368
|
end
|
1388
1369
|
if r25
|
1389
|
-
r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
|
1390
1370
|
r0 = r25
|
1391
1371
|
else
|
1392
1372
|
i34, s34 = index, []
|
@@ -1430,7 +1410,6 @@ module ScientificNameClean
|
|
1430
1410
|
r34 = nil
|
1431
1411
|
end
|
1432
1412
|
if r34
|
1433
|
-
r34 = SyntaxNode.new(input, (index-1)...index) if r34 == true
|
1434
1413
|
r0 = r34
|
1435
1414
|
else
|
1436
1415
|
i43, s43 = index, []
|
@@ -1466,7 +1445,6 @@ module ScientificNameClean
|
|
1466
1445
|
r43 = nil
|
1467
1446
|
end
|
1468
1447
|
if r43
|
1469
|
-
r43 = SyntaxNode.new(input, (index-1)...index) if r43 == true
|
1470
1448
|
r0 = r43
|
1471
1449
|
else
|
1472
1450
|
i50, s50 = index, []
|
@@ -1497,7 +1475,6 @@ module ScientificNameClean
|
|
1497
1475
|
r50 = nil
|
1498
1476
|
end
|
1499
1477
|
if r50
|
1500
|
-
r50 = SyntaxNode.new(input, (index-1)...index) if r50 == true
|
1501
1478
|
r0 = r50
|
1502
1479
|
else
|
1503
1480
|
@index = i0
|
@@ -1564,7 +1541,7 @@ module ScientificNameClean
|
|
1564
1541
|
if node_cache[:multiuninomial_name].has_key?(index)
|
1565
1542
|
cached = node_cache[:multiuninomial_name][index]
|
1566
1543
|
if cached
|
1567
|
-
|
1544
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1568
1545
|
@index = cached.interval.end
|
1569
1546
|
end
|
1570
1547
|
return cached
|
@@ -1652,7 +1629,7 @@ module ScientificNameClean
|
|
1652
1629
|
if node_cache[:infraspecies_mult].has_key?(index)
|
1653
1630
|
cached = node_cache[:infraspecies_mult][index]
|
1654
1631
|
if cached
|
1655
|
-
|
1632
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1656
1633
|
@index = cached.interval.end
|
1657
1634
|
end
|
1658
1635
|
return cached
|
@@ -1679,13 +1656,11 @@ module ScientificNameClean
|
|
1679
1656
|
r1 = nil
|
1680
1657
|
end
|
1681
1658
|
if r1
|
1682
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
1683
1659
|
r0 = r1
|
1684
1660
|
else
|
1685
1661
|
r5 = _nt_infraspecies
|
1686
1662
|
r5.extend(InfraspeciesMult2)
|
1687
1663
|
if r5
|
1688
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
1689
1664
|
r0 = r5
|
1690
1665
|
else
|
1691
1666
|
@index = i0
|
@@ -1735,7 +1710,7 @@ module ScientificNameClean
|
|
1735
1710
|
if node_cache[:infraspecies].has_key?(index)
|
1736
1711
|
cached = node_cache[:infraspecies][index]
|
1737
1712
|
if cached
|
1738
|
-
|
1713
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1739
1714
|
@index = cached.interval.end
|
1740
1715
|
end
|
1741
1716
|
return cached
|
@@ -1762,12 +1737,10 @@ module ScientificNameClean
|
|
1762
1737
|
r1 = nil
|
1763
1738
|
end
|
1764
1739
|
if r1
|
1765
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
1766
1740
|
r0 = r1
|
1767
1741
|
else
|
1768
1742
|
r5 = _nt_infraspecies_string
|
1769
1743
|
if r5
|
1770
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
1771
1744
|
r0 = r5
|
1772
1745
|
else
|
1773
1746
|
@index = i0
|
@@ -1880,7 +1853,7 @@ module ScientificNameClean
|
|
1880
1853
|
if node_cache[:infraspecies_string].has_key?(index)
|
1881
1854
|
cached = node_cache[:infraspecies_string][index]
|
1882
1855
|
if cached
|
1883
|
-
|
1856
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1884
1857
|
@index = cached.interval.end
|
1885
1858
|
end
|
1886
1859
|
return cached
|
@@ -1907,7 +1880,6 @@ module ScientificNameClean
|
|
1907
1880
|
r1 = nil
|
1908
1881
|
end
|
1909
1882
|
if r1
|
1910
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
1911
1883
|
r0 = r1
|
1912
1884
|
else
|
1913
1885
|
i5, s5 = index, []
|
@@ -1921,11 +1893,10 @@ module ScientificNameClean
|
|
1921
1893
|
s5 << r8
|
1922
1894
|
if r8
|
1923
1895
|
i9 = index
|
1924
|
-
if has_terminal?(
|
1896
|
+
if has_terminal?('\G[\\.]', true, index)
|
1925
1897
|
r10 = true
|
1926
1898
|
@index += 1
|
1927
1899
|
else
|
1928
|
-
terminal_parse_failure('[\\.]')
|
1929
1900
|
r10 = nil
|
1930
1901
|
end
|
1931
1902
|
if r10
|
@@ -1947,7 +1918,6 @@ module ScientificNameClean
|
|
1947
1918
|
r5 = nil
|
1948
1919
|
end
|
1949
1920
|
if r5
|
1950
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
1951
1921
|
r0 = r5
|
1952
1922
|
else
|
1953
1923
|
i11, s11 = index, []
|
@@ -1955,11 +1925,10 @@ module ScientificNameClean
|
|
1955
1925
|
s11 << r12
|
1956
1926
|
if r12
|
1957
1927
|
i13 = index
|
1958
|
-
if has_terminal?(
|
1928
|
+
if has_terminal?('\G[\\.]', true, index)
|
1959
1929
|
r14 = true
|
1960
1930
|
@index += 1
|
1961
1931
|
else
|
1962
|
-
terminal_parse_failure('[\\.]')
|
1963
1932
|
r14 = nil
|
1964
1933
|
end
|
1965
1934
|
if r14
|
@@ -1979,7 +1948,6 @@ module ScientificNameClean
|
|
1979
1948
|
r11 = nil
|
1980
1949
|
end
|
1981
1950
|
if r11
|
1982
|
-
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
1983
1951
|
r0 = r11
|
1984
1952
|
else
|
1985
1953
|
@index = i0
|
@@ -2010,34 +1978,32 @@ module ScientificNameClean
|
|
2010
1978
|
if node_cache[:taxon_concept_rank].has_key?(index)
|
2011
1979
|
cached = node_cache[:taxon_concept_rank][index]
|
2012
1980
|
if cached
|
2013
|
-
|
1981
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2014
1982
|
@index = cached.interval.end
|
2015
1983
|
end
|
2016
1984
|
return cached
|
2017
1985
|
end
|
2018
1986
|
|
2019
1987
|
i0 = index
|
2020
|
-
if
|
2021
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
2022
|
-
@index +=
|
1988
|
+
if has_terminal?("sec.", false, index)
|
1989
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
1990
|
+
@index += 4
|
2023
1991
|
else
|
2024
1992
|
terminal_parse_failure("sec.")
|
2025
1993
|
r1 = nil
|
2026
1994
|
end
|
2027
1995
|
if r1
|
2028
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2029
1996
|
r0 = r1
|
2030
1997
|
r0.extend(TaxonConceptRank0)
|
2031
1998
|
else
|
2032
|
-
if
|
2033
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
2034
|
-
@index +=
|
1999
|
+
if has_terminal?("sensu.", false, index)
|
2000
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
2001
|
+
@index += 6
|
2035
2002
|
else
|
2036
2003
|
terminal_parse_failure("sensu.")
|
2037
2004
|
r2 = nil
|
2038
2005
|
end
|
2039
2006
|
if r2
|
2040
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
2041
2007
|
r0 = r2
|
2042
2008
|
r0.extend(TaxonConceptRank0)
|
2043
2009
|
else
|
@@ -2079,586 +2045,538 @@ module ScientificNameClean
|
|
2079
2045
|
if node_cache[:rank].has_key?(index)
|
2080
2046
|
cached = node_cache[:rank][index]
|
2081
2047
|
if cached
|
2082
|
-
|
2048
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2083
2049
|
@index = cached.interval.end
|
2084
2050
|
end
|
2085
2051
|
return cached
|
2086
2052
|
end
|
2087
2053
|
|
2088
2054
|
i0 = index
|
2089
|
-
if
|
2090
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
2091
|
-
@index +=
|
2055
|
+
if has_terminal?("morph.", false, index)
|
2056
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
2057
|
+
@index += 6
|
2092
2058
|
else
|
2093
2059
|
terminal_parse_failure("morph.")
|
2094
2060
|
r1 = nil
|
2095
2061
|
end
|
2096
2062
|
if r1
|
2097
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2098
2063
|
r0 = r1
|
2099
2064
|
r0.extend(Rank0)
|
2100
2065
|
else
|
2101
|
-
if
|
2102
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
2103
|
-
@index +=
|
2066
|
+
if has_terminal?("f.sp.", false, index)
|
2067
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2068
|
+
@index += 5
|
2104
2069
|
else
|
2105
2070
|
terminal_parse_failure("f.sp.")
|
2106
2071
|
r2 = nil
|
2107
2072
|
end
|
2108
2073
|
if r2
|
2109
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
2110
2074
|
r0 = r2
|
2111
2075
|
r0.extend(Rank0)
|
2112
2076
|
else
|
2113
|
-
if
|
2114
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
2115
|
-
@index +=
|
2077
|
+
if has_terminal?("B ", false, index)
|
2078
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2079
|
+
@index += 2
|
2116
2080
|
else
|
2117
2081
|
terminal_parse_failure("B ")
|
2118
2082
|
r3 = nil
|
2119
2083
|
end
|
2120
2084
|
if r3
|
2121
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
2122
2085
|
r0 = r3
|
2123
2086
|
r0.extend(Rank0)
|
2124
2087
|
else
|
2125
|
-
if
|
2126
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
2127
|
-
@index +=
|
2088
|
+
if has_terminal?("ssp.", false, index)
|
2089
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2090
|
+
@index += 4
|
2128
2091
|
else
|
2129
2092
|
terminal_parse_failure("ssp.")
|
2130
2093
|
r4 = nil
|
2131
2094
|
end
|
2132
2095
|
if r4
|
2133
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
2134
2096
|
r0 = r4
|
2135
2097
|
r0.extend(Rank0)
|
2136
2098
|
else
|
2137
|
-
if
|
2138
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
2139
|
-
@index +=
|
2099
|
+
if has_terminal?("ssp ", false, index)
|
2100
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2101
|
+
@index += 4
|
2140
2102
|
else
|
2141
2103
|
terminal_parse_failure("ssp ")
|
2142
2104
|
r5 = nil
|
2143
2105
|
end
|
2144
2106
|
if r5
|
2145
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
2146
2107
|
r0 = r5
|
2147
2108
|
r0.extend(Rank0)
|
2148
2109
|
else
|
2149
|
-
if
|
2150
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
2151
|
-
@index +=
|
2110
|
+
if has_terminal?("mut.", false, index)
|
2111
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2112
|
+
@index += 4
|
2152
2113
|
else
|
2153
2114
|
terminal_parse_failure("mut.")
|
2154
2115
|
r6 = nil
|
2155
2116
|
end
|
2156
2117
|
if r6
|
2157
|
-
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
2158
2118
|
r0 = r6
|
2159
2119
|
r0.extend(Rank0)
|
2160
2120
|
else
|
2161
|
-
if
|
2162
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
2163
|
-
@index +=
|
2121
|
+
if has_terminal?("nat ", false, index)
|
2122
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2123
|
+
@index += 4
|
2164
2124
|
else
|
2165
2125
|
terminal_parse_failure("nat ")
|
2166
2126
|
r7 = nil
|
2167
2127
|
end
|
2168
2128
|
if r7
|
2169
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
2170
2129
|
r0 = r7
|
2171
2130
|
r0.extend(Rank0)
|
2172
2131
|
else
|
2173
|
-
if
|
2174
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
2175
|
-
@index +=
|
2132
|
+
if has_terminal?("nothosubsp.", false, index)
|
2133
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 11))
|
2134
|
+
@index += 11
|
2176
2135
|
else
|
2177
2136
|
terminal_parse_failure("nothosubsp.")
|
2178
2137
|
r8 = nil
|
2179
2138
|
end
|
2180
2139
|
if r8
|
2181
|
-
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
2182
2140
|
r0 = r8
|
2183
2141
|
r0.extend(Rank0)
|
2184
2142
|
else
|
2185
|
-
if
|
2186
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
2187
|
-
@index +=
|
2143
|
+
if has_terminal?("convar.", false, index)
|
2144
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
2145
|
+
@index += 7
|
2188
2146
|
else
|
2189
2147
|
terminal_parse_failure("convar.")
|
2190
2148
|
r9 = nil
|
2191
2149
|
end
|
2192
2150
|
if r9
|
2193
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
2194
2151
|
r0 = r9
|
2195
2152
|
r0.extend(Rank0)
|
2196
2153
|
else
|
2197
|
-
if
|
2198
|
-
r10 = instantiate_node(SyntaxNode,input, index...(index +
|
2199
|
-
@index +=
|
2154
|
+
if has_terminal?("pseudovar.", false, index)
|
2155
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + 10))
|
2156
|
+
@index += 10
|
2200
2157
|
else
|
2201
2158
|
terminal_parse_failure("pseudovar.")
|
2202
2159
|
r10 = nil
|
2203
2160
|
end
|
2204
2161
|
if r10
|
2205
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
2206
2162
|
r0 = r10
|
2207
2163
|
r0.extend(Rank0)
|
2208
2164
|
else
|
2209
|
-
if
|
2210
|
-
r11 = instantiate_node(SyntaxNode,input, index...(index +
|
2211
|
-
@index +=
|
2165
|
+
if has_terminal?("sect.", false, index)
|
2166
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2167
|
+
@index += 5
|
2212
2168
|
else
|
2213
2169
|
terminal_parse_failure("sect.")
|
2214
2170
|
r11 = nil
|
2215
2171
|
end
|
2216
2172
|
if r11
|
2217
|
-
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
2218
2173
|
r0 = r11
|
2219
2174
|
r0.extend(Rank0)
|
2220
2175
|
else
|
2221
|
-
if
|
2222
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
2223
|
-
@index +=
|
2176
|
+
if has_terminal?("ser.", false, index)
|
2177
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2178
|
+
@index += 4
|
2224
2179
|
else
|
2225
2180
|
terminal_parse_failure("ser.")
|
2226
2181
|
r12 = nil
|
2227
2182
|
end
|
2228
2183
|
if r12
|
2229
|
-
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
2230
2184
|
r0 = r12
|
2231
2185
|
r0.extend(Rank0)
|
2232
2186
|
else
|
2233
|
-
if
|
2234
|
-
r13 = instantiate_node(SyntaxNode,input, index...(index +
|
2235
|
-
@index +=
|
2187
|
+
if has_terminal?("var.", false, index)
|
2188
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2189
|
+
@index += 4
|
2236
2190
|
else
|
2237
2191
|
terminal_parse_failure("var.")
|
2238
2192
|
r13 = nil
|
2239
2193
|
end
|
2240
2194
|
if r13
|
2241
|
-
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
2242
2195
|
r0 = r13
|
2243
2196
|
r0.extend(Rank0)
|
2244
2197
|
else
|
2245
|
-
if
|
2246
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
2247
|
-
@index +=
|
2198
|
+
if has_terminal?("subvar.", false, index)
|
2199
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
2200
|
+
@index += 7
|
2248
2201
|
else
|
2249
2202
|
terminal_parse_failure("subvar.")
|
2250
2203
|
r14 = nil
|
2251
2204
|
end
|
2252
2205
|
if r14
|
2253
|
-
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
2254
2206
|
r0 = r14
|
2255
2207
|
r0.extend(Rank0)
|
2256
2208
|
else
|
2257
|
-
if
|
2258
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
2259
|
-
@index +=
|
2209
|
+
if has_terminal?("[var.]", false, index)
|
2210
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
2211
|
+
@index += 6
|
2260
2212
|
else
|
2261
2213
|
terminal_parse_failure("[var.]")
|
2262
2214
|
r15 = nil
|
2263
2215
|
end
|
2264
2216
|
if r15
|
2265
|
-
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
2266
2217
|
r0 = r15
|
2267
2218
|
r0.extend(Rank0)
|
2268
2219
|
else
|
2269
|
-
if
|
2270
|
-
r16 = instantiate_node(SyntaxNode,input, index...(index +
|
2271
|
-
@index +=
|
2220
|
+
if has_terminal?("var ", false, index)
|
2221
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2222
|
+
@index += 4
|
2272
2223
|
else
|
2273
2224
|
terminal_parse_failure("var ")
|
2274
2225
|
r16 = nil
|
2275
2226
|
end
|
2276
2227
|
if r16
|
2277
|
-
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
2278
2228
|
r0 = r16
|
2279
2229
|
r0.extend(Rank0)
|
2280
2230
|
else
|
2281
|
-
if
|
2282
|
-
r17 = instantiate_node(SyntaxNode,input, index...(index +
|
2283
|
-
@index +=
|
2231
|
+
if has_terminal?("subsp.", false, index)
|
2232
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
2233
|
+
@index += 6
|
2284
2234
|
else
|
2285
2235
|
terminal_parse_failure("subsp.")
|
2286
2236
|
r17 = nil
|
2287
2237
|
end
|
2288
2238
|
if r17
|
2289
|
-
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
2290
2239
|
r0 = r17
|
2291
2240
|
r0.extend(Rank0)
|
2292
2241
|
else
|
2293
|
-
if
|
2294
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
2295
|
-
@index +=
|
2242
|
+
if has_terminal?("subsp ", false, index)
|
2243
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
2244
|
+
@index += 6
|
2296
2245
|
else
|
2297
2246
|
terminal_parse_failure("subsp ")
|
2298
2247
|
r18 = nil
|
2299
2248
|
end
|
2300
2249
|
if r18
|
2301
|
-
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
2302
2250
|
r0 = r18
|
2303
2251
|
r0.extend(Rank0)
|
2304
2252
|
else
|
2305
|
-
if
|
2306
|
-
r19 = instantiate_node(SyntaxNode,input, index...(index +
|
2307
|
-
@index +=
|
2253
|
+
if has_terminal?("subf.", false, index)
|
2254
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2255
|
+
@index += 5
|
2308
2256
|
else
|
2309
2257
|
terminal_parse_failure("subf.")
|
2310
2258
|
r19 = nil
|
2311
2259
|
end
|
2312
2260
|
if r19
|
2313
|
-
r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true
|
2314
2261
|
r0 = r19
|
2315
2262
|
r0.extend(Rank0)
|
2316
2263
|
else
|
2317
|
-
if
|
2318
|
-
r20 = instantiate_node(SyntaxNode,input, index...(index +
|
2319
|
-
@index +=
|
2264
|
+
if has_terminal?("race ", false, index)
|
2265
|
+
r20 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2266
|
+
@index += 5
|
2320
2267
|
else
|
2321
2268
|
terminal_parse_failure("race ")
|
2322
2269
|
r20 = nil
|
2323
2270
|
end
|
2324
2271
|
if r20
|
2325
|
-
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
2326
2272
|
r0 = r20
|
2327
2273
|
r0.extend(Rank0)
|
2328
2274
|
else
|
2329
|
-
if
|
2330
|
-
r21 = instantiate_node(SyntaxNode,input, index...(index +
|
2331
|
-
@index +=
|
2275
|
+
if has_terminal?("forma.", false, index)
|
2276
|
+
r21 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
2277
|
+
@index += 6
|
2332
2278
|
else
|
2333
2279
|
terminal_parse_failure("forma.")
|
2334
2280
|
r21 = nil
|
2335
2281
|
end
|
2336
2282
|
if r21
|
2337
|
-
r21 = SyntaxNode.new(input, (index-1)...index) if r21 == true
|
2338
2283
|
r0 = r21
|
2339
2284
|
r0.extend(Rank0)
|
2340
2285
|
else
|
2341
|
-
if
|
2342
|
-
r22 = instantiate_node(SyntaxNode,input, index...(index +
|
2343
|
-
@index +=
|
2286
|
+
if has_terminal?("forma ", false, index)
|
2287
|
+
r22 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
2288
|
+
@index += 6
|
2344
2289
|
else
|
2345
2290
|
terminal_parse_failure("forma ")
|
2346
2291
|
r22 = nil
|
2347
2292
|
end
|
2348
2293
|
if r22
|
2349
|
-
r22 = SyntaxNode.new(input, (index-1)...index) if r22 == true
|
2350
2294
|
r0 = r22
|
2351
2295
|
r0.extend(Rank0)
|
2352
2296
|
else
|
2353
|
-
if
|
2354
|
-
r23 = instantiate_node(SyntaxNode,input, index...(index +
|
2355
|
-
@index +=
|
2297
|
+
if has_terminal?("fma.", false, index)
|
2298
|
+
r23 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2299
|
+
@index += 4
|
2356
2300
|
else
|
2357
2301
|
terminal_parse_failure("fma.")
|
2358
2302
|
r23 = nil
|
2359
2303
|
end
|
2360
2304
|
if r23
|
2361
|
-
r23 = SyntaxNode.new(input, (index-1)...index) if r23 == true
|
2362
2305
|
r0 = r23
|
2363
2306
|
r0.extend(Rank0)
|
2364
2307
|
else
|
2365
|
-
if
|
2366
|
-
r24 = instantiate_node(SyntaxNode,input, index...(index +
|
2367
|
-
@index +=
|
2308
|
+
if has_terminal?("fma ", false, index)
|
2309
|
+
r24 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2310
|
+
@index += 4
|
2368
2311
|
else
|
2369
2312
|
terminal_parse_failure("fma ")
|
2370
2313
|
r24 = nil
|
2371
2314
|
end
|
2372
2315
|
if r24
|
2373
|
-
r24 = SyntaxNode.new(input, (index-1)...index) if r24 == true
|
2374
2316
|
r0 = r24
|
2375
2317
|
r0.extend(Rank0)
|
2376
2318
|
else
|
2377
|
-
if
|
2378
|
-
r25 = instantiate_node(SyntaxNode,input, index...(index +
|
2379
|
-
@index +=
|
2319
|
+
if has_terminal?("form.", false, index)
|
2320
|
+
r25 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2321
|
+
@index += 5
|
2380
2322
|
else
|
2381
2323
|
terminal_parse_failure("form.")
|
2382
2324
|
r25 = nil
|
2383
2325
|
end
|
2384
2326
|
if r25
|
2385
|
-
r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
|
2386
2327
|
r0 = r25
|
2387
2328
|
r0.extend(Rank0)
|
2388
2329
|
else
|
2389
|
-
if
|
2390
|
-
r26 = instantiate_node(SyntaxNode,input, index...(index +
|
2391
|
-
@index +=
|
2330
|
+
if has_terminal?("form ", false, index)
|
2331
|
+
r26 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2332
|
+
@index += 5
|
2392
2333
|
else
|
2393
2334
|
terminal_parse_failure("form ")
|
2394
2335
|
r26 = nil
|
2395
2336
|
end
|
2396
2337
|
if r26
|
2397
|
-
r26 = SyntaxNode.new(input, (index-1)...index) if r26 == true
|
2398
2338
|
r0 = r26
|
2399
2339
|
r0.extend(Rank0)
|
2400
2340
|
else
|
2401
|
-
if
|
2402
|
-
r27 = instantiate_node(SyntaxNode,input, index...(index +
|
2403
|
-
@index +=
|
2341
|
+
if has_terminal?("fo.", false, index)
|
2342
|
+
r27 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
2343
|
+
@index += 3
|
2404
2344
|
else
|
2405
2345
|
terminal_parse_failure("fo.")
|
2406
2346
|
r27 = nil
|
2407
2347
|
end
|
2408
2348
|
if r27
|
2409
|
-
r27 = SyntaxNode.new(input, (index-1)...index) if r27 == true
|
2410
2349
|
r0 = r27
|
2411
2350
|
r0.extend(Rank0)
|
2412
2351
|
else
|
2413
|
-
if
|
2414
|
-
r28 = instantiate_node(SyntaxNode,input, index...(index +
|
2415
|
-
@index +=
|
2352
|
+
if has_terminal?("fo ", false, index)
|
2353
|
+
r28 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
2354
|
+
@index += 3
|
2416
2355
|
else
|
2417
2356
|
terminal_parse_failure("fo ")
|
2418
2357
|
r28 = nil
|
2419
2358
|
end
|
2420
2359
|
if r28
|
2421
|
-
r28 = SyntaxNode.new(input, (index-1)...index) if r28 == true
|
2422
2360
|
r0 = r28
|
2423
2361
|
r0.extend(Rank0)
|
2424
2362
|
else
|
2425
|
-
if
|
2426
|
-
r29 = instantiate_node(SyntaxNode,input, index...(index +
|
2427
|
-
@index +=
|
2363
|
+
if has_terminal?("f.", false, index)
|
2364
|
+
r29 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2365
|
+
@index += 2
|
2428
2366
|
else
|
2429
2367
|
terminal_parse_failure("f.")
|
2430
2368
|
r29 = nil
|
2431
2369
|
end
|
2432
2370
|
if r29
|
2433
|
-
r29 = SyntaxNode.new(input, (index-1)...index) if r29 == true
|
2434
2371
|
r0 = r29
|
2435
2372
|
r0.extend(Rank0)
|
2436
2373
|
else
|
2437
|
-
if
|
2438
|
-
r30 =
|
2439
|
-
@index +=
|
2374
|
+
if has_terminal?("α", false, index)
|
2375
|
+
r30 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2376
|
+
@index += 1
|
2440
2377
|
else
|
2441
2378
|
terminal_parse_failure("α")
|
2442
2379
|
r30 = nil
|
2443
2380
|
end
|
2444
2381
|
if r30
|
2445
|
-
r30 = SyntaxNode.new(input, (index-1)...index) if r30 == true
|
2446
2382
|
r0 = r30
|
2447
2383
|
r0.extend(Rank0)
|
2448
2384
|
else
|
2449
|
-
if
|
2450
|
-
r31 = instantiate_node(SyntaxNode,input, index...(index +
|
2451
|
-
@index +=
|
2385
|
+
if has_terminal?("ββ", false, index)
|
2386
|
+
r31 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2387
|
+
@index += 2
|
2452
2388
|
else
|
2453
2389
|
terminal_parse_failure("ββ")
|
2454
2390
|
r31 = nil
|
2455
2391
|
end
|
2456
2392
|
if r31
|
2457
|
-
r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
|
2458
2393
|
r0 = r31
|
2459
2394
|
r0.extend(Rank0)
|
2460
2395
|
else
|
2461
|
-
if
|
2462
|
-
r32 =
|
2463
|
-
@index +=
|
2396
|
+
if has_terminal?("β", false, index)
|
2397
|
+
r32 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2398
|
+
@index += 1
|
2464
2399
|
else
|
2465
2400
|
terminal_parse_failure("β")
|
2466
2401
|
r32 = nil
|
2467
2402
|
end
|
2468
2403
|
if r32
|
2469
|
-
r32 = SyntaxNode.new(input, (index-1)...index) if r32 == true
|
2470
2404
|
r0 = r32
|
2471
2405
|
r0.extend(Rank0)
|
2472
2406
|
else
|
2473
|
-
if
|
2474
|
-
r33 =
|
2475
|
-
@index +=
|
2407
|
+
if has_terminal?("γ", false, index)
|
2408
|
+
r33 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2409
|
+
@index += 1
|
2476
2410
|
else
|
2477
2411
|
terminal_parse_failure("γ")
|
2478
2412
|
r33 = nil
|
2479
2413
|
end
|
2480
2414
|
if r33
|
2481
|
-
r33 = SyntaxNode.new(input, (index-1)...index) if r33 == true
|
2482
2415
|
r0 = r33
|
2483
2416
|
r0.extend(Rank0)
|
2484
2417
|
else
|
2485
|
-
if
|
2486
|
-
r34 =
|
2487
|
-
@index +=
|
2418
|
+
if has_terminal?("δ", false, index)
|
2419
|
+
r34 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2420
|
+
@index += 1
|
2488
2421
|
else
|
2489
2422
|
terminal_parse_failure("δ")
|
2490
2423
|
r34 = nil
|
2491
2424
|
end
|
2492
2425
|
if r34
|
2493
|
-
r34 = SyntaxNode.new(input, (index-1)...index) if r34 == true
|
2494
2426
|
r0 = r34
|
2495
2427
|
r0.extend(Rank0)
|
2496
2428
|
else
|
2497
|
-
if
|
2498
|
-
r35 =
|
2499
|
-
@index +=
|
2429
|
+
if has_terminal?("ε", false, index)
|
2430
|
+
r35 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2431
|
+
@index += 1
|
2500
2432
|
else
|
2501
2433
|
terminal_parse_failure("ε")
|
2502
2434
|
r35 = nil
|
2503
2435
|
end
|
2504
2436
|
if r35
|
2505
|
-
r35 = SyntaxNode.new(input, (index-1)...index) if r35 == true
|
2506
2437
|
r0 = r35
|
2507
2438
|
r0.extend(Rank0)
|
2508
2439
|
else
|
2509
|
-
if
|
2510
|
-
r36 =
|
2511
|
-
@index +=
|
2440
|
+
if has_terminal?("φ", false, index)
|
2441
|
+
r36 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2442
|
+
@index += 1
|
2512
2443
|
else
|
2513
2444
|
terminal_parse_failure("φ")
|
2514
2445
|
r36 = nil
|
2515
2446
|
end
|
2516
2447
|
if r36
|
2517
|
-
r36 = SyntaxNode.new(input, (index-1)...index) if r36 == true
|
2518
2448
|
r0 = r36
|
2519
2449
|
r0.extend(Rank0)
|
2520
2450
|
else
|
2521
|
-
if
|
2522
|
-
r37 =
|
2523
|
-
@index +=
|
2451
|
+
if has_terminal?("θ", false, index)
|
2452
|
+
r37 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2453
|
+
@index += 1
|
2524
2454
|
else
|
2525
2455
|
terminal_parse_failure("θ")
|
2526
2456
|
r37 = nil
|
2527
2457
|
end
|
2528
2458
|
if r37
|
2529
|
-
r37 = SyntaxNode.new(input, (index-1)...index) if r37 == true
|
2530
2459
|
r0 = r37
|
2531
2460
|
r0.extend(Rank0)
|
2532
2461
|
else
|
2533
|
-
if
|
2534
|
-
r38 =
|
2535
|
-
@index +=
|
2462
|
+
if has_terminal?("μ", false, index)
|
2463
|
+
r38 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2464
|
+
@index += 1
|
2536
2465
|
else
|
2537
2466
|
terminal_parse_failure("μ")
|
2538
2467
|
r38 = nil
|
2539
2468
|
end
|
2540
2469
|
if r38
|
2541
|
-
r38 = SyntaxNode.new(input, (index-1)...index) if r38 == true
|
2542
2470
|
r0 = r38
|
2543
2471
|
r0.extend(Rank0)
|
2544
2472
|
else
|
2545
|
-
if
|
2546
|
-
r39 = instantiate_node(SyntaxNode,input, index...(index +
|
2547
|
-
@index +=
|
2473
|
+
if has_terminal?("a.", false, index)
|
2474
|
+
r39 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2475
|
+
@index += 2
|
2548
2476
|
else
|
2549
2477
|
terminal_parse_failure("a.")
|
2550
2478
|
r39 = nil
|
2551
2479
|
end
|
2552
2480
|
if r39
|
2553
|
-
r39 = SyntaxNode.new(input, (index-1)...index) if r39 == true
|
2554
2481
|
r0 = r39
|
2555
2482
|
r0.extend(Rank0)
|
2556
2483
|
else
|
2557
|
-
if
|
2558
|
-
r40 = instantiate_node(SyntaxNode,input, index...(index +
|
2559
|
-
@index +=
|
2484
|
+
if has_terminal?("b.", false, index)
|
2485
|
+
r40 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2486
|
+
@index += 2
|
2560
2487
|
else
|
2561
2488
|
terminal_parse_failure("b.")
|
2562
2489
|
r40 = nil
|
2563
2490
|
end
|
2564
2491
|
if r40
|
2565
|
-
r40 = SyntaxNode.new(input, (index-1)...index) if r40 == true
|
2566
2492
|
r0 = r40
|
2567
2493
|
r0.extend(Rank0)
|
2568
2494
|
else
|
2569
|
-
if
|
2570
|
-
r41 = instantiate_node(SyntaxNode,input, index...(index +
|
2571
|
-
@index +=
|
2495
|
+
if has_terminal?("c.", false, index)
|
2496
|
+
r41 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2497
|
+
@index += 2
|
2572
2498
|
else
|
2573
2499
|
terminal_parse_failure("c.")
|
2574
2500
|
r41 = nil
|
2575
2501
|
end
|
2576
2502
|
if r41
|
2577
|
-
r41 = SyntaxNode.new(input, (index-1)...index) if r41 == true
|
2578
2503
|
r0 = r41
|
2579
2504
|
r0.extend(Rank0)
|
2580
2505
|
else
|
2581
|
-
if
|
2582
|
-
r42 = instantiate_node(SyntaxNode,input, index...(index +
|
2583
|
-
@index +=
|
2506
|
+
if has_terminal?("d.", false, index)
|
2507
|
+
r42 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2508
|
+
@index += 2
|
2584
2509
|
else
|
2585
2510
|
terminal_parse_failure("d.")
|
2586
2511
|
r42 = nil
|
2587
2512
|
end
|
2588
2513
|
if r42
|
2589
|
-
r42 = SyntaxNode.new(input, (index-1)...index) if r42 == true
|
2590
2514
|
r0 = r42
|
2591
2515
|
r0.extend(Rank0)
|
2592
2516
|
else
|
2593
|
-
if
|
2594
|
-
r43 = instantiate_node(SyntaxNode,input, index...(index +
|
2595
|
-
@index +=
|
2517
|
+
if has_terminal?("e.", false, index)
|
2518
|
+
r43 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2519
|
+
@index += 2
|
2596
2520
|
else
|
2597
2521
|
terminal_parse_failure("e.")
|
2598
2522
|
r43 = nil
|
2599
2523
|
end
|
2600
2524
|
if r43
|
2601
|
-
r43 = SyntaxNode.new(input, (index-1)...index) if r43 == true
|
2602
2525
|
r0 = r43
|
2603
2526
|
r0.extend(Rank0)
|
2604
2527
|
else
|
2605
|
-
if
|
2606
|
-
r44 = instantiate_node(SyntaxNode,input, index...(index +
|
2607
|
-
@index +=
|
2528
|
+
if has_terminal?("g.", false, index)
|
2529
|
+
r44 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2530
|
+
@index += 2
|
2608
2531
|
else
|
2609
2532
|
terminal_parse_failure("g.")
|
2610
2533
|
r44 = nil
|
2611
2534
|
end
|
2612
2535
|
if r44
|
2613
|
-
r44 = SyntaxNode.new(input, (index-1)...index) if r44 == true
|
2614
2536
|
r0 = r44
|
2615
2537
|
r0.extend(Rank0)
|
2616
2538
|
else
|
2617
|
-
if
|
2618
|
-
r45 = instantiate_node(SyntaxNode,input, index...(index +
|
2619
|
-
@index +=
|
2539
|
+
if has_terminal?("k.", false, index)
|
2540
|
+
r45 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2541
|
+
@index += 2
|
2620
2542
|
else
|
2621
2543
|
terminal_parse_failure("k.")
|
2622
2544
|
r45 = nil
|
2623
2545
|
end
|
2624
2546
|
if r45
|
2625
|
-
r45 = SyntaxNode.new(input, (index-1)...index) if r45 == true
|
2626
2547
|
r0 = r45
|
2627
2548
|
r0.extend(Rank0)
|
2628
2549
|
else
|
2629
|
-
if
|
2630
|
-
r46 = instantiate_node(SyntaxNode,input, index...(index +
|
2631
|
-
@index +=
|
2550
|
+
if has_terminal?("****", false, index)
|
2551
|
+
r46 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2552
|
+
@index += 4
|
2632
2553
|
else
|
2633
2554
|
terminal_parse_failure("****")
|
2634
2555
|
r46 = nil
|
2635
2556
|
end
|
2636
2557
|
if r46
|
2637
|
-
r46 = SyntaxNode.new(input, (index-1)...index) if r46 == true
|
2638
2558
|
r0 = r46
|
2639
2559
|
r0.extend(Rank0)
|
2640
2560
|
else
|
2641
|
-
if
|
2642
|
-
r47 = instantiate_node(SyntaxNode,input, index...(index +
|
2643
|
-
@index +=
|
2561
|
+
if has_terminal?("**", false, index)
|
2562
|
+
r47 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
2563
|
+
@index += 2
|
2644
2564
|
else
|
2645
2565
|
terminal_parse_failure("**")
|
2646
2566
|
r47 = nil
|
2647
2567
|
end
|
2648
2568
|
if r47
|
2649
|
-
r47 = SyntaxNode.new(input, (index-1)...index) if r47 == true
|
2650
2569
|
r0 = r47
|
2651
2570
|
r0.extend(Rank0)
|
2652
2571
|
else
|
2653
|
-
if
|
2654
|
-
r48 =
|
2655
|
-
@index +=
|
2572
|
+
if has_terminal?("*", false, index)
|
2573
|
+
r48 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2574
|
+
@index += 1
|
2656
2575
|
else
|
2657
2576
|
terminal_parse_failure("*")
|
2658
2577
|
r48 = nil
|
2659
2578
|
end
|
2660
2579
|
if r48
|
2661
|
-
r48 = SyntaxNode.new(input, (index-1)...index) if r48 == true
|
2662
2580
|
r0 = r48
|
2663
2581
|
r0.extend(Rank0)
|
2664
2582
|
else
|
@@ -2737,226 +2655,208 @@ module ScientificNameClean
|
|
2737
2655
|
if node_cache[:rank_uninomial].has_key?(index)
|
2738
2656
|
cached = node_cache[:rank_uninomial][index]
|
2739
2657
|
if cached
|
2740
|
-
|
2658
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2741
2659
|
@index = cached.interval.end
|
2742
2660
|
end
|
2743
2661
|
return cached
|
2744
2662
|
end
|
2745
2663
|
|
2746
2664
|
i0 = index
|
2747
|
-
if
|
2748
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
2749
|
-
@index +=
|
2665
|
+
if has_terminal?("sect.", false, index)
|
2666
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2667
|
+
@index += 5
|
2750
2668
|
else
|
2751
2669
|
terminal_parse_failure("sect.")
|
2752
2670
|
r1 = nil
|
2753
2671
|
end
|
2754
2672
|
if r1
|
2755
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2756
2673
|
r0 = r1
|
2757
2674
|
r0.extend(RankUninomial0)
|
2758
2675
|
else
|
2759
|
-
if
|
2760
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
2761
|
-
@index +=
|
2676
|
+
if has_terminal?("sect ", false, index)
|
2677
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2678
|
+
@index += 5
|
2762
2679
|
else
|
2763
2680
|
terminal_parse_failure("sect ")
|
2764
2681
|
r2 = nil
|
2765
2682
|
end
|
2766
2683
|
if r2
|
2767
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
2768
2684
|
r0 = r2
|
2769
2685
|
r0.extend(RankUninomial0)
|
2770
2686
|
else
|
2771
|
-
if
|
2772
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
2773
|
-
@index +=
|
2687
|
+
if has_terminal?("subsect.", false, index)
|
2688
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 8))
|
2689
|
+
@index += 8
|
2774
2690
|
else
|
2775
2691
|
terminal_parse_failure("subsect.")
|
2776
2692
|
r3 = nil
|
2777
2693
|
end
|
2778
2694
|
if r3
|
2779
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
2780
2695
|
r0 = r3
|
2781
2696
|
r0.extend(RankUninomial0)
|
2782
2697
|
else
|
2783
|
-
if
|
2784
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
2785
|
-
@index +=
|
2698
|
+
if has_terminal?("subsect ", false, index)
|
2699
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 8))
|
2700
|
+
@index += 8
|
2786
2701
|
else
|
2787
2702
|
terminal_parse_failure("subsect ")
|
2788
2703
|
r4 = nil
|
2789
2704
|
end
|
2790
2705
|
if r4
|
2791
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
2792
2706
|
r0 = r4
|
2793
2707
|
r0.extend(RankUninomial0)
|
2794
2708
|
else
|
2795
|
-
if
|
2796
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
2797
|
-
@index +=
|
2709
|
+
if has_terminal?("trib.", false, index)
|
2710
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2711
|
+
@index += 5
|
2798
2712
|
else
|
2799
2713
|
terminal_parse_failure("trib.")
|
2800
2714
|
r5 = nil
|
2801
2715
|
end
|
2802
2716
|
if r5
|
2803
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
2804
2717
|
r0 = r5
|
2805
2718
|
r0.extend(RankUninomial0)
|
2806
2719
|
else
|
2807
|
-
if
|
2808
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
2809
|
-
@index +=
|
2720
|
+
if has_terminal?("trib ", false, index)
|
2721
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
2722
|
+
@index += 5
|
2810
2723
|
else
|
2811
2724
|
terminal_parse_failure("trib ")
|
2812
2725
|
r6 = nil
|
2813
2726
|
end
|
2814
2727
|
if r6
|
2815
|
-
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
2816
2728
|
r0 = r6
|
2817
2729
|
r0.extend(RankUninomial0)
|
2818
2730
|
else
|
2819
|
-
if
|
2820
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
2821
|
-
@index +=
|
2731
|
+
if has_terminal?("subtrib.", false, index)
|
2732
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + 8))
|
2733
|
+
@index += 8
|
2822
2734
|
else
|
2823
2735
|
terminal_parse_failure("subtrib.")
|
2824
2736
|
r7 = nil
|
2825
2737
|
end
|
2826
2738
|
if r7
|
2827
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
2828
2739
|
r0 = r7
|
2829
2740
|
r0.extend(RankUninomial0)
|
2830
2741
|
else
|
2831
|
-
if
|
2832
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
2833
|
-
@index +=
|
2742
|
+
if has_terminal?("subtrib ", false, index)
|
2743
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 8))
|
2744
|
+
@index += 8
|
2834
2745
|
else
|
2835
2746
|
terminal_parse_failure("subtrib ")
|
2836
2747
|
r8 = nil
|
2837
2748
|
end
|
2838
2749
|
if r8
|
2839
|
-
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
2840
2750
|
r0 = r8
|
2841
2751
|
r0.extend(RankUninomial0)
|
2842
2752
|
else
|
2843
|
-
if
|
2844
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
2845
|
-
@index +=
|
2753
|
+
if has_terminal?("ser.", false, index)
|
2754
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2755
|
+
@index += 4
|
2846
2756
|
else
|
2847
2757
|
terminal_parse_failure("ser.")
|
2848
2758
|
r9 = nil
|
2849
2759
|
end
|
2850
2760
|
if r9
|
2851
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
2852
2761
|
r0 = r9
|
2853
2762
|
r0.extend(RankUninomial0)
|
2854
2763
|
else
|
2855
|
-
if
|
2856
|
-
r10 = instantiate_node(SyntaxNode,input, index...(index +
|
2857
|
-
@index +=
|
2764
|
+
if has_terminal?("ser ", false, index)
|
2765
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2766
|
+
@index += 4
|
2858
2767
|
else
|
2859
2768
|
terminal_parse_failure("ser ")
|
2860
2769
|
r10 = nil
|
2861
2770
|
end
|
2862
2771
|
if r10
|
2863
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
2864
2772
|
r0 = r10
|
2865
2773
|
r0.extend(RankUninomial0)
|
2866
2774
|
else
|
2867
|
-
if
|
2868
|
-
r11 = instantiate_node(SyntaxNode,input, index...(index +
|
2869
|
-
@index +=
|
2775
|
+
if has_terminal?("subgen.", false, index)
|
2776
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
2777
|
+
@index += 7
|
2870
2778
|
else
|
2871
2779
|
terminal_parse_failure("subgen.")
|
2872
2780
|
r11 = nil
|
2873
2781
|
end
|
2874
2782
|
if r11
|
2875
|
-
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
2876
2783
|
r0 = r11
|
2877
2784
|
r0.extend(RankUninomial0)
|
2878
2785
|
else
|
2879
|
-
if
|
2880
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
2881
|
-
@index +=
|
2786
|
+
if has_terminal?("subgen ", false, index)
|
2787
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
2788
|
+
@index += 7
|
2882
2789
|
else
|
2883
2790
|
terminal_parse_failure("subgen ")
|
2884
2791
|
r12 = nil
|
2885
2792
|
end
|
2886
2793
|
if r12
|
2887
|
-
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
2888
2794
|
r0 = r12
|
2889
2795
|
r0.extend(RankUninomial0)
|
2890
2796
|
else
|
2891
|
-
if
|
2892
|
-
r13 = instantiate_node(SyntaxNode,input, index...(index +
|
2893
|
-
@index +=
|
2797
|
+
if has_terminal?("fam.", false, index)
|
2798
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2799
|
+
@index += 4
|
2894
2800
|
else
|
2895
2801
|
terminal_parse_failure("fam.")
|
2896
2802
|
r13 = nil
|
2897
2803
|
end
|
2898
2804
|
if r13
|
2899
|
-
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
2900
2805
|
r0 = r13
|
2901
2806
|
r0.extend(RankUninomial0)
|
2902
2807
|
else
|
2903
|
-
if
|
2904
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
2905
|
-
@index +=
|
2808
|
+
if has_terminal?("fam ", false, index)
|
2809
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
2810
|
+
@index += 4
|
2906
2811
|
else
|
2907
2812
|
terminal_parse_failure("fam ")
|
2908
2813
|
r14 = nil
|
2909
2814
|
end
|
2910
2815
|
if r14
|
2911
|
-
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
2912
2816
|
r0 = r14
|
2913
2817
|
r0.extend(RankUninomial0)
|
2914
2818
|
else
|
2915
|
-
if
|
2916
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
2917
|
-
@index +=
|
2819
|
+
if has_terminal?("subfam.", false, index)
|
2820
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
2821
|
+
@index += 7
|
2918
2822
|
else
|
2919
2823
|
terminal_parse_failure("subfam.")
|
2920
2824
|
r15 = nil
|
2921
2825
|
end
|
2922
2826
|
if r15
|
2923
|
-
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
2924
2827
|
r0 = r15
|
2925
2828
|
r0.extend(RankUninomial0)
|
2926
2829
|
else
|
2927
|
-
if
|
2928
|
-
r16 = instantiate_node(SyntaxNode,input, index...(index +
|
2929
|
-
@index +=
|
2830
|
+
if has_terminal?("subfam ", false, index)
|
2831
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
2832
|
+
@index += 7
|
2930
2833
|
else
|
2931
2834
|
terminal_parse_failure("subfam ")
|
2932
2835
|
r16 = nil
|
2933
2836
|
end
|
2934
2837
|
if r16
|
2935
|
-
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
2936
2838
|
r0 = r16
|
2937
2839
|
r0.extend(RankUninomial0)
|
2938
2840
|
else
|
2939
|
-
if
|
2940
|
-
r17 = instantiate_node(SyntaxNode,input, index...(index +
|
2941
|
-
@index +=
|
2841
|
+
if has_terminal?("supertrib.", false, index)
|
2842
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + 10))
|
2843
|
+
@index += 10
|
2942
2844
|
else
|
2943
2845
|
terminal_parse_failure("supertrib.")
|
2944
2846
|
r17 = nil
|
2945
2847
|
end
|
2946
2848
|
if r17
|
2947
|
-
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
2948
2849
|
r0 = r17
|
2949
2850
|
r0.extend(RankUninomial0)
|
2950
2851
|
else
|
2951
|
-
if
|
2952
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
2953
|
-
@index +=
|
2852
|
+
if has_terminal?("supertrib ", false, index)
|
2853
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + 10))
|
2854
|
+
@index += 10
|
2954
2855
|
else
|
2955
2856
|
terminal_parse_failure("supertrib ")
|
2956
2857
|
r18 = nil
|
2957
2858
|
end
|
2958
2859
|
if r18
|
2959
|
-
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
2960
2860
|
r0 = r18
|
2961
2861
|
r0.extend(RankUninomial0)
|
2962
2862
|
else
|
@@ -3027,7 +2927,7 @@ module ScientificNameClean
|
|
3027
2927
|
if node_cache[:species].has_key?(index)
|
3028
2928
|
cached = node_cache[:species][index]
|
3029
2929
|
if cached
|
3030
|
-
|
2930
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3031
2931
|
@index = cached.interval.end
|
3032
2932
|
end
|
3033
2933
|
return cached
|
@@ -3054,12 +2954,10 @@ module ScientificNameClean
|
|
3054
2954
|
r1 = nil
|
3055
2955
|
end
|
3056
2956
|
if r1
|
3057
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3058
2957
|
r0 = r1
|
3059
2958
|
else
|
3060
2959
|
r5 = _nt_species_string
|
3061
2960
|
if r5
|
3062
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
3063
2961
|
r0 = r5
|
3064
2962
|
else
|
3065
2963
|
@index = i0
|
@@ -3095,7 +2993,7 @@ module ScientificNameClean
|
|
3095
2993
|
if node_cache[:species_string].has_key?(index)
|
3096
2994
|
cached = node_cache[:species_string][index]
|
3097
2995
|
if cached
|
3098
|
-
|
2996
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3099
2997
|
@index = cached.interval.end
|
3100
2998
|
end
|
3101
2999
|
return cached
|
@@ -3105,12 +3003,10 @@ module ScientificNameClean
|
|
3105
3003
|
r1 = _nt_species_word
|
3106
3004
|
r1.extend(SpeciesString0)
|
3107
3005
|
if r1
|
3108
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3109
3006
|
r0 = r1
|
3110
3007
|
else
|
3111
3008
|
r2 = _nt_species_word_hybrid
|
3112
3009
|
if r2
|
3113
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
3114
3010
|
r0 = r2
|
3115
3011
|
else
|
3116
3012
|
@index = i0
|
@@ -3168,7 +3064,7 @@ module ScientificNameClean
|
|
3168
3064
|
if node_cache[:infragenus].has_key?(index)
|
3169
3065
|
cached = node_cache[:infragenus][index]
|
3170
3066
|
if cached
|
3171
|
-
|
3067
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3172
3068
|
@index = cached.interval.end
|
3173
3069
|
end
|
3174
3070
|
return cached
|
@@ -3184,12 +3080,10 @@ module ScientificNameClean
|
|
3184
3080
|
i3 = index
|
3185
3081
|
r4 = _nt_cap_latin_word
|
3186
3082
|
if r4
|
3187
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
3188
3083
|
r3 = r4
|
3189
3084
|
else
|
3190
3085
|
r5 = _nt_capped_dotted_char
|
3191
3086
|
if r5
|
3192
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
3193
3087
|
r3 = r5
|
3194
3088
|
else
|
3195
3089
|
@index = i3
|
@@ -3269,7 +3163,7 @@ module ScientificNameClean
|
|
3269
3163
|
if node_cache[:genus].has_key?(index)
|
3270
3164
|
cached = node_cache[:genus][index]
|
3271
3165
|
if cached
|
3272
|
-
|
3166
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3273
3167
|
@index = cached.interval.end
|
3274
3168
|
end
|
3275
3169
|
return cached
|
@@ -3279,12 +3173,10 @@ module ScientificNameClean
|
|
3279
3173
|
i1 = index
|
3280
3174
|
r2 = _nt_abbreviated_genus
|
3281
3175
|
if r2
|
3282
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
3283
3176
|
r1 = r2
|
3284
3177
|
else
|
3285
3178
|
r3 = _nt_uninomial_string
|
3286
3179
|
if r3
|
3287
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
3288
3180
|
r1 = r3
|
3289
3181
|
else
|
3290
3182
|
@index = i1
|
@@ -3367,27 +3259,25 @@ module ScientificNameClean
|
|
3367
3259
|
if node_cache[:abbreviated_genus].has_key?(index)
|
3368
3260
|
cached = node_cache[:abbreviated_genus][index]
|
3369
3261
|
if cached
|
3370
|
-
|
3262
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3371
3263
|
@index = cached.interval.end
|
3372
3264
|
end
|
3373
3265
|
return cached
|
3374
3266
|
end
|
3375
3267
|
|
3376
3268
|
i0, s0 = index, []
|
3377
|
-
if has_terminal?(
|
3269
|
+
if has_terminal?('\G[A-Z]', true, index)
|
3378
3270
|
r1 = true
|
3379
3271
|
@index += 1
|
3380
3272
|
else
|
3381
|
-
terminal_parse_failure('[A-Z]')
|
3382
3273
|
r1 = nil
|
3383
3274
|
end
|
3384
3275
|
s0 << r1
|
3385
3276
|
if r1
|
3386
|
-
if has_terminal?(
|
3277
|
+
if has_terminal?('\G[a-z]', true, index)
|
3387
3278
|
r3 = true
|
3388
3279
|
@index += 1
|
3389
3280
|
else
|
3390
|
-
terminal_parse_failure('[a-z]')
|
3391
3281
|
r3 = nil
|
3392
3282
|
end
|
3393
3283
|
if r3
|
@@ -3397,11 +3287,10 @@ module ScientificNameClean
|
|
3397
3287
|
end
|
3398
3288
|
s0 << r2
|
3399
3289
|
if r2
|
3400
|
-
if has_terminal?(
|
3290
|
+
if has_terminal?('\G[a-z]', true, index)
|
3401
3291
|
r5 = true
|
3402
3292
|
@index += 1
|
3403
3293
|
else
|
3404
|
-
terminal_parse_failure('[a-z]')
|
3405
3294
|
r5 = nil
|
3406
3295
|
end
|
3407
3296
|
if r5
|
@@ -3411,11 +3300,10 @@ module ScientificNameClean
|
|
3411
3300
|
end
|
3412
3301
|
s0 << r4
|
3413
3302
|
if r4
|
3414
|
-
if has_terminal?(
|
3303
|
+
if has_terminal?('\G[\\\\.]', true, index)
|
3415
3304
|
r6 = true
|
3416
3305
|
@index += 1
|
3417
3306
|
else
|
3418
|
-
terminal_parse_failure('[\\\\.]')
|
3419
3307
|
r6 = nil
|
3420
3308
|
end
|
3421
3309
|
s0 << r6
|
@@ -3561,7 +3449,7 @@ module ScientificNameClean
|
|
3561
3449
|
if node_cache[:uninomial_name].has_key?(index)
|
3562
3450
|
cached = node_cache[:uninomial_name][index]
|
3563
3451
|
if cached
|
3564
|
-
|
3452
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3565
3453
|
@index = cached.interval.end
|
3566
3454
|
end
|
3567
3455
|
return cached
|
@@ -3596,7 +3484,6 @@ module ScientificNameClean
|
|
3596
3484
|
r1 = nil
|
3597
3485
|
end
|
3598
3486
|
if r1
|
3599
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3600
3487
|
r0 = r1
|
3601
3488
|
else
|
3602
3489
|
i7, s7 = index, []
|
@@ -3619,7 +3506,6 @@ module ScientificNameClean
|
|
3619
3506
|
r7 = nil
|
3620
3507
|
end
|
3621
3508
|
if r7
|
3622
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
3623
3509
|
r0 = r7
|
3624
3510
|
else
|
3625
3511
|
i11, s11 = index, []
|
@@ -3642,12 +3528,10 @@ module ScientificNameClean
|
|
3642
3528
|
r11 = nil
|
3643
3529
|
end
|
3644
3530
|
if r11
|
3645
|
-
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
3646
3531
|
r0 = r11
|
3647
3532
|
else
|
3648
3533
|
r15 = _nt_uninomial_string
|
3649
3534
|
if r15
|
3650
|
-
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
3651
3535
|
r0 = r15
|
3652
3536
|
else
|
3653
3537
|
@index = i0
|
@@ -3685,7 +3569,7 @@ module ScientificNameClean
|
|
3685
3569
|
if node_cache[:uninomial_string].has_key?(index)
|
3686
3570
|
cached = node_cache[:uninomial_string][index]
|
3687
3571
|
if cached
|
3688
|
-
|
3572
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3689
3573
|
@index = cached.interval.end
|
3690
3574
|
end
|
3691
3575
|
return cached
|
@@ -3694,13 +3578,11 @@ module ScientificNameClean
|
|
3694
3578
|
i0 = index
|
3695
3579
|
r1 = _nt_cap_latin_word_pair
|
3696
3580
|
if r1
|
3697
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3698
3581
|
r0 = r1
|
3699
3582
|
r0.extend(UninomialString0)
|
3700
3583
|
else
|
3701
3584
|
r2 = _nt_cap_latin_word
|
3702
3585
|
if r2
|
3703
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
3704
3586
|
r0 = r2
|
3705
3587
|
r0.extend(UninomialString0)
|
3706
3588
|
else
|
@@ -3816,7 +3698,7 @@ module ScientificNameClean
|
|
3816
3698
|
if node_cache[:authorship].has_key?(index)
|
3817
3699
|
cached = node_cache[:authorship][index]
|
3818
3700
|
if cached
|
3819
|
-
|
3701
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3820
3702
|
@index = cached.interval.end
|
3821
3703
|
end
|
3822
3704
|
return cached
|
@@ -3833,9 +3715,9 @@ module ScientificNameClean
|
|
3833
3715
|
r4 = _nt_simple_authorship
|
3834
3716
|
s1 << r4
|
3835
3717
|
if r4
|
3836
|
-
if
|
3837
|
-
r6 =
|
3838
|
-
@index +=
|
3718
|
+
if has_terminal?(",", false, index)
|
3719
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
3720
|
+
@index += 1
|
3839
3721
|
else
|
3840
3722
|
terminal_parse_failure(",")
|
3841
3723
|
r6 = nil
|
@@ -3866,7 +3748,6 @@ module ScientificNameClean
|
|
3866
3748
|
r1 = nil
|
3867
3749
|
end
|
3868
3750
|
if r1
|
3869
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3870
3751
|
r0 = r1
|
3871
3752
|
else
|
3872
3753
|
i9, s9 = index, []
|
@@ -3889,21 +3770,19 @@ module ScientificNameClean
|
|
3889
3770
|
r9 = nil
|
3890
3771
|
end
|
3891
3772
|
if r9
|
3892
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
3893
3773
|
r0 = r9
|
3894
3774
|
else
|
3895
3775
|
r13 = _nt_basionym_authorship_with_parenthesis
|
3896
3776
|
if r13
|
3897
|
-
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
3898
3777
|
r0 = r13
|
3899
3778
|
else
|
3900
3779
|
i14, s14 = index, []
|
3901
3780
|
r15 = _nt_simple_authorship
|
3902
3781
|
s14 << r15
|
3903
3782
|
if r15
|
3904
|
-
if
|
3905
|
-
r17 =
|
3906
|
-
@index +=
|
3783
|
+
if has_terminal?(",", false, index)
|
3784
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
3785
|
+
@index += 1
|
3907
3786
|
else
|
3908
3787
|
terminal_parse_failure(",")
|
3909
3788
|
r17 = nil
|
@@ -3932,12 +3811,10 @@ module ScientificNameClean
|
|
3932
3811
|
r14 = nil
|
3933
3812
|
end
|
3934
3813
|
if r14
|
3935
|
-
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
3936
3814
|
r0 = r14
|
3937
3815
|
else
|
3938
3816
|
r20 = _nt_simple_authorship
|
3939
3817
|
if r20
|
3940
|
-
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
3941
3818
|
r0 = r20
|
3942
3819
|
else
|
3943
3820
|
@index = i0
|
@@ -4129,7 +4006,7 @@ module ScientificNameClean
|
|
4129
4006
|
if node_cache[:basionym_authorship_with_parenthesis].has_key?(index)
|
4130
4007
|
cached = node_cache[:basionym_authorship_with_parenthesis][index]
|
4131
4008
|
if cached
|
4132
|
-
|
4009
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4133
4010
|
@index = cached.interval.end
|
4134
4011
|
end
|
4135
4012
|
return cached
|
@@ -4155,11 +4032,10 @@ module ScientificNameClean
|
|
4155
4032
|
r7 = _nt_space
|
4156
4033
|
s1 << r7
|
4157
4034
|
if r7
|
4158
|
-
if has_terminal?(
|
4035
|
+
if has_terminal?('\G[,]', true, index)
|
4159
4036
|
r9 = true
|
4160
4037
|
@index += 1
|
4161
4038
|
else
|
4162
|
-
terminal_parse_failure('[,]')
|
4163
4039
|
r9 = nil
|
4164
4040
|
end
|
4165
4041
|
if r9
|
@@ -4191,7 +4067,6 @@ module ScientificNameClean
|
|
4191
4067
|
r1 = nil
|
4192
4068
|
end
|
4193
4069
|
if r1
|
4194
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
4195
4070
|
r0 = r1
|
4196
4071
|
else
|
4197
4072
|
i12, s12 = index, []
|
@@ -4204,9 +4079,9 @@ module ScientificNameClean
|
|
4204
4079
|
r15 = _nt_simple_authorship
|
4205
4080
|
s12 << r15
|
4206
4081
|
if r15
|
4207
|
-
if
|
4208
|
-
r17 =
|
4209
|
-
@index +=
|
4082
|
+
if has_terminal?(",", false, index)
|
4083
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
4084
|
+
@index += 1
|
4210
4085
|
else
|
4211
4086
|
terminal_parse_failure(",")
|
4212
4087
|
r17 = nil
|
@@ -4245,7 +4120,6 @@ module ScientificNameClean
|
|
4245
4120
|
r12 = nil
|
4246
4121
|
end
|
4247
4122
|
if r12
|
4248
|
-
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
4249
4123
|
r0 = r12
|
4250
4124
|
else
|
4251
4125
|
i22, s22 = index, []
|
@@ -4276,7 +4150,6 @@ module ScientificNameClean
|
|
4276
4150
|
r22 = nil
|
4277
4151
|
end
|
4278
4152
|
if r22
|
4279
|
-
r22 = SyntaxNode.new(input, (index-1)...index) if r22 == true
|
4280
4153
|
r0 = r22
|
4281
4154
|
else
|
4282
4155
|
i28, s28 = index, []
|
@@ -4286,9 +4159,9 @@ module ScientificNameClean
|
|
4286
4159
|
r30 = _nt_space
|
4287
4160
|
s28 << r30
|
4288
4161
|
if r30
|
4289
|
-
if
|
4290
|
-
r31 =
|
4291
|
-
@index +=
|
4162
|
+
if has_terminal?("?", false, index)
|
4163
|
+
r31 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
4164
|
+
@index += 1
|
4292
4165
|
else
|
4293
4166
|
terminal_parse_failure("?")
|
4294
4167
|
r31 = nil
|
@@ -4313,7 +4186,6 @@ module ScientificNameClean
|
|
4313
4186
|
r28 = nil
|
4314
4187
|
end
|
4315
4188
|
if r28
|
4316
|
-
r28 = SyntaxNode.new(input, (index-1)...index) if r28 == true
|
4317
4189
|
r0 = r28
|
4318
4190
|
else
|
4319
4191
|
@index = i0
|
@@ -4362,7 +4234,7 @@ module ScientificNameClean
|
|
4362
4234
|
if node_cache[:ex_authorship].has_key?(index)
|
4363
4235
|
cached = node_cache[:ex_authorship][index]
|
4364
4236
|
if cached
|
4365
|
-
|
4237
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4366
4238
|
@index = cached.interval.end
|
4367
4239
|
end
|
4368
4240
|
return cached
|
@@ -4518,7 +4390,7 @@ module ScientificNameClean
|
|
4518
4390
|
if node_cache[:simple_authorship].has_key?(index)
|
4519
4391
|
cached = node_cache[:simple_authorship][index]
|
4520
4392
|
if cached
|
4521
|
-
|
4393
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4522
4394
|
@index = cached.interval.end
|
4523
4395
|
end
|
4524
4396
|
return cached
|
@@ -4532,11 +4404,10 @@ module ScientificNameClean
|
|
4532
4404
|
r3 = _nt_space
|
4533
4405
|
s1 << r3
|
4534
4406
|
if r3
|
4535
|
-
if has_terminal?(
|
4407
|
+
if has_terminal?('\G[,]', true, index)
|
4536
4408
|
r5 = true
|
4537
4409
|
@index += 1
|
4538
4410
|
else
|
4539
|
-
terminal_parse_failure('[,]')
|
4540
4411
|
r5 = nil
|
4541
4412
|
end
|
4542
4413
|
if r5
|
@@ -4557,11 +4428,10 @@ module ScientificNameClean
|
|
4557
4428
|
end
|
4558
4429
|
s1 << r7
|
4559
4430
|
if r7
|
4560
|
-
if has_terminal?(
|
4431
|
+
if has_terminal?('\G[,]', true, index)
|
4561
4432
|
r10 = true
|
4562
4433
|
@index += 1
|
4563
4434
|
else
|
4564
|
-
terminal_parse_failure('[,]')
|
4565
4435
|
r10 = nil
|
4566
4436
|
end
|
4567
4437
|
if r10
|
@@ -4574,9 +4444,9 @@ module ScientificNameClean
|
|
4574
4444
|
r11 = _nt_space
|
4575
4445
|
s1 << r11
|
4576
4446
|
if r11
|
4577
|
-
if
|
4578
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
4579
|
-
@index +=
|
4447
|
+
if has_terminal?("non", false, index)
|
4448
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
4449
|
+
@index += 3
|
4580
4450
|
else
|
4581
4451
|
terminal_parse_failure("non")
|
4582
4452
|
r12 = nil
|
@@ -4592,11 +4462,10 @@ module ScientificNameClean
|
|
4592
4462
|
r15 = _nt_space
|
4593
4463
|
s1 << r15
|
4594
4464
|
if r15
|
4595
|
-
if has_terminal?(
|
4465
|
+
if has_terminal?('\G[,]', true, index)
|
4596
4466
|
r17 = true
|
4597
4467
|
@index += 1
|
4598
4468
|
else
|
4599
|
-
terminal_parse_failure('[,]')
|
4600
4469
|
r17 = nil
|
4601
4470
|
end
|
4602
4471
|
if r17
|
@@ -4633,7 +4502,6 @@ module ScientificNameClean
|
|
4633
4502
|
r1 = nil
|
4634
4503
|
end
|
4635
4504
|
if r1
|
4636
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
4637
4505
|
r0 = r1
|
4638
4506
|
else
|
4639
4507
|
i20, s20 = index, []
|
@@ -4643,11 +4511,10 @@ module ScientificNameClean
|
|
4643
4511
|
r22 = _nt_space
|
4644
4512
|
s20 << r22
|
4645
4513
|
if r22
|
4646
|
-
if has_terminal?(
|
4514
|
+
if has_terminal?('\G[,]', true, index)
|
4647
4515
|
r24 = true
|
4648
4516
|
@index += 1
|
4649
4517
|
else
|
4650
|
-
terminal_parse_failure('[,]')
|
4651
4518
|
r24 = nil
|
4652
4519
|
end
|
4653
4520
|
if r24
|
@@ -4675,13 +4542,11 @@ module ScientificNameClean
|
|
4675
4542
|
r20 = nil
|
4676
4543
|
end
|
4677
4544
|
if r20
|
4678
|
-
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
4679
4545
|
r0 = r20
|
4680
4546
|
else
|
4681
4547
|
r27 = _nt_authors_names
|
4682
4548
|
r27.extend(SimpleAuthorship4)
|
4683
4549
|
if r27
|
4684
|
-
r27 = SyntaxNode.new(input, (index-1)...index) if r27 == true
|
4685
4550
|
r0 = r27
|
4686
4551
|
else
|
4687
4552
|
@index = i0
|
@@ -4736,7 +4601,7 @@ module ScientificNameClean
|
|
4736
4601
|
if node_cache[:authors_names].has_key?(index)
|
4737
4602
|
cached = node_cache[:authors_names][index]
|
4738
4603
|
if cached
|
4739
|
-
|
4604
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4740
4605
|
@index = cached.interval.end
|
4741
4606
|
end
|
4742
4607
|
return cached
|
@@ -4771,17 +4636,14 @@ module ScientificNameClean
|
|
4771
4636
|
r1 = nil
|
4772
4637
|
end
|
4773
4638
|
if r1
|
4774
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
4775
4639
|
r0 = r1
|
4776
4640
|
else
|
4777
4641
|
r7 = _nt_author_name
|
4778
4642
|
if r7
|
4779
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
4780
4643
|
r0 = r7
|
4781
4644
|
else
|
4782
4645
|
r8 = _nt_unknown_auth
|
4783
4646
|
if r8
|
4784
|
-
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
4785
4647
|
r0 = r8
|
4786
4648
|
else
|
4787
4649
|
@index = i0
|
@@ -4817,7 +4679,7 @@ module ScientificNameClean
|
|
4817
4679
|
if node_cache[:unknown_auth].has_key?(index)
|
4818
4680
|
cached = node_cache[:unknown_auth][index]
|
4819
4681
|
if cached
|
4820
|
-
|
4682
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4821
4683
|
@index = cached.interval.end
|
4822
4684
|
end
|
4823
4685
|
return cached
|
@@ -4825,92 +4687,84 @@ module ScientificNameClean
|
|
4825
4687
|
|
4826
4688
|
i0, s0 = index, []
|
4827
4689
|
i1 = index
|
4828
|
-
if
|
4829
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
4830
|
-
@index +=
|
4690
|
+
if has_terminal?("auct.", false, index)
|
4691
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
4692
|
+
@index += 5
|
4831
4693
|
else
|
4832
4694
|
terminal_parse_failure("auct.")
|
4833
4695
|
r2 = nil
|
4834
4696
|
end
|
4835
4697
|
if r2
|
4836
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
4837
4698
|
r1 = r2
|
4838
4699
|
else
|
4839
|
-
if
|
4840
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
4841
|
-
@index +=
|
4700
|
+
if has_terminal?("auct", false, index)
|
4701
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
4702
|
+
@index += 4
|
4842
4703
|
else
|
4843
4704
|
terminal_parse_failure("auct")
|
4844
4705
|
r3 = nil
|
4845
4706
|
end
|
4846
4707
|
if r3
|
4847
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
4848
4708
|
r1 = r3
|
4849
4709
|
else
|
4850
|
-
if
|
4851
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
4852
|
-
@index +=
|
4710
|
+
if has_terminal?("hort.", false, index)
|
4711
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
4712
|
+
@index += 5
|
4853
4713
|
else
|
4854
4714
|
terminal_parse_failure("hort.")
|
4855
4715
|
r4 = nil
|
4856
4716
|
end
|
4857
4717
|
if r4
|
4858
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
4859
4718
|
r1 = r4
|
4860
4719
|
else
|
4861
|
-
if
|
4862
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
4863
|
-
@index +=
|
4720
|
+
if has_terminal?("hort", false, index)
|
4721
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
4722
|
+
@index += 4
|
4864
4723
|
else
|
4865
4724
|
terminal_parse_failure("hort")
|
4866
4725
|
r5 = nil
|
4867
4726
|
end
|
4868
4727
|
if r5
|
4869
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
4870
4728
|
r1 = r5
|
4871
4729
|
else
|
4872
|
-
if
|
4873
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
4874
|
-
@index +=
|
4730
|
+
if has_terminal?("anon.", false, index)
|
4731
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
4732
|
+
@index += 5
|
4875
4733
|
else
|
4876
4734
|
terminal_parse_failure("anon.")
|
4877
4735
|
r6 = nil
|
4878
4736
|
end
|
4879
4737
|
if r6
|
4880
|
-
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
4881
4738
|
r1 = r6
|
4882
4739
|
else
|
4883
|
-
if
|
4884
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
4885
|
-
@index +=
|
4740
|
+
if has_terminal?("anon", false, index)
|
4741
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
4742
|
+
@index += 4
|
4886
4743
|
else
|
4887
4744
|
terminal_parse_failure("anon")
|
4888
4745
|
r7 = nil
|
4889
4746
|
end
|
4890
4747
|
if r7
|
4891
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
4892
4748
|
r1 = r7
|
4893
4749
|
else
|
4894
|
-
if
|
4895
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
4896
|
-
@index +=
|
4750
|
+
if has_terminal?("ht.", false, index)
|
4751
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
4752
|
+
@index += 3
|
4897
4753
|
else
|
4898
4754
|
terminal_parse_failure("ht.")
|
4899
4755
|
r8 = nil
|
4900
4756
|
end
|
4901
4757
|
if r8
|
4902
|
-
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
4903
4758
|
r1 = r8
|
4904
4759
|
else
|
4905
|
-
if
|
4906
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
4907
|
-
@index +=
|
4760
|
+
if has_terminal?("ht", false, index)
|
4761
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
4762
|
+
@index += 2
|
4908
4763
|
else
|
4909
4764
|
terminal_parse_failure("ht")
|
4910
4765
|
r9 = nil
|
4911
4766
|
end
|
4912
4767
|
if r9
|
4913
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
4914
4768
|
r1 = r9
|
4915
4769
|
else
|
4916
4770
|
@index = i1
|
@@ -4957,7 +4811,7 @@ module ScientificNameClean
|
|
4957
4811
|
if node_cache[:ex_sep].has_key?(index)
|
4958
4812
|
cached = node_cache[:ex_sep][index]
|
4959
4813
|
if cached
|
4960
|
-
|
4814
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4961
4815
|
@index = cached.interval.end
|
4962
4816
|
end
|
4963
4817
|
return cached
|
@@ -4965,26 +4819,24 @@ module ScientificNameClean
|
|
4965
4819
|
|
4966
4820
|
i0, s0 = index, []
|
4967
4821
|
i1 = index
|
4968
|
-
if
|
4969
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
4970
|
-
@index +=
|
4822
|
+
if has_terminal?("ex", false, index)
|
4823
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
4824
|
+
@index += 2
|
4971
4825
|
else
|
4972
4826
|
terminal_parse_failure("ex")
|
4973
4827
|
r2 = nil
|
4974
4828
|
end
|
4975
4829
|
if r2
|
4976
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
4977
4830
|
r1 = r2
|
4978
4831
|
else
|
4979
|
-
if
|
4980
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
4981
|
-
@index +=
|
4832
|
+
if has_terminal?("in", false, index)
|
4833
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
4834
|
+
@index += 2
|
4982
4835
|
else
|
4983
4836
|
terminal_parse_failure("in")
|
4984
4837
|
r3 = nil
|
4985
4838
|
end
|
4986
4839
|
if r3
|
4987
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
4988
4840
|
r1 = r3
|
4989
4841
|
else
|
4990
4842
|
@index = i1
|
@@ -4994,11 +4846,10 @@ module ScientificNameClean
|
|
4994
4846
|
s0 << r1
|
4995
4847
|
if r1
|
4996
4848
|
i4 = index
|
4997
|
-
if has_terminal?(
|
4849
|
+
if has_terminal?('\G[\\s]', true, index)
|
4998
4850
|
r5 = true
|
4999
4851
|
@index += 1
|
5000
4852
|
else
|
5001
|
-
terminal_parse_failure('[\\s]')
|
5002
4853
|
r5 = nil
|
5003
4854
|
end
|
5004
4855
|
if r5
|
@@ -5043,70 +4894,65 @@ module ScientificNameClean
|
|
5043
4894
|
if node_cache[:author_separator].has_key?(index)
|
5044
4895
|
cached = node_cache[:author_separator][index]
|
5045
4896
|
if cached
|
5046
|
-
|
4897
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5047
4898
|
@index = cached.interval.end
|
5048
4899
|
end
|
5049
4900
|
return cached
|
5050
4901
|
end
|
5051
4902
|
|
5052
4903
|
i0 = index
|
5053
|
-
if
|
5054
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
5055
|
-
@index +=
|
4904
|
+
if has_terminal?("&", false, index)
|
4905
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
4906
|
+
@index += 5
|
5056
4907
|
else
|
5057
4908
|
terminal_parse_failure("&")
|
5058
4909
|
r1 = nil
|
5059
4910
|
end
|
5060
4911
|
if r1
|
5061
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
5062
4912
|
r0 = r1
|
5063
4913
|
r0.extend(AuthorSeparator0)
|
5064
4914
|
else
|
5065
|
-
if
|
5066
|
-
r2 =
|
5067
|
-
@index +=
|
4915
|
+
if has_terminal?("&", false, index)
|
4916
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
4917
|
+
@index += 1
|
5068
4918
|
else
|
5069
4919
|
terminal_parse_failure("&")
|
5070
4920
|
r2 = nil
|
5071
4921
|
end
|
5072
4922
|
if r2
|
5073
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
5074
4923
|
r0 = r2
|
5075
4924
|
r0.extend(AuthorSeparator0)
|
5076
4925
|
else
|
5077
|
-
if
|
5078
|
-
r3 =
|
5079
|
-
@index +=
|
4926
|
+
if has_terminal?(",", false, index)
|
4927
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
4928
|
+
@index += 1
|
5080
4929
|
else
|
5081
4930
|
terminal_parse_failure(",")
|
5082
4931
|
r3 = nil
|
5083
4932
|
end
|
5084
4933
|
if r3
|
5085
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
5086
4934
|
r0 = r3
|
5087
4935
|
r0.extend(AuthorSeparator0)
|
5088
4936
|
else
|
5089
|
-
if
|
5090
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
5091
|
-
@index +=
|
4937
|
+
if has_terminal?("and", false, index)
|
4938
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
4939
|
+
@index += 3
|
5092
4940
|
else
|
5093
4941
|
terminal_parse_failure("and")
|
5094
4942
|
r4 = nil
|
5095
4943
|
end
|
5096
4944
|
if r4
|
5097
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
5098
4945
|
r0 = r4
|
5099
4946
|
r0.extend(AuthorSeparator0)
|
5100
4947
|
else
|
5101
|
-
if
|
5102
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
5103
|
-
@index +=
|
4948
|
+
if has_terminal?("et", false, index)
|
4949
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
4950
|
+
@index += 2
|
5104
4951
|
else
|
5105
4952
|
terminal_parse_failure("et")
|
5106
4953
|
r5 = nil
|
5107
4954
|
end
|
5108
4955
|
if r5
|
5109
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
5110
4956
|
r0 = r5
|
5111
4957
|
r0.extend(AuthorSeparator0)
|
5112
4958
|
else
|
@@ -5165,7 +5011,7 @@ module ScientificNameClean
|
|
5165
5011
|
if node_cache[:author_name].has_key?(index)
|
5166
5012
|
cached = node_cache[:author_name][index]
|
5167
5013
|
if cached
|
5168
|
-
|
5014
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5169
5015
|
@index = cached.interval.end
|
5170
5016
|
end
|
5171
5017
|
return cached
|
@@ -5211,12 +5057,10 @@ module ScientificNameClean
|
|
5211
5057
|
r1 = nil
|
5212
5058
|
end
|
5213
5059
|
if r1
|
5214
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
5215
5060
|
r0 = r1
|
5216
5061
|
else
|
5217
5062
|
r9 = _nt_author_name_without_postfix
|
5218
5063
|
if r9
|
5219
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
5220
5064
|
r0 = r9
|
5221
5065
|
else
|
5222
5066
|
@index = i0
|
@@ -5294,7 +5138,7 @@ module ScientificNameClean
|
|
5294
5138
|
if node_cache[:author_name_without_postfix].has_key?(index)
|
5295
5139
|
cached = node_cache[:author_name_without_postfix][index]
|
5296
5140
|
if cached
|
5297
|
-
|
5141
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5298
5142
|
@index = cached.interval.end
|
5299
5143
|
end
|
5300
5144
|
return cached
|
@@ -5325,7 +5169,6 @@ module ScientificNameClean
|
|
5325
5169
|
r1 = nil
|
5326
5170
|
end
|
5327
5171
|
if r1
|
5328
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
5329
5172
|
r0 = r1
|
5330
5173
|
else
|
5331
5174
|
i6, s6 = index, []
|
@@ -5348,12 +5191,10 @@ module ScientificNameClean
|
|
5348
5191
|
r6 = nil
|
5349
5192
|
end
|
5350
5193
|
if r6
|
5351
|
-
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
5352
5194
|
r0 = r6
|
5353
5195
|
else
|
5354
5196
|
r10 = _nt_author_word
|
5355
5197
|
if r10
|
5356
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
5357
5198
|
r0 = r10
|
5358
5199
|
else
|
5359
5200
|
@index = i0
|
@@ -5437,71 +5278,66 @@ module ScientificNameClean
|
|
5437
5278
|
if node_cache[:author_word].has_key?(index)
|
5438
5279
|
cached = node_cache[:author_word][index]
|
5439
5280
|
if cached
|
5440
|
-
|
5281
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5441
5282
|
@index = cached.interval.end
|
5442
5283
|
end
|
5443
5284
|
return cached
|
5444
5285
|
end
|
5445
5286
|
|
5446
5287
|
i0 = index
|
5447
|
-
if
|
5448
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
5288
|
+
if has_terminal?("A S. Xu", false, index)
|
5289
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
5449
5290
|
r1.extend(AuthorWord0)
|
5450
|
-
@index +=
|
5291
|
+
@index += 7
|
5451
5292
|
else
|
5452
5293
|
terminal_parse_failure("A S. Xu")
|
5453
5294
|
r1 = nil
|
5454
5295
|
end
|
5455
5296
|
if r1
|
5456
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
5457
5297
|
r0 = r1
|
5458
5298
|
else
|
5459
5299
|
i2 = index
|
5460
|
-
if
|
5461
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
5462
|
-
@index +=
|
5300
|
+
if has_terminal?("arg.", false, index)
|
5301
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
5302
|
+
@index += 4
|
5463
5303
|
else
|
5464
5304
|
terminal_parse_failure("arg.")
|
5465
5305
|
r3 = nil
|
5466
5306
|
end
|
5467
5307
|
if r3
|
5468
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
5469
5308
|
r2 = r3
|
5470
5309
|
r2.extend(AuthorWord1)
|
5471
5310
|
else
|
5472
|
-
if
|
5473
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
5474
|
-
@index +=
|
5311
|
+
if has_terminal?("et al.\{\?\}", false, index)
|
5312
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 9))
|
5313
|
+
@index += 9
|
5475
5314
|
else
|
5476
5315
|
terminal_parse_failure("et al.\{\?\}")
|
5477
5316
|
r4 = nil
|
5478
5317
|
end
|
5479
5318
|
if r4
|
5480
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
5481
5319
|
r2 = r4
|
5482
5320
|
r2.extend(AuthorWord1)
|
5483
5321
|
else
|
5484
|
-
if
|
5485
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
5486
|
-
@index +=
|
5322
|
+
if has_terminal?("et al.", false, index)
|
5323
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
5324
|
+
@index += 6
|
5487
5325
|
else
|
5488
5326
|
terminal_parse_failure("et al.")
|
5489
5327
|
r5 = nil
|
5490
5328
|
end
|
5491
5329
|
if r5
|
5492
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
5493
5330
|
r2 = r5
|
5494
5331
|
r2.extend(AuthorWord1)
|
5495
5332
|
else
|
5496
|
-
if
|
5497
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
5498
|
-
@index +=
|
5333
|
+
if has_terminal?("et al", false, index)
|
5334
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
5335
|
+
@index += 5
|
5499
5336
|
else
|
5500
5337
|
terminal_parse_failure("et al")
|
5501
5338
|
r6 = nil
|
5502
5339
|
end
|
5503
5340
|
if r6
|
5504
|
-
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
5505
5341
|
r2 = r6
|
5506
5342
|
r2.extend(AuthorWord1)
|
5507
5343
|
else
|
@@ -5512,163 +5348,146 @@ module ScientificNameClean
|
|
5512
5348
|
end
|
5513
5349
|
end
|
5514
5350
|
if r2
|
5515
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
5516
5351
|
r0 = r2
|
5517
5352
|
else
|
5518
5353
|
i7, s7 = index, []
|
5519
5354
|
i8 = index
|
5520
|
-
if
|
5521
|
-
r9 =
|
5522
|
-
@index +=
|
5355
|
+
if has_terminal?("Å", false, index)
|
5356
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5357
|
+
@index += 1
|
5523
5358
|
else
|
5524
5359
|
terminal_parse_failure("Å")
|
5525
5360
|
r9 = nil
|
5526
5361
|
end
|
5527
5362
|
if r9
|
5528
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
5529
5363
|
r8 = r9
|
5530
5364
|
else
|
5531
|
-
if
|
5532
|
-
r10 =
|
5533
|
-
@index +=
|
5365
|
+
if has_terminal?("Ö", false, index)
|
5366
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5367
|
+
@index += 1
|
5534
5368
|
else
|
5535
5369
|
terminal_parse_failure("Ö")
|
5536
5370
|
r10 = nil
|
5537
5371
|
end
|
5538
5372
|
if r10
|
5539
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
5540
5373
|
r8 = r10
|
5541
5374
|
else
|
5542
|
-
if
|
5543
|
-
r11 =
|
5544
|
-
@index +=
|
5375
|
+
if has_terminal?("Á", false, index)
|
5376
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5377
|
+
@index += 1
|
5545
5378
|
else
|
5546
5379
|
terminal_parse_failure("Á")
|
5547
5380
|
r11 = nil
|
5548
5381
|
end
|
5549
5382
|
if r11
|
5550
|
-
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
5551
5383
|
r8 = r11
|
5552
5384
|
else
|
5553
|
-
if
|
5554
|
-
r12 =
|
5555
|
-
@index +=
|
5385
|
+
if has_terminal?("Ø", false, index)
|
5386
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5387
|
+
@index += 1
|
5556
5388
|
else
|
5557
5389
|
terminal_parse_failure("Ø")
|
5558
5390
|
r12 = nil
|
5559
5391
|
end
|
5560
5392
|
if r12
|
5561
|
-
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
5562
5393
|
r8 = r12
|
5563
5394
|
else
|
5564
|
-
if
|
5565
|
-
r13 =
|
5566
|
-
@index +=
|
5395
|
+
if has_terminal?("Ô", false, index)
|
5396
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5397
|
+
@index += 1
|
5567
5398
|
else
|
5568
5399
|
terminal_parse_failure("Ô")
|
5569
5400
|
r13 = nil
|
5570
5401
|
end
|
5571
5402
|
if r13
|
5572
|
-
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
5573
5403
|
r8 = r13
|
5574
5404
|
else
|
5575
|
-
if
|
5576
|
-
r14 =
|
5577
|
-
@index +=
|
5405
|
+
if has_terminal?("Š", false, index)
|
5406
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5407
|
+
@index += 1
|
5578
5408
|
else
|
5579
5409
|
terminal_parse_failure("Š")
|
5580
5410
|
r14 = nil
|
5581
5411
|
end
|
5582
5412
|
if r14
|
5583
|
-
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
5584
5413
|
r8 = r14
|
5585
5414
|
else
|
5586
|
-
if
|
5587
|
-
r15 =
|
5588
|
-
@index +=
|
5415
|
+
if has_terminal?("Ś", false, index)
|
5416
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5417
|
+
@index += 1
|
5589
5418
|
else
|
5590
5419
|
terminal_parse_failure("Ś")
|
5591
5420
|
r15 = nil
|
5592
5421
|
end
|
5593
5422
|
if r15
|
5594
|
-
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
5595
5423
|
r8 = r15
|
5596
5424
|
else
|
5597
|
-
if
|
5598
|
-
r16 =
|
5599
|
-
@index +=
|
5425
|
+
if has_terminal?("Č", false, index)
|
5426
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5427
|
+
@index += 1
|
5600
5428
|
else
|
5601
5429
|
terminal_parse_failure("Č")
|
5602
5430
|
r16 = nil
|
5603
5431
|
end
|
5604
5432
|
if r16
|
5605
|
-
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
5606
5433
|
r8 = r16
|
5607
5434
|
else
|
5608
|
-
if
|
5609
|
-
r17 =
|
5610
|
-
@index +=
|
5435
|
+
if has_terminal?("Ķ", false, index)
|
5436
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5437
|
+
@index += 1
|
5611
5438
|
else
|
5612
5439
|
terminal_parse_failure("Ķ")
|
5613
5440
|
r17 = nil
|
5614
5441
|
end
|
5615
5442
|
if r17
|
5616
|
-
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
5617
5443
|
r8 = r17
|
5618
5444
|
else
|
5619
|
-
if
|
5620
|
-
r18 =
|
5621
|
-
@index +=
|
5445
|
+
if has_terminal?("Ł", false, index)
|
5446
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5447
|
+
@index += 1
|
5622
5448
|
else
|
5623
5449
|
terminal_parse_failure("Ł")
|
5624
5450
|
r18 = nil
|
5625
5451
|
end
|
5626
5452
|
if r18
|
5627
|
-
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
5628
5453
|
r8 = r18
|
5629
5454
|
else
|
5630
|
-
if
|
5631
|
-
r19 =
|
5632
|
-
@index +=
|
5455
|
+
if has_terminal?("É", false, index)
|
5456
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5457
|
+
@index += 1
|
5633
5458
|
else
|
5634
5459
|
terminal_parse_failure("É")
|
5635
5460
|
r19 = nil
|
5636
5461
|
end
|
5637
5462
|
if r19
|
5638
|
-
r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true
|
5639
5463
|
r8 = r19
|
5640
5464
|
else
|
5641
|
-
if
|
5642
|
-
r20 =
|
5643
|
-
@index +=
|
5465
|
+
if has_terminal?("Ž", false, index)
|
5466
|
+
r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5467
|
+
@index += 1
|
5644
5468
|
else
|
5645
5469
|
terminal_parse_failure("Ž")
|
5646
5470
|
r20 = nil
|
5647
5471
|
end
|
5648
5472
|
if r20
|
5649
|
-
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
5650
5473
|
r8 = r20
|
5651
5474
|
else
|
5652
|
-
if has_terminal?(
|
5475
|
+
if has_terminal?('\G[A-W]', true, index)
|
5653
5476
|
r21 = true
|
5654
5477
|
@index += 1
|
5655
5478
|
else
|
5656
|
-
terminal_parse_failure('[A-W]')
|
5657
5479
|
r21 = nil
|
5658
5480
|
end
|
5659
5481
|
if r21
|
5660
|
-
r21 = SyntaxNode.new(input, (index-1)...index) if r21 == true
|
5661
5482
|
r8 = r21
|
5662
5483
|
else
|
5663
|
-
if has_terminal?(
|
5484
|
+
if has_terminal?('\G[Y-Z]', true, index)
|
5664
5485
|
r22 = true
|
5665
5486
|
@index += 1
|
5666
5487
|
else
|
5667
|
-
terminal_parse_failure('[Y-Z]')
|
5668
5488
|
r22 = nil
|
5669
5489
|
end
|
5670
5490
|
if r22
|
5671
|
-
r22 = SyntaxNode.new(input, (index-1)...index) if r22 == true
|
5672
5491
|
r8 = r22
|
5673
5492
|
else
|
5674
5493
|
@index = i8
|
@@ -5691,11 +5510,10 @@ module ScientificNameClean
|
|
5691
5510
|
if r8
|
5692
5511
|
s23, i23 = [], index
|
5693
5512
|
loop do
|
5694
|
-
if has_terminal?(
|
5513
|
+
if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
|
5695
5514
|
r24 = true
|
5696
5515
|
@index += 1
|
5697
5516
|
else
|
5698
|
-
terminal_parse_failure('[^0-9\\[\\]\\(\\)\\s&,]')
|
5699
5517
|
r24 = nil
|
5700
5518
|
end
|
5701
5519
|
if r24
|
@@ -5716,13 +5534,12 @@ module ScientificNameClean
|
|
5716
5534
|
r7 = nil
|
5717
5535
|
end
|
5718
5536
|
if r7
|
5719
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
5720
5537
|
r0 = r7
|
5721
5538
|
else
|
5722
5539
|
i25, s25 = index, []
|
5723
|
-
if
|
5724
|
-
r26 =
|
5725
|
-
@index +=
|
5540
|
+
if has_terminal?("X", false, index)
|
5541
|
+
r26 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5542
|
+
@index += 1
|
5726
5543
|
else
|
5727
5544
|
terminal_parse_failure("X")
|
5728
5545
|
r26 = nil
|
@@ -5731,11 +5548,10 @@ module ScientificNameClean
|
|
5731
5548
|
if r26
|
5732
5549
|
s27, i27 = [], index
|
5733
5550
|
loop do
|
5734
|
-
if has_terminal?(
|
5551
|
+
if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
|
5735
5552
|
r28 = true
|
5736
5553
|
@index += 1
|
5737
5554
|
else
|
5738
|
-
terminal_parse_failure('[^0-9\\[\\]\\(\\)\\s&,]')
|
5739
5555
|
r28 = nil
|
5740
5556
|
end
|
5741
5557
|
if r28
|
@@ -5761,12 +5577,10 @@ module ScientificNameClean
|
|
5761
5577
|
r25 = nil
|
5762
5578
|
end
|
5763
5579
|
if r25
|
5764
|
-
r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
|
5765
5580
|
r0 = r25
|
5766
5581
|
else
|
5767
5582
|
r29 = _nt_author_prefix_word
|
5768
5583
|
if r29
|
5769
|
-
r29 = SyntaxNode.new(input, (index-1)...index) if r29 == true
|
5770
5584
|
r0 = r29
|
5771
5585
|
else
|
5772
5586
|
@index = i0
|
@@ -5805,7 +5619,7 @@ module ScientificNameClean
|
|
5805
5619
|
if node_cache[:author_prefix_word].has_key?(index)
|
5806
5620
|
cached = node_cache[:author_prefix_word][index]
|
5807
5621
|
if cached
|
5808
|
-
|
5622
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5809
5623
|
@index = cached.interval.end
|
5810
5624
|
end
|
5811
5625
|
return cached
|
@@ -5816,180 +5630,164 @@ module ScientificNameClean
|
|
5816
5630
|
s0 << r1
|
5817
5631
|
if r1
|
5818
5632
|
i2 = index
|
5819
|
-
if
|
5820
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
5821
|
-
@index +=
|
5633
|
+
if has_terminal?("ab", false, index)
|
5634
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
5635
|
+
@index += 2
|
5822
5636
|
else
|
5823
5637
|
terminal_parse_failure("ab")
|
5824
5638
|
r3 = nil
|
5825
5639
|
end
|
5826
5640
|
if r3
|
5827
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
5828
5641
|
r2 = r3
|
5829
5642
|
else
|
5830
|
-
if
|
5831
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
5832
|
-
@index +=
|
5643
|
+
if has_terminal?("af", false, index)
|
5644
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
5645
|
+
@index += 2
|
5833
5646
|
else
|
5834
5647
|
terminal_parse_failure("af")
|
5835
5648
|
r4 = nil
|
5836
5649
|
end
|
5837
5650
|
if r4
|
5838
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
5839
5651
|
r2 = r4
|
5840
5652
|
else
|
5841
|
-
if
|
5842
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
5843
|
-
@index +=
|
5653
|
+
if has_terminal?("bis", false, index)
|
5654
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
5655
|
+
@index += 3
|
5844
5656
|
else
|
5845
5657
|
terminal_parse_failure("bis")
|
5846
5658
|
r5 = nil
|
5847
5659
|
end
|
5848
5660
|
if r5
|
5849
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
5850
5661
|
r2 = r5
|
5851
5662
|
else
|
5852
|
-
if
|
5853
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
5854
|
-
@index +=
|
5663
|
+
if has_terminal?("da", false, index)
|
5664
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
5665
|
+
@index += 2
|
5855
5666
|
else
|
5856
5667
|
terminal_parse_failure("da")
|
5857
5668
|
r6 = nil
|
5858
5669
|
end
|
5859
5670
|
if r6
|
5860
|
-
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
5861
5671
|
r2 = r6
|
5862
5672
|
else
|
5863
|
-
if
|
5864
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
5865
|
-
@index +=
|
5673
|
+
if has_terminal?("der", false, index)
|
5674
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
5675
|
+
@index += 3
|
5866
5676
|
else
|
5867
5677
|
terminal_parse_failure("der")
|
5868
5678
|
r7 = nil
|
5869
5679
|
end
|
5870
5680
|
if r7
|
5871
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
5872
5681
|
r2 = r7
|
5873
5682
|
else
|
5874
|
-
if
|
5875
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
5876
|
-
@index +=
|
5683
|
+
if has_terminal?("des", false, index)
|
5684
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
5685
|
+
@index += 3
|
5877
5686
|
else
|
5878
5687
|
terminal_parse_failure("des")
|
5879
5688
|
r8 = nil
|
5880
5689
|
end
|
5881
5690
|
if r8
|
5882
|
-
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
5883
5691
|
r2 = r8
|
5884
5692
|
else
|
5885
|
-
if
|
5886
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
5887
|
-
@index +=
|
5693
|
+
if has_terminal?("den", false, index)
|
5694
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
5695
|
+
@index += 3
|
5888
5696
|
else
|
5889
5697
|
terminal_parse_failure("den")
|
5890
5698
|
r9 = nil
|
5891
5699
|
end
|
5892
5700
|
if r9
|
5893
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
5894
5701
|
r2 = r9
|
5895
5702
|
else
|
5896
|
-
if
|
5897
|
-
r10 = instantiate_node(SyntaxNode,input, index...(index +
|
5898
|
-
@index +=
|
5703
|
+
if has_terminal?("della", false, index)
|
5704
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
5705
|
+
@index += 5
|
5899
5706
|
else
|
5900
5707
|
terminal_parse_failure("della")
|
5901
5708
|
r10 = nil
|
5902
5709
|
end
|
5903
5710
|
if r10
|
5904
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
5905
5711
|
r2 = r10
|
5906
5712
|
else
|
5907
|
-
if
|
5908
|
-
r11 = instantiate_node(SyntaxNode,input, index...(index +
|
5909
|
-
@index +=
|
5713
|
+
if has_terminal?("dela", false, index)
|
5714
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
5715
|
+
@index += 4
|
5910
5716
|
else
|
5911
5717
|
terminal_parse_failure("dela")
|
5912
5718
|
r11 = nil
|
5913
5719
|
end
|
5914
5720
|
if r11
|
5915
|
-
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
5916
5721
|
r2 = r11
|
5917
5722
|
else
|
5918
|
-
if
|
5919
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
5920
|
-
@index +=
|
5723
|
+
if has_terminal?("de", false, index)
|
5724
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
5725
|
+
@index += 2
|
5921
5726
|
else
|
5922
5727
|
terminal_parse_failure("de")
|
5923
5728
|
r12 = nil
|
5924
5729
|
end
|
5925
5730
|
if r12
|
5926
|
-
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
5927
5731
|
r2 = r12
|
5928
5732
|
else
|
5929
|
-
if
|
5930
|
-
r13 = instantiate_node(SyntaxNode,input, index...(index +
|
5931
|
-
@index +=
|
5733
|
+
if has_terminal?("di", false, index)
|
5734
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
5735
|
+
@index += 2
|
5932
5736
|
else
|
5933
5737
|
terminal_parse_failure("di")
|
5934
5738
|
r13 = nil
|
5935
5739
|
end
|
5936
5740
|
if r13
|
5937
|
-
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
5938
5741
|
r2 = r13
|
5939
5742
|
else
|
5940
|
-
if
|
5941
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
5942
|
-
@index +=
|
5743
|
+
if has_terminal?("du", false, index)
|
5744
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
5745
|
+
@index += 2
|
5943
5746
|
else
|
5944
5747
|
terminal_parse_failure("du")
|
5945
5748
|
r14 = nil
|
5946
5749
|
end
|
5947
5750
|
if r14
|
5948
|
-
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
5949
5751
|
r2 = r14
|
5950
5752
|
else
|
5951
|
-
if
|
5952
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
5953
|
-
@index +=
|
5753
|
+
if has_terminal?("la", false, index)
|
5754
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
5755
|
+
@index += 2
|
5954
5756
|
else
|
5955
5757
|
terminal_parse_failure("la")
|
5956
5758
|
r15 = nil
|
5957
5759
|
end
|
5958
5760
|
if r15
|
5959
|
-
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
5960
5761
|
r2 = r15
|
5961
5762
|
else
|
5962
|
-
if
|
5963
|
-
r16 = instantiate_node(SyntaxNode,input, index...(index +
|
5964
|
-
@index +=
|
5763
|
+
if has_terminal?("ter", false, index)
|
5764
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
5765
|
+
@index += 3
|
5965
5766
|
else
|
5966
5767
|
terminal_parse_failure("ter")
|
5967
5768
|
r16 = nil
|
5968
5769
|
end
|
5969
5770
|
if r16
|
5970
|
-
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
5971
5771
|
r2 = r16
|
5972
5772
|
else
|
5973
|
-
if
|
5974
|
-
r17 = instantiate_node(SyntaxNode,input, index...(index +
|
5975
|
-
@index +=
|
5773
|
+
if has_terminal?("van", false, index)
|
5774
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
5775
|
+
@index += 3
|
5976
5776
|
else
|
5977
5777
|
terminal_parse_failure("van")
|
5978
5778
|
r17 = nil
|
5979
5779
|
end
|
5980
5780
|
if r17
|
5981
|
-
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
5982
5781
|
r2 = r17
|
5983
5782
|
else
|
5984
|
-
if
|
5985
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
5986
|
-
@index +=
|
5783
|
+
if has_terminal?("von", false, index)
|
5784
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
5785
|
+
@index += 3
|
5987
5786
|
else
|
5988
5787
|
terminal_parse_failure("von")
|
5989
5788
|
r18 = nil
|
5990
5789
|
end
|
5991
5790
|
if r18
|
5992
|
-
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
5993
5791
|
r2 = r18
|
5994
5792
|
else
|
5995
5793
|
@index = i2
|
@@ -6052,34 +5850,32 @@ module ScientificNameClean
|
|
6052
5850
|
if node_cache[:author_postfix_word].has_key?(index)
|
6053
5851
|
cached = node_cache[:author_postfix_word][index]
|
6054
5852
|
if cached
|
6055
|
-
|
5853
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6056
5854
|
@index = cached.interval.end
|
6057
5855
|
end
|
6058
5856
|
return cached
|
6059
5857
|
end
|
6060
5858
|
|
6061
5859
|
i0 = index
|
6062
|
-
if
|
6063
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
6064
|
-
@index +=
|
5860
|
+
if has_terminal?("f.", false, index)
|
5861
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
5862
|
+
@index += 2
|
6065
5863
|
else
|
6066
5864
|
terminal_parse_failure("f.")
|
6067
5865
|
r1 = nil
|
6068
5866
|
end
|
6069
5867
|
if r1
|
6070
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
6071
5868
|
r0 = r1
|
6072
5869
|
r0.extend(AuthorPostfixWord0)
|
6073
5870
|
else
|
6074
|
-
if
|
6075
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
6076
|
-
@index +=
|
5871
|
+
if has_terminal?("filius", false, index)
|
5872
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
5873
|
+
@index += 6
|
6077
5874
|
else
|
6078
5875
|
terminal_parse_failure("filius")
|
6079
5876
|
r2 = nil
|
6080
5877
|
end
|
6081
5878
|
if r2
|
6082
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
6083
5879
|
r0 = r2
|
6084
5880
|
r0.extend(AuthorPostfixWord0)
|
6085
5881
|
else
|
@@ -6114,7 +5910,7 @@ module ScientificNameClean
|
|
6114
5910
|
if node_cache[:cap_latin_word_pair].has_key?(index)
|
6115
5911
|
cached = node_cache[:cap_latin_word_pair][index]
|
6116
5912
|
if cached
|
6117
|
-
|
5913
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6118
5914
|
@index = cached.interval.end
|
6119
5915
|
end
|
6120
5916
|
return cached
|
@@ -6124,9 +5920,9 @@ module ScientificNameClean
|
|
6124
5920
|
r1 = _nt_cap_latin_word
|
6125
5921
|
s0 << r1
|
6126
5922
|
if r1
|
6127
|
-
if
|
6128
|
-
r2 =
|
6129
|
-
@index +=
|
5923
|
+
if has_terminal?("-", false, index)
|
5924
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
5925
|
+
@index += 1
|
6130
5926
|
else
|
6131
5927
|
terminal_parse_failure("-")
|
6132
5928
|
r2 = nil
|
@@ -6211,7 +6007,7 @@ module ScientificNameClean
|
|
6211
6007
|
if node_cache[:cap_latin_word].has_key?(index)
|
6212
6008
|
cached = node_cache[:cap_latin_word][index]
|
6213
6009
|
if cached
|
6214
|
-
|
6010
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6215
6011
|
@index = cached.interval.end
|
6216
6012
|
end
|
6217
6013
|
return cached
|
@@ -6220,20 +6016,17 @@ module ScientificNameClean
|
|
6220
6016
|
i0 = index
|
6221
6017
|
i1, s1 = index, []
|
6222
6018
|
i2 = index
|
6223
|
-
if has_terminal?(
|
6019
|
+
if has_terminal?('\G[A-Z]', true, index)
|
6224
6020
|
r3 = true
|
6225
6021
|
@index += 1
|
6226
6022
|
else
|
6227
|
-
terminal_parse_failure('[A-Z]')
|
6228
6023
|
r3 = nil
|
6229
6024
|
end
|
6230
6025
|
if r3
|
6231
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
6232
6026
|
r2 = r3
|
6233
6027
|
else
|
6234
6028
|
r4 = _nt_cap_digraph
|
6235
6029
|
if r4
|
6236
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
6237
6030
|
r2 = r4
|
6238
6031
|
else
|
6239
6032
|
@index = i2
|
@@ -6245,9 +6038,9 @@ module ScientificNameClean
|
|
6245
6038
|
r5 = _nt_latin_word
|
6246
6039
|
s1 << r5
|
6247
6040
|
if r5
|
6248
|
-
if
|
6249
|
-
r6 =
|
6250
|
-
@index +=
|
6041
|
+
if has_terminal?("?", false, index)
|
6042
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
6043
|
+
@index += 1
|
6251
6044
|
else
|
6252
6045
|
terminal_parse_failure("?")
|
6253
6046
|
r6 = nil
|
@@ -6264,25 +6057,21 @@ module ScientificNameClean
|
|
6264
6057
|
r1 = nil
|
6265
6058
|
end
|
6266
6059
|
if r1
|
6267
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
6268
6060
|
r0 = r1
|
6269
6061
|
else
|
6270
6062
|
i7, s7 = index, []
|
6271
6063
|
i8 = index
|
6272
|
-
if has_terminal?(
|
6064
|
+
if has_terminal?('\G[A-Z]', true, index)
|
6273
6065
|
r9 = true
|
6274
6066
|
@index += 1
|
6275
6067
|
else
|
6276
|
-
terminal_parse_failure('[A-Z]')
|
6277
6068
|
r9 = nil
|
6278
6069
|
end
|
6279
6070
|
if r9
|
6280
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
6281
6071
|
r8 = r9
|
6282
6072
|
else
|
6283
6073
|
r10 = _nt_cap_digraph
|
6284
6074
|
if r10
|
6285
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
6286
6075
|
r8 = r10
|
6287
6076
|
else
|
6288
6077
|
@index = i8
|
@@ -6303,31 +6092,28 @@ module ScientificNameClean
|
|
6303
6092
|
r7 = nil
|
6304
6093
|
end
|
6305
6094
|
if r7
|
6306
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
6307
6095
|
r0 = r7
|
6308
6096
|
else
|
6309
6097
|
i12, s12 = index, []
|
6310
6098
|
i13 = index
|
6311
|
-
if
|
6312
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
6313
|
-
@index +=
|
6099
|
+
if has_terminal?("AE", false, index)
|
6100
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6101
|
+
@index += 2
|
6314
6102
|
else
|
6315
6103
|
terminal_parse_failure("AE")
|
6316
6104
|
r14 = nil
|
6317
6105
|
end
|
6318
6106
|
if r14
|
6319
|
-
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
6320
6107
|
r13 = r14
|
6321
6108
|
else
|
6322
|
-
if
|
6323
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
6324
|
-
@index +=
|
6109
|
+
if has_terminal?("OE", false, index)
|
6110
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6111
|
+
@index += 2
|
6325
6112
|
else
|
6326
6113
|
terminal_parse_failure("OE")
|
6327
6114
|
r15 = nil
|
6328
6115
|
end
|
6329
6116
|
if r15
|
6330
|
-
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
6331
6117
|
r13 = r15
|
6332
6118
|
else
|
6333
6119
|
@index = i13
|
@@ -6348,235 +6134,215 @@ module ScientificNameClean
|
|
6348
6134
|
r12 = nil
|
6349
6135
|
end
|
6350
6136
|
if r12
|
6351
|
-
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
6352
6137
|
r0 = r12
|
6353
6138
|
else
|
6354
6139
|
i17 = index
|
6355
|
-
if
|
6356
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
6357
|
-
@index +=
|
6140
|
+
if has_terminal?("Ca", false, index)
|
6141
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6142
|
+
@index += 2
|
6358
6143
|
else
|
6359
6144
|
terminal_parse_failure("Ca")
|
6360
6145
|
r18 = nil
|
6361
6146
|
end
|
6362
6147
|
if r18
|
6363
|
-
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
6364
6148
|
r17 = r18
|
6365
6149
|
r17.extend(CapLatinWord6)
|
6366
6150
|
else
|
6367
|
-
if
|
6368
|
-
r19 = instantiate_node(SyntaxNode,input, index...(index +
|
6369
|
-
@index +=
|
6151
|
+
if has_terminal?("Ea", false, index)
|
6152
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6153
|
+
@index += 2
|
6370
6154
|
else
|
6371
6155
|
terminal_parse_failure("Ea")
|
6372
6156
|
r19 = nil
|
6373
6157
|
end
|
6374
6158
|
if r19
|
6375
|
-
r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true
|
6376
6159
|
r17 = r19
|
6377
6160
|
r17.extend(CapLatinWord6)
|
6378
6161
|
else
|
6379
|
-
if
|
6380
|
-
r20 = instantiate_node(SyntaxNode,input, index...(index +
|
6381
|
-
@index +=
|
6162
|
+
if has_terminal?("Ge", false, index)
|
6163
|
+
r20 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6164
|
+
@index += 2
|
6382
6165
|
else
|
6383
6166
|
terminal_parse_failure("Ge")
|
6384
6167
|
r20 = nil
|
6385
6168
|
end
|
6386
6169
|
if r20
|
6387
|
-
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
6388
6170
|
r17 = r20
|
6389
6171
|
r17.extend(CapLatinWord6)
|
6390
6172
|
else
|
6391
|
-
if
|
6392
|
-
r21 = instantiate_node(SyntaxNode,input, index...(index +
|
6393
|
-
@index +=
|
6173
|
+
if has_terminal?("Ia", false, index)
|
6174
|
+
r21 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6175
|
+
@index += 2
|
6394
6176
|
else
|
6395
6177
|
terminal_parse_failure("Ia")
|
6396
6178
|
r21 = nil
|
6397
6179
|
end
|
6398
6180
|
if r21
|
6399
|
-
r21 = SyntaxNode.new(input, (index-1)...index) if r21 == true
|
6400
6181
|
r17 = r21
|
6401
6182
|
r17.extend(CapLatinWord6)
|
6402
6183
|
else
|
6403
|
-
if
|
6404
|
-
r22 = instantiate_node(SyntaxNode,input, index...(index +
|
6405
|
-
@index +=
|
6184
|
+
if has_terminal?("Io", false, index)
|
6185
|
+
r22 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6186
|
+
@index += 2
|
6406
6187
|
else
|
6407
6188
|
terminal_parse_failure("Io")
|
6408
6189
|
r22 = nil
|
6409
6190
|
end
|
6410
6191
|
if r22
|
6411
|
-
r22 = SyntaxNode.new(input, (index-1)...index) if r22 == true
|
6412
6192
|
r17 = r22
|
6413
6193
|
r17.extend(CapLatinWord6)
|
6414
6194
|
else
|
6415
|
-
if
|
6416
|
-
r23 = instantiate_node(SyntaxNode,input, index...(index +
|
6417
|
-
@index +=
|
6195
|
+
if has_terminal?("Io", false, index)
|
6196
|
+
r23 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6197
|
+
@index += 2
|
6418
6198
|
else
|
6419
6199
|
terminal_parse_failure("Io")
|
6420
6200
|
r23 = nil
|
6421
6201
|
end
|
6422
6202
|
if r23
|
6423
|
-
r23 = SyntaxNode.new(input, (index-1)...index) if r23 == true
|
6424
6203
|
r17 = r23
|
6425
6204
|
r17.extend(CapLatinWord6)
|
6426
6205
|
else
|
6427
|
-
if
|
6428
|
-
r24 = instantiate_node(SyntaxNode,input, index...(index +
|
6429
|
-
@index +=
|
6206
|
+
if has_terminal?("Ix", false, index)
|
6207
|
+
r24 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6208
|
+
@index += 2
|
6430
6209
|
else
|
6431
6210
|
terminal_parse_failure("Ix")
|
6432
6211
|
r24 = nil
|
6433
6212
|
end
|
6434
6213
|
if r24
|
6435
|
-
r24 = SyntaxNode.new(input, (index-1)...index) if r24 == true
|
6436
6214
|
r17 = r24
|
6437
6215
|
r17.extend(CapLatinWord6)
|
6438
6216
|
else
|
6439
|
-
if
|
6440
|
-
r25 = instantiate_node(SyntaxNode,input, index...(index +
|
6441
|
-
@index +=
|
6217
|
+
if has_terminal?("Lo", false, index)
|
6218
|
+
r25 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6219
|
+
@index += 2
|
6442
6220
|
else
|
6443
6221
|
terminal_parse_failure("Lo")
|
6444
6222
|
r25 = nil
|
6445
6223
|
end
|
6446
6224
|
if r25
|
6447
|
-
r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
|
6448
6225
|
r17 = r25
|
6449
6226
|
r17.extend(CapLatinWord6)
|
6450
6227
|
else
|
6451
|
-
if
|
6452
|
-
r26 = instantiate_node(SyntaxNode,input, index...(index +
|
6453
|
-
@index +=
|
6228
|
+
if has_terminal?("Oa", false, index)
|
6229
|
+
r26 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6230
|
+
@index += 2
|
6454
6231
|
else
|
6455
6232
|
terminal_parse_failure("Oa")
|
6456
6233
|
r26 = nil
|
6457
6234
|
end
|
6458
6235
|
if r26
|
6459
|
-
r26 = SyntaxNode.new(input, (index-1)...index) if r26 == true
|
6460
6236
|
r17 = r26
|
6461
6237
|
r17.extend(CapLatinWord6)
|
6462
6238
|
else
|
6463
|
-
if
|
6464
|
-
r27 = instantiate_node(SyntaxNode,input, index...(index +
|
6465
|
-
@index +=
|
6239
|
+
if has_terminal?("Ra", false, index)
|
6240
|
+
r27 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6241
|
+
@index += 2
|
6466
6242
|
else
|
6467
6243
|
terminal_parse_failure("Ra")
|
6468
6244
|
r27 = nil
|
6469
6245
|
end
|
6470
6246
|
if r27
|
6471
|
-
r27 = SyntaxNode.new(input, (index-1)...index) if r27 == true
|
6472
6247
|
r17 = r27
|
6473
6248
|
r17.extend(CapLatinWord6)
|
6474
6249
|
else
|
6475
|
-
if
|
6476
|
-
r28 = instantiate_node(SyntaxNode,input, index...(index +
|
6477
|
-
@index +=
|
6250
|
+
if has_terminal?("Ty", false, index)
|
6251
|
+
r28 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6252
|
+
@index += 2
|
6478
6253
|
else
|
6479
6254
|
terminal_parse_failure("Ty")
|
6480
6255
|
r28 = nil
|
6481
6256
|
end
|
6482
6257
|
if r28
|
6483
|
-
r28 = SyntaxNode.new(input, (index-1)...index) if r28 == true
|
6484
6258
|
r17 = r28
|
6485
6259
|
r17.extend(CapLatinWord6)
|
6486
6260
|
else
|
6487
|
-
if
|
6488
|
-
r29 = instantiate_node(SyntaxNode,input, index...(index +
|
6489
|
-
@index +=
|
6261
|
+
if has_terminal?("Ua", false, index)
|
6262
|
+
r29 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6263
|
+
@index += 2
|
6490
6264
|
else
|
6491
6265
|
terminal_parse_failure("Ua")
|
6492
6266
|
r29 = nil
|
6493
6267
|
end
|
6494
6268
|
if r29
|
6495
|
-
r29 = SyntaxNode.new(input, (index-1)...index) if r29 == true
|
6496
6269
|
r17 = r29
|
6497
6270
|
r17.extend(CapLatinWord6)
|
6498
6271
|
else
|
6499
|
-
if
|
6500
|
-
r30 = instantiate_node(SyntaxNode,input, index...(index +
|
6501
|
-
@index +=
|
6272
|
+
if has_terminal?("Aa", false, index)
|
6273
|
+
r30 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6274
|
+
@index += 2
|
6502
6275
|
else
|
6503
6276
|
terminal_parse_failure("Aa")
|
6504
6277
|
r30 = nil
|
6505
6278
|
end
|
6506
6279
|
if r30
|
6507
|
-
r30 = SyntaxNode.new(input, (index-1)...index) if r30 == true
|
6508
6280
|
r17 = r30
|
6509
6281
|
r17.extend(CapLatinWord6)
|
6510
6282
|
else
|
6511
|
-
if
|
6512
|
-
r31 = instantiate_node(SyntaxNode,input, index...(index +
|
6513
|
-
@index +=
|
6283
|
+
if has_terminal?("Ja", false, index)
|
6284
|
+
r31 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6285
|
+
@index += 2
|
6514
6286
|
else
|
6515
6287
|
terminal_parse_failure("Ja")
|
6516
6288
|
r31 = nil
|
6517
6289
|
end
|
6518
6290
|
if r31
|
6519
|
-
r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
|
6520
6291
|
r17 = r31
|
6521
6292
|
r17.extend(CapLatinWord6)
|
6522
6293
|
else
|
6523
|
-
if
|
6524
|
-
r32 = instantiate_node(SyntaxNode,input, index...(index +
|
6525
|
-
@index +=
|
6294
|
+
if has_terminal?("Zu", false, index)
|
6295
|
+
r32 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6296
|
+
@index += 2
|
6526
6297
|
else
|
6527
6298
|
terminal_parse_failure("Zu")
|
6528
6299
|
r32 = nil
|
6529
6300
|
end
|
6530
6301
|
if r32
|
6531
|
-
r32 = SyntaxNode.new(input, (index-1)...index) if r32 == true
|
6532
6302
|
r17 = r32
|
6533
6303
|
r17.extend(CapLatinWord6)
|
6534
6304
|
else
|
6535
|
-
if
|
6536
|
-
r33 = instantiate_node(SyntaxNode,input, index...(index +
|
6537
|
-
@index +=
|
6305
|
+
if has_terminal?("La", false, index)
|
6306
|
+
r33 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6307
|
+
@index += 2
|
6538
6308
|
else
|
6539
6309
|
terminal_parse_failure("La")
|
6540
6310
|
r33 = nil
|
6541
6311
|
end
|
6542
6312
|
if r33
|
6543
|
-
r33 = SyntaxNode.new(input, (index-1)...index) if r33 == true
|
6544
6313
|
r17 = r33
|
6545
6314
|
r17.extend(CapLatinWord6)
|
6546
6315
|
else
|
6547
|
-
if
|
6548
|
-
r34 = instantiate_node(SyntaxNode,input, index...(index +
|
6549
|
-
@index +=
|
6316
|
+
if has_terminal?("Qu", false, index)
|
6317
|
+
r34 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6318
|
+
@index += 2
|
6550
6319
|
else
|
6551
6320
|
terminal_parse_failure("Qu")
|
6552
6321
|
r34 = nil
|
6553
6322
|
end
|
6554
6323
|
if r34
|
6555
|
-
r34 = SyntaxNode.new(input, (index-1)...index) if r34 == true
|
6556
6324
|
r17 = r34
|
6557
6325
|
r17.extend(CapLatinWord6)
|
6558
6326
|
else
|
6559
|
-
if
|
6560
|
-
r35 = instantiate_node(SyntaxNode,input, index...(index +
|
6561
|
-
@index +=
|
6327
|
+
if has_terminal?("As", false, index)
|
6328
|
+
r35 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6329
|
+
@index += 2
|
6562
6330
|
else
|
6563
6331
|
terminal_parse_failure("As")
|
6564
6332
|
r35 = nil
|
6565
6333
|
end
|
6566
6334
|
if r35
|
6567
|
-
r35 = SyntaxNode.new(input, (index-1)...index) if r35 == true
|
6568
6335
|
r17 = r35
|
6569
6336
|
r17.extend(CapLatinWord6)
|
6570
6337
|
else
|
6571
|
-
if
|
6572
|
-
r36 = instantiate_node(SyntaxNode,input, index...(index +
|
6573
|
-
@index +=
|
6338
|
+
if has_terminal?("Ba", false, index)
|
6339
|
+
r36 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6340
|
+
@index += 2
|
6574
6341
|
else
|
6575
6342
|
terminal_parse_failure("Ba")
|
6576
6343
|
r36 = nil
|
6577
6344
|
end
|
6578
6345
|
if r36
|
6579
|
-
r36 = SyntaxNode.new(input, (index-1)...index) if r36 == true
|
6580
6346
|
r17 = r36
|
6581
6347
|
r17.extend(CapLatinWord6)
|
6582
6348
|
else
|
@@ -6602,7 +6368,6 @@ module ScientificNameClean
|
|
6602
6368
|
end
|
6603
6369
|
end
|
6604
6370
|
if r17
|
6605
|
-
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
6606
6371
|
r0 = r17
|
6607
6372
|
else
|
6608
6373
|
@index = i0
|
@@ -6631,25 +6396,24 @@ module ScientificNameClean
|
|
6631
6396
|
if node_cache[:capped_dotted_char].has_key?(index)
|
6632
6397
|
cached = node_cache[:capped_dotted_char][index]
|
6633
6398
|
if cached
|
6634
|
-
|
6399
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6635
6400
|
@index = cached.interval.end
|
6636
6401
|
end
|
6637
6402
|
return cached
|
6638
6403
|
end
|
6639
6404
|
|
6640
6405
|
i0, s0 = index, []
|
6641
|
-
if has_terminal?(
|
6406
|
+
if has_terminal?('\G[A-Z]', true, index)
|
6642
6407
|
r1 = true
|
6643
6408
|
@index += 1
|
6644
6409
|
else
|
6645
|
-
terminal_parse_failure('[A-Z]')
|
6646
6410
|
r1 = nil
|
6647
6411
|
end
|
6648
6412
|
s0 << r1
|
6649
6413
|
if r1
|
6650
|
-
if
|
6651
|
-
r2 =
|
6652
|
-
@index +=
|
6414
|
+
if has_terminal?(".", false, index)
|
6415
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
6416
|
+
@index += 1
|
6653
6417
|
else
|
6654
6418
|
terminal_parse_failure(".")
|
6655
6419
|
r2 = nil
|
@@ -6783,7 +6547,7 @@ module ScientificNameClean
|
|
6783
6547
|
if node_cache[:species_word_hybrid].has_key?(index)
|
6784
6548
|
cached = node_cache[:species_word_hybrid][index]
|
6785
6549
|
if cached
|
6786
|
-
|
6550
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6787
6551
|
@index = cached.interval.end
|
6788
6552
|
end
|
6789
6553
|
return cached
|
@@ -6810,13 +6574,12 @@ module ScientificNameClean
|
|
6810
6574
|
r1 = nil
|
6811
6575
|
end
|
6812
6576
|
if r1
|
6813
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
6814
6577
|
r0 = r1
|
6815
6578
|
else
|
6816
6579
|
i5, s5 = index, []
|
6817
|
-
if
|
6818
|
-
r6 =
|
6819
|
-
@index +=
|
6580
|
+
if has_terminal?("X", false, index)
|
6581
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
6582
|
+
@index += 1
|
6820
6583
|
else
|
6821
6584
|
terminal_parse_failure("X")
|
6822
6585
|
r6 = nil
|
@@ -6839,13 +6602,12 @@ module ScientificNameClean
|
|
6839
6602
|
r5 = nil
|
6840
6603
|
end
|
6841
6604
|
if r5
|
6842
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
6843
6605
|
r0 = r5
|
6844
6606
|
else
|
6845
6607
|
i9, s9 = index, []
|
6846
|
-
if
|
6847
|
-
r10 =
|
6848
|
-
@index +=
|
6608
|
+
if has_terminal?("x", false, index)
|
6609
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
6610
|
+
@index += 1
|
6849
6611
|
else
|
6850
6612
|
terminal_parse_failure("x")
|
6851
6613
|
r10 = nil
|
@@ -6868,7 +6630,6 @@ module ScientificNameClean
|
|
6868
6630
|
r9 = nil
|
6869
6631
|
end
|
6870
6632
|
if r9
|
6871
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
6872
6633
|
r0 = r9
|
6873
6634
|
else
|
6874
6635
|
@index = i0
|
@@ -6934,7 +6695,7 @@ module ScientificNameClean
|
|
6934
6695
|
if node_cache[:annotation_identification].has_key?(index)
|
6935
6696
|
cached = node_cache[:annotation_identification][index]
|
6936
6697
|
if cached
|
6937
|
-
|
6698
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6938
6699
|
@index = cached.interval.end
|
6939
6700
|
end
|
6940
6701
|
return cached
|
@@ -6942,183 +6703,168 @@ module ScientificNameClean
|
|
6942
6703
|
|
6943
6704
|
i0 = index
|
6944
6705
|
i1 = index
|
6945
|
-
if
|
6946
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
6947
|
-
@index +=
|
6706
|
+
if has_terminal?("sp.nr.", false, index)
|
6707
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
6708
|
+
@index += 6
|
6948
6709
|
else
|
6949
6710
|
terminal_parse_failure("sp.nr.")
|
6950
6711
|
r2 = nil
|
6951
6712
|
end
|
6952
6713
|
if r2
|
6953
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
6954
6714
|
r1 = r2
|
6955
6715
|
r1.extend(AnnotationIdentification0)
|
6956
6716
|
else
|
6957
|
-
if
|
6958
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
6959
|
-
@index +=
|
6717
|
+
if has_terminal?("sp. nr.", false, index)
|
6718
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
6719
|
+
@index += 7
|
6960
6720
|
else
|
6961
6721
|
terminal_parse_failure("sp. nr.")
|
6962
6722
|
r3 = nil
|
6963
6723
|
end
|
6964
6724
|
if r3
|
6965
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
6966
6725
|
r1 = r3
|
6967
6726
|
r1.extend(AnnotationIdentification0)
|
6968
6727
|
else
|
6969
|
-
if
|
6970
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
6971
|
-
@index +=
|
6728
|
+
if has_terminal?("nr.", false, index)
|
6729
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
6730
|
+
@index += 3
|
6972
6731
|
else
|
6973
6732
|
terminal_parse_failure("nr.")
|
6974
6733
|
r4 = nil
|
6975
6734
|
end
|
6976
6735
|
if r4
|
6977
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
6978
6736
|
r1 = r4
|
6979
6737
|
r1.extend(AnnotationIdentification0)
|
6980
6738
|
else
|
6981
|
-
if
|
6982
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
6983
|
-
@index +=
|
6739
|
+
if has_terminal?("nr ", false, index)
|
6740
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
6741
|
+
@index += 3
|
6984
6742
|
else
|
6985
6743
|
terminal_parse_failure("nr ")
|
6986
6744
|
r5 = nil
|
6987
6745
|
end
|
6988
6746
|
if r5
|
6989
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
6990
6747
|
r1 = r5
|
6991
6748
|
r1.extend(AnnotationIdentification0)
|
6992
6749
|
else
|
6993
|
-
if
|
6994
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
6995
|
-
@index +=
|
6750
|
+
if has_terminal?("sp.aff.", false, index)
|
6751
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
6752
|
+
@index += 7
|
6996
6753
|
else
|
6997
6754
|
terminal_parse_failure("sp.aff.")
|
6998
6755
|
r6 = nil
|
6999
6756
|
end
|
7000
6757
|
if r6
|
7001
|
-
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
7002
6758
|
r1 = r6
|
7003
6759
|
r1.extend(AnnotationIdentification0)
|
7004
6760
|
else
|
7005
|
-
if
|
7006
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
7007
|
-
@index +=
|
6761
|
+
if has_terminal?("sp. aff.", false, index)
|
6762
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + 8))
|
6763
|
+
@index += 8
|
7008
6764
|
else
|
7009
6765
|
terminal_parse_failure("sp. aff.")
|
7010
6766
|
r7 = nil
|
7011
6767
|
end
|
7012
6768
|
if r7
|
7013
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
7014
6769
|
r1 = r7
|
7015
6770
|
r1.extend(AnnotationIdentification0)
|
7016
6771
|
else
|
7017
|
-
if
|
7018
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
7019
|
-
@index +=
|
6772
|
+
if has_terminal?("sp.", false, index)
|
6773
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
6774
|
+
@index += 3
|
7020
6775
|
else
|
7021
6776
|
terminal_parse_failure("sp.")
|
7022
6777
|
r8 = nil
|
7023
6778
|
end
|
7024
6779
|
if r8
|
7025
|
-
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
7026
6780
|
r1 = r8
|
7027
6781
|
r1.extend(AnnotationIdentification0)
|
7028
6782
|
else
|
7029
|
-
if
|
7030
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
7031
|
-
@index +=
|
6783
|
+
if has_terminal?("sp ", false, index)
|
6784
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
6785
|
+
@index += 3
|
7032
6786
|
else
|
7033
6787
|
terminal_parse_failure("sp ")
|
7034
6788
|
r9 = nil
|
7035
6789
|
end
|
7036
6790
|
if r9
|
7037
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
7038
6791
|
r1 = r9
|
7039
6792
|
r1.extend(AnnotationIdentification0)
|
7040
6793
|
else
|
7041
|
-
if
|
7042
|
-
r10 = instantiate_node(SyntaxNode,input, index...(index +
|
7043
|
-
@index +=
|
6794
|
+
if has_terminal?("species", false, index)
|
6795
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
6796
|
+
@index += 7
|
7044
6797
|
else
|
7045
6798
|
terminal_parse_failure("species")
|
7046
6799
|
r10 = nil
|
7047
6800
|
end
|
7048
6801
|
if r10
|
7049
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
7050
6802
|
r1 = r10
|
7051
6803
|
r1.extend(AnnotationIdentification0)
|
7052
6804
|
else
|
7053
|
-
if
|
7054
|
-
r11 = instantiate_node(SyntaxNode,input, index...(index +
|
7055
|
-
@index +=
|
6805
|
+
if has_terminal?("spp.", false, index)
|
6806
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
6807
|
+
@index += 4
|
7056
6808
|
else
|
7057
6809
|
terminal_parse_failure("spp.")
|
7058
6810
|
r11 = nil
|
7059
6811
|
end
|
7060
6812
|
if r11
|
7061
|
-
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
7062
6813
|
r1 = r11
|
7063
6814
|
r1.extend(AnnotationIdentification0)
|
7064
6815
|
else
|
7065
|
-
if
|
7066
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
7067
|
-
@index +=
|
6816
|
+
if has_terminal?("spp ", false, index)
|
6817
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
6818
|
+
@index += 4
|
7068
6819
|
else
|
7069
6820
|
terminal_parse_failure("spp ")
|
7070
6821
|
r12 = nil
|
7071
6822
|
end
|
7072
6823
|
if r12
|
7073
|
-
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
7074
6824
|
r1 = r12
|
7075
6825
|
r1.extend(AnnotationIdentification0)
|
7076
6826
|
else
|
7077
|
-
if
|
7078
|
-
r13 = instantiate_node(SyntaxNode,input, index...(index +
|
7079
|
-
@index +=
|
6827
|
+
if has_terminal?("aff.", false, index)
|
6828
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
6829
|
+
@index += 4
|
7080
6830
|
else
|
7081
6831
|
terminal_parse_failure("aff.")
|
7082
6832
|
r13 = nil
|
7083
6833
|
end
|
7084
6834
|
if r13
|
7085
|
-
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
7086
6835
|
r1 = r13
|
7087
6836
|
r1.extend(AnnotationIdentification0)
|
7088
6837
|
else
|
7089
|
-
if
|
7090
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
7091
|
-
@index +=
|
6838
|
+
if has_terminal?("aff ", false, index)
|
6839
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
6840
|
+
@index += 4
|
7092
6841
|
else
|
7093
6842
|
terminal_parse_failure("aff ")
|
7094
6843
|
r14 = nil
|
7095
6844
|
end
|
7096
6845
|
if r14
|
7097
|
-
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
7098
6846
|
r1 = r14
|
7099
6847
|
r1.extend(AnnotationIdentification0)
|
7100
6848
|
else
|
7101
|
-
if
|
7102
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
7103
|
-
@index +=
|
6849
|
+
if has_terminal?("monst.", false, index)
|
6850
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
6851
|
+
@index += 6
|
7104
6852
|
else
|
7105
6853
|
terminal_parse_failure("monst.")
|
7106
6854
|
r15 = nil
|
7107
6855
|
end
|
7108
6856
|
if r15
|
7109
|
-
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
7110
6857
|
r1 = r15
|
7111
6858
|
r1.extend(AnnotationIdentification0)
|
7112
6859
|
else
|
7113
|
-
if
|
7114
|
-
r16 = instantiate_node(SyntaxNode,input, index...(index +
|
7115
|
-
@index +=
|
6860
|
+
if has_terminal?("? ", false, index)
|
6861
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
6862
|
+
@index += 2
|
7116
6863
|
else
|
7117
6864
|
terminal_parse_failure("? ")
|
7118
6865
|
r16 = nil
|
7119
6866
|
end
|
7120
6867
|
if r16
|
7121
|
-
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
7122
6868
|
r1 = r16
|
7123
6869
|
r1.extend(AnnotationIdentification0)
|
7124
6870
|
else
|
@@ -7140,31 +6886,28 @@ module ScientificNameClean
|
|
7140
6886
|
end
|
7141
6887
|
end
|
7142
6888
|
if r1
|
7143
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7144
6889
|
r0 = r1
|
7145
6890
|
else
|
7146
6891
|
i17 = index
|
7147
|
-
if
|
7148
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
7149
|
-
@index +=
|
6892
|
+
if has_terminal?("cf.", false, index)
|
6893
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
6894
|
+
@index += 3
|
7150
6895
|
else
|
7151
6896
|
terminal_parse_failure("cf.")
|
7152
6897
|
r18 = nil
|
7153
6898
|
end
|
7154
6899
|
if r18
|
7155
|
-
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
7156
6900
|
r17 = r18
|
7157
6901
|
r17.extend(AnnotationIdentification1)
|
7158
6902
|
else
|
7159
|
-
if
|
7160
|
-
r19 = instantiate_node(SyntaxNode,input, index...(index +
|
7161
|
-
@index +=
|
6903
|
+
if has_terminal?("cf ", false, index)
|
6904
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
6905
|
+
@index += 3
|
7162
6906
|
else
|
7163
6907
|
terminal_parse_failure("cf ")
|
7164
6908
|
r19 = nil
|
7165
6909
|
end
|
7166
6910
|
if r19
|
7167
|
-
r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true
|
7168
6911
|
r17 = r19
|
7169
6912
|
r17.extend(AnnotationIdentification1)
|
7170
6913
|
else
|
@@ -7173,7 +6916,6 @@ module ScientificNameClean
|
|
7173
6916
|
end
|
7174
6917
|
end
|
7175
6918
|
if r17
|
7176
|
-
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
7177
6919
|
r0 = r17
|
7178
6920
|
else
|
7179
6921
|
@index = i0
|
@@ -7209,7 +6951,7 @@ module ScientificNameClean
|
|
7209
6951
|
if node_cache[:species_word].has_key?(index)
|
7210
6952
|
cached = node_cache[:species_word][index]
|
7211
6953
|
if cached
|
7212
|
-
|
6954
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7213
6955
|
@index = cached.interval.end
|
7214
6956
|
end
|
7215
6957
|
return cached
|
@@ -7219,11 +6961,10 @@ module ScientificNameClean
|
|
7219
6961
|
i1, s1 = index, []
|
7220
6962
|
s2, i2 = [], index
|
7221
6963
|
loop do
|
7222
|
-
if has_terminal?(
|
6964
|
+
if has_terminal?('\G[0-9]', true, index)
|
7223
6965
|
r3 = true
|
7224
6966
|
@index += 1
|
7225
6967
|
else
|
7226
|
-
terminal_parse_failure('[0-9]')
|
7227
6968
|
r3 = nil
|
7228
6969
|
end
|
7229
6970
|
if r3
|
@@ -7240,9 +6981,9 @@ module ScientificNameClean
|
|
7240
6981
|
end
|
7241
6982
|
s1 << r2
|
7242
6983
|
if r2
|
7243
|
-
if
|
7244
|
-
r5 =
|
7245
|
-
@index +=
|
6984
|
+
if has_terminal?("-", false, index)
|
6985
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
6986
|
+
@index += 1
|
7246
6987
|
else
|
7247
6988
|
terminal_parse_failure("-")
|
7248
6989
|
r5 = nil
|
@@ -7267,12 +7008,10 @@ module ScientificNameClean
|
|
7267
7008
|
r1 = nil
|
7268
7009
|
end
|
7269
7010
|
if r1
|
7270
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7271
7011
|
r0 = r1
|
7272
7012
|
else
|
7273
7013
|
r7 = _nt_latin_word
|
7274
7014
|
if r7
|
7275
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
7276
7015
|
r0 = r7
|
7277
7016
|
else
|
7278
7017
|
@index = i0
|
@@ -7334,7 +7073,7 @@ module ScientificNameClean
|
|
7334
7073
|
if node_cache[:latin_word].has_key?(index)
|
7335
7074
|
cached = node_cache[:latin_word][index]
|
7336
7075
|
if cached
|
7337
|
-
|
7076
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7338
7077
|
@index = cached.interval.end
|
7339
7078
|
end
|
7340
7079
|
return cached
|
@@ -7345,9 +7084,9 @@ module ScientificNameClean
|
|
7345
7084
|
r2 = _nt_valid_name_letters
|
7346
7085
|
s1 << r2
|
7347
7086
|
if r2
|
7348
|
-
if
|
7349
|
-
r3 =
|
7350
|
-
@index +=
|
7087
|
+
if has_terminal?("-", false, index)
|
7088
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7089
|
+
@index += 1
|
7351
7090
|
else
|
7352
7091
|
terminal_parse_failure("-")
|
7353
7092
|
r3 = nil
|
@@ -7367,31 +7106,28 @@ module ScientificNameClean
|
|
7367
7106
|
r1 = nil
|
7368
7107
|
end
|
7369
7108
|
if r1
|
7370
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7371
7109
|
r0 = r1
|
7372
7110
|
else
|
7373
|
-
if
|
7374
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
7111
|
+
if has_terminal?("o'donelli", false, index)
|
7112
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 9))
|
7375
7113
|
r5.extend(LatinWord2)
|
7376
|
-
@index +=
|
7114
|
+
@index += 9
|
7377
7115
|
else
|
7378
7116
|
terminal_parse_failure("o'donelli")
|
7379
7117
|
r5 = nil
|
7380
7118
|
end
|
7381
7119
|
if r5
|
7382
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
7383
7120
|
r0 = r5
|
7384
7121
|
else
|
7385
|
-
if
|
7386
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
7122
|
+
if has_terminal?("o'neili", false, index)
|
7123
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
7387
7124
|
r6.extend(LatinWord3)
|
7388
|
-
@index +=
|
7125
|
+
@index += 7
|
7389
7126
|
else
|
7390
7127
|
terminal_parse_failure("o'neili")
|
7391
7128
|
r6 = nil
|
7392
7129
|
end
|
7393
7130
|
if r6
|
7394
|
-
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
7395
7131
|
r0 = r6
|
7396
7132
|
else
|
7397
7133
|
i7, s7 = index, []
|
@@ -7410,7 +7146,6 @@ module ScientificNameClean
|
|
7410
7146
|
r7 = nil
|
7411
7147
|
end
|
7412
7148
|
if r7
|
7413
|
-
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
7414
7149
|
r0 = r7
|
7415
7150
|
else
|
7416
7151
|
@index = i0
|
@@ -7445,7 +7180,7 @@ module ScientificNameClean
|
|
7445
7180
|
if node_cache[:valid_name_letters].has_key?(index)
|
7446
7181
|
cached = node_cache[:valid_name_letters][index]
|
7447
7182
|
if cached
|
7448
|
-
|
7183
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7449
7184
|
@index = cached.interval.end
|
7450
7185
|
end
|
7451
7186
|
return cached
|
@@ -7453,11 +7188,10 @@ module ScientificNameClean
|
|
7453
7188
|
|
7454
7189
|
s0, i0 = [], index
|
7455
7190
|
loop do
|
7456
|
-
if has_terminal?(
|
7191
|
+
if has_terminal?('\G[a-zëæœ]', true, index)
|
7457
7192
|
r1 = true
|
7458
7193
|
@index += 1
|
7459
7194
|
else
|
7460
|
-
terminal_parse_failure('[a-zëæœ]')
|
7461
7195
|
r1 = nil
|
7462
7196
|
end
|
7463
7197
|
if r1
|
@@ -7494,18 +7228,17 @@ module ScientificNameClean
|
|
7494
7228
|
if node_cache[:valid_name_letter].has_key?(index)
|
7495
7229
|
cached = node_cache[:valid_name_letter][index]
|
7496
7230
|
if cached
|
7497
|
-
|
7231
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7498
7232
|
@index = cached.interval.end
|
7499
7233
|
end
|
7500
7234
|
return cached
|
7501
7235
|
end
|
7502
7236
|
|
7503
|
-
if has_terminal?(
|
7237
|
+
if has_terminal?('\G[a-zëæœ]', true, index)
|
7504
7238
|
r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7505
7239
|
r0.extend(ValidNameLetter0)
|
7506
7240
|
@index += 1
|
7507
7241
|
else
|
7508
|
-
terminal_parse_failure('[a-zëæœ]')
|
7509
7242
|
r0 = nil
|
7510
7243
|
end
|
7511
7244
|
|
@@ -7531,35 +7264,33 @@ module ScientificNameClean
|
|
7531
7264
|
if node_cache[:cap_digraph].has_key?(index)
|
7532
7265
|
cached = node_cache[:cap_digraph][index]
|
7533
7266
|
if cached
|
7534
|
-
|
7267
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7535
7268
|
@index = cached.interval.end
|
7536
7269
|
end
|
7537
7270
|
return cached
|
7538
7271
|
end
|
7539
7272
|
|
7540
7273
|
i0 = index
|
7541
|
-
if
|
7542
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
7274
|
+
if has_terminal?("Æ", false, index)
|
7275
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7543
7276
|
r1.extend(CapDigraph0)
|
7544
|
-
@index +=
|
7277
|
+
@index += 1
|
7545
7278
|
else
|
7546
7279
|
terminal_parse_failure("Æ")
|
7547
7280
|
r1 = nil
|
7548
7281
|
end
|
7549
7282
|
if r1
|
7550
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7551
7283
|
r0 = r1
|
7552
7284
|
else
|
7553
|
-
if
|
7554
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
7285
|
+
if has_terminal?("Œ", false, index)
|
7286
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7555
7287
|
r2.extend(CapDigraph1)
|
7556
|
-
@index +=
|
7288
|
+
@index += 1
|
7557
7289
|
else
|
7558
7290
|
terminal_parse_failure("Œ")
|
7559
7291
|
r2 = nil
|
7560
7292
|
end
|
7561
7293
|
if r2
|
7562
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
7563
7294
|
r0 = r2
|
7564
7295
|
else
|
7565
7296
|
@index = i0
|
@@ -7613,7 +7344,7 @@ module ScientificNameClean
|
|
7613
7344
|
if node_cache[:year].has_key?(index)
|
7614
7345
|
cached = node_cache[:year][index]
|
7615
7346
|
if cached
|
7616
|
-
|
7347
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7617
7348
|
@index = cached.interval.end
|
7618
7349
|
end
|
7619
7350
|
return cached
|
@@ -7630,12 +7361,10 @@ module ScientificNameClean
|
|
7630
7361
|
i4 = index
|
7631
7362
|
r5 = _nt_year_number_with_character
|
7632
7363
|
if r5
|
7633
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
7634
7364
|
r4 = r5
|
7635
7365
|
else
|
7636
7366
|
r6 = _nt_year_number
|
7637
7367
|
if r6
|
7638
|
-
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
7639
7368
|
r4 = r6
|
7640
7369
|
else
|
7641
7370
|
@index = i4
|
@@ -7662,17 +7391,14 @@ module ScientificNameClean
|
|
7662
7391
|
r1 = nil
|
7663
7392
|
end
|
7664
7393
|
if r1
|
7665
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7666
7394
|
r0 = r1
|
7667
7395
|
else
|
7668
7396
|
r9 = _nt_year_number_with_character
|
7669
7397
|
if r9
|
7670
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
7671
7398
|
r0 = r9
|
7672
7399
|
else
|
7673
7400
|
r10 = _nt_year_number
|
7674
7401
|
if r10
|
7675
|
-
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
7676
7402
|
r0 = r10
|
7677
7403
|
else
|
7678
7404
|
@index = i0
|
@@ -7712,7 +7438,7 @@ module ScientificNameClean
|
|
7712
7438
|
if node_cache[:year_number_with_character].has_key?(index)
|
7713
7439
|
cached = node_cache[:year_number_with_character][index]
|
7714
7440
|
if cached
|
7715
|
-
|
7441
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7716
7442
|
@index = cached.interval.end
|
7717
7443
|
end
|
7718
7444
|
return cached
|
@@ -7722,11 +7448,10 @@ module ScientificNameClean
|
|
7722
7448
|
r1 = _nt_year_number
|
7723
7449
|
s0 << r1
|
7724
7450
|
if r1
|
7725
|
-
if has_terminal?(
|
7451
|
+
if has_terminal?('\G[a-zA-Z]', true, index)
|
7726
7452
|
r2 = true
|
7727
7453
|
@index += 1
|
7728
7454
|
else
|
7729
|
-
terminal_parse_failure('[a-zA-Z]')
|
7730
7455
|
r2 = nil
|
7731
7456
|
end
|
7732
7457
|
s0 << r2
|
@@ -7770,56 +7495,51 @@ module ScientificNameClean
|
|
7770
7495
|
if node_cache[:year_number].has_key?(index)
|
7771
7496
|
cached = node_cache[:year_number][index]
|
7772
7497
|
if cached
|
7773
|
-
|
7498
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7774
7499
|
@index = cached.interval.end
|
7775
7500
|
end
|
7776
7501
|
return cached
|
7777
7502
|
end
|
7778
7503
|
|
7779
7504
|
i0, s0 = index, []
|
7780
|
-
if has_terminal?(
|
7505
|
+
if has_terminal?('\G[12]', true, index)
|
7781
7506
|
r1 = true
|
7782
7507
|
@index += 1
|
7783
7508
|
else
|
7784
|
-
terminal_parse_failure('[12]')
|
7785
7509
|
r1 = nil
|
7786
7510
|
end
|
7787
7511
|
s0 << r1
|
7788
7512
|
if r1
|
7789
|
-
if has_terminal?(
|
7513
|
+
if has_terminal?('\G[7890]', true, index)
|
7790
7514
|
r2 = true
|
7791
7515
|
@index += 1
|
7792
7516
|
else
|
7793
|
-
terminal_parse_failure('[7890]')
|
7794
7517
|
r2 = nil
|
7795
7518
|
end
|
7796
7519
|
s0 << r2
|
7797
7520
|
if r2
|
7798
|
-
if has_terminal?(
|
7521
|
+
if has_terminal?('\G[0-9]', true, index)
|
7799
7522
|
r3 = true
|
7800
7523
|
@index += 1
|
7801
7524
|
else
|
7802
|
-
terminal_parse_failure('[0-9]')
|
7803
7525
|
r3 = nil
|
7804
7526
|
end
|
7805
7527
|
s0 << r3
|
7806
7528
|
if r3
|
7807
7529
|
i4 = index
|
7808
7530
|
i5, s5 = index, []
|
7809
|
-
if has_terminal?(
|
7531
|
+
if has_terminal?('\G[0-9]', true, index)
|
7810
7532
|
r6 = true
|
7811
7533
|
@index += 1
|
7812
7534
|
else
|
7813
|
-
terminal_parse_failure('[0-9]')
|
7814
7535
|
r6 = nil
|
7815
7536
|
end
|
7816
7537
|
s5 << r6
|
7817
7538
|
if r6
|
7818
|
-
if has_terminal?(
|
7539
|
+
if has_terminal?('\G[\\?]', true, index)
|
7819
7540
|
r8 = true
|
7820
7541
|
@index += 1
|
7821
7542
|
else
|
7822
|
-
terminal_parse_failure('[\\?]')
|
7823
7543
|
r8 = nil
|
7824
7544
|
end
|
7825
7545
|
if r8
|
@@ -7837,18 +7557,16 @@ module ScientificNameClean
|
|
7837
7557
|
r5 = nil
|
7838
7558
|
end
|
7839
7559
|
if r5
|
7840
|
-
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
7841
7560
|
r4 = r5
|
7842
7561
|
else
|
7843
|
-
if
|
7844
|
-
r9 =
|
7845
|
-
@index +=
|
7562
|
+
if has_terminal?("?", false, index)
|
7563
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7564
|
+
@index += 1
|
7846
7565
|
else
|
7847
7566
|
terminal_parse_failure("?")
|
7848
7567
|
r9 = nil
|
7849
7568
|
end
|
7850
7569
|
if r9
|
7851
|
-
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
7852
7570
|
r4 = r9
|
7853
7571
|
else
|
7854
7572
|
@index = i4
|
@@ -7878,15 +7596,15 @@ module ScientificNameClean
|
|
7878
7596
|
if node_cache[:left_paren].has_key?(index)
|
7879
7597
|
cached = node_cache[:left_paren][index]
|
7880
7598
|
if cached
|
7881
|
-
|
7599
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7882
7600
|
@index = cached.interval.end
|
7883
7601
|
end
|
7884
7602
|
return cached
|
7885
7603
|
end
|
7886
7604
|
|
7887
|
-
if
|
7888
|
-
r0 = instantiate_node(SyntaxNode,input, index...(index +
|
7889
|
-
@index +=
|
7605
|
+
if has_terminal?("(", false, index)
|
7606
|
+
r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7607
|
+
@index += 1
|
7890
7608
|
else
|
7891
7609
|
terminal_parse_failure("(")
|
7892
7610
|
r0 = nil
|
@@ -7902,15 +7620,15 @@ module ScientificNameClean
|
|
7902
7620
|
if node_cache[:right_paren].has_key?(index)
|
7903
7621
|
cached = node_cache[:right_paren][index]
|
7904
7622
|
if cached
|
7905
|
-
|
7623
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7906
7624
|
@index = cached.interval.end
|
7907
7625
|
end
|
7908
7626
|
return cached
|
7909
7627
|
end
|
7910
7628
|
|
7911
|
-
if
|
7912
|
-
r0 = instantiate_node(SyntaxNode,input, index...(index +
|
7913
|
-
@index +=
|
7629
|
+
if has_terminal?(")", false, index)
|
7630
|
+
r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7631
|
+
@index += 1
|
7914
7632
|
else
|
7915
7633
|
terminal_parse_failure(")")
|
7916
7634
|
r0 = nil
|
@@ -7932,7 +7650,7 @@ module ScientificNameClean
|
|
7932
7650
|
if node_cache[:hybrid_character].has_key?(index)
|
7933
7651
|
cached = node_cache[:hybrid_character][index]
|
7934
7652
|
if cached
|
7935
|
-
|
7653
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7936
7654
|
@index = cached.interval.end
|
7937
7655
|
end
|
7938
7656
|
return cached
|
@@ -7940,27 +7658,25 @@ module ScientificNameClean
|
|
7940
7658
|
|
7941
7659
|
i0 = index
|
7942
7660
|
i1 = index
|
7943
|
-
if
|
7944
|
-
r2 =
|
7945
|
-
@index +=
|
7661
|
+
if has_terminal?("x", false, index)
|
7662
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7663
|
+
@index += 1
|
7946
7664
|
else
|
7947
7665
|
terminal_parse_failure("x")
|
7948
7666
|
r2 = nil
|
7949
7667
|
end
|
7950
7668
|
if r2
|
7951
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
7952
7669
|
r1 = r2
|
7953
7670
|
r1.extend(HybridCharacter0)
|
7954
7671
|
else
|
7955
|
-
if
|
7956
|
-
r3 =
|
7957
|
-
@index +=
|
7672
|
+
if has_terminal?("X", false, index)
|
7673
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7674
|
+
@index += 1
|
7958
7675
|
else
|
7959
7676
|
terminal_parse_failure("X")
|
7960
7677
|
r3 = nil
|
7961
7678
|
end
|
7962
7679
|
if r3
|
7963
|
-
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
7964
7680
|
r1 = r3
|
7965
7681
|
r1.extend(HybridCharacter0)
|
7966
7682
|
else
|
@@ -7969,12 +7685,10 @@ module ScientificNameClean
|
|
7969
7685
|
end
|
7970
7686
|
end
|
7971
7687
|
if r1
|
7972
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7973
7688
|
r0 = r1
|
7974
7689
|
else
|
7975
7690
|
r4 = _nt_multiplication_sign
|
7976
7691
|
if r4
|
7977
|
-
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
7978
7692
|
r0 = r4
|
7979
7693
|
else
|
7980
7694
|
@index = i0
|
@@ -7998,34 +7712,32 @@ module ScientificNameClean
|
|
7998
7712
|
if node_cache[:multiplication_sign].has_key?(index)
|
7999
7713
|
cached = node_cache[:multiplication_sign][index]
|
8000
7714
|
if cached
|
8001
|
-
|
7715
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
8002
7716
|
@index = cached.interval.end
|
8003
7717
|
end
|
8004
7718
|
return cached
|
8005
7719
|
end
|
8006
7720
|
|
8007
7721
|
i0 = index
|
8008
|
-
if
|
8009
|
-
r1 =
|
8010
|
-
@index +=
|
7722
|
+
if has_terminal?("×", false, index)
|
7723
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7724
|
+
@index += 1
|
8011
7725
|
else
|
8012
7726
|
terminal_parse_failure("×")
|
8013
7727
|
r1 = nil
|
8014
7728
|
end
|
8015
7729
|
if r1
|
8016
|
-
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
8017
7730
|
r0 = r1
|
8018
7731
|
r0.extend(MultiplicationSign0)
|
8019
7732
|
else
|
8020
|
-
if
|
8021
|
-
r2 =
|
8022
|
-
@index +=
|
7733
|
+
if has_terminal?("*", false, index)
|
7734
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7735
|
+
@index += 1
|
8023
7736
|
else
|
8024
7737
|
terminal_parse_failure("*")
|
8025
7738
|
r2 = nil
|
8026
7739
|
end
|
8027
7740
|
if r2
|
8028
|
-
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
8029
7741
|
r0 = r2
|
8030
7742
|
r0.extend(MultiplicationSign0)
|
8031
7743
|
else
|
@@ -8044,7 +7756,7 @@ module ScientificNameClean
|
|
8044
7756
|
if node_cache[:space].has_key?(index)
|
8045
7757
|
cached = node_cache[:space][index]
|
8046
7758
|
if cached
|
8047
|
-
|
7759
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
8048
7760
|
@index = cached.interval.end
|
8049
7761
|
end
|
8050
7762
|
return cached
|
@@ -8052,11 +7764,10 @@ module ScientificNameClean
|
|
8052
7764
|
|
8053
7765
|
s0, i0 = [], index
|
8054
7766
|
loop do
|
8055
|
-
if has_terminal?(
|
7767
|
+
if has_terminal?('\G[\\s]', true, index)
|
8056
7768
|
r1 = true
|
8057
7769
|
@index += 1
|
8058
7770
|
else
|
8059
|
-
terminal_parse_failure('[\\s]')
|
8060
7771
|
r1 = nil
|
8061
7772
|
end
|
8062
7773
|
if r1
|
@@ -8077,7 +7788,7 @@ module ScientificNameClean
|
|
8077
7788
|
if node_cache[:space_hard].has_key?(index)
|
8078
7789
|
cached = node_cache[:space_hard][index]
|
8079
7790
|
if cached
|
8080
|
-
|
7791
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
8081
7792
|
@index = cached.interval.end
|
8082
7793
|
end
|
8083
7794
|
return cached
|
@@ -8085,11 +7796,10 @@ module ScientificNameClean
|
|
8085
7796
|
|
8086
7797
|
s0, i0 = [], index
|
8087
7798
|
loop do
|
8088
|
-
if has_terminal?(
|
7799
|
+
if has_terminal?('\G[\\s]', true, index)
|
8089
7800
|
r1 = true
|
8090
7801
|
@index += 1
|
8091
7802
|
else
|
8092
|
-
terminal_parse_failure('[\\s]')
|
8093
7803
|
r1 = nil
|
8094
7804
|
end
|
8095
7805
|
if r1
|