biodiversity 3.1.7 → 3.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|