dimus-biodiversity 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/bin/nnparse +1 -1
- data/conf/environment.rb +1 -0
- data/lib/biodiversity/parser.rb +1 -0
- data/lib/biodiversity/parser/scientific_name.rb +158 -157
- data/spec/parser/scientific_name.spec.rb +1 -0
- metadata +2 -10
data/Rakefile
CHANGED
data/bin/nnparse
CHANGED
|
@@ -4,7 +4,7 @@ gem 'dimus-biodiversity' rescue gem 'biodiversity'
|
|
|
4
4
|
|
|
5
5
|
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../lib"))
|
|
6
6
|
require 'biodiversity'
|
|
7
|
-
require 'json
|
|
7
|
+
require 'json'
|
|
8
8
|
|
|
9
9
|
if ARGV.empty?
|
|
10
10
|
puts "Usage:\n\nnnparse file_with_scientific_names [output_file]\n\ndefault output_file is parsed.json\n\n"
|
data/conf/environment.rb
CHANGED
data/lib/biodiversity/parser.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
1
2
|
module ScientificName
|
|
2
3
|
include Treetop::Runtime
|
|
3
4
|
|
|
@@ -109,7 +110,7 @@ module ScientificName
|
|
|
109
110
|
end
|
|
110
111
|
end
|
|
111
112
|
if s1.last
|
|
112
|
-
r1 = (SyntaxNode
|
|
113
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
113
114
|
r1.extend(CompositeScientificName0)
|
|
114
115
|
r1.extend(CompositeScientificName1)
|
|
115
116
|
else
|
|
@@ -133,7 +134,7 @@ module ScientificName
|
|
|
133
134
|
s8 << r12
|
|
134
135
|
if r12
|
|
135
136
|
if input.index(Regexp.new('[\\?]'), index) == index
|
|
136
|
-
r14 = (SyntaxNode
|
|
137
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
137
138
|
@index += 1
|
|
138
139
|
else
|
|
139
140
|
r14 = nil
|
|
@@ -141,7 +142,7 @@ module ScientificName
|
|
|
141
142
|
if r14
|
|
142
143
|
r13 = r14
|
|
143
144
|
else
|
|
144
|
-
r13 = SyntaxNode
|
|
145
|
+
r13 = instantiate_node(SyntaxNode,input, index...index)
|
|
145
146
|
end
|
|
146
147
|
s8 << r13
|
|
147
148
|
end
|
|
@@ -149,7 +150,7 @@ module ScientificName
|
|
|
149
150
|
end
|
|
150
151
|
end
|
|
151
152
|
if s8.last
|
|
152
|
-
r8 = (SyntaxNode
|
|
153
|
+
r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
|
|
153
154
|
r8.extend(CompositeScientificName2)
|
|
154
155
|
r8.extend(CompositeScientificName3)
|
|
155
156
|
else
|
|
@@ -327,7 +328,7 @@ module ScientificName
|
|
|
327
328
|
end
|
|
328
329
|
end
|
|
329
330
|
if s2.last
|
|
330
|
-
r2 = (SyntaxNode
|
|
331
|
+
r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
|
|
331
332
|
r2.extend(ScientificName0)
|
|
332
333
|
r2.extend(ScientificName1)
|
|
333
334
|
else
|
|
@@ -357,7 +358,7 @@ module ScientificName
|
|
|
357
358
|
end
|
|
358
359
|
end
|
|
359
360
|
if s10.last
|
|
360
|
-
r10 = (SyntaxNode
|
|
361
|
+
r10 = instantiate_node(SyntaxNode,input, i10...index, s10)
|
|
361
362
|
r10.extend(ScientificName2)
|
|
362
363
|
r10.extend(ScientificName3)
|
|
363
364
|
else
|
|
@@ -387,7 +388,7 @@ module ScientificName
|
|
|
387
388
|
end
|
|
388
389
|
end
|
|
389
390
|
if s16.last
|
|
390
|
-
r16 = (SyntaxNode
|
|
391
|
+
r16 = instantiate_node(SyntaxNode,input, i16...index, s16)
|
|
391
392
|
r16.extend(ScientificName4)
|
|
392
393
|
r16.extend(ScientificName5)
|
|
393
394
|
else
|
|
@@ -458,7 +459,7 @@ module ScientificName
|
|
|
458
459
|
end
|
|
459
460
|
end
|
|
460
461
|
if s1.last
|
|
461
|
-
r1 = (SyntaxNode
|
|
462
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
462
463
|
r1.extend(StatusPart0)
|
|
463
464
|
r1.extend(StatusPart1)
|
|
464
465
|
else
|
|
@@ -512,7 +513,7 @@ module ScientificName
|
|
|
512
513
|
s1 << r2
|
|
513
514
|
if r2
|
|
514
515
|
if input.index(Regexp.new('[\\.]'), index) == index
|
|
515
|
-
r3 = (SyntaxNode
|
|
516
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
516
517
|
@index += 1
|
|
517
518
|
else
|
|
518
519
|
r3 = nil
|
|
@@ -520,7 +521,7 @@ module ScientificName
|
|
|
520
521
|
s1 << r3
|
|
521
522
|
end
|
|
522
523
|
if s1.last
|
|
523
|
-
r1 = (SyntaxNode
|
|
524
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
524
525
|
r1.extend(StatusWord0)
|
|
525
526
|
r1.extend(StatusWord1)
|
|
526
527
|
else
|
|
@@ -657,7 +658,7 @@ module ScientificName
|
|
|
657
658
|
end
|
|
658
659
|
end
|
|
659
660
|
if s1.last
|
|
660
|
-
r1 = (SyntaxNode
|
|
661
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
661
662
|
r1.extend(NamePartAuthorsMix0)
|
|
662
663
|
r1.extend(NamePartAuthorsMix1)
|
|
663
664
|
else
|
|
@@ -687,7 +688,7 @@ module ScientificName
|
|
|
687
688
|
end
|
|
688
689
|
end
|
|
689
690
|
if s9.last
|
|
690
|
-
r9 = (SyntaxNode
|
|
691
|
+
r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
|
|
691
692
|
r9.extend(NamePartAuthorsMix2)
|
|
692
693
|
r9.extend(NamePartAuthorsMix3)
|
|
693
694
|
else
|
|
@@ -803,7 +804,7 @@ module ScientificName
|
|
|
803
804
|
end
|
|
804
805
|
end
|
|
805
806
|
if s1.last
|
|
806
|
-
r1 = (SyntaxNode
|
|
807
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
807
808
|
r1.extend(AuthorsPart0)
|
|
808
809
|
r1.extend(AuthorsPart1)
|
|
809
810
|
else
|
|
@@ -821,7 +822,7 @@ module ScientificName
|
|
|
821
822
|
s5 << r7
|
|
822
823
|
if r7
|
|
823
824
|
if input.index("ex", index) == index
|
|
824
|
-
r8 = (SyntaxNode
|
|
825
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
825
826
|
@index += 2
|
|
826
827
|
else
|
|
827
828
|
terminal_parse_failure("ex")
|
|
@@ -839,7 +840,7 @@ module ScientificName
|
|
|
839
840
|
end
|
|
840
841
|
end
|
|
841
842
|
if s5.last
|
|
842
|
-
r5 = (SyntaxNode
|
|
843
|
+
r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
|
|
843
844
|
r5.extend(AuthorsPart2)
|
|
844
845
|
r5.extend(AuthorsPart3)
|
|
845
846
|
else
|
|
@@ -861,7 +862,7 @@ module ScientificName
|
|
|
861
862
|
end
|
|
862
863
|
end
|
|
863
864
|
if s11.last
|
|
864
|
-
r11 = (SyntaxNode
|
|
865
|
+
r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
|
|
865
866
|
r11.extend(AuthorsPart4)
|
|
866
867
|
r11.extend(AuthorsPart5)
|
|
867
868
|
else
|
|
@@ -941,7 +942,7 @@ module ScientificName
|
|
|
941
942
|
end
|
|
942
943
|
end
|
|
943
944
|
if s1.last
|
|
944
|
-
r1 = (SyntaxNode
|
|
945
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
945
946
|
r1.extend(SimpleAuthorsPart0)
|
|
946
947
|
r1.extend(SimpleAuthorsPart1)
|
|
947
948
|
else
|
|
@@ -1004,7 +1005,7 @@ module ScientificName
|
|
|
1004
1005
|
|
|
1005
1006
|
i0, s0 = index, []
|
|
1006
1007
|
if input.index("(", index) == index
|
|
1007
|
-
r1 = (SyntaxNode
|
|
1008
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1008
1009
|
@index += 1
|
|
1009
1010
|
else
|
|
1010
1011
|
terminal_parse_failure("(")
|
|
@@ -1022,7 +1023,7 @@ module ScientificName
|
|
|
1022
1023
|
s0 << r4
|
|
1023
1024
|
if r4
|
|
1024
1025
|
if input.index(")", index) == index
|
|
1025
|
-
r5 = (SyntaxNode
|
|
1026
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1026
1027
|
@index += 1
|
|
1027
1028
|
else
|
|
1028
1029
|
terminal_parse_failure(")")
|
|
@@ -1034,7 +1035,7 @@ module ScientificName
|
|
|
1034
1035
|
end
|
|
1035
1036
|
end
|
|
1036
1037
|
if s0.last
|
|
1037
|
-
r0 = (SyntaxNode
|
|
1038
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
1038
1039
|
r0.extend(OriginalAuthorsNamesFull0)
|
|
1039
1040
|
r0.extend(OriginalAuthorsNamesFull1)
|
|
1040
1041
|
else
|
|
@@ -1082,7 +1083,7 @@ module ScientificName
|
|
|
1082
1083
|
|
|
1083
1084
|
i0, s0 = index, []
|
|
1084
1085
|
if input.index("(", index) == index
|
|
1085
|
-
r1 = (SyntaxNode
|
|
1086
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1086
1087
|
@index += 1
|
|
1087
1088
|
else
|
|
1088
1089
|
terminal_parse_failure("(")
|
|
@@ -1100,7 +1101,7 @@ module ScientificName
|
|
|
1100
1101
|
s0 << r4
|
|
1101
1102
|
if r4
|
|
1102
1103
|
if input.index(")", index) == index
|
|
1103
|
-
r5 = (SyntaxNode
|
|
1104
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1104
1105
|
@index += 1
|
|
1105
1106
|
else
|
|
1106
1107
|
terminal_parse_failure(")")
|
|
@@ -1112,7 +1113,7 @@ module ScientificName
|
|
|
1112
1113
|
end
|
|
1113
1114
|
end
|
|
1114
1115
|
if s0.last
|
|
1115
|
-
r0 = (SyntaxNode
|
|
1116
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
1116
1117
|
r0.extend(OriginalAuthorsRevisedName0)
|
|
1117
1118
|
r0.extend(OriginalAuthorsRevisedName1)
|
|
1118
1119
|
else
|
|
@@ -1168,7 +1169,7 @@ module ScientificName
|
|
|
1168
1169
|
s0 << r2
|
|
1169
1170
|
if r2
|
|
1170
1171
|
if input.index("ex", index) == index
|
|
1171
|
-
r3 = (SyntaxNode
|
|
1172
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
1172
1173
|
@index += 2
|
|
1173
1174
|
else
|
|
1174
1175
|
terminal_parse_failure("ex")
|
|
@@ -1186,7 +1187,7 @@ module ScientificName
|
|
|
1186
1187
|
end
|
|
1187
1188
|
end
|
|
1188
1189
|
if s0.last
|
|
1189
|
-
r0 = (SyntaxNode
|
|
1190
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
1190
1191
|
r0.extend(AuthorsRevisedName0)
|
|
1191
1192
|
r0.extend(AuthorsRevisedName1)
|
|
1192
1193
|
else
|
|
@@ -1243,7 +1244,7 @@ module ScientificName
|
|
|
1243
1244
|
s1 << r3
|
|
1244
1245
|
if r3
|
|
1245
1246
|
if input.index(Regexp.new('[,]'), index) == index
|
|
1246
|
-
r5 = (SyntaxNode
|
|
1247
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1247
1248
|
@index += 1
|
|
1248
1249
|
else
|
|
1249
1250
|
r5 = nil
|
|
@@ -1251,7 +1252,7 @@ module ScientificName
|
|
|
1251
1252
|
if r5
|
|
1252
1253
|
r4 = r5
|
|
1253
1254
|
else
|
|
1254
|
-
r4 = SyntaxNode
|
|
1255
|
+
r4 = instantiate_node(SyntaxNode,input, index...index)
|
|
1255
1256
|
end
|
|
1256
1257
|
s1 << r4
|
|
1257
1258
|
if r4
|
|
@@ -1265,7 +1266,7 @@ module ScientificName
|
|
|
1265
1266
|
end
|
|
1266
1267
|
end
|
|
1267
1268
|
if s1.last
|
|
1268
|
-
r1 = (SyntaxNode
|
|
1269
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
1269
1270
|
r1.extend(AuthorsNamesFull0)
|
|
1270
1271
|
r1.extend(AuthorsNamesFull1)
|
|
1271
1272
|
else
|
|
@@ -1350,7 +1351,7 @@ module ScientificName
|
|
|
1350
1351
|
end
|
|
1351
1352
|
end
|
|
1352
1353
|
if s1.last
|
|
1353
|
-
r1 = (SyntaxNode
|
|
1354
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
1354
1355
|
r1.extend(AuthorsNames0)
|
|
1355
1356
|
r1.extend(AuthorsNames1)
|
|
1356
1357
|
else
|
|
@@ -1396,7 +1397,7 @@ module ScientificName
|
|
|
1396
1397
|
|
|
1397
1398
|
i0 = index
|
|
1398
1399
|
if input.index("&", index) == index
|
|
1399
|
-
r1 = (SyntaxNode
|
|
1400
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1400
1401
|
@index += 1
|
|
1401
1402
|
else
|
|
1402
1403
|
terminal_parse_failure("&")
|
|
@@ -1407,7 +1408,7 @@ module ScientificName
|
|
|
1407
1408
|
r0.extend(AuthorNameSeparator0)
|
|
1408
1409
|
else
|
|
1409
1410
|
if input.index(",", index) == index
|
|
1410
|
-
r2 = (SyntaxNode
|
|
1411
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1411
1412
|
@index += 1
|
|
1412
1413
|
else
|
|
1413
1414
|
terminal_parse_failure(",")
|
|
@@ -1488,7 +1489,7 @@ module ScientificName
|
|
|
1488
1489
|
end
|
|
1489
1490
|
end
|
|
1490
1491
|
if s1.last
|
|
1491
|
-
r1 = (SyntaxNode
|
|
1492
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
1492
1493
|
r1.extend(AuthorName0)
|
|
1493
1494
|
r1.extend(AuthorName1)
|
|
1494
1495
|
else
|
|
@@ -1543,7 +1544,7 @@ module ScientificName
|
|
|
1543
1544
|
|
|
1544
1545
|
i0 = index
|
|
1545
1546
|
if input.index("A S. Xu", index) == index
|
|
1546
|
-
r1 = (SyntaxNode
|
|
1547
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
|
1547
1548
|
@index += 7
|
|
1548
1549
|
else
|
|
1549
1550
|
terminal_parse_failure("A S. Xu")
|
|
@@ -1554,7 +1555,7 @@ module ScientificName
|
|
|
1554
1555
|
else
|
|
1555
1556
|
i2 = index
|
|
1556
1557
|
if input.index("anon.", index) == index
|
|
1557
|
-
r3 = (SyntaxNode
|
|
1558
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
|
1558
1559
|
@index += 5
|
|
1559
1560
|
else
|
|
1560
1561
|
terminal_parse_failure("anon.")
|
|
@@ -1565,7 +1566,7 @@ module ScientificName
|
|
|
1565
1566
|
r2.extend(AuthorWord0)
|
|
1566
1567
|
else
|
|
1567
1568
|
if input.index("f.", index) == index
|
|
1568
|
-
r4 = (SyntaxNode
|
|
1569
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
1569
1570
|
@index += 2
|
|
1570
1571
|
else
|
|
1571
1572
|
terminal_parse_failure("f.")
|
|
@@ -1576,7 +1577,7 @@ module ScientificName
|
|
|
1576
1577
|
r2.extend(AuthorWord0)
|
|
1577
1578
|
else
|
|
1578
1579
|
if input.index("bis", index) == index
|
|
1579
|
-
r5 = (SyntaxNode
|
|
1580
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
|
1580
1581
|
@index += 3
|
|
1581
1582
|
else
|
|
1582
1583
|
terminal_parse_failure("bis")
|
|
@@ -1587,7 +1588,7 @@ module ScientificName
|
|
|
1587
1588
|
r2.extend(AuthorWord0)
|
|
1588
1589
|
else
|
|
1589
1590
|
if input.index("arg.", index) == index
|
|
1590
|
-
r6 = (SyntaxNode
|
|
1591
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
|
1591
1592
|
@index += 4
|
|
1592
1593
|
else
|
|
1593
1594
|
terminal_parse_failure("arg.")
|
|
@@ -1598,7 +1599,7 @@ module ScientificName
|
|
|
1598
1599
|
r2.extend(AuthorWord0)
|
|
1599
1600
|
else
|
|
1600
1601
|
if input.index("da", index) == index
|
|
1601
|
-
r7 = (SyntaxNode
|
|
1602
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
1602
1603
|
@index += 2
|
|
1603
1604
|
else
|
|
1604
1605
|
terminal_parse_failure("da")
|
|
@@ -1609,7 +1610,7 @@ module ScientificName
|
|
|
1609
1610
|
r2.extend(AuthorWord0)
|
|
1610
1611
|
else
|
|
1611
1612
|
if input.index("der", index) == index
|
|
1612
|
-
r8 = (SyntaxNode
|
|
1613
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
|
1613
1614
|
@index += 3
|
|
1614
1615
|
else
|
|
1615
1616
|
terminal_parse_failure("der")
|
|
@@ -1620,7 +1621,7 @@ module ScientificName
|
|
|
1620
1621
|
r2.extend(AuthorWord0)
|
|
1621
1622
|
else
|
|
1622
1623
|
if input.index("den", index) == index
|
|
1623
|
-
r9 = (SyntaxNode
|
|
1624
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
|
1624
1625
|
@index += 3
|
|
1625
1626
|
else
|
|
1626
1627
|
terminal_parse_failure("den")
|
|
@@ -1631,7 +1632,7 @@ module ScientificName
|
|
|
1631
1632
|
r2.extend(AuthorWord0)
|
|
1632
1633
|
else
|
|
1633
1634
|
if input.index("de", index) == index
|
|
1634
|
-
r10 = (SyntaxNode
|
|
1635
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
1635
1636
|
@index += 2
|
|
1636
1637
|
else
|
|
1637
1638
|
terminal_parse_failure("de")
|
|
@@ -1642,7 +1643,7 @@ module ScientificName
|
|
|
1642
1643
|
r2.extend(AuthorWord0)
|
|
1643
1644
|
else
|
|
1644
1645
|
if input.index("du", index) == index
|
|
1645
|
-
r11 = (SyntaxNode
|
|
1646
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
1646
1647
|
@index += 2
|
|
1647
1648
|
else
|
|
1648
1649
|
terminal_parse_failure("du")
|
|
@@ -1653,7 +1654,7 @@ module ScientificName
|
|
|
1653
1654
|
r2.extend(AuthorWord0)
|
|
1654
1655
|
else
|
|
1655
1656
|
if input.index("la", index) == index
|
|
1656
|
-
r12 = (SyntaxNode
|
|
1657
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
1657
1658
|
@index += 2
|
|
1658
1659
|
else
|
|
1659
1660
|
terminal_parse_failure("la")
|
|
@@ -1664,7 +1665,7 @@ module ScientificName
|
|
|
1664
1665
|
r2.extend(AuthorWord0)
|
|
1665
1666
|
else
|
|
1666
1667
|
if input.index("ter", index) == index
|
|
1667
|
-
r13 = (SyntaxNode
|
|
1668
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
|
1668
1669
|
@index += 3
|
|
1669
1670
|
else
|
|
1670
1671
|
terminal_parse_failure("ter")
|
|
@@ -1675,7 +1676,7 @@ module ScientificName
|
|
|
1675
1676
|
r2.extend(AuthorWord0)
|
|
1676
1677
|
else
|
|
1677
1678
|
if input.index("van", index) == index
|
|
1678
|
-
r14 = (SyntaxNode
|
|
1679
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 3))
|
|
1679
1680
|
@index += 3
|
|
1680
1681
|
else
|
|
1681
1682
|
terminal_parse_failure("van")
|
|
@@ -1686,7 +1687,7 @@ module ScientificName
|
|
|
1686
1687
|
r2.extend(AuthorWord0)
|
|
1687
1688
|
else
|
|
1688
1689
|
if input.index("et al.\{\?\}", index) == index
|
|
1689
|
-
r15 = (SyntaxNode
|
|
1690
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + 9))
|
|
1690
1691
|
@index += 9
|
|
1691
1692
|
else
|
|
1692
1693
|
terminal_parse_failure("et al.\{\?\}")
|
|
@@ -1697,7 +1698,7 @@ module ScientificName
|
|
|
1697
1698
|
r2.extend(AuthorWord0)
|
|
1698
1699
|
else
|
|
1699
1700
|
if input.index("et al.", index) == index
|
|
1700
|
-
r16 = (SyntaxNode
|
|
1701
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
|
1701
1702
|
@index += 6
|
|
1702
1703
|
else
|
|
1703
1704
|
terminal_parse_failure("et al.")
|
|
@@ -1729,8 +1730,8 @@ module ScientificName
|
|
|
1729
1730
|
i17, s17 = index, []
|
|
1730
1731
|
i18 = index
|
|
1731
1732
|
if input.index("Å", index) == index
|
|
1732
|
-
r19 = (SyntaxNode
|
|
1733
|
-
@index +=
|
|
1733
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1734
|
+
@index += 1
|
|
1734
1735
|
else
|
|
1735
1736
|
terminal_parse_failure("Å")
|
|
1736
1737
|
r19 = nil
|
|
@@ -1739,8 +1740,8 @@ module ScientificName
|
|
|
1739
1740
|
r18 = r19
|
|
1740
1741
|
else
|
|
1741
1742
|
if input.index("Ö", index) == index
|
|
1742
|
-
r20 = (SyntaxNode
|
|
1743
|
-
@index +=
|
|
1743
|
+
r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1744
|
+
@index += 1
|
|
1744
1745
|
else
|
|
1745
1746
|
terminal_parse_failure("Ö")
|
|
1746
1747
|
r20 = nil
|
|
@@ -1749,8 +1750,8 @@ module ScientificName
|
|
|
1749
1750
|
r18 = r20
|
|
1750
1751
|
else
|
|
1751
1752
|
if input.index("Á", index) == index
|
|
1752
|
-
r21 = (SyntaxNode
|
|
1753
|
-
@index +=
|
|
1753
|
+
r21 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1754
|
+
@index += 1
|
|
1754
1755
|
else
|
|
1755
1756
|
terminal_parse_failure("Á")
|
|
1756
1757
|
r21 = nil
|
|
@@ -1759,8 +1760,8 @@ module ScientificName
|
|
|
1759
1760
|
r18 = r21
|
|
1760
1761
|
else
|
|
1761
1762
|
if input.index("Ø", index) == index
|
|
1762
|
-
r22 = (SyntaxNode
|
|
1763
|
-
@index +=
|
|
1763
|
+
r22 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1764
|
+
@index += 1
|
|
1764
1765
|
else
|
|
1765
1766
|
terminal_parse_failure("Ø")
|
|
1766
1767
|
r22 = nil
|
|
@@ -1769,8 +1770,8 @@ module ScientificName
|
|
|
1769
1770
|
r18 = r22
|
|
1770
1771
|
else
|
|
1771
1772
|
if input.index("Ô", index) == index
|
|
1772
|
-
r23 = (SyntaxNode
|
|
1773
|
-
@index +=
|
|
1773
|
+
r23 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1774
|
+
@index += 1
|
|
1774
1775
|
else
|
|
1775
1776
|
terminal_parse_failure("Ô")
|
|
1776
1777
|
r23 = nil
|
|
@@ -1779,8 +1780,8 @@ module ScientificName
|
|
|
1779
1780
|
r18 = r23
|
|
1780
1781
|
else
|
|
1781
1782
|
if input.index("Š", index) == index
|
|
1782
|
-
r24 = (SyntaxNode
|
|
1783
|
-
@index +=
|
|
1783
|
+
r24 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1784
|
+
@index += 1
|
|
1784
1785
|
else
|
|
1785
1786
|
terminal_parse_failure("Š")
|
|
1786
1787
|
r24 = nil
|
|
@@ -1789,8 +1790,8 @@ module ScientificName
|
|
|
1789
1790
|
r18 = r24
|
|
1790
1791
|
else
|
|
1791
1792
|
if input.index("Ś", index) == index
|
|
1792
|
-
r25 = (SyntaxNode
|
|
1793
|
-
@index +=
|
|
1793
|
+
r25 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1794
|
+
@index += 1
|
|
1794
1795
|
else
|
|
1795
1796
|
terminal_parse_failure("Ś")
|
|
1796
1797
|
r25 = nil
|
|
@@ -1799,8 +1800,8 @@ module ScientificName
|
|
|
1799
1800
|
r18 = r25
|
|
1800
1801
|
else
|
|
1801
1802
|
if input.index("Č", index) == index
|
|
1802
|
-
r26 = (SyntaxNode
|
|
1803
|
-
@index +=
|
|
1803
|
+
r26 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1804
|
+
@index += 1
|
|
1804
1805
|
else
|
|
1805
1806
|
terminal_parse_failure("Č")
|
|
1806
1807
|
r26 = nil
|
|
@@ -1809,8 +1810,8 @@ module ScientificName
|
|
|
1809
1810
|
r18 = r26
|
|
1810
1811
|
else
|
|
1811
1812
|
if input.index("Ķ", index) == index
|
|
1812
|
-
r27 = (SyntaxNode
|
|
1813
|
-
@index +=
|
|
1813
|
+
r27 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1814
|
+
@index += 1
|
|
1814
1815
|
else
|
|
1815
1816
|
terminal_parse_failure("Ķ")
|
|
1816
1817
|
r27 = nil
|
|
@@ -1819,8 +1820,8 @@ module ScientificName
|
|
|
1819
1820
|
r18 = r27
|
|
1820
1821
|
else
|
|
1821
1822
|
if input.index("Ł", index) == index
|
|
1822
|
-
r28 = (SyntaxNode
|
|
1823
|
-
@index +=
|
|
1823
|
+
r28 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1824
|
+
@index += 1
|
|
1824
1825
|
else
|
|
1825
1826
|
terminal_parse_failure("Ł")
|
|
1826
1827
|
r28 = nil
|
|
@@ -1829,8 +1830,8 @@ module ScientificName
|
|
|
1829
1830
|
r18 = r28
|
|
1830
1831
|
else
|
|
1831
1832
|
if input.index("É", index) == index
|
|
1832
|
-
r29 = (SyntaxNode
|
|
1833
|
-
@index +=
|
|
1833
|
+
r29 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1834
|
+
@index += 1
|
|
1834
1835
|
else
|
|
1835
1836
|
terminal_parse_failure("É")
|
|
1836
1837
|
r29 = nil
|
|
@@ -1839,8 +1840,8 @@ module ScientificName
|
|
|
1839
1840
|
r18 = r29
|
|
1840
1841
|
else
|
|
1841
1842
|
if input.index("Ž", index) == index
|
|
1842
|
-
r30 = (SyntaxNode
|
|
1843
|
-
@index +=
|
|
1843
|
+
r30 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1844
|
+
@index += 1
|
|
1844
1845
|
else
|
|
1845
1846
|
terminal_parse_failure("Ž")
|
|
1846
1847
|
r30 = nil
|
|
@@ -1849,7 +1850,7 @@ module ScientificName
|
|
|
1849
1850
|
r18 = r30
|
|
1850
1851
|
else
|
|
1851
1852
|
if input.index(Regexp.new('[A-Z]'), index) == index
|
|
1852
|
-
r31 = (SyntaxNode
|
|
1853
|
+
r31 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1853
1854
|
@index += 1
|
|
1854
1855
|
else
|
|
1855
1856
|
r31 = nil
|
|
@@ -1877,7 +1878,7 @@ module ScientificName
|
|
|
1877
1878
|
s32, i32 = [], index
|
|
1878
1879
|
loop do
|
|
1879
1880
|
if input.index(Regexp.new('[^0-9()\\s&,]'), index) == index
|
|
1880
|
-
r33 = (SyntaxNode
|
|
1881
|
+
r33 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
1881
1882
|
@index += 1
|
|
1882
1883
|
else
|
|
1883
1884
|
r33 = nil
|
|
@@ -1892,12 +1893,12 @@ module ScientificName
|
|
|
1892
1893
|
self.index = i32
|
|
1893
1894
|
r32 = nil
|
|
1894
1895
|
else
|
|
1895
|
-
r32 = SyntaxNode
|
|
1896
|
+
r32 = instantiate_node(SyntaxNode,input, i32...index, s32)
|
|
1896
1897
|
end
|
|
1897
1898
|
s17 << r32
|
|
1898
1899
|
end
|
|
1899
1900
|
if s17.last
|
|
1900
|
-
r17 = (SyntaxNode
|
|
1901
|
+
r17 = instantiate_node(SyntaxNode,input, i17...index, s17)
|
|
1901
1902
|
r17.extend(AuthorWord1)
|
|
1902
1903
|
r17.extend(AuthorWord2)
|
|
1903
1904
|
else
|
|
@@ -2053,7 +2054,7 @@ module ScientificName
|
|
|
2053
2054
|
end
|
|
2054
2055
|
end
|
|
2055
2056
|
if s1.last
|
|
2056
|
-
r1 = (SyntaxNode
|
|
2057
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
2057
2058
|
r1.extend(NamePart0)
|
|
2058
2059
|
r1.extend(NamePart1)
|
|
2059
2060
|
else
|
|
@@ -2079,7 +2080,7 @@ module ScientificName
|
|
|
2079
2080
|
end
|
|
2080
2081
|
end
|
|
2081
2082
|
if s8.last
|
|
2082
|
-
r8 = (SyntaxNode
|
|
2083
|
+
r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
|
|
2083
2084
|
r8.extend(NamePart2)
|
|
2084
2085
|
r8.extend(NamePart3)
|
|
2085
2086
|
else
|
|
@@ -2104,14 +2105,14 @@ module ScientificName
|
|
|
2104
2105
|
if r17
|
|
2105
2106
|
i18 = index
|
|
2106
2107
|
if input.index(Regexp.new('[^\\.]'), index) == index
|
|
2107
|
-
r19 = (SyntaxNode
|
|
2108
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2108
2109
|
@index += 1
|
|
2109
2110
|
else
|
|
2110
2111
|
r19 = nil
|
|
2111
2112
|
end
|
|
2112
2113
|
if r19
|
|
2113
2114
|
self.index = i18
|
|
2114
|
-
r18 = SyntaxNode
|
|
2115
|
+
r18 = instantiate_node(SyntaxNode,input, index...index)
|
|
2115
2116
|
else
|
|
2116
2117
|
r18 = nil
|
|
2117
2118
|
end
|
|
@@ -2121,7 +2122,7 @@ module ScientificName
|
|
|
2121
2122
|
end
|
|
2122
2123
|
end
|
|
2123
2124
|
if s13.last
|
|
2124
|
-
r13 = (SyntaxNode
|
|
2125
|
+
r13 = instantiate_node(SyntaxNode,input, i13...index, s13)
|
|
2125
2126
|
r13.extend(NamePart4)
|
|
2126
2127
|
r13.extend(NamePart5)
|
|
2127
2128
|
else
|
|
@@ -2202,7 +2203,7 @@ module ScientificName
|
|
|
2202
2203
|
end
|
|
2203
2204
|
end
|
|
2204
2205
|
if s1.last
|
|
2205
|
-
r1 = (SyntaxNode
|
|
2206
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
2206
2207
|
r1.extend(SubspeciesNames0)
|
|
2207
2208
|
r1.extend(SubspeciesNames1)
|
|
2208
2209
|
else
|
|
@@ -2275,7 +2276,7 @@ module ScientificName
|
|
|
2275
2276
|
end
|
|
2276
2277
|
end
|
|
2277
2278
|
if s0.last
|
|
2278
|
-
r0 = (SyntaxNode
|
|
2279
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
2279
2280
|
r0.extend(SubspeciesName0)
|
|
2280
2281
|
r0.extend(SubspeciesName1)
|
|
2281
2282
|
else
|
|
@@ -2322,7 +2323,7 @@ module ScientificName
|
|
|
2322
2323
|
|
|
2323
2324
|
i0, s0 = index, []
|
|
2324
2325
|
if input.index("(", index) == index
|
|
2325
|
-
r1 = (SyntaxNode
|
|
2326
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2326
2327
|
@index += 1
|
|
2327
2328
|
else
|
|
2328
2329
|
terminal_parse_failure("(")
|
|
@@ -2340,7 +2341,7 @@ module ScientificName
|
|
|
2340
2341
|
s0 << r4
|
|
2341
2342
|
if r4
|
|
2342
2343
|
if input.index(")", index) == index
|
|
2343
|
-
r5 = (SyntaxNode
|
|
2344
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2344
2345
|
@index += 1
|
|
2345
2346
|
else
|
|
2346
2347
|
terminal_parse_failure(")")
|
|
@@ -2352,7 +2353,7 @@ module ScientificName
|
|
|
2352
2353
|
end
|
|
2353
2354
|
end
|
|
2354
2355
|
if s0.last
|
|
2355
|
-
r0 = (SyntaxNode
|
|
2356
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
2356
2357
|
r0.extend(EditorialsFull0)
|
|
2357
2358
|
r0.extend(EditorialsFull1)
|
|
2358
2359
|
else
|
|
@@ -2413,7 +2414,7 @@ module ScientificName
|
|
|
2413
2414
|
s1 << r4
|
|
2414
2415
|
if r4
|
|
2415
2416
|
if input.index(Regexp.new('[&]'), index) == index
|
|
2416
|
-
r6 = (SyntaxNode
|
|
2417
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2417
2418
|
@index += 1
|
|
2418
2419
|
else
|
|
2419
2420
|
r6 = nil
|
|
@@ -2421,7 +2422,7 @@ module ScientificName
|
|
|
2421
2422
|
if r6
|
|
2422
2423
|
r5 = r6
|
|
2423
2424
|
else
|
|
2424
|
-
r5 = SyntaxNode
|
|
2425
|
+
r5 = instantiate_node(SyntaxNode,input, index...index)
|
|
2425
2426
|
end
|
|
2426
2427
|
s1 << r5
|
|
2427
2428
|
if r5
|
|
@@ -2436,7 +2437,7 @@ module ScientificName
|
|
|
2436
2437
|
end
|
|
2437
2438
|
end
|
|
2438
2439
|
if s1.last
|
|
2439
|
-
r1 = (SyntaxNode
|
|
2440
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
2440
2441
|
r1.extend(Editorials0)
|
|
2441
2442
|
r1.extend(Editorials1)
|
|
2442
2443
|
else
|
|
@@ -2485,7 +2486,7 @@ module ScientificName
|
|
|
2485
2486
|
|
|
2486
2487
|
i0 = index
|
|
2487
2488
|
if input.index("f.sp.", index) == index
|
|
2488
|
-
r1 = (SyntaxNode
|
|
2489
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
|
2489
2490
|
@index += 5
|
|
2490
2491
|
else
|
|
2491
2492
|
terminal_parse_failure("f.sp.")
|
|
@@ -2496,7 +2497,7 @@ module ScientificName
|
|
|
2496
2497
|
r0.extend(Rank0)
|
|
2497
2498
|
else
|
|
2498
2499
|
if input.index("f.", index) == index
|
|
2499
|
-
r2 = (SyntaxNode
|
|
2500
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2500
2501
|
@index += 2
|
|
2501
2502
|
else
|
|
2502
2503
|
terminal_parse_failure("f.")
|
|
@@ -2507,7 +2508,7 @@ module ScientificName
|
|
|
2507
2508
|
r0.extend(Rank0)
|
|
2508
2509
|
else
|
|
2509
2510
|
if input.index("B", index) == index
|
|
2510
|
-
r3 = (SyntaxNode
|
|
2511
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2511
2512
|
@index += 1
|
|
2512
2513
|
else
|
|
2513
2514
|
terminal_parse_failure("B")
|
|
@@ -2518,7 +2519,7 @@ module ScientificName
|
|
|
2518
2519
|
r0.extend(Rank0)
|
|
2519
2520
|
else
|
|
2520
2521
|
if input.index("ssp.", index) == index
|
|
2521
|
-
r4 = (SyntaxNode
|
|
2522
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
|
2522
2523
|
@index += 4
|
|
2523
2524
|
else
|
|
2524
2525
|
terminal_parse_failure("ssp.")
|
|
@@ -2529,7 +2530,7 @@ module ScientificName
|
|
|
2529
2530
|
r0.extend(Rank0)
|
|
2530
2531
|
else
|
|
2531
2532
|
if input.index("mut.", index) == index
|
|
2532
|
-
r5 = (SyntaxNode
|
|
2533
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
|
2533
2534
|
@index += 4
|
|
2534
2535
|
else
|
|
2535
2536
|
terminal_parse_failure("mut.")
|
|
@@ -2540,7 +2541,7 @@ module ScientificName
|
|
|
2540
2541
|
r0.extend(Rank0)
|
|
2541
2542
|
else
|
|
2542
2543
|
if input.index("pseudovar.", index) == index
|
|
2543
|
-
r6 = (SyntaxNode
|
|
2544
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 10))
|
|
2544
2545
|
@index += 10
|
|
2545
2546
|
else
|
|
2546
2547
|
terminal_parse_failure("pseudovar.")
|
|
@@ -2551,7 +2552,7 @@ module ScientificName
|
|
|
2551
2552
|
r0.extend(Rank0)
|
|
2552
2553
|
else
|
|
2553
2554
|
if input.index("sect.", index) == index
|
|
2554
|
-
r7 = (SyntaxNode
|
|
2555
|
+
r7 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
|
2555
2556
|
@index += 5
|
|
2556
2557
|
else
|
|
2557
2558
|
terminal_parse_failure("sect.")
|
|
@@ -2562,7 +2563,7 @@ module ScientificName
|
|
|
2562
2563
|
r0.extend(Rank0)
|
|
2563
2564
|
else
|
|
2564
2565
|
if input.index("ser.", index) == index
|
|
2565
|
-
r8 = (SyntaxNode
|
|
2566
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
|
2566
2567
|
@index += 4
|
|
2567
2568
|
else
|
|
2568
2569
|
terminal_parse_failure("ser.")
|
|
@@ -2573,7 +2574,7 @@ module ScientificName
|
|
|
2573
2574
|
r0.extend(Rank0)
|
|
2574
2575
|
else
|
|
2575
2576
|
if input.index("var.", index) == index
|
|
2576
|
-
r9 = (SyntaxNode
|
|
2577
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
|
2577
2578
|
@index += 4
|
|
2578
2579
|
else
|
|
2579
2580
|
terminal_parse_failure("var.")
|
|
@@ -2584,7 +2585,7 @@ module ScientificName
|
|
|
2584
2585
|
r0.extend(Rank0)
|
|
2585
2586
|
else
|
|
2586
2587
|
if input.index("subvar.", index) == index
|
|
2587
|
-
r10 = (SyntaxNode
|
|
2588
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + 7))
|
|
2588
2589
|
@index += 7
|
|
2589
2590
|
else
|
|
2590
2591
|
terminal_parse_failure("subvar.")
|
|
@@ -2595,7 +2596,7 @@ module ScientificName
|
|
|
2595
2596
|
r0.extend(Rank0)
|
|
2596
2597
|
else
|
|
2597
2598
|
if input.index("[var.]", index) == index
|
|
2598
|
-
r11 = (SyntaxNode
|
|
2599
|
+
r11 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
|
2599
2600
|
@index += 6
|
|
2600
2601
|
else
|
|
2601
2602
|
terminal_parse_failure("[var.]")
|
|
@@ -2606,7 +2607,7 @@ module ScientificName
|
|
|
2606
2607
|
r0.extend(Rank0)
|
|
2607
2608
|
else
|
|
2608
2609
|
if input.index("subsp.", index) == index
|
|
2609
|
-
r12 = (SyntaxNode
|
|
2610
|
+
r12 = instantiate_node(SyntaxNode,input, index...(index + 6))
|
|
2610
2611
|
@index += 6
|
|
2611
2612
|
else
|
|
2612
2613
|
terminal_parse_failure("subsp.")
|
|
@@ -2617,7 +2618,7 @@ module ScientificName
|
|
|
2617
2618
|
r0.extend(Rank0)
|
|
2618
2619
|
else
|
|
2619
2620
|
if input.index("subf.", index) == index
|
|
2620
|
-
r13 = (SyntaxNode
|
|
2621
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + 5))
|
|
2621
2622
|
@index += 5
|
|
2622
2623
|
else
|
|
2623
2624
|
terminal_parse_failure("subf.")
|
|
@@ -2628,7 +2629,7 @@ module ScientificName
|
|
|
2628
2629
|
r0.extend(Rank0)
|
|
2629
2630
|
else
|
|
2630
2631
|
if input.index("race", index) == index
|
|
2631
|
-
r14 = (SyntaxNode
|
|
2632
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
|
2632
2633
|
@index += 4
|
|
2633
2634
|
else
|
|
2634
2635
|
terminal_parse_failure("race")
|
|
@@ -2639,8 +2640,8 @@ module ScientificName
|
|
|
2639
2640
|
r0.extend(Rank0)
|
|
2640
2641
|
else
|
|
2641
2642
|
if input.index("α", index) == index
|
|
2642
|
-
r15 = (SyntaxNode
|
|
2643
|
-
@index +=
|
|
2643
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2644
|
+
@index += 1
|
|
2644
2645
|
else
|
|
2645
2646
|
terminal_parse_failure("α")
|
|
2646
2647
|
r15 = nil
|
|
@@ -2650,8 +2651,8 @@ module ScientificName
|
|
|
2650
2651
|
r0.extend(Rank0)
|
|
2651
2652
|
else
|
|
2652
2653
|
if input.index("ββ", index) == index
|
|
2653
|
-
r16 = (SyntaxNode
|
|
2654
|
-
@index +=
|
|
2654
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2655
|
+
@index += 2
|
|
2655
2656
|
else
|
|
2656
2657
|
terminal_parse_failure("ββ")
|
|
2657
2658
|
r16 = nil
|
|
@@ -2661,8 +2662,8 @@ module ScientificName
|
|
|
2661
2662
|
r0.extend(Rank0)
|
|
2662
2663
|
else
|
|
2663
2664
|
if input.index("β", index) == index
|
|
2664
|
-
r17 = (SyntaxNode
|
|
2665
|
-
@index +=
|
|
2665
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2666
|
+
@index += 1
|
|
2666
2667
|
else
|
|
2667
2668
|
terminal_parse_failure("β")
|
|
2668
2669
|
r17 = nil
|
|
@@ -2672,8 +2673,8 @@ module ScientificName
|
|
|
2672
2673
|
r0.extend(Rank0)
|
|
2673
2674
|
else
|
|
2674
2675
|
if input.index("γ", index) == index
|
|
2675
|
-
r18 = (SyntaxNode
|
|
2676
|
-
@index +=
|
|
2676
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2677
|
+
@index += 1
|
|
2677
2678
|
else
|
|
2678
2679
|
terminal_parse_failure("γ")
|
|
2679
2680
|
r18 = nil
|
|
@@ -2683,8 +2684,8 @@ module ScientificName
|
|
|
2683
2684
|
r0.extend(Rank0)
|
|
2684
2685
|
else
|
|
2685
2686
|
if input.index("δ", index) == index
|
|
2686
|
-
r19 = (SyntaxNode
|
|
2687
|
-
@index +=
|
|
2687
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2688
|
+
@index += 1
|
|
2688
2689
|
else
|
|
2689
2690
|
terminal_parse_failure("δ")
|
|
2690
2691
|
r19 = nil
|
|
@@ -2694,8 +2695,8 @@ module ScientificName
|
|
|
2694
2695
|
r0.extend(Rank0)
|
|
2695
2696
|
else
|
|
2696
2697
|
if input.index("ε", index) == index
|
|
2697
|
-
r20 = (SyntaxNode
|
|
2698
|
-
@index +=
|
|
2698
|
+
r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2699
|
+
@index += 1
|
|
2699
2700
|
else
|
|
2700
2701
|
terminal_parse_failure("ε")
|
|
2701
2702
|
r20 = nil
|
|
@@ -2705,8 +2706,8 @@ module ScientificName
|
|
|
2705
2706
|
r0.extend(Rank0)
|
|
2706
2707
|
else
|
|
2707
2708
|
if input.index("φ", index) == index
|
|
2708
|
-
r21 = (SyntaxNode
|
|
2709
|
-
@index +=
|
|
2709
|
+
r21 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2710
|
+
@index += 1
|
|
2710
2711
|
else
|
|
2711
2712
|
terminal_parse_failure("φ")
|
|
2712
2713
|
r21 = nil
|
|
@@ -2716,8 +2717,8 @@ module ScientificName
|
|
|
2716
2717
|
r0.extend(Rank0)
|
|
2717
2718
|
else
|
|
2718
2719
|
if input.index("θ", index) == index
|
|
2719
|
-
r22 = (SyntaxNode
|
|
2720
|
-
@index +=
|
|
2720
|
+
r22 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2721
|
+
@index += 1
|
|
2721
2722
|
else
|
|
2722
2723
|
terminal_parse_failure("θ")
|
|
2723
2724
|
r22 = nil
|
|
@@ -2727,8 +2728,8 @@ module ScientificName
|
|
|
2727
2728
|
r0.extend(Rank0)
|
|
2728
2729
|
else
|
|
2729
2730
|
if input.index("μ", index) == index
|
|
2730
|
-
r23 = (SyntaxNode
|
|
2731
|
-
@index +=
|
|
2731
|
+
r23 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2732
|
+
@index += 1
|
|
2732
2733
|
else
|
|
2733
2734
|
terminal_parse_failure("μ")
|
|
2734
2735
|
r23 = nil
|
|
@@ -2738,7 +2739,7 @@ module ScientificName
|
|
|
2738
2739
|
r0.extend(Rank0)
|
|
2739
2740
|
else
|
|
2740
2741
|
if input.index("a.", index) == index
|
|
2741
|
-
r24 = (SyntaxNode
|
|
2742
|
+
r24 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2742
2743
|
@index += 2
|
|
2743
2744
|
else
|
|
2744
2745
|
terminal_parse_failure("a.")
|
|
@@ -2749,7 +2750,7 @@ module ScientificName
|
|
|
2749
2750
|
r0.extend(Rank0)
|
|
2750
2751
|
else
|
|
2751
2752
|
if input.index("b.", index) == index
|
|
2752
|
-
r25 = (SyntaxNode
|
|
2753
|
+
r25 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2753
2754
|
@index += 2
|
|
2754
2755
|
else
|
|
2755
2756
|
terminal_parse_failure("b.")
|
|
@@ -2760,7 +2761,7 @@ module ScientificName
|
|
|
2760
2761
|
r0.extend(Rank0)
|
|
2761
2762
|
else
|
|
2762
2763
|
if input.index("c.", index) == index
|
|
2763
|
-
r26 = (SyntaxNode
|
|
2764
|
+
r26 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2764
2765
|
@index += 2
|
|
2765
2766
|
else
|
|
2766
2767
|
terminal_parse_failure("c.")
|
|
@@ -2771,7 +2772,7 @@ module ScientificName
|
|
|
2771
2772
|
r0.extend(Rank0)
|
|
2772
2773
|
else
|
|
2773
2774
|
if input.index("d.", index) == index
|
|
2774
|
-
r27 = (SyntaxNode
|
|
2775
|
+
r27 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2775
2776
|
@index += 2
|
|
2776
2777
|
else
|
|
2777
2778
|
terminal_parse_failure("d.")
|
|
@@ -2782,7 +2783,7 @@ module ScientificName
|
|
|
2782
2783
|
r0.extend(Rank0)
|
|
2783
2784
|
else
|
|
2784
2785
|
if input.index("e.", index) == index
|
|
2785
|
-
r28 = (SyntaxNode
|
|
2786
|
+
r28 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2786
2787
|
@index += 2
|
|
2787
2788
|
else
|
|
2788
2789
|
terminal_parse_failure("e.")
|
|
@@ -2793,7 +2794,7 @@ module ScientificName
|
|
|
2793
2794
|
r0.extend(Rank0)
|
|
2794
2795
|
else
|
|
2795
2796
|
if input.index("g.", index) == index
|
|
2796
|
-
r29 = (SyntaxNode
|
|
2797
|
+
r29 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2797
2798
|
@index += 2
|
|
2798
2799
|
else
|
|
2799
2800
|
terminal_parse_failure("g.")
|
|
@@ -2804,7 +2805,7 @@ module ScientificName
|
|
|
2804
2805
|
r0.extend(Rank0)
|
|
2805
2806
|
else
|
|
2806
2807
|
if input.index("k.", index) == index
|
|
2807
|
-
r30 = (SyntaxNode
|
|
2808
|
+
r30 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2808
2809
|
@index += 2
|
|
2809
2810
|
else
|
|
2810
2811
|
terminal_parse_failure("k.")
|
|
@@ -2815,7 +2816,7 @@ module ScientificName
|
|
|
2815
2816
|
r0.extend(Rank0)
|
|
2816
2817
|
else
|
|
2817
2818
|
if input.index("****", index) == index
|
|
2818
|
-
r31 = (SyntaxNode
|
|
2819
|
+
r31 = instantiate_node(SyntaxNode,input, index...(index + 4))
|
|
2819
2820
|
@index += 4
|
|
2820
2821
|
else
|
|
2821
2822
|
terminal_parse_failure("****")
|
|
@@ -2826,7 +2827,7 @@ module ScientificName
|
|
|
2826
2827
|
r0.extend(Rank0)
|
|
2827
2828
|
else
|
|
2828
2829
|
if input.index("**", index) == index
|
|
2829
|
-
r32 = (SyntaxNode
|
|
2830
|
+
r32 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
2830
2831
|
@index += 2
|
|
2831
2832
|
else
|
|
2832
2833
|
terminal_parse_failure("**")
|
|
@@ -2837,7 +2838,7 @@ module ScientificName
|
|
|
2837
2838
|
r0.extend(Rank0)
|
|
2838
2839
|
else
|
|
2839
2840
|
if input.index("*", index) == index
|
|
2840
|
-
r33 = (SyntaxNode
|
|
2841
|
+
r33 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
2841
2842
|
@index += 1
|
|
2842
2843
|
else
|
|
2843
2844
|
terminal_parse_failure("*")
|
|
@@ -3072,7 +3073,7 @@ module ScientificName
|
|
|
3072
3073
|
end
|
|
3073
3074
|
end
|
|
3074
3075
|
if s1.last
|
|
3075
|
-
r1 = (SyntaxNode
|
|
3076
|
+
r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
|
|
3076
3077
|
r1.extend(SpeciesName0)
|
|
3077
3078
|
r1.extend(SpeciesName1)
|
|
3078
3079
|
else
|
|
@@ -3094,7 +3095,7 @@ module ScientificName
|
|
|
3094
3095
|
end
|
|
3095
3096
|
end
|
|
3096
3097
|
if s7.last
|
|
3097
|
-
r7 = (SyntaxNode
|
|
3098
|
+
r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
|
|
3098
3099
|
r7.extend(SpeciesName2)
|
|
3099
3100
|
r7.extend(SpeciesName3)
|
|
3100
3101
|
else
|
|
@@ -3124,7 +3125,7 @@ module ScientificName
|
|
|
3124
3125
|
end
|
|
3125
3126
|
end
|
|
3126
3127
|
if s11.last
|
|
3127
|
-
r11 = (SyntaxNode
|
|
3128
|
+
r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
|
|
3128
3129
|
r11.extend(SpeciesName4)
|
|
3129
3130
|
r11.extend(SpeciesName5)
|
|
3130
3131
|
else
|
|
@@ -3154,7 +3155,7 @@ module ScientificName
|
|
|
3154
3155
|
end
|
|
3155
3156
|
end
|
|
3156
3157
|
if s17.last
|
|
3157
|
-
r17 = (SyntaxNode
|
|
3158
|
+
r17 = instantiate_node(SyntaxNode,input, i17...index, s17)
|
|
3158
3159
|
r17.extend(SpeciesName6)
|
|
3159
3160
|
r17.extend(SpeciesName7)
|
|
3160
3161
|
else
|
|
@@ -3176,7 +3177,7 @@ module ScientificName
|
|
|
3176
3177
|
end
|
|
3177
3178
|
end
|
|
3178
3179
|
if s23.last
|
|
3179
|
-
r23 = (SyntaxNode
|
|
3180
|
+
r23 = instantiate_node(SyntaxNode,input, i23...index, s23)
|
|
3180
3181
|
r23.extend(SpeciesName8)
|
|
3181
3182
|
r23.extend(SpeciesName9)
|
|
3182
3183
|
else
|
|
@@ -3233,7 +3234,7 @@ module ScientificName
|
|
|
3233
3234
|
|
|
3234
3235
|
i0, s0 = index, []
|
|
3235
3236
|
if input.index("(", index) == index
|
|
3236
|
-
r1 = (SyntaxNode
|
|
3237
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3237
3238
|
@index += 1
|
|
3238
3239
|
else
|
|
3239
3240
|
terminal_parse_failure("(")
|
|
@@ -3251,7 +3252,7 @@ module ScientificName
|
|
|
3251
3252
|
s0 << r4
|
|
3252
3253
|
if r4
|
|
3253
3254
|
if input.index(")", index) == index
|
|
3254
|
-
r5 = (SyntaxNode
|
|
3255
|
+
r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3255
3256
|
@index += 1
|
|
3256
3257
|
else
|
|
3257
3258
|
terminal_parse_failure(")")
|
|
@@ -3263,7 +3264,7 @@ module ScientificName
|
|
|
3263
3264
|
end
|
|
3264
3265
|
end
|
|
3265
3266
|
if s0.last
|
|
3266
|
-
r0 = (SyntaxNode
|
|
3267
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
3267
3268
|
r0.extend(Subgenus0)
|
|
3268
3269
|
r0.extend(Subgenus1)
|
|
3269
3270
|
else
|
|
@@ -3295,7 +3296,7 @@ module ScientificName
|
|
|
3295
3296
|
|
|
3296
3297
|
i0, s0 = index, []
|
|
3297
3298
|
if input.index(Regexp.new('[a-zë]'), index) == index
|
|
3298
|
-
r1 = (SyntaxNode
|
|
3299
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3299
3300
|
@index += 1
|
|
3300
3301
|
else
|
|
3301
3302
|
r1 = nil
|
|
@@ -3305,7 +3306,7 @@ module ScientificName
|
|
|
3305
3306
|
s2, i2 = [], index
|
|
3306
3307
|
loop do
|
|
3307
3308
|
if input.index(Regexp.new('[a-z\\-ëüäöï]'), index) == index
|
|
3308
|
-
r3 = (SyntaxNode
|
|
3309
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3309
3310
|
@index += 1
|
|
3310
3311
|
else
|
|
3311
3312
|
r3 = nil
|
|
@@ -3320,12 +3321,12 @@ module ScientificName
|
|
|
3320
3321
|
self.index = i2
|
|
3321
3322
|
r2 = nil
|
|
3322
3323
|
else
|
|
3323
|
-
r2 = SyntaxNode
|
|
3324
|
+
r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
|
|
3324
3325
|
end
|
|
3325
3326
|
s0 << r2
|
|
3326
3327
|
end
|
|
3327
3328
|
if s0.last
|
|
3328
|
-
r0 = (SyntaxNode
|
|
3329
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
3329
3330
|
r0.extend(LatinWord0)
|
|
3330
3331
|
r0.extend(LatinWord1)
|
|
3331
3332
|
else
|
|
@@ -3365,7 +3366,7 @@ module ScientificName
|
|
|
3365
3366
|
|
|
3366
3367
|
i0, s0 = index, []
|
|
3367
3368
|
if input.index(Regexp.new('[A-Z]'), index) == index
|
|
3368
|
-
r1 = (SyntaxNode
|
|
3369
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3369
3370
|
@index += 1
|
|
3370
3371
|
else
|
|
3371
3372
|
r1 = nil
|
|
@@ -3373,7 +3374,7 @@ module ScientificName
|
|
|
3373
3374
|
s0 << r1
|
|
3374
3375
|
if r1
|
|
3375
3376
|
if input.index(Regexp.new('[a-zë]'), index) == index
|
|
3376
|
-
r2 = (SyntaxNode
|
|
3377
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3377
3378
|
@index += 1
|
|
3378
3379
|
else
|
|
3379
3380
|
r2 = nil
|
|
@@ -3383,7 +3384,7 @@ module ScientificName
|
|
|
3383
3384
|
s3, i3 = [], index
|
|
3384
3385
|
loop do
|
|
3385
3386
|
if input.index(Regexp.new('[a-z\\-ëüäöï]'), index) == index
|
|
3386
|
-
r4 = (SyntaxNode
|
|
3387
|
+
r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3387
3388
|
@index += 1
|
|
3388
3389
|
else
|
|
3389
3390
|
r4 = nil
|
|
@@ -3398,13 +3399,13 @@ module ScientificName
|
|
|
3398
3399
|
self.index = i3
|
|
3399
3400
|
r3 = nil
|
|
3400
3401
|
else
|
|
3401
|
-
r3 = SyntaxNode
|
|
3402
|
+
r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
|
|
3402
3403
|
end
|
|
3403
3404
|
s0 << r3
|
|
3404
3405
|
end
|
|
3405
3406
|
end
|
|
3406
3407
|
if s0.last
|
|
3407
|
-
r0 = (SyntaxNode
|
|
3408
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
3408
3409
|
r0.extend(CapLatinWord0)
|
|
3409
3410
|
r0.extend(CapLatinWord1)
|
|
3410
3411
|
else
|
|
@@ -3433,7 +3434,7 @@ module ScientificName
|
|
|
3433
3434
|
|
|
3434
3435
|
i0 = index
|
|
3435
3436
|
if input.index("x", index) == index
|
|
3436
|
-
r1 = (SyntaxNode
|
|
3437
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3437
3438
|
@index += 1
|
|
3438
3439
|
else
|
|
3439
3440
|
terminal_parse_failure("x")
|
|
@@ -3444,7 +3445,7 @@ module ScientificName
|
|
|
3444
3445
|
r0.extend(HybridSeparator0)
|
|
3445
3446
|
else
|
|
3446
3447
|
if input.index("X", index) == index
|
|
3447
|
-
r2 = (SyntaxNode
|
|
3448
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3448
3449
|
@index += 1
|
|
3449
3450
|
else
|
|
3450
3451
|
terminal_parse_failure("X")
|
|
@@ -3455,8 +3456,8 @@ module ScientificName
|
|
|
3455
3456
|
r0.extend(HybridSeparator0)
|
|
3456
3457
|
else
|
|
3457
3458
|
if input.index("×", index) == index
|
|
3458
|
-
r3 = (SyntaxNode
|
|
3459
|
-
@index +=
|
|
3459
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3460
|
+
@index += 1
|
|
3460
3461
|
else
|
|
3461
3462
|
terminal_parse_failure("×")
|
|
3462
3463
|
r3 = nil
|
|
@@ -3496,7 +3497,7 @@ module ScientificName
|
|
|
3496
3497
|
s0, i0 = [], index
|
|
3497
3498
|
loop do
|
|
3498
3499
|
if input.index(Regexp.new('[0-9\\?]'), index) == index
|
|
3499
|
-
r1 = (SyntaxNode
|
|
3500
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3500
3501
|
@index += 1
|
|
3501
3502
|
else
|
|
3502
3503
|
r1 = nil
|
|
@@ -3511,7 +3512,7 @@ module ScientificName
|
|
|
3511
3512
|
self.index = i0
|
|
3512
3513
|
r0 = nil
|
|
3513
3514
|
else
|
|
3514
|
-
r0 = SyntaxNode
|
|
3515
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
3515
3516
|
r0.extend(Year0)
|
|
3516
3517
|
end
|
|
3517
3518
|
|
|
@@ -3531,7 +3532,7 @@ module ScientificName
|
|
|
3531
3532
|
s0, i0 = [], index
|
|
3532
3533
|
loop do
|
|
3533
3534
|
if input.index(Regexp.new('[\\s]'), index) == index
|
|
3534
|
-
r1 = (SyntaxNode
|
|
3535
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3535
3536
|
@index += 1
|
|
3536
3537
|
else
|
|
3537
3538
|
r1 = nil
|
|
@@ -3542,7 +3543,7 @@ module ScientificName
|
|
|
3542
3543
|
break
|
|
3543
3544
|
end
|
|
3544
3545
|
end
|
|
3545
|
-
r0 = SyntaxNode
|
|
3546
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
3546
3547
|
|
|
3547
3548
|
node_cache[:space][start_index] = r0
|
|
3548
3549
|
|
|
@@ -3560,7 +3561,7 @@ module ScientificName
|
|
|
3560
3561
|
s0, i0 = [], index
|
|
3561
3562
|
loop do
|
|
3562
3563
|
if input.index(Regexp.new('[\\s]'), index) == index
|
|
3563
|
-
r1 = (SyntaxNode
|
|
3564
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
3564
3565
|
@index += 1
|
|
3565
3566
|
else
|
|
3566
3567
|
r1 = nil
|
|
@@ -3575,7 +3576,7 @@ module ScientificName
|
|
|
3575
3576
|
self.index = i0
|
|
3576
3577
|
r0 = nil
|
|
3577
3578
|
else
|
|
3578
|
-
r0 = SyntaxNode
|
|
3579
|
+
r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
|
|
3579
3580
|
end
|
|
3580
3581
|
|
|
3581
3582
|
node_cache[:space_hard][start_index] = r0
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dimus-biodiversity
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dmitry Mozzherin
|
|
@@ -14,6 +14,7 @@ default_executable:
|
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: treetop
|
|
17
|
+
type: :runtime
|
|
17
18
|
version_requirement:
|
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
|
19
20
|
requirements:
|
|
@@ -21,15 +22,6 @@ dependencies:
|
|
|
21
22
|
- !ruby/object:Gem::Version
|
|
22
23
|
version: 1.2.4
|
|
23
24
|
version:
|
|
24
|
-
- !ruby/object:Gem::Dependency
|
|
25
|
-
name: json
|
|
26
|
-
version_requirement:
|
|
27
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
28
|
-
requirements:
|
|
29
|
-
- - ">="
|
|
30
|
-
- !ruby/object:Gem::Version
|
|
31
|
-
version: 1.1.3
|
|
32
|
-
version:
|
|
33
25
|
description: Biodiversity library provides a parser tool for scientific species names
|
|
34
26
|
email: dmozzherin {et} eol {dt} org
|
|
35
27
|
executables:
|