biodiversity19 3.1.4 → 3.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/CHANGELOG +2 -0
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/biodiversity.gemspec +6 -5
- data/lib/biodiversity/parser/scientific_name_canonical.rb +21 -10
- data/lib/biodiversity/parser/scientific_name_clean.rb +911 -623
- data/lib/biodiversity/parser/scientific_name_dirty.rb +82 -54
- data/lib/biodiversity/version.rb +1 -1
- data/spec/biodiversity_spec.rb +8 -4
- data/spec/{parser → files}/test_data.txt +0 -0
- data/spec/{parser → files}/todo.txt +0 -0
- data/spec/guid/lsid.spec.rb +12 -4
- data/spec/parser/scientific_name_canonical_spec.rb +6 -6
- data/spec/parser/scientific_name_clean_spec.rb +589 -373
- data/spec/parser/scientific_name_dirty_spec.rb +126 -70
- data/spec/parser/scientific_name_spec.rb +32 -30
- data/spec/spec_helper.rb +2 -2
- metadata +52 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b586fe85179143bb76a5f17a438b1cb923a64c7
|
4
|
+
data.tar.gz: 426bd56ad8a97c031d75fa15be9df924aa9e9cfb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f41b775a4bb37c29899e04f403bd9c247c74b2aeb86ce9bd7d5223f492838d93585d46ec010cd0fd79fa9466c16d7c487bc2b6f91b71d088ddde61ba7ceb509e
|
7
|
+
data.tar.gz: d015a96a3e23dad7a130f87540da9d60fa7620e1bdda03cfe7563c55aa8605bac88a6f7415b594c8c9c315f8d0aa1c860957886eba3a767e4a11e9b1fc687a7c
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.1.1
|
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2008-
|
3
|
+
Copyright (c) 2008-2014 Marine Biological Laboratory
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
6
6
|
a copy of this software and associated documentation files (the
|
data/README.md
CHANGED
@@ -186,7 +186,7 @@ Copyright
|
|
186
186
|
|
187
187
|
Authors: [Dmitry Mozzherin][10],
|
188
188
|
|
189
|
-
Copyright (c) 2008-
|
189
|
+
Copyright (c) 2008-2012 Marine Biological Laboratory. See LICENSE for
|
190
190
|
further details.
|
191
191
|
|
192
192
|
[1]: https://badge.fury.io/rb/biodiversity.png
|
data/biodiversity.gemspec
CHANGED
@@ -16,13 +16,14 @@ 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.
|
20
|
-
gem.add_runtime_dependency 'parallel', '~>
|
19
|
+
gem.add_runtime_dependency 'treetop', '~> 1.5'
|
20
|
+
gem.add_runtime_dependency 'parallel', '~> 1.2'
|
21
21
|
gem.add_runtime_dependency 'unicode_utils', '~> 1.4'
|
22
22
|
|
23
|
-
gem.add_development_dependency 'bundler', '~> 1.
|
24
|
-
gem.add_development_dependency 'rake', '~> 10.
|
25
|
-
gem.add_development_dependency 'rspec', '~>
|
23
|
+
gem.add_development_dependency 'bundler', '~> 1.6'
|
24
|
+
gem.add_development_dependency 'rake', '~> 10.3'
|
25
|
+
gem.add_development_dependency 'rspec', '~> 3.0'
|
26
|
+
gem.add_development_dependency 'webmock', '~> 1.13'
|
26
27
|
gem.add_development_dependency 'rr', '~> 1.1'
|
27
28
|
gem.add_development_dependency 'debugger', '~> 1.6'
|
28
29
|
end
|
@@ -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
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
47
|
+
node_cache[:root][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
48
48
|
@index = cached.interval.end
|
49
49
|
end
|
50
50
|
return cached
|
@@ -54,11 +54,13 @@ 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
|
57
58
|
r0 = r1
|
58
59
|
else
|
59
60
|
r2 = _nt_uninomial_with_garbage
|
60
61
|
r2.extend(Root1)
|
61
62
|
if r2
|
63
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
62
64
|
r0 = r2
|
63
65
|
else
|
64
66
|
@index = i0
|
@@ -192,7 +194,7 @@ module ScientificNameCanonical
|
|
192
194
|
if node_cache[:multinomial_with_garbage].has_key?(index)
|
193
195
|
cached = node_cache[:multinomial_with_garbage][index]
|
194
196
|
if cached
|
195
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
197
|
+
node_cache[:multinomial_with_garbage][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
196
198
|
@index = cached.interval.end
|
197
199
|
end
|
198
200
|
return cached
|
@@ -231,6 +233,7 @@ module ScientificNameCanonical
|
|
231
233
|
r1 = nil
|
232
234
|
end
|
233
235
|
if r1
|
236
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
234
237
|
r0 = r1
|
235
238
|
else
|
236
239
|
i8, s8 = index, []
|
@@ -257,6 +260,7 @@ module ScientificNameCanonical
|
|
257
260
|
r8 = nil
|
258
261
|
end
|
259
262
|
if r8
|
263
|
+
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
260
264
|
r0 = r8
|
261
265
|
else
|
262
266
|
i13, s13 = index, []
|
@@ -283,6 +287,7 @@ module ScientificNameCanonical
|
|
283
287
|
r13 = nil
|
284
288
|
end
|
285
289
|
if r13
|
290
|
+
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
286
291
|
r0 = r13
|
287
292
|
else
|
288
293
|
@index = i0
|
@@ -329,7 +334,7 @@ module ScientificNameCanonical
|
|
329
334
|
if node_cache[:uninomial_with_garbage].has_key?(index)
|
330
335
|
cached = node_cache[:uninomial_with_garbage][index]
|
331
336
|
if cached
|
332
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
337
|
+
node_cache[:uninomial_with_garbage][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
333
338
|
@index = cached.interval.end
|
334
339
|
end
|
335
340
|
return cached
|
@@ -386,7 +391,7 @@ module ScientificNameCanonical
|
|
386
391
|
if node_cache[:garbage].has_key?(index)
|
387
392
|
cached = node_cache[:garbage][index]
|
388
393
|
if cached
|
389
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
394
|
+
node_cache[:garbage][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
390
395
|
@index = cached.interval.end
|
391
396
|
end
|
392
397
|
return cached
|
@@ -397,9 +402,9 @@ module ScientificNameCanonical
|
|
397
402
|
r2 = _nt_space
|
398
403
|
s1 << r2
|
399
404
|
if r2
|
400
|
-
if has_terminal?("$$g@rbg3$$", false, index)
|
401
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
402
|
-
@index +=
|
405
|
+
if (match_len = has_terminal?("$$g@rbg3$$", false, index))
|
406
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
407
|
+
@index += match_len
|
403
408
|
else
|
404
409
|
terminal_parse_failure("$$g@rbg3$$")
|
405
410
|
r3 = nil
|
@@ -414,16 +419,18 @@ module ScientificNameCanonical
|
|
414
419
|
r1 = nil
|
415
420
|
end
|
416
421
|
if r1
|
422
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
417
423
|
r0 = r1
|
418
424
|
else
|
419
425
|
i4, s4 = index, []
|
420
426
|
r5 = _nt_space
|
421
427
|
s4 << r5
|
422
428
|
if r5
|
423
|
-
if has_terminal?('\
|
429
|
+
if has_terminal?(@regexps[gr = '\A["\',.]'] ||= Regexp.new(gr), :regexp, index)
|
424
430
|
r6 = true
|
425
431
|
@index += 1
|
426
432
|
else
|
433
|
+
terminal_parse_failure('["\',.]')
|
427
434
|
r6 = nil
|
428
435
|
end
|
429
436
|
s4 << r6
|
@@ -433,10 +440,11 @@ module ScientificNameCanonical
|
|
433
440
|
if r7
|
434
441
|
s8, i8 = [], index
|
435
442
|
loop do
|
436
|
-
if has_terminal?('\
|
443
|
+
if has_terminal?(@regexps[gr = '\A[^щ]'] ||= Regexp.new(gr), :regexp, index)
|
437
444
|
r9 = true
|
438
445
|
@index += 1
|
439
446
|
else
|
447
|
+
terminal_parse_failure('[^щ]')
|
440
448
|
r9 = nil
|
441
449
|
end
|
442
450
|
if r9
|
@@ -458,6 +466,7 @@ module ScientificNameCanonical
|
|
458
466
|
r4 = nil
|
459
467
|
end
|
460
468
|
if r4
|
469
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
461
470
|
r0 = r4
|
462
471
|
else
|
463
472
|
i10, s10 = index, []
|
@@ -466,10 +475,11 @@ module ScientificNameCanonical
|
|
466
475
|
if r11
|
467
476
|
s12, i12 = [], index
|
468
477
|
loop do
|
469
|
-
if has_terminal?('\
|
478
|
+
if has_terminal?(@regexps[gr = '\A[^ш]'] ||= Regexp.new(gr), :regexp, index)
|
470
479
|
r13 = true
|
471
480
|
@index += 1
|
472
481
|
else
|
482
|
+
terminal_parse_failure('[^ш]')
|
473
483
|
r13 = nil
|
474
484
|
end
|
475
485
|
if r13
|
@@ -494,6 +504,7 @@ module ScientificNameCanonical
|
|
494
504
|
r10 = nil
|
495
505
|
end
|
496
506
|
if r10
|
507
|
+
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
497
508
|
r0 = r10
|
498
509
|
else
|
499
510
|
@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
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
59
|
+
node_cache[:root][index] = 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
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
183
|
+
node_cache[:scientific_name_5][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
184
184
|
@index = cached.interval.end
|
185
185
|
end
|
186
186
|
return cached
|
@@ -215,6 +215,7 @@ module ScientificNameClean
|
|
215
215
|
r1 = nil
|
216
216
|
end
|
217
217
|
if r1
|
218
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
218
219
|
r0 = r1
|
219
220
|
else
|
220
221
|
i7, s7 = index, []
|
@@ -245,10 +246,12 @@ module ScientificNameClean
|
|
245
246
|
r7 = nil
|
246
247
|
end
|
247
248
|
if r7
|
249
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
248
250
|
r0 = r7
|
249
251
|
else
|
250
252
|
r13 = _nt_scientific_name_4
|
251
253
|
if r13
|
254
|
+
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
252
255
|
r0 = r13
|
253
256
|
else
|
254
257
|
@index = i0
|
@@ -352,7 +355,7 @@ module ScientificNameClean
|
|
352
355
|
if node_cache[:scientific_name_4].has_key?(index)
|
353
356
|
cached = node_cache[:scientific_name_4][index]
|
354
357
|
if cached
|
355
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
358
|
+
node_cache[:scientific_name_4][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
356
359
|
@index = cached.interval.end
|
357
360
|
end
|
358
361
|
return cached
|
@@ -387,6 +390,7 @@ module ScientificNameClean
|
|
387
390
|
r1 = nil
|
388
391
|
end
|
389
392
|
if r1
|
393
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
390
394
|
r0 = r1
|
391
395
|
else
|
392
396
|
i7, s7 = index, []
|
@@ -402,10 +406,11 @@ module ScientificNameClean
|
|
402
406
|
r11 = _nt_space
|
403
407
|
s7 << r11
|
404
408
|
if r11
|
405
|
-
if has_terminal?('\
|
409
|
+
if has_terminal?(@regexps[gr = '\A[\\?]'] ||= Regexp.new(gr), :regexp, index)
|
406
410
|
r13 = true
|
407
411
|
@index += 1
|
408
412
|
else
|
413
|
+
terminal_parse_failure('[\\?]')
|
409
414
|
r13 = nil
|
410
415
|
end
|
411
416
|
if r13
|
@@ -427,10 +432,12 @@ module ScientificNameClean
|
|
427
432
|
r7 = nil
|
428
433
|
end
|
429
434
|
if r7
|
435
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
430
436
|
r0 = r7
|
431
437
|
else
|
432
438
|
r14 = _nt_scientific_name_3
|
433
439
|
if r14
|
440
|
+
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
434
441
|
r0 = r14
|
435
442
|
else
|
436
443
|
@index = i0
|
@@ -485,7 +492,7 @@ module ScientificNameClean
|
|
485
492
|
if node_cache[:scientific_name_3].has_key?(index)
|
486
493
|
cached = node_cache[:scientific_name_3][index]
|
487
494
|
if cached
|
488
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
495
|
+
node_cache[:scientific_name_3][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
489
496
|
@index = cached.interval.end
|
490
497
|
end
|
491
498
|
return cached
|
@@ -512,10 +519,12 @@ module ScientificNameClean
|
|
512
519
|
r1 = nil
|
513
520
|
end
|
514
521
|
if r1
|
522
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
515
523
|
r0 = r1
|
516
524
|
else
|
517
525
|
r5 = _nt_scientific_name_2
|
518
526
|
if r5
|
527
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
519
528
|
r0 = r5
|
520
529
|
else
|
521
530
|
@index = i0
|
@@ -569,7 +578,7 @@ module ScientificNameClean
|
|
569
578
|
if node_cache[:scientific_name_2].has_key?(index)
|
570
579
|
cached = node_cache[:scientific_name_2][index]
|
571
580
|
if cached
|
572
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
581
|
+
node_cache[:scientific_name_2][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
573
582
|
@index = cached.interval.end
|
574
583
|
end
|
575
584
|
return cached
|
@@ -596,10 +605,12 @@ module ScientificNameClean
|
|
596
605
|
r1 = nil
|
597
606
|
end
|
598
607
|
if r1
|
608
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
599
609
|
r0 = r1
|
600
610
|
else
|
601
611
|
r5 = _nt_scientific_name_1
|
602
612
|
if r5
|
613
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
603
614
|
r0 = r5
|
604
615
|
else
|
605
616
|
@index = i0
|
@@ -617,7 +628,7 @@ module ScientificNameClean
|
|
617
628
|
if node_cache[:scientific_name_1].has_key?(index)
|
618
629
|
cached = node_cache[:scientific_name_1][index]
|
619
630
|
if cached
|
620
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
631
|
+
node_cache[:scientific_name_1][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
621
632
|
@index = cached.interval.end
|
622
633
|
end
|
623
634
|
return cached
|
@@ -626,14 +637,17 @@ module ScientificNameClean
|
|
626
637
|
i0 = index
|
627
638
|
r1 = _nt_multiuninomial_name
|
628
639
|
if r1
|
640
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
629
641
|
r0 = r1
|
630
642
|
else
|
631
643
|
r2 = _nt_multinomial_name
|
632
644
|
if r2
|
645
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
633
646
|
r0 = r2
|
634
647
|
else
|
635
648
|
r3 = _nt_uninomial_name
|
636
649
|
if r3
|
650
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
637
651
|
r0 = r3
|
638
652
|
else
|
639
653
|
@index = i0
|
@@ -675,7 +689,7 @@ module ScientificNameClean
|
|
675
689
|
if node_cache[:status_part].has_key?(index)
|
676
690
|
cached = node_cache[:status_part][index]
|
677
691
|
if cached
|
678
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
692
|
+
node_cache[:status_part][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
679
693
|
@index = cached.interval.end
|
680
694
|
end
|
681
695
|
return cached
|
@@ -702,10 +716,12 @@ module ScientificNameClean
|
|
702
716
|
r1 = nil
|
703
717
|
end
|
704
718
|
if r1
|
719
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
705
720
|
r0 = r1
|
706
721
|
else
|
707
722
|
r5 = _nt_status_word
|
708
723
|
if r5
|
724
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
709
725
|
r0 = r5
|
710
726
|
else
|
711
727
|
@index = i0
|
@@ -739,7 +755,7 @@ module ScientificNameClean
|
|
739
755
|
if node_cache[:status_word].has_key?(index)
|
740
756
|
cached = node_cache[:status_word][index]
|
741
757
|
if cached
|
742
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
758
|
+
node_cache[:status_word][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
743
759
|
@index = cached.interval.end
|
744
760
|
end
|
745
761
|
return cached
|
@@ -749,10 +765,11 @@ module ScientificNameClean
|
|
749
765
|
r1 = _nt_latin_word
|
750
766
|
s0 << r1
|
751
767
|
if r1
|
752
|
-
if has_terminal?('\
|
768
|
+
if has_terminal?(@regexps[gr = '\A[\\.]'] ||= Regexp.new(gr), :regexp, index)
|
753
769
|
r2 = true
|
754
770
|
@index += 1
|
755
771
|
else
|
772
|
+
terminal_parse_failure('[\\.]')
|
756
773
|
r2 = nil
|
757
774
|
end
|
758
775
|
s0 << r2
|
@@ -805,7 +822,7 @@ module ScientificNameClean
|
|
805
822
|
if node_cache[:unparsed].has_key?(index)
|
806
823
|
cached = node_cache[:unparsed][index]
|
807
824
|
if cached
|
808
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
825
|
+
node_cache[:unparsed][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
809
826
|
@index = cached.interval.end
|
810
827
|
end
|
811
828
|
return cached
|
@@ -815,7 +832,7 @@ module ScientificNameClean
|
|
815
832
|
s1, i1 = [], index
|
816
833
|
loop do
|
817
834
|
if index < input_length
|
818
|
-
r2 =
|
835
|
+
r2 = true
|
819
836
|
@index += 1
|
820
837
|
else
|
821
838
|
terminal_parse_failure("any character")
|
@@ -1209,7 +1226,7 @@ module ScientificNameClean
|
|
1209
1226
|
if node_cache[:multinomial_name].has_key?(index)
|
1210
1227
|
cached = node_cache[:multinomial_name][index]
|
1211
1228
|
if cached
|
1212
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1229
|
+
node_cache[:multinomial_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1213
1230
|
@index = cached.interval.end
|
1214
1231
|
end
|
1215
1232
|
return cached
|
@@ -1265,6 +1282,7 @@ module ScientificNameClean
|
|
1265
1282
|
r1 = nil
|
1266
1283
|
end
|
1267
1284
|
if r1
|
1285
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
1268
1286
|
r0 = r1
|
1269
1287
|
else
|
1270
1288
|
i12, s12 = index, []
|
@@ -1324,6 +1342,7 @@ module ScientificNameClean
|
|
1324
1342
|
r12 = nil
|
1325
1343
|
end
|
1326
1344
|
if r12
|
1345
|
+
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
1327
1346
|
r0 = r12
|
1328
1347
|
else
|
1329
1348
|
i25, s25 = index, []
|
@@ -1367,6 +1386,7 @@ module ScientificNameClean
|
|
1367
1386
|
r25 = nil
|
1368
1387
|
end
|
1369
1388
|
if r25
|
1389
|
+
r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
|
1370
1390
|
r0 = r25
|
1371
1391
|
else
|
1372
1392
|
i34, s34 = index, []
|
@@ -1410,6 +1430,7 @@ module ScientificNameClean
|
|
1410
1430
|
r34 = nil
|
1411
1431
|
end
|
1412
1432
|
if r34
|
1433
|
+
r34 = SyntaxNode.new(input, (index-1)...index) if r34 == true
|
1413
1434
|
r0 = r34
|
1414
1435
|
else
|
1415
1436
|
i43, s43 = index, []
|
@@ -1445,6 +1466,7 @@ module ScientificNameClean
|
|
1445
1466
|
r43 = nil
|
1446
1467
|
end
|
1447
1468
|
if r43
|
1469
|
+
r43 = SyntaxNode.new(input, (index-1)...index) if r43 == true
|
1448
1470
|
r0 = r43
|
1449
1471
|
else
|
1450
1472
|
i50, s50 = index, []
|
@@ -1475,6 +1497,7 @@ module ScientificNameClean
|
|
1475
1497
|
r50 = nil
|
1476
1498
|
end
|
1477
1499
|
if r50
|
1500
|
+
r50 = SyntaxNode.new(input, (index-1)...index) if r50 == true
|
1478
1501
|
r0 = r50
|
1479
1502
|
else
|
1480
1503
|
@index = i0
|
@@ -1541,7 +1564,7 @@ module ScientificNameClean
|
|
1541
1564
|
if node_cache[:multiuninomial_name].has_key?(index)
|
1542
1565
|
cached = node_cache[:multiuninomial_name][index]
|
1543
1566
|
if cached
|
1544
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1567
|
+
node_cache[:multiuninomial_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1545
1568
|
@index = cached.interval.end
|
1546
1569
|
end
|
1547
1570
|
return cached
|
@@ -1629,7 +1652,7 @@ module ScientificNameClean
|
|
1629
1652
|
if node_cache[:infraspecies_mult].has_key?(index)
|
1630
1653
|
cached = node_cache[:infraspecies_mult][index]
|
1631
1654
|
if cached
|
1632
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1655
|
+
node_cache[:infraspecies_mult][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1633
1656
|
@index = cached.interval.end
|
1634
1657
|
end
|
1635
1658
|
return cached
|
@@ -1656,11 +1679,13 @@ module ScientificNameClean
|
|
1656
1679
|
r1 = nil
|
1657
1680
|
end
|
1658
1681
|
if r1
|
1682
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
1659
1683
|
r0 = r1
|
1660
1684
|
else
|
1661
1685
|
r5 = _nt_infraspecies
|
1662
1686
|
r5.extend(InfraspeciesMult2)
|
1663
1687
|
if r5
|
1688
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
1664
1689
|
r0 = r5
|
1665
1690
|
else
|
1666
1691
|
@index = i0
|
@@ -1710,7 +1735,7 @@ module ScientificNameClean
|
|
1710
1735
|
if node_cache[:infraspecies].has_key?(index)
|
1711
1736
|
cached = node_cache[:infraspecies][index]
|
1712
1737
|
if cached
|
1713
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1738
|
+
node_cache[:infraspecies][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1714
1739
|
@index = cached.interval.end
|
1715
1740
|
end
|
1716
1741
|
return cached
|
@@ -1737,10 +1762,12 @@ module ScientificNameClean
|
|
1737
1762
|
r1 = nil
|
1738
1763
|
end
|
1739
1764
|
if r1
|
1765
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
1740
1766
|
r0 = r1
|
1741
1767
|
else
|
1742
1768
|
r5 = _nt_infraspecies_string
|
1743
1769
|
if r5
|
1770
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
1744
1771
|
r0 = r5
|
1745
1772
|
else
|
1746
1773
|
@index = i0
|
@@ -1853,7 +1880,7 @@ module ScientificNameClean
|
|
1853
1880
|
if node_cache[:infraspecies_string].has_key?(index)
|
1854
1881
|
cached = node_cache[:infraspecies_string][index]
|
1855
1882
|
if cached
|
1856
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1883
|
+
node_cache[:infraspecies_string][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1857
1884
|
@index = cached.interval.end
|
1858
1885
|
end
|
1859
1886
|
return cached
|
@@ -1880,6 +1907,7 @@ module ScientificNameClean
|
|
1880
1907
|
r1 = nil
|
1881
1908
|
end
|
1882
1909
|
if r1
|
1910
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
1883
1911
|
r0 = r1
|
1884
1912
|
else
|
1885
1913
|
i5, s5 = index, []
|
@@ -1893,10 +1921,11 @@ module ScientificNameClean
|
|
1893
1921
|
s5 << r8
|
1894
1922
|
if r8
|
1895
1923
|
i9 = index
|
1896
|
-
if has_terminal?('\
|
1924
|
+
if has_terminal?(@regexps[gr = '\A[\\.]'] ||= Regexp.new(gr), :regexp, index)
|
1897
1925
|
r10 = true
|
1898
1926
|
@index += 1
|
1899
1927
|
else
|
1928
|
+
terminal_parse_failure('[\\.]')
|
1900
1929
|
r10 = nil
|
1901
1930
|
end
|
1902
1931
|
if r10
|
@@ -1918,6 +1947,7 @@ module ScientificNameClean
|
|
1918
1947
|
r5 = nil
|
1919
1948
|
end
|
1920
1949
|
if r5
|
1950
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
1921
1951
|
r0 = r5
|
1922
1952
|
else
|
1923
1953
|
i11, s11 = index, []
|
@@ -1925,10 +1955,11 @@ module ScientificNameClean
|
|
1925
1955
|
s11 << r12
|
1926
1956
|
if r12
|
1927
1957
|
i13 = index
|
1928
|
-
if has_terminal?('\
|
1958
|
+
if has_terminal?(@regexps[gr = '\A[\\.]'] ||= Regexp.new(gr), :regexp, index)
|
1929
1959
|
r14 = true
|
1930
1960
|
@index += 1
|
1931
1961
|
else
|
1962
|
+
terminal_parse_failure('[\\.]')
|
1932
1963
|
r14 = nil
|
1933
1964
|
end
|
1934
1965
|
if r14
|
@@ -1948,6 +1979,7 @@ module ScientificNameClean
|
|
1948
1979
|
r11 = nil
|
1949
1980
|
end
|
1950
1981
|
if r11
|
1982
|
+
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
1951
1983
|
r0 = r11
|
1952
1984
|
else
|
1953
1985
|
@index = i0
|
@@ -1978,32 +2010,34 @@ module ScientificNameClean
|
|
1978
2010
|
if node_cache[:taxon_concept_rank].has_key?(index)
|
1979
2011
|
cached = node_cache[:taxon_concept_rank][index]
|
1980
2012
|
if cached
|
1981
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2013
|
+
node_cache[:taxon_concept_rank][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1982
2014
|
@index = cached.interval.end
|
1983
2015
|
end
|
1984
2016
|
return cached
|
1985
2017
|
end
|
1986
2018
|
|
1987
2019
|
i0 = index
|
1988
|
-
if has_terminal?("sec.", false, index)
|
1989
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1990
|
-
@index +=
|
2020
|
+
if (match_len = has_terminal?("sec.", false, index))
|
2021
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2022
|
+
@index += match_len
|
1991
2023
|
else
|
1992
2024
|
terminal_parse_failure("sec.")
|
1993
2025
|
r1 = nil
|
1994
2026
|
end
|
1995
2027
|
if r1
|
2028
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
1996
2029
|
r0 = r1
|
1997
2030
|
r0.extend(TaxonConceptRank0)
|
1998
2031
|
else
|
1999
|
-
if has_terminal?("sensu.", false, index)
|
2000
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
2001
|
-
@index +=
|
2032
|
+
if (match_len = has_terminal?("sensu.", false, index))
|
2033
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2034
|
+
@index += match_len
|
2002
2035
|
else
|
2003
2036
|
terminal_parse_failure("sensu.")
|
2004
2037
|
r2 = nil
|
2005
2038
|
end
|
2006
2039
|
if r2
|
2040
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
2007
2041
|
r0 = r2
|
2008
2042
|
r0.extend(TaxonConceptRank0)
|
2009
2043
|
else
|
@@ -2045,527 +2079,574 @@ module ScientificNameClean
|
|
2045
2079
|
if node_cache[:rank].has_key?(index)
|
2046
2080
|
cached = node_cache[:rank][index]
|
2047
2081
|
if cached
|
2048
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2082
|
+
node_cache[:rank][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2049
2083
|
@index = cached.interval.end
|
2050
2084
|
end
|
2051
2085
|
return cached
|
2052
2086
|
end
|
2053
2087
|
|
2054
2088
|
i0 = index
|
2055
|
-
if has_terminal?("morph.", false, index)
|
2056
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
2057
|
-
@index +=
|
2089
|
+
if (match_len = has_terminal?("morph.", false, index))
|
2090
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2091
|
+
@index += match_len
|
2058
2092
|
else
|
2059
2093
|
terminal_parse_failure("morph.")
|
2060
2094
|
r1 = nil
|
2061
2095
|
end
|
2062
2096
|
if r1
|
2097
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2063
2098
|
r0 = r1
|
2064
2099
|
r0.extend(Rank0)
|
2065
2100
|
else
|
2066
|
-
if has_terminal?("f.sp.", false, index)
|
2067
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
2068
|
-
@index +=
|
2101
|
+
if (match_len = has_terminal?("f.sp.", false, index))
|
2102
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2103
|
+
@index += match_len
|
2069
2104
|
else
|
2070
2105
|
terminal_parse_failure("f.sp.")
|
2071
2106
|
r2 = nil
|
2072
2107
|
end
|
2073
2108
|
if r2
|
2109
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
2074
2110
|
r0 = r2
|
2075
2111
|
r0.extend(Rank0)
|
2076
2112
|
else
|
2077
|
-
if has_terminal?("B ", false, index)
|
2078
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
2079
|
-
@index +=
|
2113
|
+
if (match_len = has_terminal?("B ", false, index))
|
2114
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2115
|
+
@index += match_len
|
2080
2116
|
else
|
2081
2117
|
terminal_parse_failure("B ")
|
2082
2118
|
r3 = nil
|
2083
2119
|
end
|
2084
2120
|
if r3
|
2121
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
2085
2122
|
r0 = r3
|
2086
2123
|
r0.extend(Rank0)
|
2087
2124
|
else
|
2088
|
-
if has_terminal?("ssp.", false, index)
|
2089
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
2090
|
-
@index +=
|
2125
|
+
if (match_len = has_terminal?("ssp.", false, index))
|
2126
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2127
|
+
@index += match_len
|
2091
2128
|
else
|
2092
2129
|
terminal_parse_failure("ssp.")
|
2093
2130
|
r4 = nil
|
2094
2131
|
end
|
2095
2132
|
if r4
|
2133
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
2096
2134
|
r0 = r4
|
2097
2135
|
r0.extend(Rank0)
|
2098
2136
|
else
|
2099
|
-
if has_terminal?("ssp ", false, index)
|
2100
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
2101
|
-
@index +=
|
2137
|
+
if (match_len = has_terminal?("ssp ", false, index))
|
2138
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2139
|
+
@index += match_len
|
2102
2140
|
else
|
2103
2141
|
terminal_parse_failure("ssp ")
|
2104
2142
|
r5 = nil
|
2105
2143
|
end
|
2106
2144
|
if r5
|
2145
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
2107
2146
|
r0 = r5
|
2108
2147
|
r0.extend(Rank0)
|
2109
2148
|
else
|
2110
|
-
if has_terminal?("mut.", false, index)
|
2111
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
2112
|
-
@index +=
|
2149
|
+
if (match_len = has_terminal?("mut.", false, index))
|
2150
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2151
|
+
@index += match_len
|
2113
2152
|
else
|
2114
2153
|
terminal_parse_failure("mut.")
|
2115
2154
|
r6 = nil
|
2116
2155
|
end
|
2117
2156
|
if r6
|
2157
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
2118
2158
|
r0 = r6
|
2119
2159
|
r0.extend(Rank0)
|
2120
2160
|
else
|
2121
|
-
if has_terminal?("nat ", false, index)
|
2122
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
2123
|
-
@index +=
|
2161
|
+
if (match_len = has_terminal?("nat ", false, index))
|
2162
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2163
|
+
@index += match_len
|
2124
2164
|
else
|
2125
2165
|
terminal_parse_failure("nat ")
|
2126
2166
|
r7 = nil
|
2127
2167
|
end
|
2128
2168
|
if r7
|
2169
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
2129
2170
|
r0 = r7
|
2130
2171
|
r0.extend(Rank0)
|
2131
2172
|
else
|
2132
|
-
if has_terminal?("nothosubsp.", false, index)
|
2133
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
2134
|
-
@index +=
|
2173
|
+
if (match_len = has_terminal?("nothosubsp.", false, index))
|
2174
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2175
|
+
@index += match_len
|
2135
2176
|
else
|
2136
2177
|
terminal_parse_failure("nothosubsp.")
|
2137
2178
|
r8 = nil
|
2138
2179
|
end
|
2139
2180
|
if r8
|
2181
|
+
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
2140
2182
|
r0 = r8
|
2141
2183
|
r0.extend(Rank0)
|
2142
2184
|
else
|
2143
|
-
if has_terminal?("convar.", false, index)
|
2144
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
2145
|
-
@index +=
|
2185
|
+
if (match_len = has_terminal?("convar.", false, index))
|
2186
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2187
|
+
@index += match_len
|
2146
2188
|
else
|
2147
2189
|
terminal_parse_failure("convar.")
|
2148
2190
|
r9 = nil
|
2149
2191
|
end
|
2150
2192
|
if r9
|
2193
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
2151
2194
|
r0 = r9
|
2152
2195
|
r0.extend(Rank0)
|
2153
2196
|
else
|
2154
|
-
if has_terminal?("pseudovar.", false, index)
|
2155
|
-
r10 = instantiate_node(SyntaxNode,input, index...(index +
|
2156
|
-
@index +=
|
2197
|
+
if (match_len = has_terminal?("pseudovar.", false, index))
|
2198
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2199
|
+
@index += match_len
|
2157
2200
|
else
|
2158
2201
|
terminal_parse_failure("pseudovar.")
|
2159
2202
|
r10 = nil
|
2160
2203
|
end
|
2161
2204
|
if r10
|
2205
|
+
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
2162
2206
|
r0 = r10
|
2163
2207
|
r0.extend(Rank0)
|
2164
2208
|
else
|
2165
|
-
if has_terminal?("sect.", false, index)
|
2166
|
-
r11 = instantiate_node(SyntaxNode,input, index...(index +
|
2167
|
-
@index +=
|
2209
|
+
if (match_len = has_terminal?("sect.", false, index))
|
2210
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2211
|
+
@index += match_len
|
2168
2212
|
else
|
2169
2213
|
terminal_parse_failure("sect.")
|
2170
2214
|
r11 = nil
|
2171
2215
|
end
|
2172
2216
|
if r11
|
2217
|
+
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
2173
2218
|
r0 = r11
|
2174
2219
|
r0.extend(Rank0)
|
2175
2220
|
else
|
2176
|
-
if has_terminal?("ser.", false, index)
|
2177
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
2178
|
-
@index +=
|
2221
|
+
if (match_len = has_terminal?("ser.", false, index))
|
2222
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2223
|
+
@index += match_len
|
2179
2224
|
else
|
2180
2225
|
terminal_parse_failure("ser.")
|
2181
2226
|
r12 = nil
|
2182
2227
|
end
|
2183
2228
|
if r12
|
2229
|
+
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
2184
2230
|
r0 = r12
|
2185
2231
|
r0.extend(Rank0)
|
2186
2232
|
else
|
2187
|
-
if has_terminal?("var.", false, index)
|
2188
|
-
r13 = instantiate_node(SyntaxNode,input, index...(index +
|
2189
|
-
@index +=
|
2233
|
+
if (match_len = has_terminal?("var.", false, index))
|
2234
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2235
|
+
@index += match_len
|
2190
2236
|
else
|
2191
2237
|
terminal_parse_failure("var.")
|
2192
2238
|
r13 = nil
|
2193
2239
|
end
|
2194
2240
|
if r13
|
2241
|
+
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
2195
2242
|
r0 = r13
|
2196
2243
|
r0.extend(Rank0)
|
2197
2244
|
else
|
2198
|
-
if has_terminal?("subvar.", false, index)
|
2199
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
2200
|
-
@index +=
|
2245
|
+
if (match_len = has_terminal?("subvar.", false, index))
|
2246
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2247
|
+
@index += match_len
|
2201
2248
|
else
|
2202
2249
|
terminal_parse_failure("subvar.")
|
2203
2250
|
r14 = nil
|
2204
2251
|
end
|
2205
2252
|
if r14
|
2253
|
+
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
2206
2254
|
r0 = r14
|
2207
2255
|
r0.extend(Rank0)
|
2208
2256
|
else
|
2209
|
-
if has_terminal?("[var.]", false, index)
|
2210
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
2211
|
-
@index +=
|
2257
|
+
if (match_len = has_terminal?("[var.]", false, index))
|
2258
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2259
|
+
@index += match_len
|
2212
2260
|
else
|
2213
2261
|
terminal_parse_failure("[var.]")
|
2214
2262
|
r15 = nil
|
2215
2263
|
end
|
2216
2264
|
if r15
|
2265
|
+
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
2217
2266
|
r0 = r15
|
2218
2267
|
r0.extend(Rank0)
|
2219
2268
|
else
|
2220
|
-
if has_terminal?("var ", false, index)
|
2221
|
-
r16 = instantiate_node(SyntaxNode,input, index...(index +
|
2222
|
-
@index +=
|
2269
|
+
if (match_len = has_terminal?("var ", false, index))
|
2270
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2271
|
+
@index += match_len
|
2223
2272
|
else
|
2224
2273
|
terminal_parse_failure("var ")
|
2225
2274
|
r16 = nil
|
2226
2275
|
end
|
2227
2276
|
if r16
|
2277
|
+
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
2228
2278
|
r0 = r16
|
2229
2279
|
r0.extend(Rank0)
|
2230
2280
|
else
|
2231
|
-
if has_terminal?("subsp.", false, index)
|
2232
|
-
r17 = instantiate_node(SyntaxNode,input, index...(index +
|
2233
|
-
@index +=
|
2281
|
+
if (match_len = has_terminal?("subsp.", false, index))
|
2282
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2283
|
+
@index += match_len
|
2234
2284
|
else
|
2235
2285
|
terminal_parse_failure("subsp.")
|
2236
2286
|
r17 = nil
|
2237
2287
|
end
|
2238
2288
|
if r17
|
2289
|
+
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
2239
2290
|
r0 = r17
|
2240
2291
|
r0.extend(Rank0)
|
2241
2292
|
else
|
2242
|
-
if has_terminal?("subsp ", false, index)
|
2243
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
2244
|
-
@index +=
|
2293
|
+
if (match_len = has_terminal?("subsp ", false, index))
|
2294
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2295
|
+
@index += match_len
|
2245
2296
|
else
|
2246
2297
|
terminal_parse_failure("subsp ")
|
2247
2298
|
r18 = nil
|
2248
2299
|
end
|
2249
2300
|
if r18
|
2301
|
+
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
2250
2302
|
r0 = r18
|
2251
2303
|
r0.extend(Rank0)
|
2252
2304
|
else
|
2253
|
-
if has_terminal?("subf.", false, index)
|
2254
|
-
r19 = instantiate_node(SyntaxNode,input, index...(index +
|
2255
|
-
@index +=
|
2305
|
+
if (match_len = has_terminal?("subf.", false, index))
|
2306
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2307
|
+
@index += match_len
|
2256
2308
|
else
|
2257
2309
|
terminal_parse_failure("subf.")
|
2258
2310
|
r19 = nil
|
2259
2311
|
end
|
2260
2312
|
if r19
|
2313
|
+
r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true
|
2261
2314
|
r0 = r19
|
2262
2315
|
r0.extend(Rank0)
|
2263
2316
|
else
|
2264
|
-
if has_terminal?("race ", false, index)
|
2265
|
-
r20 = instantiate_node(SyntaxNode,input, index...(index +
|
2266
|
-
@index +=
|
2317
|
+
if (match_len = has_terminal?("race ", false, index))
|
2318
|
+
r20 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2319
|
+
@index += match_len
|
2267
2320
|
else
|
2268
2321
|
terminal_parse_failure("race ")
|
2269
2322
|
r20 = nil
|
2270
2323
|
end
|
2271
2324
|
if r20
|
2325
|
+
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
2272
2326
|
r0 = r20
|
2273
2327
|
r0.extend(Rank0)
|
2274
2328
|
else
|
2275
|
-
if has_terminal?("forma ", false, index)
|
2276
|
-
r21 = instantiate_node(SyntaxNode,input, index...(index +
|
2277
|
-
@index +=
|
2329
|
+
if (match_len = has_terminal?("forma ", false, index))
|
2330
|
+
r21 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2331
|
+
@index += match_len
|
2278
2332
|
else
|
2279
2333
|
terminal_parse_failure("forma ")
|
2280
2334
|
r21 = nil
|
2281
2335
|
end
|
2282
2336
|
if r21
|
2337
|
+
r21 = SyntaxNode.new(input, (index-1)...index) if r21 == true
|
2283
2338
|
r0 = r21
|
2284
2339
|
r0.extend(Rank0)
|
2285
2340
|
else
|
2286
|
-
if has_terminal?("fma.", false, index)
|
2287
|
-
r22 = instantiate_node(SyntaxNode,input, index...(index +
|
2288
|
-
@index +=
|
2341
|
+
if (match_len = has_terminal?("fma.", false, index))
|
2342
|
+
r22 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2343
|
+
@index += match_len
|
2289
2344
|
else
|
2290
2345
|
terminal_parse_failure("fma.")
|
2291
2346
|
r22 = nil
|
2292
2347
|
end
|
2293
2348
|
if r22
|
2349
|
+
r22 = SyntaxNode.new(input, (index-1)...index) if r22 == true
|
2294
2350
|
r0 = r22
|
2295
2351
|
r0.extend(Rank0)
|
2296
2352
|
else
|
2297
|
-
if has_terminal?("fma ", false, index)
|
2298
|
-
r23 = instantiate_node(SyntaxNode,input, index...(index +
|
2299
|
-
@index +=
|
2353
|
+
if (match_len = has_terminal?("fma ", false, index))
|
2354
|
+
r23 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2355
|
+
@index += match_len
|
2300
2356
|
else
|
2301
2357
|
terminal_parse_failure("fma ")
|
2302
2358
|
r23 = nil
|
2303
2359
|
end
|
2304
2360
|
if r23
|
2361
|
+
r23 = SyntaxNode.new(input, (index-1)...index) if r23 == true
|
2305
2362
|
r0 = r23
|
2306
2363
|
r0.extend(Rank0)
|
2307
2364
|
else
|
2308
|
-
if has_terminal?("form.", false, index)
|
2309
|
-
r24 = instantiate_node(SyntaxNode,input, index...(index +
|
2310
|
-
@index +=
|
2365
|
+
if (match_len = has_terminal?("form.", false, index))
|
2366
|
+
r24 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2367
|
+
@index += match_len
|
2311
2368
|
else
|
2312
2369
|
terminal_parse_failure("form.")
|
2313
2370
|
r24 = nil
|
2314
2371
|
end
|
2315
2372
|
if r24
|
2373
|
+
r24 = SyntaxNode.new(input, (index-1)...index) if r24 == true
|
2316
2374
|
r0 = r24
|
2317
2375
|
r0.extend(Rank0)
|
2318
2376
|
else
|
2319
|
-
if has_terminal?("form ", false, index)
|
2320
|
-
r25 = instantiate_node(SyntaxNode,input, index...(index +
|
2321
|
-
@index +=
|
2377
|
+
if (match_len = has_terminal?("form ", false, index))
|
2378
|
+
r25 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2379
|
+
@index += match_len
|
2322
2380
|
else
|
2323
2381
|
terminal_parse_failure("form ")
|
2324
2382
|
r25 = nil
|
2325
2383
|
end
|
2326
2384
|
if r25
|
2385
|
+
r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
|
2327
2386
|
r0 = r25
|
2328
2387
|
r0.extend(Rank0)
|
2329
2388
|
else
|
2330
|
-
if has_terminal?("fo.", false, index)
|
2331
|
-
r26 = instantiate_node(SyntaxNode,input, index...(index +
|
2332
|
-
@index +=
|
2389
|
+
if (match_len = has_terminal?("fo.", false, index))
|
2390
|
+
r26 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2391
|
+
@index += match_len
|
2333
2392
|
else
|
2334
2393
|
terminal_parse_failure("fo.")
|
2335
2394
|
r26 = nil
|
2336
2395
|
end
|
2337
2396
|
if r26
|
2397
|
+
r26 = SyntaxNode.new(input, (index-1)...index) if r26 == true
|
2338
2398
|
r0 = r26
|
2339
2399
|
r0.extend(Rank0)
|
2340
2400
|
else
|
2341
|
-
if has_terminal?("fo ", false, index)
|
2342
|
-
r27 = instantiate_node(SyntaxNode,input, index...(index +
|
2343
|
-
@index +=
|
2401
|
+
if (match_len = has_terminal?("fo ", false, index))
|
2402
|
+
r27 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2403
|
+
@index += match_len
|
2344
2404
|
else
|
2345
2405
|
terminal_parse_failure("fo ")
|
2346
2406
|
r27 = nil
|
2347
2407
|
end
|
2348
2408
|
if r27
|
2409
|
+
r27 = SyntaxNode.new(input, (index-1)...index) if r27 == true
|
2349
2410
|
r0 = r27
|
2350
2411
|
r0.extend(Rank0)
|
2351
2412
|
else
|
2352
|
-
if has_terminal?("f.", false, index)
|
2353
|
-
r28 = instantiate_node(SyntaxNode,input, index...(index +
|
2354
|
-
@index +=
|
2413
|
+
if (match_len = has_terminal?("f.", false, index))
|
2414
|
+
r28 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2415
|
+
@index += match_len
|
2355
2416
|
else
|
2356
2417
|
terminal_parse_failure("f.")
|
2357
2418
|
r28 = nil
|
2358
2419
|
end
|
2359
2420
|
if r28
|
2421
|
+
r28 = SyntaxNode.new(input, (index-1)...index) if r28 == true
|
2360
2422
|
r0 = r28
|
2361
2423
|
r0.extend(Rank0)
|
2362
2424
|
else
|
2363
|
-
if has_terminal?("α", false, index)
|
2364
|
-
r29 =
|
2365
|
-
@index +=
|
2425
|
+
if (match_len = has_terminal?("α", false, index))
|
2426
|
+
r29 = true
|
2427
|
+
@index += match_len
|
2366
2428
|
else
|
2367
2429
|
terminal_parse_failure("α")
|
2368
2430
|
r29 = nil
|
2369
2431
|
end
|
2370
2432
|
if r29
|
2433
|
+
r29 = SyntaxNode.new(input, (index-1)...index) if r29 == true
|
2371
2434
|
r0 = r29
|
2372
2435
|
r0.extend(Rank0)
|
2373
2436
|
else
|
2374
|
-
if has_terminal?("ββ", false, index)
|
2375
|
-
r30 = instantiate_node(SyntaxNode,input, index...(index +
|
2376
|
-
@index +=
|
2437
|
+
if (match_len = has_terminal?("ββ", false, index))
|
2438
|
+
r30 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2439
|
+
@index += match_len
|
2377
2440
|
else
|
2378
2441
|
terminal_parse_failure("ββ")
|
2379
2442
|
r30 = nil
|
2380
2443
|
end
|
2381
2444
|
if r30
|
2445
|
+
r30 = SyntaxNode.new(input, (index-1)...index) if r30 == true
|
2382
2446
|
r0 = r30
|
2383
2447
|
r0.extend(Rank0)
|
2384
2448
|
else
|
2385
|
-
if has_terminal?("β", false, index)
|
2386
|
-
r31 =
|
2387
|
-
@index +=
|
2449
|
+
if (match_len = has_terminal?("β", false, index))
|
2450
|
+
r31 = true
|
2451
|
+
@index += match_len
|
2388
2452
|
else
|
2389
2453
|
terminal_parse_failure("β")
|
2390
2454
|
r31 = nil
|
2391
2455
|
end
|
2392
2456
|
if r31
|
2457
|
+
r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
|
2393
2458
|
r0 = r31
|
2394
2459
|
r0.extend(Rank0)
|
2395
2460
|
else
|
2396
|
-
if has_terminal?("γ", false, index)
|
2397
|
-
r32 =
|
2398
|
-
@index +=
|
2461
|
+
if (match_len = has_terminal?("γ", false, index))
|
2462
|
+
r32 = true
|
2463
|
+
@index += match_len
|
2399
2464
|
else
|
2400
2465
|
terminal_parse_failure("γ")
|
2401
2466
|
r32 = nil
|
2402
2467
|
end
|
2403
2468
|
if r32
|
2469
|
+
r32 = SyntaxNode.new(input, (index-1)...index) if r32 == true
|
2404
2470
|
r0 = r32
|
2405
2471
|
r0.extend(Rank0)
|
2406
2472
|
else
|
2407
|
-
if has_terminal?("δ", false, index)
|
2408
|
-
r33 =
|
2409
|
-
@index +=
|
2473
|
+
if (match_len = has_terminal?("δ", false, index))
|
2474
|
+
r33 = true
|
2475
|
+
@index += match_len
|
2410
2476
|
else
|
2411
2477
|
terminal_parse_failure("δ")
|
2412
2478
|
r33 = nil
|
2413
2479
|
end
|
2414
2480
|
if r33
|
2481
|
+
r33 = SyntaxNode.new(input, (index-1)...index) if r33 == true
|
2415
2482
|
r0 = r33
|
2416
2483
|
r0.extend(Rank0)
|
2417
2484
|
else
|
2418
|
-
if has_terminal?("ε", false, index)
|
2419
|
-
r34 =
|
2420
|
-
@index +=
|
2485
|
+
if (match_len = has_terminal?("ε", false, index))
|
2486
|
+
r34 = true
|
2487
|
+
@index += match_len
|
2421
2488
|
else
|
2422
2489
|
terminal_parse_failure("ε")
|
2423
2490
|
r34 = nil
|
2424
2491
|
end
|
2425
2492
|
if r34
|
2493
|
+
r34 = SyntaxNode.new(input, (index-1)...index) if r34 == true
|
2426
2494
|
r0 = r34
|
2427
2495
|
r0.extend(Rank0)
|
2428
2496
|
else
|
2429
|
-
if has_terminal?("φ", false, index)
|
2430
|
-
r35 =
|
2431
|
-
@index +=
|
2497
|
+
if (match_len = has_terminal?("φ", false, index))
|
2498
|
+
r35 = true
|
2499
|
+
@index += match_len
|
2432
2500
|
else
|
2433
2501
|
terminal_parse_failure("φ")
|
2434
2502
|
r35 = nil
|
2435
2503
|
end
|
2436
2504
|
if r35
|
2505
|
+
r35 = SyntaxNode.new(input, (index-1)...index) if r35 == true
|
2437
2506
|
r0 = r35
|
2438
2507
|
r0.extend(Rank0)
|
2439
2508
|
else
|
2440
|
-
if has_terminal?("θ", false, index)
|
2441
|
-
r36 =
|
2442
|
-
@index +=
|
2509
|
+
if (match_len = has_terminal?("θ", false, index))
|
2510
|
+
r36 = true
|
2511
|
+
@index += match_len
|
2443
2512
|
else
|
2444
2513
|
terminal_parse_failure("θ")
|
2445
2514
|
r36 = nil
|
2446
2515
|
end
|
2447
2516
|
if r36
|
2517
|
+
r36 = SyntaxNode.new(input, (index-1)...index) if r36 == true
|
2448
2518
|
r0 = r36
|
2449
2519
|
r0.extend(Rank0)
|
2450
2520
|
else
|
2451
|
-
if has_terminal?("μ", false, index)
|
2452
|
-
r37 =
|
2453
|
-
@index +=
|
2521
|
+
if (match_len = has_terminal?("μ", false, index))
|
2522
|
+
r37 = true
|
2523
|
+
@index += match_len
|
2454
2524
|
else
|
2455
2525
|
terminal_parse_failure("μ")
|
2456
2526
|
r37 = nil
|
2457
2527
|
end
|
2458
2528
|
if r37
|
2529
|
+
r37 = SyntaxNode.new(input, (index-1)...index) if r37 == true
|
2459
2530
|
r0 = r37
|
2460
2531
|
r0.extend(Rank0)
|
2461
2532
|
else
|
2462
|
-
if has_terminal?("a.", false, index)
|
2463
|
-
r38 = instantiate_node(SyntaxNode,input, index...(index +
|
2464
|
-
@index +=
|
2533
|
+
if (match_len = has_terminal?("a.", false, index))
|
2534
|
+
r38 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2535
|
+
@index += match_len
|
2465
2536
|
else
|
2466
2537
|
terminal_parse_failure("a.")
|
2467
2538
|
r38 = nil
|
2468
2539
|
end
|
2469
2540
|
if r38
|
2541
|
+
r38 = SyntaxNode.new(input, (index-1)...index) if r38 == true
|
2470
2542
|
r0 = r38
|
2471
2543
|
r0.extend(Rank0)
|
2472
2544
|
else
|
2473
|
-
if has_terminal?("b.", false, index)
|
2474
|
-
r39 = instantiate_node(SyntaxNode,input, index...(index +
|
2475
|
-
@index +=
|
2545
|
+
if (match_len = has_terminal?("b.", false, index))
|
2546
|
+
r39 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2547
|
+
@index += match_len
|
2476
2548
|
else
|
2477
2549
|
terminal_parse_failure("b.")
|
2478
2550
|
r39 = nil
|
2479
2551
|
end
|
2480
2552
|
if r39
|
2553
|
+
r39 = SyntaxNode.new(input, (index-1)...index) if r39 == true
|
2481
2554
|
r0 = r39
|
2482
2555
|
r0.extend(Rank0)
|
2483
2556
|
else
|
2484
|
-
if has_terminal?("c.", false, index)
|
2485
|
-
r40 = instantiate_node(SyntaxNode,input, index...(index +
|
2486
|
-
@index +=
|
2557
|
+
if (match_len = has_terminal?("c.", false, index))
|
2558
|
+
r40 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2559
|
+
@index += match_len
|
2487
2560
|
else
|
2488
2561
|
terminal_parse_failure("c.")
|
2489
2562
|
r40 = nil
|
2490
2563
|
end
|
2491
2564
|
if r40
|
2565
|
+
r40 = SyntaxNode.new(input, (index-1)...index) if r40 == true
|
2492
2566
|
r0 = r40
|
2493
2567
|
r0.extend(Rank0)
|
2494
2568
|
else
|
2495
|
-
if has_terminal?("d.", false, index)
|
2496
|
-
r41 = instantiate_node(SyntaxNode,input, index...(index +
|
2497
|
-
@index +=
|
2569
|
+
if (match_len = has_terminal?("d.", false, index))
|
2570
|
+
r41 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2571
|
+
@index += match_len
|
2498
2572
|
else
|
2499
2573
|
terminal_parse_failure("d.")
|
2500
2574
|
r41 = nil
|
2501
2575
|
end
|
2502
2576
|
if r41
|
2577
|
+
r41 = SyntaxNode.new(input, (index-1)...index) if r41 == true
|
2503
2578
|
r0 = r41
|
2504
2579
|
r0.extend(Rank0)
|
2505
2580
|
else
|
2506
|
-
if has_terminal?("e.", false, index)
|
2507
|
-
r42 = instantiate_node(SyntaxNode,input, index...(index +
|
2508
|
-
@index +=
|
2581
|
+
if (match_len = has_terminal?("e.", false, index))
|
2582
|
+
r42 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2583
|
+
@index += match_len
|
2509
2584
|
else
|
2510
2585
|
terminal_parse_failure("e.")
|
2511
2586
|
r42 = nil
|
2512
2587
|
end
|
2513
2588
|
if r42
|
2589
|
+
r42 = SyntaxNode.new(input, (index-1)...index) if r42 == true
|
2514
2590
|
r0 = r42
|
2515
2591
|
r0.extend(Rank0)
|
2516
2592
|
else
|
2517
|
-
if has_terminal?("g.", false, index)
|
2518
|
-
r43 = instantiate_node(SyntaxNode,input, index...(index +
|
2519
|
-
@index +=
|
2593
|
+
if (match_len = has_terminal?("g.", false, index))
|
2594
|
+
r43 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2595
|
+
@index += match_len
|
2520
2596
|
else
|
2521
2597
|
terminal_parse_failure("g.")
|
2522
2598
|
r43 = nil
|
2523
2599
|
end
|
2524
2600
|
if r43
|
2601
|
+
r43 = SyntaxNode.new(input, (index-1)...index) if r43 == true
|
2525
2602
|
r0 = r43
|
2526
2603
|
r0.extend(Rank0)
|
2527
2604
|
else
|
2528
|
-
if has_terminal?("k.", false, index)
|
2529
|
-
r44 = instantiate_node(SyntaxNode,input, index...(index +
|
2530
|
-
@index +=
|
2605
|
+
if (match_len = has_terminal?("k.", false, index))
|
2606
|
+
r44 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2607
|
+
@index += match_len
|
2531
2608
|
else
|
2532
2609
|
terminal_parse_failure("k.")
|
2533
2610
|
r44 = nil
|
2534
2611
|
end
|
2535
2612
|
if r44
|
2613
|
+
r44 = SyntaxNode.new(input, (index-1)...index) if r44 == true
|
2536
2614
|
r0 = r44
|
2537
2615
|
r0.extend(Rank0)
|
2538
2616
|
else
|
2539
|
-
if has_terminal?("****", false, index)
|
2540
|
-
r45 = instantiate_node(SyntaxNode,input, index...(index +
|
2541
|
-
@index +=
|
2617
|
+
if (match_len = has_terminal?("****", false, index))
|
2618
|
+
r45 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2619
|
+
@index += match_len
|
2542
2620
|
else
|
2543
2621
|
terminal_parse_failure("****")
|
2544
2622
|
r45 = nil
|
2545
2623
|
end
|
2546
2624
|
if r45
|
2625
|
+
r45 = SyntaxNode.new(input, (index-1)...index) if r45 == true
|
2547
2626
|
r0 = r45
|
2548
2627
|
r0.extend(Rank0)
|
2549
2628
|
else
|
2550
|
-
if has_terminal?("**", false, index)
|
2551
|
-
r46 = instantiate_node(SyntaxNode,input, index...(index +
|
2552
|
-
@index +=
|
2629
|
+
if (match_len = has_terminal?("**", false, index))
|
2630
|
+
r46 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2631
|
+
@index += match_len
|
2553
2632
|
else
|
2554
2633
|
terminal_parse_failure("**")
|
2555
2634
|
r46 = nil
|
2556
2635
|
end
|
2557
2636
|
if r46
|
2637
|
+
r46 = SyntaxNode.new(input, (index-1)...index) if r46 == true
|
2558
2638
|
r0 = r46
|
2559
2639
|
r0.extend(Rank0)
|
2560
2640
|
else
|
2561
|
-
if has_terminal?("*", false, index)
|
2562
|
-
r47 =
|
2563
|
-
@index +=
|
2641
|
+
if (match_len = has_terminal?("*", false, index))
|
2642
|
+
r47 = true
|
2643
|
+
@index += match_len
|
2564
2644
|
else
|
2565
2645
|
terminal_parse_failure("*")
|
2566
2646
|
r47 = nil
|
2567
2647
|
end
|
2568
2648
|
if r47
|
2649
|
+
r47 = SyntaxNode.new(input, (index-1)...index) if r47 == true
|
2569
2650
|
r0 = r47
|
2570
2651
|
r0.extend(Rank0)
|
2571
2652
|
else
|
@@ -2643,208 +2724,226 @@ module ScientificNameClean
|
|
2643
2724
|
if node_cache[:rank_uninomial].has_key?(index)
|
2644
2725
|
cached = node_cache[:rank_uninomial][index]
|
2645
2726
|
if cached
|
2646
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2727
|
+
node_cache[:rank_uninomial][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2647
2728
|
@index = cached.interval.end
|
2648
2729
|
end
|
2649
2730
|
return cached
|
2650
2731
|
end
|
2651
2732
|
|
2652
2733
|
i0 = index
|
2653
|
-
if has_terminal?("sect.", false, index)
|
2654
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
2655
|
-
@index +=
|
2734
|
+
if (match_len = has_terminal?("sect.", false, index))
|
2735
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2736
|
+
@index += match_len
|
2656
2737
|
else
|
2657
2738
|
terminal_parse_failure("sect.")
|
2658
2739
|
r1 = nil
|
2659
2740
|
end
|
2660
2741
|
if r1
|
2742
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2661
2743
|
r0 = r1
|
2662
2744
|
r0.extend(RankUninomial0)
|
2663
2745
|
else
|
2664
|
-
if has_terminal?("sect ", false, index)
|
2665
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
2666
|
-
@index +=
|
2746
|
+
if (match_len = has_terminal?("sect ", false, index))
|
2747
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2748
|
+
@index += match_len
|
2667
2749
|
else
|
2668
2750
|
terminal_parse_failure("sect ")
|
2669
2751
|
r2 = nil
|
2670
2752
|
end
|
2671
2753
|
if r2
|
2754
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
2672
2755
|
r0 = r2
|
2673
2756
|
r0.extend(RankUninomial0)
|
2674
2757
|
else
|
2675
|
-
if has_terminal?("subsect.", false, index)
|
2676
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
2677
|
-
@index +=
|
2758
|
+
if (match_len = has_terminal?("subsect.", false, index))
|
2759
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2760
|
+
@index += match_len
|
2678
2761
|
else
|
2679
2762
|
terminal_parse_failure("subsect.")
|
2680
2763
|
r3 = nil
|
2681
2764
|
end
|
2682
2765
|
if r3
|
2766
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
2683
2767
|
r0 = r3
|
2684
2768
|
r0.extend(RankUninomial0)
|
2685
2769
|
else
|
2686
|
-
if has_terminal?("subsect ", false, index)
|
2687
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
2688
|
-
@index +=
|
2770
|
+
if (match_len = has_terminal?("subsect ", false, index))
|
2771
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2772
|
+
@index += match_len
|
2689
2773
|
else
|
2690
2774
|
terminal_parse_failure("subsect ")
|
2691
2775
|
r4 = nil
|
2692
2776
|
end
|
2693
2777
|
if r4
|
2778
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
2694
2779
|
r0 = r4
|
2695
2780
|
r0.extend(RankUninomial0)
|
2696
2781
|
else
|
2697
|
-
if has_terminal?("trib.", false, index)
|
2698
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
2699
|
-
@index +=
|
2782
|
+
if (match_len = has_terminal?("trib.", false, index))
|
2783
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2784
|
+
@index += match_len
|
2700
2785
|
else
|
2701
2786
|
terminal_parse_failure("trib.")
|
2702
2787
|
r5 = nil
|
2703
2788
|
end
|
2704
2789
|
if r5
|
2790
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
2705
2791
|
r0 = r5
|
2706
2792
|
r0.extend(RankUninomial0)
|
2707
2793
|
else
|
2708
|
-
if has_terminal?("trib ", false, index)
|
2709
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
2710
|
-
@index +=
|
2794
|
+
if (match_len = has_terminal?("trib ", false, index))
|
2795
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2796
|
+
@index += match_len
|
2711
2797
|
else
|
2712
2798
|
terminal_parse_failure("trib ")
|
2713
2799
|
r6 = nil
|
2714
2800
|
end
|
2715
2801
|
if r6
|
2802
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
2716
2803
|
r0 = r6
|
2717
2804
|
r0.extend(RankUninomial0)
|
2718
2805
|
else
|
2719
|
-
if has_terminal?("subtrib.", false, index)
|
2720
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
2721
|
-
@index +=
|
2806
|
+
if (match_len = has_terminal?("subtrib.", false, index))
|
2807
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2808
|
+
@index += match_len
|
2722
2809
|
else
|
2723
2810
|
terminal_parse_failure("subtrib.")
|
2724
2811
|
r7 = nil
|
2725
2812
|
end
|
2726
2813
|
if r7
|
2814
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
2727
2815
|
r0 = r7
|
2728
2816
|
r0.extend(RankUninomial0)
|
2729
2817
|
else
|
2730
|
-
if has_terminal?("subtrib ", false, index)
|
2731
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
2732
|
-
@index +=
|
2818
|
+
if (match_len = has_terminal?("subtrib ", false, index))
|
2819
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2820
|
+
@index += match_len
|
2733
2821
|
else
|
2734
2822
|
terminal_parse_failure("subtrib ")
|
2735
2823
|
r8 = nil
|
2736
2824
|
end
|
2737
2825
|
if r8
|
2826
|
+
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
2738
2827
|
r0 = r8
|
2739
2828
|
r0.extend(RankUninomial0)
|
2740
2829
|
else
|
2741
|
-
if has_terminal?("ser.", false, index)
|
2742
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
2743
|
-
@index +=
|
2830
|
+
if (match_len = has_terminal?("ser.", false, index))
|
2831
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2832
|
+
@index += match_len
|
2744
2833
|
else
|
2745
2834
|
terminal_parse_failure("ser.")
|
2746
2835
|
r9 = nil
|
2747
2836
|
end
|
2748
2837
|
if r9
|
2838
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
2749
2839
|
r0 = r9
|
2750
2840
|
r0.extend(RankUninomial0)
|
2751
2841
|
else
|
2752
|
-
if has_terminal?("ser ", false, index)
|
2753
|
-
r10 = instantiate_node(SyntaxNode,input, index...(index +
|
2754
|
-
@index +=
|
2842
|
+
if (match_len = has_terminal?("ser ", false, index))
|
2843
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2844
|
+
@index += match_len
|
2755
2845
|
else
|
2756
2846
|
terminal_parse_failure("ser ")
|
2757
2847
|
r10 = nil
|
2758
2848
|
end
|
2759
2849
|
if r10
|
2850
|
+
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
2760
2851
|
r0 = r10
|
2761
2852
|
r0.extend(RankUninomial0)
|
2762
2853
|
else
|
2763
|
-
if has_terminal?("subgen.", false, index)
|
2764
|
-
r11 = instantiate_node(SyntaxNode,input, index...(index +
|
2765
|
-
@index +=
|
2854
|
+
if (match_len = has_terminal?("subgen.", false, index))
|
2855
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2856
|
+
@index += match_len
|
2766
2857
|
else
|
2767
2858
|
terminal_parse_failure("subgen.")
|
2768
2859
|
r11 = nil
|
2769
2860
|
end
|
2770
2861
|
if r11
|
2862
|
+
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
2771
2863
|
r0 = r11
|
2772
2864
|
r0.extend(RankUninomial0)
|
2773
2865
|
else
|
2774
|
-
if has_terminal?("subgen ", false, index)
|
2775
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
2776
|
-
@index +=
|
2866
|
+
if (match_len = has_terminal?("subgen ", false, index))
|
2867
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2868
|
+
@index += match_len
|
2777
2869
|
else
|
2778
2870
|
terminal_parse_failure("subgen ")
|
2779
2871
|
r12 = nil
|
2780
2872
|
end
|
2781
2873
|
if r12
|
2874
|
+
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
2782
2875
|
r0 = r12
|
2783
2876
|
r0.extend(RankUninomial0)
|
2784
2877
|
else
|
2785
|
-
if has_terminal?("fam.", false, index)
|
2786
|
-
r13 = instantiate_node(SyntaxNode,input, index...(index +
|
2787
|
-
@index +=
|
2878
|
+
if (match_len = has_terminal?("fam.", false, index))
|
2879
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2880
|
+
@index += match_len
|
2788
2881
|
else
|
2789
2882
|
terminal_parse_failure("fam.")
|
2790
2883
|
r13 = nil
|
2791
2884
|
end
|
2792
2885
|
if r13
|
2886
|
+
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
2793
2887
|
r0 = r13
|
2794
2888
|
r0.extend(RankUninomial0)
|
2795
2889
|
else
|
2796
|
-
if has_terminal?("fam ", false, index)
|
2797
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
2798
|
-
@index +=
|
2890
|
+
if (match_len = has_terminal?("fam ", false, index))
|
2891
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2892
|
+
@index += match_len
|
2799
2893
|
else
|
2800
2894
|
terminal_parse_failure("fam ")
|
2801
2895
|
r14 = nil
|
2802
2896
|
end
|
2803
2897
|
if r14
|
2898
|
+
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
2804
2899
|
r0 = r14
|
2805
2900
|
r0.extend(RankUninomial0)
|
2806
2901
|
else
|
2807
|
-
if has_terminal?("subfam.", false, index)
|
2808
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
2809
|
-
@index +=
|
2902
|
+
if (match_len = has_terminal?("subfam.", false, index))
|
2903
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2904
|
+
@index += match_len
|
2810
2905
|
else
|
2811
2906
|
terminal_parse_failure("subfam.")
|
2812
2907
|
r15 = nil
|
2813
2908
|
end
|
2814
2909
|
if r15
|
2910
|
+
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
2815
2911
|
r0 = r15
|
2816
2912
|
r0.extend(RankUninomial0)
|
2817
2913
|
else
|
2818
|
-
if has_terminal?("subfam ", false, index)
|
2819
|
-
r16 = instantiate_node(SyntaxNode,input, index...(index +
|
2820
|
-
@index +=
|
2914
|
+
if (match_len = has_terminal?("subfam ", false, index))
|
2915
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2916
|
+
@index += match_len
|
2821
2917
|
else
|
2822
2918
|
terminal_parse_failure("subfam ")
|
2823
2919
|
r16 = nil
|
2824
2920
|
end
|
2825
2921
|
if r16
|
2922
|
+
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
2826
2923
|
r0 = r16
|
2827
2924
|
r0.extend(RankUninomial0)
|
2828
2925
|
else
|
2829
|
-
if has_terminal?("supertrib.", false, index)
|
2830
|
-
r17 = instantiate_node(SyntaxNode,input, index...(index +
|
2831
|
-
@index +=
|
2926
|
+
if (match_len = has_terminal?("supertrib.", false, index))
|
2927
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2928
|
+
@index += match_len
|
2832
2929
|
else
|
2833
2930
|
terminal_parse_failure("supertrib.")
|
2834
2931
|
r17 = nil
|
2835
2932
|
end
|
2836
2933
|
if r17
|
2934
|
+
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
2837
2935
|
r0 = r17
|
2838
2936
|
r0.extend(RankUninomial0)
|
2839
2937
|
else
|
2840
|
-
if has_terminal?("supertrib ", false, index)
|
2841
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
2842
|
-
@index +=
|
2938
|
+
if (match_len = has_terminal?("supertrib ", false, index))
|
2939
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
2940
|
+
@index += match_len
|
2843
2941
|
else
|
2844
2942
|
terminal_parse_failure("supertrib ")
|
2845
2943
|
r18 = nil
|
2846
2944
|
end
|
2847
2945
|
if r18
|
2946
|
+
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
2848
2947
|
r0 = r18
|
2849
2948
|
r0.extend(RankUninomial0)
|
2850
2949
|
else
|
@@ -2915,7 +3014,7 @@ module ScientificNameClean
|
|
2915
3014
|
if node_cache[:species].has_key?(index)
|
2916
3015
|
cached = node_cache[:species][index]
|
2917
3016
|
if cached
|
2918
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3017
|
+
node_cache[:species][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2919
3018
|
@index = cached.interval.end
|
2920
3019
|
end
|
2921
3020
|
return cached
|
@@ -2942,10 +3041,12 @@ module ScientificNameClean
|
|
2942
3041
|
r1 = nil
|
2943
3042
|
end
|
2944
3043
|
if r1
|
3044
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2945
3045
|
r0 = r1
|
2946
3046
|
else
|
2947
3047
|
r5 = _nt_species_string
|
2948
3048
|
if r5
|
3049
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
2949
3050
|
r0 = r5
|
2950
3051
|
else
|
2951
3052
|
@index = i0
|
@@ -2981,7 +3082,7 @@ module ScientificNameClean
|
|
2981
3082
|
if node_cache[:species_string].has_key?(index)
|
2982
3083
|
cached = node_cache[:species_string][index]
|
2983
3084
|
if cached
|
2984
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3085
|
+
node_cache[:species_string][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2985
3086
|
@index = cached.interval.end
|
2986
3087
|
end
|
2987
3088
|
return cached
|
@@ -2991,10 +3092,12 @@ module ScientificNameClean
|
|
2991
3092
|
r1 = _nt_species_word
|
2992
3093
|
r1.extend(SpeciesString0)
|
2993
3094
|
if r1
|
3095
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
2994
3096
|
r0 = r1
|
2995
3097
|
else
|
2996
3098
|
r2 = _nt_species_word_hybrid
|
2997
3099
|
if r2
|
3100
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
2998
3101
|
r0 = r2
|
2999
3102
|
else
|
3000
3103
|
@index = i0
|
@@ -3052,7 +3155,7 @@ module ScientificNameClean
|
|
3052
3155
|
if node_cache[:infragenus].has_key?(index)
|
3053
3156
|
cached = node_cache[:infragenus][index]
|
3054
3157
|
if cached
|
3055
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3158
|
+
node_cache[:infragenus][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3056
3159
|
@index = cached.interval.end
|
3057
3160
|
end
|
3058
3161
|
return cached
|
@@ -3068,10 +3171,12 @@ module ScientificNameClean
|
|
3068
3171
|
i3 = index
|
3069
3172
|
r4 = _nt_cap_latin_word
|
3070
3173
|
if r4
|
3174
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
3071
3175
|
r3 = r4
|
3072
3176
|
else
|
3073
3177
|
r5 = _nt_capped_dotted_char
|
3074
3178
|
if r5
|
3179
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
3075
3180
|
r3 = r5
|
3076
3181
|
else
|
3077
3182
|
@index = i3
|
@@ -3151,7 +3256,7 @@ module ScientificNameClean
|
|
3151
3256
|
if node_cache[:genus].has_key?(index)
|
3152
3257
|
cached = node_cache[:genus][index]
|
3153
3258
|
if cached
|
3154
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3259
|
+
node_cache[:genus][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3155
3260
|
@index = cached.interval.end
|
3156
3261
|
end
|
3157
3262
|
return cached
|
@@ -3161,10 +3266,12 @@ module ScientificNameClean
|
|
3161
3266
|
i1 = index
|
3162
3267
|
r2 = _nt_abbreviated_genus
|
3163
3268
|
if r2
|
3269
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
3164
3270
|
r1 = r2
|
3165
3271
|
else
|
3166
3272
|
r3 = _nt_uninomial_string
|
3167
3273
|
if r3
|
3274
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
3168
3275
|
r1 = r3
|
3169
3276
|
else
|
3170
3277
|
@index = i1
|
@@ -3247,25 +3354,27 @@ module ScientificNameClean
|
|
3247
3354
|
if node_cache[:abbreviated_genus].has_key?(index)
|
3248
3355
|
cached = node_cache[:abbreviated_genus][index]
|
3249
3356
|
if cached
|
3250
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3357
|
+
node_cache[:abbreviated_genus][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3251
3358
|
@index = cached.interval.end
|
3252
3359
|
end
|
3253
3360
|
return cached
|
3254
3361
|
end
|
3255
3362
|
|
3256
3363
|
i0, s0 = index, []
|
3257
|
-
if has_terminal?('\
|
3364
|
+
if has_terminal?(@regexps[gr = '\A[A-Z]'] ||= Regexp.new(gr), :regexp, index)
|
3258
3365
|
r1 = true
|
3259
3366
|
@index += 1
|
3260
3367
|
else
|
3368
|
+
terminal_parse_failure('[A-Z]')
|
3261
3369
|
r1 = nil
|
3262
3370
|
end
|
3263
3371
|
s0 << r1
|
3264
3372
|
if r1
|
3265
|
-
if has_terminal?('\
|
3373
|
+
if has_terminal?(@regexps[gr = '\A[a-z]'] ||= Regexp.new(gr), :regexp, index)
|
3266
3374
|
r3 = true
|
3267
3375
|
@index += 1
|
3268
3376
|
else
|
3377
|
+
terminal_parse_failure('[a-z]')
|
3269
3378
|
r3 = nil
|
3270
3379
|
end
|
3271
3380
|
if r3
|
@@ -3275,10 +3384,11 @@ module ScientificNameClean
|
|
3275
3384
|
end
|
3276
3385
|
s0 << r2
|
3277
3386
|
if r2
|
3278
|
-
if has_terminal?('\
|
3387
|
+
if has_terminal?(@regexps[gr = '\A[a-z]'] ||= Regexp.new(gr), :regexp, index)
|
3279
3388
|
r5 = true
|
3280
3389
|
@index += 1
|
3281
3390
|
else
|
3391
|
+
terminal_parse_failure('[a-z]')
|
3282
3392
|
r5 = nil
|
3283
3393
|
end
|
3284
3394
|
if r5
|
@@ -3288,10 +3398,11 @@ module ScientificNameClean
|
|
3288
3398
|
end
|
3289
3399
|
s0 << r4
|
3290
3400
|
if r4
|
3291
|
-
if has_terminal?('\
|
3401
|
+
if has_terminal?(@regexps[gr = '\A[\\\\.]'] ||= Regexp.new(gr), :regexp, index)
|
3292
3402
|
r6 = true
|
3293
3403
|
@index += 1
|
3294
3404
|
else
|
3405
|
+
terminal_parse_failure('[\\\\.]')
|
3295
3406
|
r6 = nil
|
3296
3407
|
end
|
3297
3408
|
s0 << r6
|
@@ -3437,7 +3548,7 @@ module ScientificNameClean
|
|
3437
3548
|
if node_cache[:uninomial_name].has_key?(index)
|
3438
3549
|
cached = node_cache[:uninomial_name][index]
|
3439
3550
|
if cached
|
3440
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3551
|
+
node_cache[:uninomial_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3441
3552
|
@index = cached.interval.end
|
3442
3553
|
end
|
3443
3554
|
return cached
|
@@ -3472,6 +3583,7 @@ module ScientificNameClean
|
|
3472
3583
|
r1 = nil
|
3473
3584
|
end
|
3474
3585
|
if r1
|
3586
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3475
3587
|
r0 = r1
|
3476
3588
|
else
|
3477
3589
|
i7, s7 = index, []
|
@@ -3494,6 +3606,7 @@ module ScientificNameClean
|
|
3494
3606
|
r7 = nil
|
3495
3607
|
end
|
3496
3608
|
if r7
|
3609
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
3497
3610
|
r0 = r7
|
3498
3611
|
else
|
3499
3612
|
i11, s11 = index, []
|
@@ -3516,10 +3629,12 @@ module ScientificNameClean
|
|
3516
3629
|
r11 = nil
|
3517
3630
|
end
|
3518
3631
|
if r11
|
3632
|
+
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
3519
3633
|
r0 = r11
|
3520
3634
|
else
|
3521
3635
|
r15 = _nt_uninomial_string
|
3522
3636
|
if r15
|
3637
|
+
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
3523
3638
|
r0 = r15
|
3524
3639
|
else
|
3525
3640
|
@index = i0
|
@@ -3557,7 +3672,7 @@ module ScientificNameClean
|
|
3557
3672
|
if node_cache[:uninomial_string].has_key?(index)
|
3558
3673
|
cached = node_cache[:uninomial_string][index]
|
3559
3674
|
if cached
|
3560
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3675
|
+
node_cache[:uninomial_string][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3561
3676
|
@index = cached.interval.end
|
3562
3677
|
end
|
3563
3678
|
return cached
|
@@ -3566,11 +3681,13 @@ module ScientificNameClean
|
|
3566
3681
|
i0 = index
|
3567
3682
|
r1 = _nt_cap_latin_word_pair
|
3568
3683
|
if r1
|
3684
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3569
3685
|
r0 = r1
|
3570
3686
|
r0.extend(UninomialString0)
|
3571
3687
|
else
|
3572
3688
|
r2 = _nt_cap_latin_word
|
3573
3689
|
if r2
|
3690
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
3574
3691
|
r0 = r2
|
3575
3692
|
r0.extend(UninomialString0)
|
3576
3693
|
else
|
@@ -3686,7 +3803,7 @@ module ScientificNameClean
|
|
3686
3803
|
if node_cache[:authorship].has_key?(index)
|
3687
3804
|
cached = node_cache[:authorship][index]
|
3688
3805
|
if cached
|
3689
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3806
|
+
node_cache[:authorship][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3690
3807
|
@index = cached.interval.end
|
3691
3808
|
end
|
3692
3809
|
return cached
|
@@ -3703,9 +3820,9 @@ module ScientificNameClean
|
|
3703
3820
|
r4 = _nt_simple_authorship
|
3704
3821
|
s1 << r4
|
3705
3822
|
if r4
|
3706
|
-
if has_terminal?(",", false, index)
|
3707
|
-
r6 =
|
3708
|
-
@index +=
|
3823
|
+
if (match_len = has_terminal?(",", false, index))
|
3824
|
+
r6 = true
|
3825
|
+
@index += match_len
|
3709
3826
|
else
|
3710
3827
|
terminal_parse_failure(",")
|
3711
3828
|
r6 = nil
|
@@ -3736,6 +3853,7 @@ module ScientificNameClean
|
|
3736
3853
|
r1 = nil
|
3737
3854
|
end
|
3738
3855
|
if r1
|
3856
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
3739
3857
|
r0 = r1
|
3740
3858
|
else
|
3741
3859
|
i9, s9 = index, []
|
@@ -3758,19 +3876,21 @@ module ScientificNameClean
|
|
3758
3876
|
r9 = nil
|
3759
3877
|
end
|
3760
3878
|
if r9
|
3879
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
3761
3880
|
r0 = r9
|
3762
3881
|
else
|
3763
3882
|
r13 = _nt_basionym_authorship_with_parenthesis
|
3764
3883
|
if r13
|
3884
|
+
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
3765
3885
|
r0 = r13
|
3766
3886
|
else
|
3767
3887
|
i14, s14 = index, []
|
3768
3888
|
r15 = _nt_simple_authorship
|
3769
3889
|
s14 << r15
|
3770
3890
|
if r15
|
3771
|
-
if has_terminal?(",", false, index)
|
3772
|
-
r17 =
|
3773
|
-
@index +=
|
3891
|
+
if (match_len = has_terminal?(",", false, index))
|
3892
|
+
r17 = true
|
3893
|
+
@index += match_len
|
3774
3894
|
else
|
3775
3895
|
terminal_parse_failure(",")
|
3776
3896
|
r17 = nil
|
@@ -3799,10 +3919,12 @@ module ScientificNameClean
|
|
3799
3919
|
r14 = nil
|
3800
3920
|
end
|
3801
3921
|
if r14
|
3922
|
+
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
3802
3923
|
r0 = r14
|
3803
3924
|
else
|
3804
3925
|
r20 = _nt_simple_authorship
|
3805
3926
|
if r20
|
3927
|
+
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
3806
3928
|
r0 = r20
|
3807
3929
|
else
|
3808
3930
|
@index = i0
|
@@ -3994,7 +4116,7 @@ module ScientificNameClean
|
|
3994
4116
|
if node_cache[:basionym_authorship_with_parenthesis].has_key?(index)
|
3995
4117
|
cached = node_cache[:basionym_authorship_with_parenthesis][index]
|
3996
4118
|
if cached
|
3997
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4119
|
+
node_cache[:basionym_authorship_with_parenthesis][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3998
4120
|
@index = cached.interval.end
|
3999
4121
|
end
|
4000
4122
|
return cached
|
@@ -4020,10 +4142,11 @@ module ScientificNameClean
|
|
4020
4142
|
r7 = _nt_space
|
4021
4143
|
s1 << r7
|
4022
4144
|
if r7
|
4023
|
-
if has_terminal?('\
|
4145
|
+
if has_terminal?(@regexps[gr = '\A[,]'] ||= Regexp.new(gr), :regexp, index)
|
4024
4146
|
r9 = true
|
4025
4147
|
@index += 1
|
4026
4148
|
else
|
4149
|
+
terminal_parse_failure('[,]')
|
4027
4150
|
r9 = nil
|
4028
4151
|
end
|
4029
4152
|
if r9
|
@@ -4055,6 +4178,7 @@ module ScientificNameClean
|
|
4055
4178
|
r1 = nil
|
4056
4179
|
end
|
4057
4180
|
if r1
|
4181
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
4058
4182
|
r0 = r1
|
4059
4183
|
else
|
4060
4184
|
i12, s12 = index, []
|
@@ -4067,9 +4191,9 @@ module ScientificNameClean
|
|
4067
4191
|
r15 = _nt_simple_authorship
|
4068
4192
|
s12 << r15
|
4069
4193
|
if r15
|
4070
|
-
if has_terminal?(",", false, index)
|
4071
|
-
r17 =
|
4072
|
-
@index +=
|
4194
|
+
if (match_len = has_terminal?(",", false, index))
|
4195
|
+
r17 = true
|
4196
|
+
@index += match_len
|
4073
4197
|
else
|
4074
4198
|
terminal_parse_failure(",")
|
4075
4199
|
r17 = nil
|
@@ -4108,6 +4232,7 @@ module ScientificNameClean
|
|
4108
4232
|
r12 = nil
|
4109
4233
|
end
|
4110
4234
|
if r12
|
4235
|
+
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
4111
4236
|
r0 = r12
|
4112
4237
|
else
|
4113
4238
|
i22, s22 = index, []
|
@@ -4138,6 +4263,7 @@ module ScientificNameClean
|
|
4138
4263
|
r22 = nil
|
4139
4264
|
end
|
4140
4265
|
if r22
|
4266
|
+
r22 = SyntaxNode.new(input, (index-1)...index) if r22 == true
|
4141
4267
|
r0 = r22
|
4142
4268
|
else
|
4143
4269
|
i28, s28 = index, []
|
@@ -4147,9 +4273,9 @@ module ScientificNameClean
|
|
4147
4273
|
r30 = _nt_space
|
4148
4274
|
s28 << r30
|
4149
4275
|
if r30
|
4150
|
-
if has_terminal?("?", false, index)
|
4151
|
-
r31 =
|
4152
|
-
@index +=
|
4276
|
+
if (match_len = has_terminal?("?", false, index))
|
4277
|
+
r31 = true
|
4278
|
+
@index += match_len
|
4153
4279
|
else
|
4154
4280
|
terminal_parse_failure("?")
|
4155
4281
|
r31 = nil
|
@@ -4174,6 +4300,7 @@ module ScientificNameClean
|
|
4174
4300
|
r28 = nil
|
4175
4301
|
end
|
4176
4302
|
if r28
|
4303
|
+
r28 = SyntaxNode.new(input, (index-1)...index) if r28 == true
|
4177
4304
|
r0 = r28
|
4178
4305
|
else
|
4179
4306
|
@index = i0
|
@@ -4222,7 +4349,7 @@ module ScientificNameClean
|
|
4222
4349
|
if node_cache[:ex_authorship].has_key?(index)
|
4223
4350
|
cached = node_cache[:ex_authorship][index]
|
4224
4351
|
if cached
|
4225
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4352
|
+
node_cache[:ex_authorship][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4226
4353
|
@index = cached.interval.end
|
4227
4354
|
end
|
4228
4355
|
return cached
|
@@ -4378,7 +4505,7 @@ module ScientificNameClean
|
|
4378
4505
|
if node_cache[:simple_authorship].has_key?(index)
|
4379
4506
|
cached = node_cache[:simple_authorship][index]
|
4380
4507
|
if cached
|
4381
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4508
|
+
node_cache[:simple_authorship][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4382
4509
|
@index = cached.interval.end
|
4383
4510
|
end
|
4384
4511
|
return cached
|
@@ -4392,10 +4519,11 @@ module ScientificNameClean
|
|
4392
4519
|
r3 = _nt_space
|
4393
4520
|
s1 << r3
|
4394
4521
|
if r3
|
4395
|
-
if has_terminal?('\
|
4522
|
+
if has_terminal?(@regexps[gr = '\A[,]'] ||= Regexp.new(gr), :regexp, index)
|
4396
4523
|
r5 = true
|
4397
4524
|
@index += 1
|
4398
4525
|
else
|
4526
|
+
terminal_parse_failure('[,]')
|
4399
4527
|
r5 = nil
|
4400
4528
|
end
|
4401
4529
|
if r5
|
@@ -4416,10 +4544,11 @@ module ScientificNameClean
|
|
4416
4544
|
end
|
4417
4545
|
s1 << r7
|
4418
4546
|
if r7
|
4419
|
-
if has_terminal?('\
|
4547
|
+
if has_terminal?(@regexps[gr = '\A[,]'] ||= Regexp.new(gr), :regexp, index)
|
4420
4548
|
r10 = true
|
4421
4549
|
@index += 1
|
4422
4550
|
else
|
4551
|
+
terminal_parse_failure('[,]')
|
4423
4552
|
r10 = nil
|
4424
4553
|
end
|
4425
4554
|
if r10
|
@@ -4432,9 +4561,9 @@ module ScientificNameClean
|
|
4432
4561
|
r11 = _nt_space
|
4433
4562
|
s1 << r11
|
4434
4563
|
if r11
|
4435
|
-
if has_terminal?("non", false, index)
|
4436
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
4437
|
-
@index +=
|
4564
|
+
if (match_len = has_terminal?("non", false, index))
|
4565
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4566
|
+
@index += match_len
|
4438
4567
|
else
|
4439
4568
|
terminal_parse_failure("non")
|
4440
4569
|
r12 = nil
|
@@ -4450,10 +4579,11 @@ module ScientificNameClean
|
|
4450
4579
|
r15 = _nt_space
|
4451
4580
|
s1 << r15
|
4452
4581
|
if r15
|
4453
|
-
if has_terminal?('\
|
4582
|
+
if has_terminal?(@regexps[gr = '\A[,]'] ||= Regexp.new(gr), :regexp, index)
|
4454
4583
|
r17 = true
|
4455
4584
|
@index += 1
|
4456
4585
|
else
|
4586
|
+
terminal_parse_failure('[,]')
|
4457
4587
|
r17 = nil
|
4458
4588
|
end
|
4459
4589
|
if r17
|
@@ -4490,6 +4620,7 @@ module ScientificNameClean
|
|
4490
4620
|
r1 = nil
|
4491
4621
|
end
|
4492
4622
|
if r1
|
4623
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
4493
4624
|
r0 = r1
|
4494
4625
|
else
|
4495
4626
|
i20, s20 = index, []
|
@@ -4499,10 +4630,11 @@ module ScientificNameClean
|
|
4499
4630
|
r22 = _nt_space
|
4500
4631
|
s20 << r22
|
4501
4632
|
if r22
|
4502
|
-
if has_terminal?('\
|
4633
|
+
if has_terminal?(@regexps[gr = '\A[,]'] ||= Regexp.new(gr), :regexp, index)
|
4503
4634
|
r24 = true
|
4504
4635
|
@index += 1
|
4505
4636
|
else
|
4637
|
+
terminal_parse_failure('[,]')
|
4506
4638
|
r24 = nil
|
4507
4639
|
end
|
4508
4640
|
if r24
|
@@ -4530,11 +4662,13 @@ module ScientificNameClean
|
|
4530
4662
|
r20 = nil
|
4531
4663
|
end
|
4532
4664
|
if r20
|
4665
|
+
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
4533
4666
|
r0 = r20
|
4534
4667
|
else
|
4535
4668
|
r27 = _nt_authors_names
|
4536
4669
|
r27.extend(SimpleAuthorship4)
|
4537
4670
|
if r27
|
4671
|
+
r27 = SyntaxNode.new(input, (index-1)...index) if r27 == true
|
4538
4672
|
r0 = r27
|
4539
4673
|
else
|
4540
4674
|
@index = i0
|
@@ -4589,7 +4723,7 @@ module ScientificNameClean
|
|
4589
4723
|
if node_cache[:authors_names].has_key?(index)
|
4590
4724
|
cached = node_cache[:authors_names][index]
|
4591
4725
|
if cached
|
4592
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4726
|
+
node_cache[:authors_names][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4593
4727
|
@index = cached.interval.end
|
4594
4728
|
end
|
4595
4729
|
return cached
|
@@ -4624,14 +4758,17 @@ module ScientificNameClean
|
|
4624
4758
|
r1 = nil
|
4625
4759
|
end
|
4626
4760
|
if r1
|
4761
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
4627
4762
|
r0 = r1
|
4628
4763
|
else
|
4629
4764
|
r7 = _nt_author_name
|
4630
4765
|
if r7
|
4766
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
4631
4767
|
r0 = r7
|
4632
4768
|
else
|
4633
4769
|
r8 = _nt_unknown_auth
|
4634
4770
|
if r8
|
4771
|
+
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
4635
4772
|
r0 = r8
|
4636
4773
|
else
|
4637
4774
|
@index = i0
|
@@ -4667,7 +4804,7 @@ module ScientificNameClean
|
|
4667
4804
|
if node_cache[:unknown_auth].has_key?(index)
|
4668
4805
|
cached = node_cache[:unknown_auth][index]
|
4669
4806
|
if cached
|
4670
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4807
|
+
node_cache[:unknown_auth][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4671
4808
|
@index = cached.interval.end
|
4672
4809
|
end
|
4673
4810
|
return cached
|
@@ -4675,84 +4812,92 @@ module ScientificNameClean
|
|
4675
4812
|
|
4676
4813
|
i0, s0 = index, []
|
4677
4814
|
i1 = index
|
4678
|
-
if has_terminal?("auct.", false, index)
|
4679
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
4680
|
-
@index +=
|
4815
|
+
if (match_len = has_terminal?("auct.", false, index))
|
4816
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4817
|
+
@index += match_len
|
4681
4818
|
else
|
4682
4819
|
terminal_parse_failure("auct.")
|
4683
4820
|
r2 = nil
|
4684
4821
|
end
|
4685
4822
|
if r2
|
4823
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
4686
4824
|
r1 = r2
|
4687
4825
|
else
|
4688
|
-
if has_terminal?("auct", false, index)
|
4689
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
4690
|
-
@index +=
|
4826
|
+
if (match_len = has_terminal?("auct", false, index))
|
4827
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4828
|
+
@index += match_len
|
4691
4829
|
else
|
4692
4830
|
terminal_parse_failure("auct")
|
4693
4831
|
r3 = nil
|
4694
4832
|
end
|
4695
4833
|
if r3
|
4834
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
4696
4835
|
r1 = r3
|
4697
4836
|
else
|
4698
|
-
if has_terminal?("hort.", false, index)
|
4699
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
4700
|
-
@index +=
|
4837
|
+
if (match_len = has_terminal?("hort.", false, index))
|
4838
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4839
|
+
@index += match_len
|
4701
4840
|
else
|
4702
4841
|
terminal_parse_failure("hort.")
|
4703
4842
|
r4 = nil
|
4704
4843
|
end
|
4705
4844
|
if r4
|
4845
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
4706
4846
|
r1 = r4
|
4707
4847
|
else
|
4708
|
-
if has_terminal?("hort", false, index)
|
4709
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
4710
|
-
@index +=
|
4848
|
+
if (match_len = has_terminal?("hort", false, index))
|
4849
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4850
|
+
@index += match_len
|
4711
4851
|
else
|
4712
4852
|
terminal_parse_failure("hort")
|
4713
4853
|
r5 = nil
|
4714
4854
|
end
|
4715
4855
|
if r5
|
4856
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
4716
4857
|
r1 = r5
|
4717
4858
|
else
|
4718
|
-
if has_terminal?("anon.", false, index)
|
4719
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
4720
|
-
@index +=
|
4859
|
+
if (match_len = has_terminal?("anon.", false, index))
|
4860
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4861
|
+
@index += match_len
|
4721
4862
|
else
|
4722
4863
|
terminal_parse_failure("anon.")
|
4723
4864
|
r6 = nil
|
4724
4865
|
end
|
4725
4866
|
if r6
|
4867
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
4726
4868
|
r1 = r6
|
4727
4869
|
else
|
4728
|
-
if has_terminal?("anon", false, index)
|
4729
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
4730
|
-
@index +=
|
4870
|
+
if (match_len = has_terminal?("anon", false, index))
|
4871
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4872
|
+
@index += match_len
|
4731
4873
|
else
|
4732
4874
|
terminal_parse_failure("anon")
|
4733
4875
|
r7 = nil
|
4734
4876
|
end
|
4735
4877
|
if r7
|
4878
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
4736
4879
|
r1 = r7
|
4737
4880
|
else
|
4738
|
-
if has_terminal?("ht.", false, index)
|
4739
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
4740
|
-
@index +=
|
4881
|
+
if (match_len = has_terminal?("ht.", false, index))
|
4882
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4883
|
+
@index += match_len
|
4741
4884
|
else
|
4742
4885
|
terminal_parse_failure("ht.")
|
4743
4886
|
r8 = nil
|
4744
4887
|
end
|
4745
4888
|
if r8
|
4889
|
+
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
4746
4890
|
r1 = r8
|
4747
4891
|
else
|
4748
|
-
if has_terminal?("ht", false, index)
|
4749
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
4750
|
-
@index +=
|
4892
|
+
if (match_len = has_terminal?("ht", false, index))
|
4893
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4894
|
+
@index += match_len
|
4751
4895
|
else
|
4752
4896
|
terminal_parse_failure("ht")
|
4753
4897
|
r9 = nil
|
4754
4898
|
end
|
4755
4899
|
if r9
|
4900
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
4756
4901
|
r1 = r9
|
4757
4902
|
else
|
4758
4903
|
@index = i1
|
@@ -4799,7 +4944,7 @@ module ScientificNameClean
|
|
4799
4944
|
if node_cache[:ex_sep].has_key?(index)
|
4800
4945
|
cached = node_cache[:ex_sep][index]
|
4801
4946
|
if cached
|
4802
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4947
|
+
node_cache[:ex_sep][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4803
4948
|
@index = cached.interval.end
|
4804
4949
|
end
|
4805
4950
|
return cached
|
@@ -4807,24 +4952,26 @@ module ScientificNameClean
|
|
4807
4952
|
|
4808
4953
|
i0, s0 = index, []
|
4809
4954
|
i1 = index
|
4810
|
-
if has_terminal?("ex", false, index)
|
4811
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
4812
|
-
@index +=
|
4955
|
+
if (match_len = has_terminal?("ex", false, index))
|
4956
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4957
|
+
@index += match_len
|
4813
4958
|
else
|
4814
4959
|
terminal_parse_failure("ex")
|
4815
4960
|
r2 = nil
|
4816
4961
|
end
|
4817
4962
|
if r2
|
4963
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
4818
4964
|
r1 = r2
|
4819
4965
|
else
|
4820
|
-
if has_terminal?("in", false, index)
|
4821
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
4822
|
-
@index +=
|
4966
|
+
if (match_len = has_terminal?("in", false, index))
|
4967
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
4968
|
+
@index += match_len
|
4823
4969
|
else
|
4824
4970
|
terminal_parse_failure("in")
|
4825
4971
|
r3 = nil
|
4826
4972
|
end
|
4827
4973
|
if r3
|
4974
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
4828
4975
|
r1 = r3
|
4829
4976
|
else
|
4830
4977
|
@index = i1
|
@@ -4834,10 +4981,11 @@ module ScientificNameClean
|
|
4834
4981
|
s0 << r1
|
4835
4982
|
if r1
|
4836
4983
|
i4 = index
|
4837
|
-
if has_terminal?('\
|
4984
|
+
if has_terminal?(@regexps[gr = '\A[\\s]'] ||= Regexp.new(gr), :regexp, index)
|
4838
4985
|
r5 = true
|
4839
4986
|
@index += 1
|
4840
4987
|
else
|
4988
|
+
terminal_parse_failure('[\\s]')
|
4841
4989
|
r5 = nil
|
4842
4990
|
end
|
4843
4991
|
if r5
|
@@ -4882,65 +5030,70 @@ module ScientificNameClean
|
|
4882
5030
|
if node_cache[:author_separator].has_key?(index)
|
4883
5031
|
cached = node_cache[:author_separator][index]
|
4884
5032
|
if cached
|
4885
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5033
|
+
node_cache[:author_separator][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4886
5034
|
@index = cached.interval.end
|
4887
5035
|
end
|
4888
5036
|
return cached
|
4889
5037
|
end
|
4890
5038
|
|
4891
5039
|
i0 = index
|
4892
|
-
if has_terminal?("&", false, index)
|
4893
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
4894
|
-
@index +=
|
5040
|
+
if (match_len = has_terminal?("&", false, index))
|
5041
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5042
|
+
@index += match_len
|
4895
5043
|
else
|
4896
5044
|
terminal_parse_failure("&")
|
4897
5045
|
r1 = nil
|
4898
5046
|
end
|
4899
5047
|
if r1
|
5048
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
4900
5049
|
r0 = r1
|
4901
5050
|
r0.extend(AuthorSeparator0)
|
4902
5051
|
else
|
4903
|
-
if has_terminal?("&", false, index)
|
4904
|
-
r2 =
|
4905
|
-
@index +=
|
5052
|
+
if (match_len = has_terminal?("&", false, index))
|
5053
|
+
r2 = true
|
5054
|
+
@index += match_len
|
4906
5055
|
else
|
4907
5056
|
terminal_parse_failure("&")
|
4908
5057
|
r2 = nil
|
4909
5058
|
end
|
4910
5059
|
if r2
|
5060
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
4911
5061
|
r0 = r2
|
4912
5062
|
r0.extend(AuthorSeparator0)
|
4913
5063
|
else
|
4914
|
-
if has_terminal?(",", false, index)
|
4915
|
-
r3 =
|
4916
|
-
@index +=
|
5064
|
+
if (match_len = has_terminal?(",", false, index))
|
5065
|
+
r3 = true
|
5066
|
+
@index += match_len
|
4917
5067
|
else
|
4918
5068
|
terminal_parse_failure(",")
|
4919
5069
|
r3 = nil
|
4920
5070
|
end
|
4921
5071
|
if r3
|
5072
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
4922
5073
|
r0 = r3
|
4923
5074
|
r0.extend(AuthorSeparator0)
|
4924
5075
|
else
|
4925
|
-
if has_terminal?("and", false, index)
|
4926
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
4927
|
-
@index +=
|
5076
|
+
if (match_len = has_terminal?("and", false, index))
|
5077
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5078
|
+
@index += match_len
|
4928
5079
|
else
|
4929
5080
|
terminal_parse_failure("and")
|
4930
5081
|
r4 = nil
|
4931
5082
|
end
|
4932
5083
|
if r4
|
5084
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
4933
5085
|
r0 = r4
|
4934
5086
|
r0.extend(AuthorSeparator0)
|
4935
5087
|
else
|
4936
|
-
if has_terminal?("et", false, index)
|
4937
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
4938
|
-
@index +=
|
5088
|
+
if (match_len = has_terminal?("et", false, index))
|
5089
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5090
|
+
@index += match_len
|
4939
5091
|
else
|
4940
5092
|
terminal_parse_failure("et")
|
4941
5093
|
r5 = nil
|
4942
5094
|
end
|
4943
5095
|
if r5
|
5096
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
4944
5097
|
r0 = r5
|
4945
5098
|
r0.extend(AuthorSeparator0)
|
4946
5099
|
else
|
@@ -4999,7 +5152,7 @@ module ScientificNameClean
|
|
4999
5152
|
if node_cache[:author_name].has_key?(index)
|
5000
5153
|
cached = node_cache[:author_name][index]
|
5001
5154
|
if cached
|
5002
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5155
|
+
node_cache[:author_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5003
5156
|
@index = cached.interval.end
|
5004
5157
|
end
|
5005
5158
|
return cached
|
@@ -5045,10 +5198,12 @@ module ScientificNameClean
|
|
5045
5198
|
r1 = nil
|
5046
5199
|
end
|
5047
5200
|
if r1
|
5201
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
5048
5202
|
r0 = r1
|
5049
5203
|
else
|
5050
5204
|
r9 = _nt_author_name_without_postfix
|
5051
5205
|
if r9
|
5206
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
5052
5207
|
r0 = r9
|
5053
5208
|
else
|
5054
5209
|
@index = i0
|
@@ -5126,7 +5281,7 @@ module ScientificNameClean
|
|
5126
5281
|
if node_cache[:author_name_without_postfix].has_key?(index)
|
5127
5282
|
cached = node_cache[:author_name_without_postfix][index]
|
5128
5283
|
if cached
|
5129
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5284
|
+
node_cache[:author_name_without_postfix][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5130
5285
|
@index = cached.interval.end
|
5131
5286
|
end
|
5132
5287
|
return cached
|
@@ -5157,6 +5312,7 @@ module ScientificNameClean
|
|
5157
5312
|
r1 = nil
|
5158
5313
|
end
|
5159
5314
|
if r1
|
5315
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
5160
5316
|
r0 = r1
|
5161
5317
|
else
|
5162
5318
|
i6, s6 = index, []
|
@@ -5179,10 +5335,12 @@ module ScientificNameClean
|
|
5179
5335
|
r6 = nil
|
5180
5336
|
end
|
5181
5337
|
if r6
|
5338
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
5182
5339
|
r0 = r6
|
5183
5340
|
else
|
5184
5341
|
r10 = _nt_author_word
|
5185
5342
|
if r10
|
5343
|
+
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
5186
5344
|
r0 = r10
|
5187
5345
|
else
|
5188
5346
|
@index = i0
|
@@ -5266,66 +5424,71 @@ module ScientificNameClean
|
|
5266
5424
|
if node_cache[:author_word].has_key?(index)
|
5267
5425
|
cached = node_cache[:author_word][index]
|
5268
5426
|
if cached
|
5269
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5427
|
+
node_cache[:author_word][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5270
5428
|
@index = cached.interval.end
|
5271
5429
|
end
|
5272
5430
|
return cached
|
5273
5431
|
end
|
5274
5432
|
|
5275
5433
|
i0 = index
|
5276
|
-
if has_terminal?("A S. Xu", false, index)
|
5277
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
5434
|
+
if (match_len = has_terminal?("A S. Xu", false, index))
|
5435
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5278
5436
|
r1.extend(AuthorWord0)
|
5279
|
-
@index +=
|
5437
|
+
@index += match_len
|
5280
5438
|
else
|
5281
5439
|
terminal_parse_failure("A S. Xu")
|
5282
5440
|
r1 = nil
|
5283
5441
|
end
|
5284
5442
|
if r1
|
5443
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
5285
5444
|
r0 = r1
|
5286
5445
|
else
|
5287
5446
|
i2 = index
|
5288
|
-
if has_terminal?("arg.", false, index)
|
5289
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
5290
|
-
@index +=
|
5447
|
+
if (match_len = has_terminal?("arg.", false, index))
|
5448
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5449
|
+
@index += match_len
|
5291
5450
|
else
|
5292
5451
|
terminal_parse_failure("arg.")
|
5293
5452
|
r3 = nil
|
5294
5453
|
end
|
5295
5454
|
if r3
|
5455
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
5296
5456
|
r2 = r3
|
5297
5457
|
r2.extend(AuthorWord1)
|
5298
5458
|
else
|
5299
|
-
if has_terminal?("et al.\{\?\}", false, index)
|
5300
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
5301
|
-
@index +=
|
5459
|
+
if (match_len = has_terminal?("et al.\{\?\}", false, index))
|
5460
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5461
|
+
@index += match_len
|
5302
5462
|
else
|
5303
5463
|
terminal_parse_failure("et al.\{\?\}")
|
5304
5464
|
r4 = nil
|
5305
5465
|
end
|
5306
5466
|
if r4
|
5467
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
5307
5468
|
r2 = r4
|
5308
5469
|
r2.extend(AuthorWord1)
|
5309
5470
|
else
|
5310
|
-
if has_terminal?("et al.", false, index)
|
5311
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
5312
|
-
@index +=
|
5471
|
+
if (match_len = has_terminal?("et al.", false, index))
|
5472
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5473
|
+
@index += match_len
|
5313
5474
|
else
|
5314
5475
|
terminal_parse_failure("et al.")
|
5315
5476
|
r5 = nil
|
5316
5477
|
end
|
5317
5478
|
if r5
|
5479
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
5318
5480
|
r2 = r5
|
5319
5481
|
r2.extend(AuthorWord1)
|
5320
5482
|
else
|
5321
|
-
if has_terminal?("et al", false, index)
|
5322
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
5323
|
-
@index +=
|
5483
|
+
if (match_len = has_terminal?("et al", false, index))
|
5484
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5485
|
+
@index += match_len
|
5324
5486
|
else
|
5325
5487
|
terminal_parse_failure("et al")
|
5326
5488
|
r6 = nil
|
5327
5489
|
end
|
5328
5490
|
if r6
|
5491
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
5329
5492
|
r2 = r6
|
5330
5493
|
r2.extend(AuthorWord1)
|
5331
5494
|
else
|
@@ -5336,146 +5499,163 @@ module ScientificNameClean
|
|
5336
5499
|
end
|
5337
5500
|
end
|
5338
5501
|
if r2
|
5502
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
5339
5503
|
r0 = r2
|
5340
5504
|
else
|
5341
5505
|
i7, s7 = index, []
|
5342
5506
|
i8 = index
|
5343
|
-
if has_terminal?("Å", false, index)
|
5344
|
-
r9 =
|
5345
|
-
@index +=
|
5507
|
+
if (match_len = has_terminal?("Å", false, index))
|
5508
|
+
r9 = true
|
5509
|
+
@index += match_len
|
5346
5510
|
else
|
5347
5511
|
terminal_parse_failure("Å")
|
5348
5512
|
r9 = nil
|
5349
5513
|
end
|
5350
5514
|
if r9
|
5515
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
5351
5516
|
r8 = r9
|
5352
5517
|
else
|
5353
|
-
if has_terminal?("Ö", false, index)
|
5354
|
-
r10 =
|
5355
|
-
@index +=
|
5518
|
+
if (match_len = has_terminal?("Ö", false, index))
|
5519
|
+
r10 = true
|
5520
|
+
@index += match_len
|
5356
5521
|
else
|
5357
5522
|
terminal_parse_failure("Ö")
|
5358
5523
|
r10 = nil
|
5359
5524
|
end
|
5360
5525
|
if r10
|
5526
|
+
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
5361
5527
|
r8 = r10
|
5362
5528
|
else
|
5363
|
-
if has_terminal?("Á", false, index)
|
5364
|
-
r11 =
|
5365
|
-
@index +=
|
5529
|
+
if (match_len = has_terminal?("Á", false, index))
|
5530
|
+
r11 = true
|
5531
|
+
@index += match_len
|
5366
5532
|
else
|
5367
5533
|
terminal_parse_failure("Á")
|
5368
5534
|
r11 = nil
|
5369
5535
|
end
|
5370
5536
|
if r11
|
5537
|
+
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
5371
5538
|
r8 = r11
|
5372
5539
|
else
|
5373
|
-
if has_terminal?("Ø", false, index)
|
5374
|
-
r12 =
|
5375
|
-
@index +=
|
5540
|
+
if (match_len = has_terminal?("Ø", false, index))
|
5541
|
+
r12 = true
|
5542
|
+
@index += match_len
|
5376
5543
|
else
|
5377
5544
|
terminal_parse_failure("Ø")
|
5378
5545
|
r12 = nil
|
5379
5546
|
end
|
5380
5547
|
if r12
|
5548
|
+
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
5381
5549
|
r8 = r12
|
5382
5550
|
else
|
5383
|
-
if has_terminal?("Ô", false, index)
|
5384
|
-
r13 =
|
5385
|
-
@index +=
|
5551
|
+
if (match_len = has_terminal?("Ô", false, index))
|
5552
|
+
r13 = true
|
5553
|
+
@index += match_len
|
5386
5554
|
else
|
5387
5555
|
terminal_parse_failure("Ô")
|
5388
5556
|
r13 = nil
|
5389
5557
|
end
|
5390
5558
|
if r13
|
5559
|
+
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
5391
5560
|
r8 = r13
|
5392
5561
|
else
|
5393
|
-
if has_terminal?("Š", false, index)
|
5394
|
-
r14 =
|
5395
|
-
@index +=
|
5562
|
+
if (match_len = has_terminal?("Š", false, index))
|
5563
|
+
r14 = true
|
5564
|
+
@index += match_len
|
5396
5565
|
else
|
5397
5566
|
terminal_parse_failure("Š")
|
5398
5567
|
r14 = nil
|
5399
5568
|
end
|
5400
5569
|
if r14
|
5570
|
+
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
5401
5571
|
r8 = r14
|
5402
5572
|
else
|
5403
|
-
if has_terminal?("Ś", false, index)
|
5404
|
-
r15 =
|
5405
|
-
@index +=
|
5573
|
+
if (match_len = has_terminal?("Ś", false, index))
|
5574
|
+
r15 = true
|
5575
|
+
@index += match_len
|
5406
5576
|
else
|
5407
5577
|
terminal_parse_failure("Ś")
|
5408
5578
|
r15 = nil
|
5409
5579
|
end
|
5410
5580
|
if r15
|
5581
|
+
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
5411
5582
|
r8 = r15
|
5412
5583
|
else
|
5413
|
-
if has_terminal?("Č", false, index)
|
5414
|
-
r16 =
|
5415
|
-
@index +=
|
5584
|
+
if (match_len = has_terminal?("Č", false, index))
|
5585
|
+
r16 = true
|
5586
|
+
@index += match_len
|
5416
5587
|
else
|
5417
5588
|
terminal_parse_failure("Č")
|
5418
5589
|
r16 = nil
|
5419
5590
|
end
|
5420
5591
|
if r16
|
5592
|
+
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
5421
5593
|
r8 = r16
|
5422
5594
|
else
|
5423
|
-
if has_terminal?("Ķ", false, index)
|
5424
|
-
r17 =
|
5425
|
-
@index +=
|
5595
|
+
if (match_len = has_terminal?("Ķ", false, index))
|
5596
|
+
r17 = true
|
5597
|
+
@index += match_len
|
5426
5598
|
else
|
5427
5599
|
terminal_parse_failure("Ķ")
|
5428
5600
|
r17 = nil
|
5429
5601
|
end
|
5430
5602
|
if r17
|
5603
|
+
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
5431
5604
|
r8 = r17
|
5432
5605
|
else
|
5433
|
-
if has_terminal?("Ł", false, index)
|
5434
|
-
r18 =
|
5435
|
-
@index +=
|
5606
|
+
if (match_len = has_terminal?("Ł", false, index))
|
5607
|
+
r18 = true
|
5608
|
+
@index += match_len
|
5436
5609
|
else
|
5437
5610
|
terminal_parse_failure("Ł")
|
5438
5611
|
r18 = nil
|
5439
5612
|
end
|
5440
5613
|
if r18
|
5614
|
+
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
5441
5615
|
r8 = r18
|
5442
5616
|
else
|
5443
|
-
if has_terminal?("É", false, index)
|
5444
|
-
r19 =
|
5445
|
-
@index +=
|
5617
|
+
if (match_len = has_terminal?("É", false, index))
|
5618
|
+
r19 = true
|
5619
|
+
@index += match_len
|
5446
5620
|
else
|
5447
5621
|
terminal_parse_failure("É")
|
5448
5622
|
r19 = nil
|
5449
5623
|
end
|
5450
5624
|
if r19
|
5625
|
+
r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true
|
5451
5626
|
r8 = r19
|
5452
5627
|
else
|
5453
|
-
if has_terminal?("Ž", false, index)
|
5454
|
-
r20 =
|
5455
|
-
@index +=
|
5628
|
+
if (match_len = has_terminal?("Ž", false, index))
|
5629
|
+
r20 = true
|
5630
|
+
@index += match_len
|
5456
5631
|
else
|
5457
5632
|
terminal_parse_failure("Ž")
|
5458
5633
|
r20 = nil
|
5459
5634
|
end
|
5460
5635
|
if r20
|
5636
|
+
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
5461
5637
|
r8 = r20
|
5462
5638
|
else
|
5463
|
-
if has_terminal?('\
|
5639
|
+
if has_terminal?(@regexps[gr = '\A[A-W]'] ||= Regexp.new(gr), :regexp, index)
|
5464
5640
|
r21 = true
|
5465
5641
|
@index += 1
|
5466
5642
|
else
|
5643
|
+
terminal_parse_failure('[A-W]')
|
5467
5644
|
r21 = nil
|
5468
5645
|
end
|
5469
5646
|
if r21
|
5647
|
+
r21 = SyntaxNode.new(input, (index-1)...index) if r21 == true
|
5470
5648
|
r8 = r21
|
5471
5649
|
else
|
5472
|
-
if has_terminal?('\
|
5650
|
+
if has_terminal?(@regexps[gr = '\A[Y-Z]'] ||= Regexp.new(gr), :regexp, index)
|
5473
5651
|
r22 = true
|
5474
5652
|
@index += 1
|
5475
5653
|
else
|
5654
|
+
terminal_parse_failure('[Y-Z]')
|
5476
5655
|
r22 = nil
|
5477
5656
|
end
|
5478
5657
|
if r22
|
5658
|
+
r22 = SyntaxNode.new(input, (index-1)...index) if r22 == true
|
5479
5659
|
r8 = r22
|
5480
5660
|
else
|
5481
5661
|
@index = i8
|
@@ -5498,10 +5678,11 @@ module ScientificNameClean
|
|
5498
5678
|
if r8
|
5499
5679
|
s23, i23 = [], index
|
5500
5680
|
loop do
|
5501
|
-
if has_terminal?('\
|
5681
|
+
if has_terminal?(@regexps[gr = '\A[^0-9\\[\\]\\(\\)\\s&,]'] ||= Regexp.new(gr), :regexp, index)
|
5502
5682
|
r24 = true
|
5503
5683
|
@index += 1
|
5504
5684
|
else
|
5685
|
+
terminal_parse_failure('[^0-9\\[\\]\\(\\)\\s&,]')
|
5505
5686
|
r24 = nil
|
5506
5687
|
end
|
5507
5688
|
if r24
|
@@ -5522,12 +5703,13 @@ module ScientificNameClean
|
|
5522
5703
|
r7 = nil
|
5523
5704
|
end
|
5524
5705
|
if r7
|
5706
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
5525
5707
|
r0 = r7
|
5526
5708
|
else
|
5527
5709
|
i25, s25 = index, []
|
5528
|
-
if has_terminal?("X", false, index)
|
5529
|
-
r26 =
|
5530
|
-
@index +=
|
5710
|
+
if (match_len = has_terminal?("X", false, index))
|
5711
|
+
r26 = true
|
5712
|
+
@index += match_len
|
5531
5713
|
else
|
5532
5714
|
terminal_parse_failure("X")
|
5533
5715
|
r26 = nil
|
@@ -5536,10 +5718,11 @@ module ScientificNameClean
|
|
5536
5718
|
if r26
|
5537
5719
|
s27, i27 = [], index
|
5538
5720
|
loop do
|
5539
|
-
if has_terminal?('\
|
5721
|
+
if has_terminal?(@regexps[gr = '\A[^0-9\\[\\]\\(\\)\\s&,]'] ||= Regexp.new(gr), :regexp, index)
|
5540
5722
|
r28 = true
|
5541
5723
|
@index += 1
|
5542
5724
|
else
|
5725
|
+
terminal_parse_failure('[^0-9\\[\\]\\(\\)\\s&,]')
|
5543
5726
|
r28 = nil
|
5544
5727
|
end
|
5545
5728
|
if r28
|
@@ -5565,10 +5748,12 @@ module ScientificNameClean
|
|
5565
5748
|
r25 = nil
|
5566
5749
|
end
|
5567
5750
|
if r25
|
5751
|
+
r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
|
5568
5752
|
r0 = r25
|
5569
5753
|
else
|
5570
5754
|
r29 = _nt_author_prefix_word
|
5571
5755
|
if r29
|
5756
|
+
r29 = SyntaxNode.new(input, (index-1)...index) if r29 == true
|
5572
5757
|
r0 = r29
|
5573
5758
|
else
|
5574
5759
|
@index = i0
|
@@ -5607,7 +5792,7 @@ module ScientificNameClean
|
|
5607
5792
|
if node_cache[:author_prefix_word].has_key?(index)
|
5608
5793
|
cached = node_cache[:author_prefix_word][index]
|
5609
5794
|
if cached
|
5610
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5795
|
+
node_cache[:author_prefix_word][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5611
5796
|
@index = cached.interval.end
|
5612
5797
|
end
|
5613
5798
|
return cached
|
@@ -5618,164 +5803,180 @@ module ScientificNameClean
|
|
5618
5803
|
s0 << r1
|
5619
5804
|
if r1
|
5620
5805
|
i2 = index
|
5621
|
-
if has_terminal?("ab", false, index)
|
5622
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
5623
|
-
@index +=
|
5806
|
+
if (match_len = has_terminal?("ab", false, index))
|
5807
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5808
|
+
@index += match_len
|
5624
5809
|
else
|
5625
5810
|
terminal_parse_failure("ab")
|
5626
5811
|
r3 = nil
|
5627
5812
|
end
|
5628
5813
|
if r3
|
5814
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
5629
5815
|
r2 = r3
|
5630
5816
|
else
|
5631
|
-
if has_terminal?("af", false, index)
|
5632
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
5633
|
-
@index +=
|
5817
|
+
if (match_len = has_terminal?("af", false, index))
|
5818
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5819
|
+
@index += match_len
|
5634
5820
|
else
|
5635
5821
|
terminal_parse_failure("af")
|
5636
5822
|
r4 = nil
|
5637
5823
|
end
|
5638
5824
|
if r4
|
5825
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
5639
5826
|
r2 = r4
|
5640
5827
|
else
|
5641
|
-
if has_terminal?("bis", false, index)
|
5642
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
5643
|
-
@index +=
|
5828
|
+
if (match_len = has_terminal?("bis", false, index))
|
5829
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5830
|
+
@index += match_len
|
5644
5831
|
else
|
5645
5832
|
terminal_parse_failure("bis")
|
5646
5833
|
r5 = nil
|
5647
5834
|
end
|
5648
5835
|
if r5
|
5836
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
5649
5837
|
r2 = r5
|
5650
5838
|
else
|
5651
|
-
if has_terminal?("da", false, index)
|
5652
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
5653
|
-
@index +=
|
5839
|
+
if (match_len = has_terminal?("da", false, index))
|
5840
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5841
|
+
@index += match_len
|
5654
5842
|
else
|
5655
5843
|
terminal_parse_failure("da")
|
5656
5844
|
r6 = nil
|
5657
5845
|
end
|
5658
5846
|
if r6
|
5847
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
5659
5848
|
r2 = r6
|
5660
5849
|
else
|
5661
|
-
if has_terminal?("der", false, index)
|
5662
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
5663
|
-
@index +=
|
5850
|
+
if (match_len = has_terminal?("der", false, index))
|
5851
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5852
|
+
@index += match_len
|
5664
5853
|
else
|
5665
5854
|
terminal_parse_failure("der")
|
5666
5855
|
r7 = nil
|
5667
5856
|
end
|
5668
5857
|
if r7
|
5858
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
5669
5859
|
r2 = r7
|
5670
5860
|
else
|
5671
|
-
if has_terminal?("des", false, index)
|
5672
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
5673
|
-
@index +=
|
5861
|
+
if (match_len = has_terminal?("des", false, index))
|
5862
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5863
|
+
@index += match_len
|
5674
5864
|
else
|
5675
5865
|
terminal_parse_failure("des")
|
5676
5866
|
r8 = nil
|
5677
5867
|
end
|
5678
5868
|
if r8
|
5869
|
+
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
5679
5870
|
r2 = r8
|
5680
5871
|
else
|
5681
|
-
if has_terminal?("den", false, index)
|
5682
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
5683
|
-
@index +=
|
5872
|
+
if (match_len = has_terminal?("den", false, index))
|
5873
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5874
|
+
@index += match_len
|
5684
5875
|
else
|
5685
5876
|
terminal_parse_failure("den")
|
5686
5877
|
r9 = nil
|
5687
5878
|
end
|
5688
5879
|
if r9
|
5880
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
5689
5881
|
r2 = r9
|
5690
5882
|
else
|
5691
|
-
if has_terminal?("della", false, index)
|
5692
|
-
r10 = instantiate_node(SyntaxNode,input, index...(index +
|
5693
|
-
@index +=
|
5883
|
+
if (match_len = has_terminal?("della", false, index))
|
5884
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5885
|
+
@index += match_len
|
5694
5886
|
else
|
5695
5887
|
terminal_parse_failure("della")
|
5696
5888
|
r10 = nil
|
5697
5889
|
end
|
5698
5890
|
if r10
|
5891
|
+
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
5699
5892
|
r2 = r10
|
5700
5893
|
else
|
5701
|
-
if has_terminal?("dela", false, index)
|
5702
|
-
r11 = instantiate_node(SyntaxNode,input, index...(index +
|
5703
|
-
@index +=
|
5894
|
+
if (match_len = has_terminal?("dela", false, index))
|
5895
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5896
|
+
@index += match_len
|
5704
5897
|
else
|
5705
5898
|
terminal_parse_failure("dela")
|
5706
5899
|
r11 = nil
|
5707
5900
|
end
|
5708
5901
|
if r11
|
5902
|
+
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
5709
5903
|
r2 = r11
|
5710
5904
|
else
|
5711
|
-
if has_terminal?("de", false, index)
|
5712
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
5713
|
-
@index +=
|
5905
|
+
if (match_len = has_terminal?("de", false, index))
|
5906
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5907
|
+
@index += match_len
|
5714
5908
|
else
|
5715
5909
|
terminal_parse_failure("de")
|
5716
5910
|
r12 = nil
|
5717
5911
|
end
|
5718
5912
|
if r12
|
5913
|
+
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
5719
5914
|
r2 = r12
|
5720
5915
|
else
|
5721
|
-
if has_terminal?("di", false, index)
|
5722
|
-
r13 = instantiate_node(SyntaxNode,input, index...(index +
|
5723
|
-
@index +=
|
5916
|
+
if (match_len = has_terminal?("di", false, index))
|
5917
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5918
|
+
@index += match_len
|
5724
5919
|
else
|
5725
5920
|
terminal_parse_failure("di")
|
5726
5921
|
r13 = nil
|
5727
5922
|
end
|
5728
5923
|
if r13
|
5924
|
+
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
5729
5925
|
r2 = r13
|
5730
5926
|
else
|
5731
|
-
if has_terminal?("du", false, index)
|
5732
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
5733
|
-
@index +=
|
5927
|
+
if (match_len = has_terminal?("du", false, index))
|
5928
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5929
|
+
@index += match_len
|
5734
5930
|
else
|
5735
5931
|
terminal_parse_failure("du")
|
5736
5932
|
r14 = nil
|
5737
5933
|
end
|
5738
5934
|
if r14
|
5935
|
+
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
5739
5936
|
r2 = r14
|
5740
5937
|
else
|
5741
|
-
if has_terminal?("la", false, index)
|
5742
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
5743
|
-
@index +=
|
5938
|
+
if (match_len = has_terminal?("la", false, index))
|
5939
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5940
|
+
@index += match_len
|
5744
5941
|
else
|
5745
5942
|
terminal_parse_failure("la")
|
5746
5943
|
r15 = nil
|
5747
5944
|
end
|
5748
5945
|
if r15
|
5946
|
+
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
5749
5947
|
r2 = r15
|
5750
5948
|
else
|
5751
|
-
if has_terminal?("ter", false, index)
|
5752
|
-
r16 = instantiate_node(SyntaxNode,input, index...(index +
|
5753
|
-
@index +=
|
5949
|
+
if (match_len = has_terminal?("ter", false, index))
|
5950
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5951
|
+
@index += match_len
|
5754
5952
|
else
|
5755
5953
|
terminal_parse_failure("ter")
|
5756
5954
|
r16 = nil
|
5757
5955
|
end
|
5758
5956
|
if r16
|
5957
|
+
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
5759
5958
|
r2 = r16
|
5760
5959
|
else
|
5761
|
-
if has_terminal?("van", false, index)
|
5762
|
-
r17 = instantiate_node(SyntaxNode,input, index...(index +
|
5763
|
-
@index +=
|
5960
|
+
if (match_len = has_terminal?("van", false, index))
|
5961
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5962
|
+
@index += match_len
|
5764
5963
|
else
|
5765
5964
|
terminal_parse_failure("van")
|
5766
5965
|
r17 = nil
|
5767
5966
|
end
|
5768
5967
|
if r17
|
5968
|
+
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
5769
5969
|
r2 = r17
|
5770
5970
|
else
|
5771
|
-
if has_terminal?("von", false, index)
|
5772
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
5773
|
-
@index +=
|
5971
|
+
if (match_len = has_terminal?("von", false, index))
|
5972
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
5973
|
+
@index += match_len
|
5774
5974
|
else
|
5775
5975
|
terminal_parse_failure("von")
|
5776
5976
|
r18 = nil
|
5777
5977
|
end
|
5778
5978
|
if r18
|
5979
|
+
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
5779
5980
|
r2 = r18
|
5780
5981
|
else
|
5781
5982
|
@index = i2
|
@@ -5838,32 +6039,34 @@ module ScientificNameClean
|
|
5838
6039
|
if node_cache[:author_postfix_word].has_key?(index)
|
5839
6040
|
cached = node_cache[:author_postfix_word][index]
|
5840
6041
|
if cached
|
5841
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6042
|
+
node_cache[:author_postfix_word][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5842
6043
|
@index = cached.interval.end
|
5843
6044
|
end
|
5844
6045
|
return cached
|
5845
6046
|
end
|
5846
6047
|
|
5847
6048
|
i0 = index
|
5848
|
-
if has_terminal?("f.", false, index)
|
5849
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
5850
|
-
@index +=
|
6049
|
+
if (match_len = has_terminal?("f.", false, index))
|
6050
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6051
|
+
@index += match_len
|
5851
6052
|
else
|
5852
6053
|
terminal_parse_failure("f.")
|
5853
6054
|
r1 = nil
|
5854
6055
|
end
|
5855
6056
|
if r1
|
6057
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
5856
6058
|
r0 = r1
|
5857
6059
|
r0.extend(AuthorPostfixWord0)
|
5858
6060
|
else
|
5859
|
-
if has_terminal?("filius", false, index)
|
5860
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
5861
|
-
@index +=
|
6061
|
+
if (match_len = has_terminal?("filius", false, index))
|
6062
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6063
|
+
@index += match_len
|
5862
6064
|
else
|
5863
6065
|
terminal_parse_failure("filius")
|
5864
6066
|
r2 = nil
|
5865
6067
|
end
|
5866
6068
|
if r2
|
6069
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
5867
6070
|
r0 = r2
|
5868
6071
|
r0.extend(AuthorPostfixWord0)
|
5869
6072
|
else
|
@@ -5898,7 +6101,7 @@ module ScientificNameClean
|
|
5898
6101
|
if node_cache[:cap_latin_word_pair].has_key?(index)
|
5899
6102
|
cached = node_cache[:cap_latin_word_pair][index]
|
5900
6103
|
if cached
|
5901
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6104
|
+
node_cache[:cap_latin_word_pair][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5902
6105
|
@index = cached.interval.end
|
5903
6106
|
end
|
5904
6107
|
return cached
|
@@ -5908,9 +6111,9 @@ module ScientificNameClean
|
|
5908
6111
|
r1 = _nt_cap_latin_word
|
5909
6112
|
s0 << r1
|
5910
6113
|
if r1
|
5911
|
-
if has_terminal?("-", false, index)
|
5912
|
-
r2 =
|
5913
|
-
@index +=
|
6114
|
+
if (match_len = has_terminal?("-", false, index))
|
6115
|
+
r2 = true
|
6116
|
+
@index += match_len
|
5914
6117
|
else
|
5915
6118
|
terminal_parse_failure("-")
|
5916
6119
|
r2 = nil
|
@@ -5995,7 +6198,7 @@ module ScientificNameClean
|
|
5995
6198
|
if node_cache[:cap_latin_word].has_key?(index)
|
5996
6199
|
cached = node_cache[:cap_latin_word][index]
|
5997
6200
|
if cached
|
5998
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6201
|
+
node_cache[:cap_latin_word][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5999
6202
|
@index = cached.interval.end
|
6000
6203
|
end
|
6001
6204
|
return cached
|
@@ -6004,17 +6207,20 @@ module ScientificNameClean
|
|
6004
6207
|
i0 = index
|
6005
6208
|
i1, s1 = index, []
|
6006
6209
|
i2 = index
|
6007
|
-
if has_terminal?('\
|
6210
|
+
if has_terminal?(@regexps[gr = '\A[A-Z]'] ||= Regexp.new(gr), :regexp, index)
|
6008
6211
|
r3 = true
|
6009
6212
|
@index += 1
|
6010
6213
|
else
|
6214
|
+
terminal_parse_failure('[A-Z]')
|
6011
6215
|
r3 = nil
|
6012
6216
|
end
|
6013
6217
|
if r3
|
6218
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
6014
6219
|
r2 = r3
|
6015
6220
|
else
|
6016
6221
|
r4 = _nt_cap_digraph
|
6017
6222
|
if r4
|
6223
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
6018
6224
|
r2 = r4
|
6019
6225
|
else
|
6020
6226
|
@index = i2
|
@@ -6026,9 +6232,9 @@ module ScientificNameClean
|
|
6026
6232
|
r5 = _nt_latin_word
|
6027
6233
|
s1 << r5
|
6028
6234
|
if r5
|
6029
|
-
if has_terminal?("?", false, index)
|
6030
|
-
r6 =
|
6031
|
-
@index +=
|
6235
|
+
if (match_len = has_terminal?("?", false, index))
|
6236
|
+
r6 = true
|
6237
|
+
@index += match_len
|
6032
6238
|
else
|
6033
6239
|
terminal_parse_failure("?")
|
6034
6240
|
r6 = nil
|
@@ -6045,21 +6251,25 @@ module ScientificNameClean
|
|
6045
6251
|
r1 = nil
|
6046
6252
|
end
|
6047
6253
|
if r1
|
6254
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
6048
6255
|
r0 = r1
|
6049
6256
|
else
|
6050
6257
|
i7, s7 = index, []
|
6051
6258
|
i8 = index
|
6052
|
-
if has_terminal?('\
|
6259
|
+
if has_terminal?(@regexps[gr = '\A[A-Z]'] ||= Regexp.new(gr), :regexp, index)
|
6053
6260
|
r9 = true
|
6054
6261
|
@index += 1
|
6055
6262
|
else
|
6263
|
+
terminal_parse_failure('[A-Z]')
|
6056
6264
|
r9 = nil
|
6057
6265
|
end
|
6058
6266
|
if r9
|
6267
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
6059
6268
|
r8 = r9
|
6060
6269
|
else
|
6061
6270
|
r10 = _nt_cap_digraph
|
6062
6271
|
if r10
|
6272
|
+
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
6063
6273
|
r8 = r10
|
6064
6274
|
else
|
6065
6275
|
@index = i8
|
@@ -6080,28 +6290,31 @@ module ScientificNameClean
|
|
6080
6290
|
r7 = nil
|
6081
6291
|
end
|
6082
6292
|
if r7
|
6293
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
6083
6294
|
r0 = r7
|
6084
6295
|
else
|
6085
6296
|
i12, s12 = index, []
|
6086
6297
|
i13 = index
|
6087
|
-
if has_terminal?("AE", false, index)
|
6088
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
6089
|
-
@index +=
|
6298
|
+
if (match_len = has_terminal?("AE", false, index))
|
6299
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6300
|
+
@index += match_len
|
6090
6301
|
else
|
6091
6302
|
terminal_parse_failure("AE")
|
6092
6303
|
r14 = nil
|
6093
6304
|
end
|
6094
6305
|
if r14
|
6306
|
+
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
6095
6307
|
r13 = r14
|
6096
6308
|
else
|
6097
|
-
if has_terminal?("OE", false, index)
|
6098
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
6099
|
-
@index +=
|
6309
|
+
if (match_len = has_terminal?("OE", false, index))
|
6310
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6311
|
+
@index += match_len
|
6100
6312
|
else
|
6101
6313
|
terminal_parse_failure("OE")
|
6102
6314
|
r15 = nil
|
6103
6315
|
end
|
6104
6316
|
if r15
|
6317
|
+
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
6105
6318
|
r13 = r15
|
6106
6319
|
else
|
6107
6320
|
@index = i13
|
@@ -6122,215 +6335,235 @@ module ScientificNameClean
|
|
6122
6335
|
r12 = nil
|
6123
6336
|
end
|
6124
6337
|
if r12
|
6338
|
+
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
6125
6339
|
r0 = r12
|
6126
6340
|
else
|
6127
6341
|
i17 = index
|
6128
|
-
if has_terminal?("Ca", false, index)
|
6129
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
6130
|
-
@index +=
|
6342
|
+
if (match_len = has_terminal?("Ca", false, index))
|
6343
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6344
|
+
@index += match_len
|
6131
6345
|
else
|
6132
6346
|
terminal_parse_failure("Ca")
|
6133
6347
|
r18 = nil
|
6134
6348
|
end
|
6135
6349
|
if r18
|
6350
|
+
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
6136
6351
|
r17 = r18
|
6137
6352
|
r17.extend(CapLatinWord6)
|
6138
6353
|
else
|
6139
|
-
if has_terminal?("Ea", false, index)
|
6140
|
-
r19 = instantiate_node(SyntaxNode,input, index...(index +
|
6141
|
-
@index +=
|
6354
|
+
if (match_len = has_terminal?("Ea", false, index))
|
6355
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6356
|
+
@index += match_len
|
6142
6357
|
else
|
6143
6358
|
terminal_parse_failure("Ea")
|
6144
6359
|
r19 = nil
|
6145
6360
|
end
|
6146
6361
|
if r19
|
6362
|
+
r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true
|
6147
6363
|
r17 = r19
|
6148
6364
|
r17.extend(CapLatinWord6)
|
6149
6365
|
else
|
6150
|
-
if has_terminal?("Ge", false, index)
|
6151
|
-
r20 = instantiate_node(SyntaxNode,input, index...(index +
|
6152
|
-
@index +=
|
6366
|
+
if (match_len = has_terminal?("Ge", false, index))
|
6367
|
+
r20 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6368
|
+
@index += match_len
|
6153
6369
|
else
|
6154
6370
|
terminal_parse_failure("Ge")
|
6155
6371
|
r20 = nil
|
6156
6372
|
end
|
6157
6373
|
if r20
|
6374
|
+
r20 = SyntaxNode.new(input, (index-1)...index) if r20 == true
|
6158
6375
|
r17 = r20
|
6159
6376
|
r17.extend(CapLatinWord6)
|
6160
6377
|
else
|
6161
|
-
if has_terminal?("Ia", false, index)
|
6162
|
-
r21 = instantiate_node(SyntaxNode,input, index...(index +
|
6163
|
-
@index +=
|
6378
|
+
if (match_len = has_terminal?("Ia", false, index))
|
6379
|
+
r21 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6380
|
+
@index += match_len
|
6164
6381
|
else
|
6165
6382
|
terminal_parse_failure("Ia")
|
6166
6383
|
r21 = nil
|
6167
6384
|
end
|
6168
6385
|
if r21
|
6386
|
+
r21 = SyntaxNode.new(input, (index-1)...index) if r21 == true
|
6169
6387
|
r17 = r21
|
6170
6388
|
r17.extend(CapLatinWord6)
|
6171
6389
|
else
|
6172
|
-
if has_terminal?("Io", false, index)
|
6173
|
-
r22 = instantiate_node(SyntaxNode,input, index...(index +
|
6174
|
-
@index +=
|
6390
|
+
if (match_len = has_terminal?("Io", false, index))
|
6391
|
+
r22 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6392
|
+
@index += match_len
|
6175
6393
|
else
|
6176
6394
|
terminal_parse_failure("Io")
|
6177
6395
|
r22 = nil
|
6178
6396
|
end
|
6179
6397
|
if r22
|
6398
|
+
r22 = SyntaxNode.new(input, (index-1)...index) if r22 == true
|
6180
6399
|
r17 = r22
|
6181
6400
|
r17.extend(CapLatinWord6)
|
6182
6401
|
else
|
6183
|
-
if has_terminal?("Io", false, index)
|
6184
|
-
r23 = instantiate_node(SyntaxNode,input, index...(index +
|
6185
|
-
@index +=
|
6402
|
+
if (match_len = has_terminal?("Io", false, index))
|
6403
|
+
r23 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6404
|
+
@index += match_len
|
6186
6405
|
else
|
6187
6406
|
terminal_parse_failure("Io")
|
6188
6407
|
r23 = nil
|
6189
6408
|
end
|
6190
6409
|
if r23
|
6410
|
+
r23 = SyntaxNode.new(input, (index-1)...index) if r23 == true
|
6191
6411
|
r17 = r23
|
6192
6412
|
r17.extend(CapLatinWord6)
|
6193
6413
|
else
|
6194
|
-
if has_terminal?("Ix", false, index)
|
6195
|
-
r24 = instantiate_node(SyntaxNode,input, index...(index +
|
6196
|
-
@index +=
|
6414
|
+
if (match_len = has_terminal?("Ix", false, index))
|
6415
|
+
r24 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6416
|
+
@index += match_len
|
6197
6417
|
else
|
6198
6418
|
terminal_parse_failure("Ix")
|
6199
6419
|
r24 = nil
|
6200
6420
|
end
|
6201
6421
|
if r24
|
6422
|
+
r24 = SyntaxNode.new(input, (index-1)...index) if r24 == true
|
6202
6423
|
r17 = r24
|
6203
6424
|
r17.extend(CapLatinWord6)
|
6204
6425
|
else
|
6205
|
-
if has_terminal?("Lo", false, index)
|
6206
|
-
r25 = instantiate_node(SyntaxNode,input, index...(index +
|
6207
|
-
@index +=
|
6426
|
+
if (match_len = has_terminal?("Lo", false, index))
|
6427
|
+
r25 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6428
|
+
@index += match_len
|
6208
6429
|
else
|
6209
6430
|
terminal_parse_failure("Lo")
|
6210
6431
|
r25 = nil
|
6211
6432
|
end
|
6212
6433
|
if r25
|
6434
|
+
r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
|
6213
6435
|
r17 = r25
|
6214
6436
|
r17.extend(CapLatinWord6)
|
6215
6437
|
else
|
6216
|
-
if has_terminal?("Oa", false, index)
|
6217
|
-
r26 = instantiate_node(SyntaxNode,input, index...(index +
|
6218
|
-
@index +=
|
6438
|
+
if (match_len = has_terminal?("Oa", false, index))
|
6439
|
+
r26 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6440
|
+
@index += match_len
|
6219
6441
|
else
|
6220
6442
|
terminal_parse_failure("Oa")
|
6221
6443
|
r26 = nil
|
6222
6444
|
end
|
6223
6445
|
if r26
|
6446
|
+
r26 = SyntaxNode.new(input, (index-1)...index) if r26 == true
|
6224
6447
|
r17 = r26
|
6225
6448
|
r17.extend(CapLatinWord6)
|
6226
6449
|
else
|
6227
|
-
if has_terminal?("Ra", false, index)
|
6228
|
-
r27 = instantiate_node(SyntaxNode,input, index...(index +
|
6229
|
-
@index +=
|
6450
|
+
if (match_len = has_terminal?("Ra", false, index))
|
6451
|
+
r27 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6452
|
+
@index += match_len
|
6230
6453
|
else
|
6231
6454
|
terminal_parse_failure("Ra")
|
6232
6455
|
r27 = nil
|
6233
6456
|
end
|
6234
6457
|
if r27
|
6458
|
+
r27 = SyntaxNode.new(input, (index-1)...index) if r27 == true
|
6235
6459
|
r17 = r27
|
6236
6460
|
r17.extend(CapLatinWord6)
|
6237
6461
|
else
|
6238
|
-
if has_terminal?("Ty", false, index)
|
6239
|
-
r28 = instantiate_node(SyntaxNode,input, index...(index +
|
6240
|
-
@index +=
|
6462
|
+
if (match_len = has_terminal?("Ty", false, index))
|
6463
|
+
r28 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6464
|
+
@index += match_len
|
6241
6465
|
else
|
6242
6466
|
terminal_parse_failure("Ty")
|
6243
6467
|
r28 = nil
|
6244
6468
|
end
|
6245
6469
|
if r28
|
6470
|
+
r28 = SyntaxNode.new(input, (index-1)...index) if r28 == true
|
6246
6471
|
r17 = r28
|
6247
6472
|
r17.extend(CapLatinWord6)
|
6248
6473
|
else
|
6249
|
-
if has_terminal?("Ua", false, index)
|
6250
|
-
r29 = instantiate_node(SyntaxNode,input, index...(index +
|
6251
|
-
@index +=
|
6474
|
+
if (match_len = has_terminal?("Ua", false, index))
|
6475
|
+
r29 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6476
|
+
@index += match_len
|
6252
6477
|
else
|
6253
6478
|
terminal_parse_failure("Ua")
|
6254
6479
|
r29 = nil
|
6255
6480
|
end
|
6256
6481
|
if r29
|
6482
|
+
r29 = SyntaxNode.new(input, (index-1)...index) if r29 == true
|
6257
6483
|
r17 = r29
|
6258
6484
|
r17.extend(CapLatinWord6)
|
6259
6485
|
else
|
6260
|
-
if has_terminal?("Aa", false, index)
|
6261
|
-
r30 = instantiate_node(SyntaxNode,input, index...(index +
|
6262
|
-
@index +=
|
6486
|
+
if (match_len = has_terminal?("Aa", false, index))
|
6487
|
+
r30 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6488
|
+
@index += match_len
|
6263
6489
|
else
|
6264
6490
|
terminal_parse_failure("Aa")
|
6265
6491
|
r30 = nil
|
6266
6492
|
end
|
6267
6493
|
if r30
|
6494
|
+
r30 = SyntaxNode.new(input, (index-1)...index) if r30 == true
|
6268
6495
|
r17 = r30
|
6269
6496
|
r17.extend(CapLatinWord6)
|
6270
6497
|
else
|
6271
|
-
if has_terminal?("Ja", false, index)
|
6272
|
-
r31 = instantiate_node(SyntaxNode,input, index...(index +
|
6273
|
-
@index +=
|
6498
|
+
if (match_len = has_terminal?("Ja", false, index))
|
6499
|
+
r31 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6500
|
+
@index += match_len
|
6274
6501
|
else
|
6275
6502
|
terminal_parse_failure("Ja")
|
6276
6503
|
r31 = nil
|
6277
6504
|
end
|
6278
6505
|
if r31
|
6506
|
+
r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
|
6279
6507
|
r17 = r31
|
6280
6508
|
r17.extend(CapLatinWord6)
|
6281
6509
|
else
|
6282
|
-
if has_terminal?("Zu", false, index)
|
6283
|
-
r32 = instantiate_node(SyntaxNode,input, index...(index +
|
6284
|
-
@index +=
|
6510
|
+
if (match_len = has_terminal?("Zu", false, index))
|
6511
|
+
r32 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6512
|
+
@index += match_len
|
6285
6513
|
else
|
6286
6514
|
terminal_parse_failure("Zu")
|
6287
6515
|
r32 = nil
|
6288
6516
|
end
|
6289
6517
|
if r32
|
6518
|
+
r32 = SyntaxNode.new(input, (index-1)...index) if r32 == true
|
6290
6519
|
r17 = r32
|
6291
6520
|
r17.extend(CapLatinWord6)
|
6292
6521
|
else
|
6293
|
-
if has_terminal?("La", false, index)
|
6294
|
-
r33 = instantiate_node(SyntaxNode,input, index...(index +
|
6295
|
-
@index +=
|
6522
|
+
if (match_len = has_terminal?("La", false, index))
|
6523
|
+
r33 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6524
|
+
@index += match_len
|
6296
6525
|
else
|
6297
6526
|
terminal_parse_failure("La")
|
6298
6527
|
r33 = nil
|
6299
6528
|
end
|
6300
6529
|
if r33
|
6530
|
+
r33 = SyntaxNode.new(input, (index-1)...index) if r33 == true
|
6301
6531
|
r17 = r33
|
6302
6532
|
r17.extend(CapLatinWord6)
|
6303
6533
|
else
|
6304
|
-
if has_terminal?("Qu", false, index)
|
6305
|
-
r34 = instantiate_node(SyntaxNode,input, index...(index +
|
6306
|
-
@index +=
|
6534
|
+
if (match_len = has_terminal?("Qu", false, index))
|
6535
|
+
r34 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6536
|
+
@index += match_len
|
6307
6537
|
else
|
6308
6538
|
terminal_parse_failure("Qu")
|
6309
6539
|
r34 = nil
|
6310
6540
|
end
|
6311
6541
|
if r34
|
6542
|
+
r34 = SyntaxNode.new(input, (index-1)...index) if r34 == true
|
6312
6543
|
r17 = r34
|
6313
6544
|
r17.extend(CapLatinWord6)
|
6314
6545
|
else
|
6315
|
-
if has_terminal?("As", false, index)
|
6316
|
-
r35 = instantiate_node(SyntaxNode,input, index...(index +
|
6317
|
-
@index +=
|
6546
|
+
if (match_len = has_terminal?("As", false, index))
|
6547
|
+
r35 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6548
|
+
@index += match_len
|
6318
6549
|
else
|
6319
6550
|
terminal_parse_failure("As")
|
6320
6551
|
r35 = nil
|
6321
6552
|
end
|
6322
6553
|
if r35
|
6554
|
+
r35 = SyntaxNode.new(input, (index-1)...index) if r35 == true
|
6323
6555
|
r17 = r35
|
6324
6556
|
r17.extend(CapLatinWord6)
|
6325
6557
|
else
|
6326
|
-
if has_terminal?("Ba", false, index)
|
6327
|
-
r36 = instantiate_node(SyntaxNode,input, index...(index +
|
6328
|
-
@index +=
|
6558
|
+
if (match_len = has_terminal?("Ba", false, index))
|
6559
|
+
r36 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6560
|
+
@index += match_len
|
6329
6561
|
else
|
6330
6562
|
terminal_parse_failure("Ba")
|
6331
6563
|
r36 = nil
|
6332
6564
|
end
|
6333
6565
|
if r36
|
6566
|
+
r36 = SyntaxNode.new(input, (index-1)...index) if r36 == true
|
6334
6567
|
r17 = r36
|
6335
6568
|
r17.extend(CapLatinWord6)
|
6336
6569
|
else
|
@@ -6356,6 +6589,7 @@ module ScientificNameClean
|
|
6356
6589
|
end
|
6357
6590
|
end
|
6358
6591
|
if r17
|
6592
|
+
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
6359
6593
|
r0 = r17
|
6360
6594
|
else
|
6361
6595
|
@index = i0
|
@@ -6384,24 +6618,25 @@ module ScientificNameClean
|
|
6384
6618
|
if node_cache[:capped_dotted_char].has_key?(index)
|
6385
6619
|
cached = node_cache[:capped_dotted_char][index]
|
6386
6620
|
if cached
|
6387
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6621
|
+
node_cache[:capped_dotted_char][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6388
6622
|
@index = cached.interval.end
|
6389
6623
|
end
|
6390
6624
|
return cached
|
6391
6625
|
end
|
6392
6626
|
|
6393
6627
|
i0, s0 = index, []
|
6394
|
-
if has_terminal?('\
|
6628
|
+
if has_terminal?(@regexps[gr = '\A[A-Z]'] ||= Regexp.new(gr), :regexp, index)
|
6395
6629
|
r1 = true
|
6396
6630
|
@index += 1
|
6397
6631
|
else
|
6632
|
+
terminal_parse_failure('[A-Z]')
|
6398
6633
|
r1 = nil
|
6399
6634
|
end
|
6400
6635
|
s0 << r1
|
6401
6636
|
if r1
|
6402
|
-
if has_terminal?(".", false, index)
|
6403
|
-
r2 =
|
6404
|
-
@index +=
|
6637
|
+
if (match_len = has_terminal?(".", false, index))
|
6638
|
+
r2 = true
|
6639
|
+
@index += match_len
|
6405
6640
|
else
|
6406
6641
|
terminal_parse_failure(".")
|
6407
6642
|
r2 = nil
|
@@ -6535,7 +6770,7 @@ module ScientificNameClean
|
|
6535
6770
|
if node_cache[:species_word_hybrid].has_key?(index)
|
6536
6771
|
cached = node_cache[:species_word_hybrid][index]
|
6537
6772
|
if cached
|
6538
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6773
|
+
node_cache[:species_word_hybrid][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6539
6774
|
@index = cached.interval.end
|
6540
6775
|
end
|
6541
6776
|
return cached
|
@@ -6562,12 +6797,13 @@ module ScientificNameClean
|
|
6562
6797
|
r1 = nil
|
6563
6798
|
end
|
6564
6799
|
if r1
|
6800
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
6565
6801
|
r0 = r1
|
6566
6802
|
else
|
6567
6803
|
i5, s5 = index, []
|
6568
|
-
if has_terminal?("X", false, index)
|
6569
|
-
r6 =
|
6570
|
-
@index +=
|
6804
|
+
if (match_len = has_terminal?("X", false, index))
|
6805
|
+
r6 = true
|
6806
|
+
@index += match_len
|
6571
6807
|
else
|
6572
6808
|
terminal_parse_failure("X")
|
6573
6809
|
r6 = nil
|
@@ -6590,12 +6826,13 @@ module ScientificNameClean
|
|
6590
6826
|
r5 = nil
|
6591
6827
|
end
|
6592
6828
|
if r5
|
6829
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
6593
6830
|
r0 = r5
|
6594
6831
|
else
|
6595
6832
|
i9, s9 = index, []
|
6596
|
-
if has_terminal?("x", false, index)
|
6597
|
-
r10 =
|
6598
|
-
@index +=
|
6833
|
+
if (match_len = has_terminal?("x", false, index))
|
6834
|
+
r10 = true
|
6835
|
+
@index += match_len
|
6599
6836
|
else
|
6600
6837
|
terminal_parse_failure("x")
|
6601
6838
|
r10 = nil
|
@@ -6618,6 +6855,7 @@ module ScientificNameClean
|
|
6618
6855
|
r9 = nil
|
6619
6856
|
end
|
6620
6857
|
if r9
|
6858
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
6621
6859
|
r0 = r9
|
6622
6860
|
else
|
6623
6861
|
@index = i0
|
@@ -6683,7 +6921,7 @@ module ScientificNameClean
|
|
6683
6921
|
if node_cache[:annotation_identification].has_key?(index)
|
6684
6922
|
cached = node_cache[:annotation_identification][index]
|
6685
6923
|
if cached
|
6686
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6924
|
+
node_cache[:annotation_identification][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6687
6925
|
@index = cached.interval.end
|
6688
6926
|
end
|
6689
6927
|
return cached
|
@@ -6691,168 +6929,183 @@ module ScientificNameClean
|
|
6691
6929
|
|
6692
6930
|
i0 = index
|
6693
6931
|
i1 = index
|
6694
|
-
if has_terminal?("sp.nr.", false, index)
|
6695
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
6696
|
-
@index +=
|
6932
|
+
if (match_len = has_terminal?("sp.nr.", false, index))
|
6933
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6934
|
+
@index += match_len
|
6697
6935
|
else
|
6698
6936
|
terminal_parse_failure("sp.nr.")
|
6699
6937
|
r2 = nil
|
6700
6938
|
end
|
6701
6939
|
if r2
|
6940
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
6702
6941
|
r1 = r2
|
6703
6942
|
r1.extend(AnnotationIdentification0)
|
6704
6943
|
else
|
6705
|
-
if has_terminal?("sp. nr.", false, index)
|
6706
|
-
r3 = instantiate_node(SyntaxNode,input, index...(index +
|
6707
|
-
@index +=
|
6944
|
+
if (match_len = has_terminal?("sp. nr.", false, index))
|
6945
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6946
|
+
@index += match_len
|
6708
6947
|
else
|
6709
6948
|
terminal_parse_failure("sp. nr.")
|
6710
6949
|
r3 = nil
|
6711
6950
|
end
|
6712
6951
|
if r3
|
6952
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
6713
6953
|
r1 = r3
|
6714
6954
|
r1.extend(AnnotationIdentification0)
|
6715
6955
|
else
|
6716
|
-
if has_terminal?("nr.", false, index)
|
6717
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
6718
|
-
@index +=
|
6956
|
+
if (match_len = has_terminal?("nr.", false, index))
|
6957
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6958
|
+
@index += match_len
|
6719
6959
|
else
|
6720
6960
|
terminal_parse_failure("nr.")
|
6721
6961
|
r4 = nil
|
6722
6962
|
end
|
6723
6963
|
if r4
|
6964
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
6724
6965
|
r1 = r4
|
6725
6966
|
r1.extend(AnnotationIdentification0)
|
6726
6967
|
else
|
6727
|
-
if has_terminal?("nr ", false, index)
|
6728
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
6729
|
-
@index +=
|
6968
|
+
if (match_len = has_terminal?("nr ", false, index))
|
6969
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6970
|
+
@index += match_len
|
6730
6971
|
else
|
6731
6972
|
terminal_parse_failure("nr ")
|
6732
6973
|
r5 = nil
|
6733
6974
|
end
|
6734
6975
|
if r5
|
6976
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
6735
6977
|
r1 = r5
|
6736
6978
|
r1.extend(AnnotationIdentification0)
|
6737
6979
|
else
|
6738
|
-
if has_terminal?("sp.aff.", false, index)
|
6739
|
-
r6 = instantiate_node(SyntaxNode,input, index...(index +
|
6740
|
-
@index +=
|
6980
|
+
if (match_len = has_terminal?("sp.aff.", false, index))
|
6981
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6982
|
+
@index += match_len
|
6741
6983
|
else
|
6742
6984
|
terminal_parse_failure("sp.aff.")
|
6743
6985
|
r6 = nil
|
6744
6986
|
end
|
6745
6987
|
if r6
|
6988
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
6746
6989
|
r1 = r6
|
6747
6990
|
r1.extend(AnnotationIdentification0)
|
6748
6991
|
else
|
6749
|
-
if has_terminal?("sp. aff.", false, index)
|
6750
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
6751
|
-
@index +=
|
6992
|
+
if (match_len = has_terminal?("sp. aff.", false, index))
|
6993
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
6994
|
+
@index += match_len
|
6752
6995
|
else
|
6753
6996
|
terminal_parse_failure("sp. aff.")
|
6754
6997
|
r7 = nil
|
6755
6998
|
end
|
6756
6999
|
if r7
|
7000
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
6757
7001
|
r1 = r7
|
6758
7002
|
r1.extend(AnnotationIdentification0)
|
6759
7003
|
else
|
6760
|
-
if has_terminal?("sp.", false, index)
|
6761
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
6762
|
-
@index +=
|
7004
|
+
if (match_len = has_terminal?("sp.", false, index))
|
7005
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7006
|
+
@index += match_len
|
6763
7007
|
else
|
6764
7008
|
terminal_parse_failure("sp.")
|
6765
7009
|
r8 = nil
|
6766
7010
|
end
|
6767
7011
|
if r8
|
7012
|
+
r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
|
6768
7013
|
r1 = r8
|
6769
7014
|
r1.extend(AnnotationIdentification0)
|
6770
7015
|
else
|
6771
|
-
if has_terminal?("sp ", false, index)
|
6772
|
-
r9 = instantiate_node(SyntaxNode,input, index...(index +
|
6773
|
-
@index +=
|
7016
|
+
if (match_len = has_terminal?("sp ", false, index))
|
7017
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7018
|
+
@index += match_len
|
6774
7019
|
else
|
6775
7020
|
terminal_parse_failure("sp ")
|
6776
7021
|
r9 = nil
|
6777
7022
|
end
|
6778
7023
|
if r9
|
7024
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
6779
7025
|
r1 = r9
|
6780
7026
|
r1.extend(AnnotationIdentification0)
|
6781
7027
|
else
|
6782
|
-
if has_terminal?("species", false, index)
|
6783
|
-
r10 = instantiate_node(SyntaxNode,input, index...(index +
|
6784
|
-
@index +=
|
7028
|
+
if (match_len = has_terminal?("species", false, index))
|
7029
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7030
|
+
@index += match_len
|
6785
7031
|
else
|
6786
7032
|
terminal_parse_failure("species")
|
6787
7033
|
r10 = nil
|
6788
7034
|
end
|
6789
7035
|
if r10
|
7036
|
+
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
6790
7037
|
r1 = r10
|
6791
7038
|
r1.extend(AnnotationIdentification0)
|
6792
7039
|
else
|
6793
|
-
if has_terminal?("spp.", false, index)
|
6794
|
-
r11 = instantiate_node(SyntaxNode,input, index...(index +
|
6795
|
-
@index +=
|
7040
|
+
if (match_len = has_terminal?("spp.", false, index))
|
7041
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7042
|
+
@index += match_len
|
6796
7043
|
else
|
6797
7044
|
terminal_parse_failure("spp.")
|
6798
7045
|
r11 = nil
|
6799
7046
|
end
|
6800
7047
|
if r11
|
7048
|
+
r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
|
6801
7049
|
r1 = r11
|
6802
7050
|
r1.extend(AnnotationIdentification0)
|
6803
7051
|
else
|
6804
|
-
if has_terminal?("spp ", false, index)
|
6805
|
-
r12 = instantiate_node(SyntaxNode,input, index...(index +
|
6806
|
-
@index +=
|
7052
|
+
if (match_len = has_terminal?("spp ", false, index))
|
7053
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7054
|
+
@index += match_len
|
6807
7055
|
else
|
6808
7056
|
terminal_parse_failure("spp ")
|
6809
7057
|
r12 = nil
|
6810
7058
|
end
|
6811
7059
|
if r12
|
7060
|
+
r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
|
6812
7061
|
r1 = r12
|
6813
7062
|
r1.extend(AnnotationIdentification0)
|
6814
7063
|
else
|
6815
|
-
if has_terminal?("aff.", false, index)
|
6816
|
-
r13 = instantiate_node(SyntaxNode,input, index...(index +
|
6817
|
-
@index +=
|
7064
|
+
if (match_len = has_terminal?("aff.", false, index))
|
7065
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7066
|
+
@index += match_len
|
6818
7067
|
else
|
6819
7068
|
terminal_parse_failure("aff.")
|
6820
7069
|
r13 = nil
|
6821
7070
|
end
|
6822
7071
|
if r13
|
7072
|
+
r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
|
6823
7073
|
r1 = r13
|
6824
7074
|
r1.extend(AnnotationIdentification0)
|
6825
7075
|
else
|
6826
|
-
if has_terminal?("aff ", false, index)
|
6827
|
-
r14 = instantiate_node(SyntaxNode,input, index...(index +
|
6828
|
-
@index +=
|
7076
|
+
if (match_len = has_terminal?("aff ", false, index))
|
7077
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7078
|
+
@index += match_len
|
6829
7079
|
else
|
6830
7080
|
terminal_parse_failure("aff ")
|
6831
7081
|
r14 = nil
|
6832
7082
|
end
|
6833
7083
|
if r14
|
7084
|
+
r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
|
6834
7085
|
r1 = r14
|
6835
7086
|
r1.extend(AnnotationIdentification0)
|
6836
7087
|
else
|
6837
|
-
if has_terminal?("monst.", false, index)
|
6838
|
-
r15 = instantiate_node(SyntaxNode,input, index...(index +
|
6839
|
-
@index +=
|
7088
|
+
if (match_len = has_terminal?("monst.", false, index))
|
7089
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7090
|
+
@index += match_len
|
6840
7091
|
else
|
6841
7092
|
terminal_parse_failure("monst.")
|
6842
7093
|
r15 = nil
|
6843
7094
|
end
|
6844
7095
|
if r15
|
7096
|
+
r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
|
6845
7097
|
r1 = r15
|
6846
7098
|
r1.extend(AnnotationIdentification0)
|
6847
7099
|
else
|
6848
|
-
if has_terminal?("? ", false, index)
|
6849
|
-
r16 = instantiate_node(SyntaxNode,input, index...(index +
|
6850
|
-
@index +=
|
7100
|
+
if (match_len = has_terminal?("? ", false, index))
|
7101
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7102
|
+
@index += match_len
|
6851
7103
|
else
|
6852
7104
|
terminal_parse_failure("? ")
|
6853
7105
|
r16 = nil
|
6854
7106
|
end
|
6855
7107
|
if r16
|
7108
|
+
r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
|
6856
7109
|
r1 = r16
|
6857
7110
|
r1.extend(AnnotationIdentification0)
|
6858
7111
|
else
|
@@ -6874,28 +7127,31 @@ module ScientificNameClean
|
|
6874
7127
|
end
|
6875
7128
|
end
|
6876
7129
|
if r1
|
7130
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
6877
7131
|
r0 = r1
|
6878
7132
|
else
|
6879
7133
|
i17 = index
|
6880
|
-
if has_terminal?("cf.", false, index)
|
6881
|
-
r18 = instantiate_node(SyntaxNode,input, index...(index +
|
6882
|
-
@index +=
|
7134
|
+
if (match_len = has_terminal?("cf.", false, index))
|
7135
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7136
|
+
@index += match_len
|
6883
7137
|
else
|
6884
7138
|
terminal_parse_failure("cf.")
|
6885
7139
|
r18 = nil
|
6886
7140
|
end
|
6887
7141
|
if r18
|
7142
|
+
r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
|
6888
7143
|
r17 = r18
|
6889
7144
|
r17.extend(AnnotationIdentification1)
|
6890
7145
|
else
|
6891
|
-
if has_terminal?("cf ", false, index)
|
6892
|
-
r19 = instantiate_node(SyntaxNode,input, index...(index +
|
6893
|
-
@index +=
|
7146
|
+
if (match_len = has_terminal?("cf ", false, index))
|
7147
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7148
|
+
@index += match_len
|
6894
7149
|
else
|
6895
7150
|
terminal_parse_failure("cf ")
|
6896
7151
|
r19 = nil
|
6897
7152
|
end
|
6898
7153
|
if r19
|
7154
|
+
r19 = SyntaxNode.new(input, (index-1)...index) if r19 == true
|
6899
7155
|
r17 = r19
|
6900
7156
|
r17.extend(AnnotationIdentification1)
|
6901
7157
|
else
|
@@ -6904,6 +7160,7 @@ module ScientificNameClean
|
|
6904
7160
|
end
|
6905
7161
|
end
|
6906
7162
|
if r17
|
7163
|
+
r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
|
6907
7164
|
r0 = r17
|
6908
7165
|
else
|
6909
7166
|
@index = i0
|
@@ -6939,7 +7196,7 @@ module ScientificNameClean
|
|
6939
7196
|
if node_cache[:species_word].has_key?(index)
|
6940
7197
|
cached = node_cache[:species_word][index]
|
6941
7198
|
if cached
|
6942
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7199
|
+
node_cache[:species_word][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
6943
7200
|
@index = cached.interval.end
|
6944
7201
|
end
|
6945
7202
|
return cached
|
@@ -6949,10 +7206,11 @@ module ScientificNameClean
|
|
6949
7206
|
i1, s1 = index, []
|
6950
7207
|
s2, i2 = [], index
|
6951
7208
|
loop do
|
6952
|
-
if has_terminal?('\
|
7209
|
+
if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index)
|
6953
7210
|
r3 = true
|
6954
7211
|
@index += 1
|
6955
7212
|
else
|
7213
|
+
terminal_parse_failure('[0-9]')
|
6956
7214
|
r3 = nil
|
6957
7215
|
end
|
6958
7216
|
if r3
|
@@ -6969,9 +7227,9 @@ module ScientificNameClean
|
|
6969
7227
|
end
|
6970
7228
|
s1 << r2
|
6971
7229
|
if r2
|
6972
|
-
if has_terminal?("-", false, index)
|
6973
|
-
r5 =
|
6974
|
-
@index +=
|
7230
|
+
if (match_len = has_terminal?("-", false, index))
|
7231
|
+
r5 = true
|
7232
|
+
@index += match_len
|
6975
7233
|
else
|
6976
7234
|
terminal_parse_failure("-")
|
6977
7235
|
r5 = nil
|
@@ -6996,10 +7254,12 @@ module ScientificNameClean
|
|
6996
7254
|
r1 = nil
|
6997
7255
|
end
|
6998
7256
|
if r1
|
7257
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
6999
7258
|
r0 = r1
|
7000
7259
|
else
|
7001
7260
|
r7 = _nt_latin_word
|
7002
7261
|
if r7
|
7262
|
+
r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
|
7003
7263
|
r0 = r7
|
7004
7264
|
else
|
7005
7265
|
@index = i0
|
@@ -7055,7 +7315,7 @@ module ScientificNameClean
|
|
7055
7315
|
if node_cache[:latin_word].has_key?(index)
|
7056
7316
|
cached = node_cache[:latin_word][index]
|
7057
7317
|
if cached
|
7058
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7318
|
+
node_cache[:latin_word][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7059
7319
|
@index = cached.interval.end
|
7060
7320
|
end
|
7061
7321
|
return cached
|
@@ -7066,9 +7326,9 @@ module ScientificNameClean
|
|
7066
7326
|
r2 = _nt_valid_name_letters
|
7067
7327
|
s1 << r2
|
7068
7328
|
if r2
|
7069
|
-
if has_terminal?("-", false, index)
|
7070
|
-
r3 =
|
7071
|
-
@index +=
|
7329
|
+
if (match_len = has_terminal?("-", false, index))
|
7330
|
+
r3 = true
|
7331
|
+
@index += match_len
|
7072
7332
|
else
|
7073
7333
|
terminal_parse_failure("-")
|
7074
7334
|
r3 = nil
|
@@ -7088,17 +7348,19 @@ module ScientificNameClean
|
|
7088
7348
|
r1 = nil
|
7089
7349
|
end
|
7090
7350
|
if r1
|
7351
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7091
7352
|
r0 = r1
|
7092
7353
|
else
|
7093
|
-
if has_terminal?("o\'donelli", false, index)
|
7094
|
-
r5 = instantiate_node(SyntaxNode,input, index...(index +
|
7354
|
+
if (match_len = has_terminal?("o\'donelli", false, index))
|
7355
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7095
7356
|
r5.extend(LatinWord2)
|
7096
|
-
@index +=
|
7357
|
+
@index += match_len
|
7097
7358
|
else
|
7098
7359
|
terminal_parse_failure("o\'donelli")
|
7099
7360
|
r5 = nil
|
7100
7361
|
end
|
7101
7362
|
if r5
|
7363
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
7102
7364
|
r0 = r5
|
7103
7365
|
else
|
7104
7366
|
i6, s6 = index, []
|
@@ -7117,6 +7379,7 @@ module ScientificNameClean
|
|
7117
7379
|
r6 = nil
|
7118
7380
|
end
|
7119
7381
|
if r6
|
7382
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
7120
7383
|
r0 = r6
|
7121
7384
|
else
|
7122
7385
|
@index = i0
|
@@ -7150,7 +7413,7 @@ module ScientificNameClean
|
|
7150
7413
|
if node_cache[:valid_name_letters].has_key?(index)
|
7151
7414
|
cached = node_cache[:valid_name_letters][index]
|
7152
7415
|
if cached
|
7153
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7416
|
+
node_cache[:valid_name_letters][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7154
7417
|
@index = cached.interval.end
|
7155
7418
|
end
|
7156
7419
|
return cached
|
@@ -7158,10 +7421,11 @@ module ScientificNameClean
|
|
7158
7421
|
|
7159
7422
|
s0, i0 = [], index
|
7160
7423
|
loop do
|
7161
|
-
if has_terminal?('\
|
7424
|
+
if has_terminal?(@regexps[gr = '\A[a-zëæœ]'] ||= Regexp.new(gr), :regexp, index)
|
7162
7425
|
r1 = true
|
7163
7426
|
@index += 1
|
7164
7427
|
else
|
7428
|
+
terminal_parse_failure('[a-zëæœ]')
|
7165
7429
|
r1 = nil
|
7166
7430
|
end
|
7167
7431
|
if r1
|
@@ -7198,17 +7462,18 @@ module ScientificNameClean
|
|
7198
7462
|
if node_cache[:valid_name_letter].has_key?(index)
|
7199
7463
|
cached = node_cache[:valid_name_letter][index]
|
7200
7464
|
if cached
|
7201
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7465
|
+
node_cache[:valid_name_letter][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7202
7466
|
@index = cached.interval.end
|
7203
7467
|
end
|
7204
7468
|
return cached
|
7205
7469
|
end
|
7206
7470
|
|
7207
|
-
if has_terminal?('\
|
7471
|
+
if has_terminal?(@regexps[gr = '\A[a-zëæœ]'] ||= Regexp.new(gr), :regexp, index)
|
7208
7472
|
r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
7209
7473
|
r0.extend(ValidNameLetter0)
|
7210
7474
|
@index += 1
|
7211
7475
|
else
|
7476
|
+
terminal_parse_failure('[a-zëæœ]')
|
7212
7477
|
r0 = nil
|
7213
7478
|
end
|
7214
7479
|
|
@@ -7234,33 +7499,35 @@ module ScientificNameClean
|
|
7234
7499
|
if node_cache[:cap_digraph].has_key?(index)
|
7235
7500
|
cached = node_cache[:cap_digraph][index]
|
7236
7501
|
if cached
|
7237
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7502
|
+
node_cache[:cap_digraph][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7238
7503
|
@index = cached.interval.end
|
7239
7504
|
end
|
7240
7505
|
return cached
|
7241
7506
|
end
|
7242
7507
|
|
7243
7508
|
i0 = index
|
7244
|
-
if has_terminal?("Æ", false, index)
|
7245
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
7509
|
+
if (match_len = has_terminal?("Æ", false, index))
|
7510
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7246
7511
|
r1.extend(CapDigraph0)
|
7247
|
-
@index +=
|
7512
|
+
@index += match_len
|
7248
7513
|
else
|
7249
7514
|
terminal_parse_failure("Æ")
|
7250
7515
|
r1 = nil
|
7251
7516
|
end
|
7252
7517
|
if r1
|
7518
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7253
7519
|
r0 = r1
|
7254
7520
|
else
|
7255
|
-
if has_terminal?("Œ", false, index)
|
7256
|
-
r2 = instantiate_node(SyntaxNode,input, index...(index +
|
7521
|
+
if (match_len = has_terminal?("Œ", false, index))
|
7522
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7257
7523
|
r2.extend(CapDigraph1)
|
7258
|
-
@index +=
|
7524
|
+
@index += match_len
|
7259
7525
|
else
|
7260
7526
|
terminal_parse_failure("Œ")
|
7261
7527
|
r2 = nil
|
7262
7528
|
end
|
7263
7529
|
if r2
|
7530
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
7264
7531
|
r0 = r2
|
7265
7532
|
else
|
7266
7533
|
@index = i0
|
@@ -7314,7 +7581,7 @@ module ScientificNameClean
|
|
7314
7581
|
if node_cache[:year].has_key?(index)
|
7315
7582
|
cached = node_cache[:year][index]
|
7316
7583
|
if cached
|
7317
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7584
|
+
node_cache[:year][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7318
7585
|
@index = cached.interval.end
|
7319
7586
|
end
|
7320
7587
|
return cached
|
@@ -7331,10 +7598,12 @@ module ScientificNameClean
|
|
7331
7598
|
i4 = index
|
7332
7599
|
r5 = _nt_year_number_with_character
|
7333
7600
|
if r5
|
7601
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
7334
7602
|
r4 = r5
|
7335
7603
|
else
|
7336
7604
|
r6 = _nt_year_number
|
7337
7605
|
if r6
|
7606
|
+
r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
|
7338
7607
|
r4 = r6
|
7339
7608
|
else
|
7340
7609
|
@index = i4
|
@@ -7361,14 +7630,17 @@ module ScientificNameClean
|
|
7361
7630
|
r1 = nil
|
7362
7631
|
end
|
7363
7632
|
if r1
|
7633
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7364
7634
|
r0 = r1
|
7365
7635
|
else
|
7366
7636
|
r9 = _nt_year_number_with_character
|
7367
7637
|
if r9
|
7638
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
7368
7639
|
r0 = r9
|
7369
7640
|
else
|
7370
7641
|
r10 = _nt_year_number
|
7371
7642
|
if r10
|
7643
|
+
r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
|
7372
7644
|
r0 = r10
|
7373
7645
|
else
|
7374
7646
|
@index = i0
|
@@ -7408,7 +7680,7 @@ module ScientificNameClean
|
|
7408
7680
|
if node_cache[:year_number_with_character].has_key?(index)
|
7409
7681
|
cached = node_cache[:year_number_with_character][index]
|
7410
7682
|
if cached
|
7411
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7683
|
+
node_cache[:year_number_with_character][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7412
7684
|
@index = cached.interval.end
|
7413
7685
|
end
|
7414
7686
|
return cached
|
@@ -7418,10 +7690,11 @@ module ScientificNameClean
|
|
7418
7690
|
r1 = _nt_year_number
|
7419
7691
|
s0 << r1
|
7420
7692
|
if r1
|
7421
|
-
if has_terminal?('\
|
7693
|
+
if has_terminal?(@regexps[gr = '\A[a-zA-Z]'] ||= Regexp.new(gr), :regexp, index)
|
7422
7694
|
r2 = true
|
7423
7695
|
@index += 1
|
7424
7696
|
else
|
7697
|
+
terminal_parse_failure('[a-zA-Z]')
|
7425
7698
|
r2 = nil
|
7426
7699
|
end
|
7427
7700
|
s0 << r2
|
@@ -7465,51 +7738,56 @@ module ScientificNameClean
|
|
7465
7738
|
if node_cache[:year_number].has_key?(index)
|
7466
7739
|
cached = node_cache[:year_number][index]
|
7467
7740
|
if cached
|
7468
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7741
|
+
node_cache[:year_number][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7469
7742
|
@index = cached.interval.end
|
7470
7743
|
end
|
7471
7744
|
return cached
|
7472
7745
|
end
|
7473
7746
|
|
7474
7747
|
i0, s0 = index, []
|
7475
|
-
if has_terminal?('\
|
7748
|
+
if has_terminal?(@regexps[gr = '\A[12]'] ||= Regexp.new(gr), :regexp, index)
|
7476
7749
|
r1 = true
|
7477
7750
|
@index += 1
|
7478
7751
|
else
|
7752
|
+
terminal_parse_failure('[12]')
|
7479
7753
|
r1 = nil
|
7480
7754
|
end
|
7481
7755
|
s0 << r1
|
7482
7756
|
if r1
|
7483
|
-
if has_terminal?('\
|
7757
|
+
if has_terminal?(@regexps[gr = '\A[7890]'] ||= Regexp.new(gr), :regexp, index)
|
7484
7758
|
r2 = true
|
7485
7759
|
@index += 1
|
7486
7760
|
else
|
7761
|
+
terminal_parse_failure('[7890]')
|
7487
7762
|
r2 = nil
|
7488
7763
|
end
|
7489
7764
|
s0 << r2
|
7490
7765
|
if r2
|
7491
|
-
if has_terminal?('\
|
7766
|
+
if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index)
|
7492
7767
|
r3 = true
|
7493
7768
|
@index += 1
|
7494
7769
|
else
|
7770
|
+
terminal_parse_failure('[0-9]')
|
7495
7771
|
r3 = nil
|
7496
7772
|
end
|
7497
7773
|
s0 << r3
|
7498
7774
|
if r3
|
7499
7775
|
i4 = index
|
7500
7776
|
i5, s5 = index, []
|
7501
|
-
if has_terminal?('\
|
7777
|
+
if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index)
|
7502
7778
|
r6 = true
|
7503
7779
|
@index += 1
|
7504
7780
|
else
|
7781
|
+
terminal_parse_failure('[0-9]')
|
7505
7782
|
r6 = nil
|
7506
7783
|
end
|
7507
7784
|
s5 << r6
|
7508
7785
|
if r6
|
7509
|
-
if has_terminal?('\
|
7786
|
+
if has_terminal?(@regexps[gr = '\A[\\?]'] ||= Regexp.new(gr), :regexp, index)
|
7510
7787
|
r8 = true
|
7511
7788
|
@index += 1
|
7512
7789
|
else
|
7790
|
+
terminal_parse_failure('[\\?]')
|
7513
7791
|
r8 = nil
|
7514
7792
|
end
|
7515
7793
|
if r8
|
@@ -7527,16 +7805,18 @@ module ScientificNameClean
|
|
7527
7805
|
r5 = nil
|
7528
7806
|
end
|
7529
7807
|
if r5
|
7808
|
+
r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
|
7530
7809
|
r4 = r5
|
7531
7810
|
else
|
7532
|
-
if has_terminal?("?", false, index)
|
7533
|
-
r9 =
|
7534
|
-
@index +=
|
7811
|
+
if (match_len = has_terminal?("?", false, index))
|
7812
|
+
r9 = true
|
7813
|
+
@index += match_len
|
7535
7814
|
else
|
7536
7815
|
terminal_parse_failure("?")
|
7537
7816
|
r9 = nil
|
7538
7817
|
end
|
7539
7818
|
if r9
|
7819
|
+
r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
|
7540
7820
|
r4 = r9
|
7541
7821
|
else
|
7542
7822
|
@index = i4
|
@@ -7566,15 +7846,15 @@ module ScientificNameClean
|
|
7566
7846
|
if node_cache[:left_paren].has_key?(index)
|
7567
7847
|
cached = node_cache[:left_paren][index]
|
7568
7848
|
if cached
|
7569
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7849
|
+
node_cache[:left_paren][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7570
7850
|
@index = cached.interval.end
|
7571
7851
|
end
|
7572
7852
|
return cached
|
7573
7853
|
end
|
7574
7854
|
|
7575
|
-
if has_terminal?("(", false, index)
|
7576
|
-
r0 = instantiate_node(SyntaxNode,input, index...(index +
|
7577
|
-
@index +=
|
7855
|
+
if (match_len = has_terminal?("(", false, index))
|
7856
|
+
r0 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7857
|
+
@index += match_len
|
7578
7858
|
else
|
7579
7859
|
terminal_parse_failure("(")
|
7580
7860
|
r0 = nil
|
@@ -7590,15 +7870,15 @@ module ScientificNameClean
|
|
7590
7870
|
if node_cache[:right_paren].has_key?(index)
|
7591
7871
|
cached = node_cache[:right_paren][index]
|
7592
7872
|
if cached
|
7593
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7873
|
+
node_cache[:right_paren][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7594
7874
|
@index = cached.interval.end
|
7595
7875
|
end
|
7596
7876
|
return cached
|
7597
7877
|
end
|
7598
7878
|
|
7599
|
-
if has_terminal?(")", false, index)
|
7600
|
-
r0 = instantiate_node(SyntaxNode,input, index...(index +
|
7601
|
-
@index +=
|
7879
|
+
if (match_len = has_terminal?(")", false, index))
|
7880
|
+
r0 = instantiate_node(SyntaxNode,input, index...(index + match_len))
|
7881
|
+
@index += match_len
|
7602
7882
|
else
|
7603
7883
|
terminal_parse_failure(")")
|
7604
7884
|
r0 = nil
|
@@ -7620,7 +7900,7 @@ module ScientificNameClean
|
|
7620
7900
|
if node_cache[:hybrid_character].has_key?(index)
|
7621
7901
|
cached = node_cache[:hybrid_character][index]
|
7622
7902
|
if cached
|
7623
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7903
|
+
node_cache[:hybrid_character][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7624
7904
|
@index = cached.interval.end
|
7625
7905
|
end
|
7626
7906
|
return cached
|
@@ -7628,25 +7908,27 @@ module ScientificNameClean
|
|
7628
7908
|
|
7629
7909
|
i0 = index
|
7630
7910
|
i1 = index
|
7631
|
-
if has_terminal?("x", false, index)
|
7632
|
-
r2 =
|
7633
|
-
@index +=
|
7911
|
+
if (match_len = has_terminal?("x", false, index))
|
7912
|
+
r2 = true
|
7913
|
+
@index += match_len
|
7634
7914
|
else
|
7635
7915
|
terminal_parse_failure("x")
|
7636
7916
|
r2 = nil
|
7637
7917
|
end
|
7638
7918
|
if r2
|
7919
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
7639
7920
|
r1 = r2
|
7640
7921
|
r1.extend(HybridCharacter0)
|
7641
7922
|
else
|
7642
|
-
if has_terminal?("X", false, index)
|
7643
|
-
r3 =
|
7644
|
-
@index +=
|
7923
|
+
if (match_len = has_terminal?("X", false, index))
|
7924
|
+
r3 = true
|
7925
|
+
@index += match_len
|
7645
7926
|
else
|
7646
7927
|
terminal_parse_failure("X")
|
7647
7928
|
r3 = nil
|
7648
7929
|
end
|
7649
7930
|
if r3
|
7931
|
+
r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
|
7650
7932
|
r1 = r3
|
7651
7933
|
r1.extend(HybridCharacter0)
|
7652
7934
|
else
|
@@ -7655,10 +7937,12 @@ module ScientificNameClean
|
|
7655
7937
|
end
|
7656
7938
|
end
|
7657
7939
|
if r1
|
7940
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7658
7941
|
r0 = r1
|
7659
7942
|
else
|
7660
7943
|
r4 = _nt_multiplication_sign
|
7661
7944
|
if r4
|
7945
|
+
r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
|
7662
7946
|
r0 = r4
|
7663
7947
|
else
|
7664
7948
|
@index = i0
|
@@ -7682,32 +7966,34 @@ module ScientificNameClean
|
|
7682
7966
|
if node_cache[:multiplication_sign].has_key?(index)
|
7683
7967
|
cached = node_cache[:multiplication_sign][index]
|
7684
7968
|
if cached
|
7685
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7969
|
+
node_cache[:multiplication_sign][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7686
7970
|
@index = cached.interval.end
|
7687
7971
|
end
|
7688
7972
|
return cached
|
7689
7973
|
end
|
7690
7974
|
|
7691
7975
|
i0 = index
|
7692
|
-
if has_terminal?("×", false, index)
|
7693
|
-
r1 =
|
7694
|
-
@index +=
|
7976
|
+
if (match_len = has_terminal?("×", false, index))
|
7977
|
+
r1 = true
|
7978
|
+
@index += match_len
|
7695
7979
|
else
|
7696
7980
|
terminal_parse_failure("×")
|
7697
7981
|
r1 = nil
|
7698
7982
|
end
|
7699
7983
|
if r1
|
7984
|
+
r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
|
7700
7985
|
r0 = r1
|
7701
7986
|
r0.extend(MultiplicationSign0)
|
7702
7987
|
else
|
7703
|
-
if has_terminal?("*", false, index)
|
7704
|
-
r2 =
|
7705
|
-
@index +=
|
7988
|
+
if (match_len = has_terminal?("*", false, index))
|
7989
|
+
r2 = true
|
7990
|
+
@index += match_len
|
7706
7991
|
else
|
7707
7992
|
terminal_parse_failure("*")
|
7708
7993
|
r2 = nil
|
7709
7994
|
end
|
7710
7995
|
if r2
|
7996
|
+
r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
|
7711
7997
|
r0 = r2
|
7712
7998
|
r0.extend(MultiplicationSign0)
|
7713
7999
|
else
|
@@ -7726,7 +8012,7 @@ module ScientificNameClean
|
|
7726
8012
|
if node_cache[:space].has_key?(index)
|
7727
8013
|
cached = node_cache[:space][index]
|
7728
8014
|
if cached
|
7729
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
8015
|
+
node_cache[:space][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7730
8016
|
@index = cached.interval.end
|
7731
8017
|
end
|
7732
8018
|
return cached
|
@@ -7734,10 +8020,11 @@ module ScientificNameClean
|
|
7734
8020
|
|
7735
8021
|
s0, i0 = [], index
|
7736
8022
|
loop do
|
7737
|
-
if has_terminal?('\
|
8023
|
+
if has_terminal?(@regexps[gr = '\A[\\s]'] ||= Regexp.new(gr), :regexp, index)
|
7738
8024
|
r1 = true
|
7739
8025
|
@index += 1
|
7740
8026
|
else
|
8027
|
+
terminal_parse_failure('[\\s]')
|
7741
8028
|
r1 = nil
|
7742
8029
|
end
|
7743
8030
|
if r1
|
@@ -7758,7 +8045,7 @@ module ScientificNameClean
|
|
7758
8045
|
if node_cache[:space_hard].has_key?(index)
|
7759
8046
|
cached = node_cache[:space_hard][index]
|
7760
8047
|
if cached
|
7761
|
-
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
8048
|
+
node_cache[:space_hard][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
7762
8049
|
@index = cached.interval.end
|
7763
8050
|
end
|
7764
8051
|
return cached
|
@@ -7766,10 +8053,11 @@ module ScientificNameClean
|
|
7766
8053
|
|
7767
8054
|
s0, i0 = [], index
|
7768
8055
|
loop do
|
7769
|
-
if has_terminal?('\
|
8056
|
+
if has_terminal?(@regexps[gr = '\A[\\s]'] ||= Regexp.new(gr), :regexp, index)
|
7770
8057
|
r1 = true
|
7771
8058
|
@index += 1
|
7772
8059
|
else
|
8060
|
+
terminal_parse_failure('[\\s]')
|
7773
8061
|
r1 = nil
|
7774
8062
|
end
|
7775
8063
|
if r1
|