dimus-biodiversity 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require 'rake'
4
4
  $LOAD_PATH.unshift(File.join(dir, 'vendor', 'rspec', 'lib'))
5
5
  require 'spec/rake/spectask'
6
6
 
7
- Gem::manage_gems
7
+ #Gem::manage_gems
8
8
  require 'rake/gempackagetask'
9
9
 
10
10
  task :default => :spec
@@ -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/ext'
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"
@@ -1,2 +1,3 @@
1
+
1
2
  #Constants
2
3
  LSID_RESOLVER_URL = "http://lsid.tdwg.org/"
@@ -1,2 +1,3 @@
1
+ # encoding: UTF-8
1
2
  dir = File.dirname(__FILE__)
2
3
  require File.join(dir, *%w[parser scientific_name])
@@ -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).new(input, i1...index, s1)
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).new(input, index...(index + 1))
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.new(input, index...index)
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).new(input, i8...index, s8)
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).new(input, i2...index, s2)
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).new(input, i10...index, s10)
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).new(input, i16...index, s16)
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).new(input, i1...index, s1)
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).new(input, index...(index + 1))
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).new(input, i1...index, s1)
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).new(input, i1...index, s1)
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).new(input, i9...index, s9)
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).new(input, i1...index, s1)
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).new(input, index...(index + 2))
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).new(input, i5...index, s5)
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).new(input, i11...index, s11)
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).new(input, i1...index, s1)
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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).new(input, i0...index, s0)
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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).new(input, i0...index, s0)
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).new(input, index...(index + 2))
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).new(input, i0...index, s0)
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).new(input, index...(index + 1))
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.new(input, index...index)
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).new(input, i1...index, s1)
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).new(input, i1...index, s1)
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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).new(input, i1...index, s1)
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).new(input, index...(index + 7))
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).new(input, index...(index + 5))
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).new(input, index...(index + 2))
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).new(input, index...(index + 3))
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).new(input, index...(index + 4))
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).new(input, index...(index + 2))
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).new(input, index...(index + 3))
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).new(input, index...(index + 3))
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).new(input, index...(index + 2))
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).new(input, index...(index + 2))
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).new(input, index...(index + 2))
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).new(input, index...(index + 3))
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).new(input, index...(index + 3))
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).new(input, index...(index + 9))
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).new(input, index...(index + 6))
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).new(input, index...(index + 2))
1733
- @index += 2
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).new(input, index...(index + 2))
1743
- @index += 2
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).new(input, index...(index + 2))
1753
- @index += 2
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).new(input, index...(index + 2))
1763
- @index += 2
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).new(input, index...(index + 2))
1773
- @index += 2
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).new(input, index...(index + 2))
1783
- @index += 2
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).new(input, index...(index + 2))
1793
- @index += 2
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).new(input, index...(index + 2))
1803
- @index += 2
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).new(input, index...(index + 2))
1813
- @index += 2
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).new(input, index...(index + 2))
1823
- @index += 2
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).new(input, index...(index + 2))
1833
- @index += 2
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).new(input, index...(index + 2))
1843
- @index += 2
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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.new(input, i32...index, s32)
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).new(input, i17...index, s17)
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).new(input, i1...index, s1)
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).new(input, i8...index, s8)
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).new(input, index...(index + 1))
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.new(input, index...index)
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).new(input, i13...index, s13)
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).new(input, i1...index, s1)
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).new(input, i0...index, s0)
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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).new(input, i0...index, s0)
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).new(input, index...(index + 1))
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.new(input, index...index)
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).new(input, i1...index, s1)
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).new(input, index...(index + 5))
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).new(input, index...(index + 2))
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).new(input, index...(index + 1))
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).new(input, index...(index + 4))
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).new(input, index...(index + 4))
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).new(input, index...(index + 10))
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).new(input, index...(index + 5))
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).new(input, index...(index + 4))
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).new(input, index...(index + 4))
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).new(input, index...(index + 7))
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).new(input, index...(index + 6))
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).new(input, index...(index + 6))
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).new(input, index...(index + 5))
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).new(input, index...(index + 4))
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).new(input, index...(index + 2))
2643
- @index += 2
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).new(input, index...(index + 4))
2654
- @index += 4
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).new(input, index...(index + 2))
2665
- @index += 2
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).new(input, index...(index + 2))
2676
- @index += 2
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).new(input, index...(index + 2))
2687
- @index += 2
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).new(input, index...(index + 2))
2698
- @index += 2
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).new(input, index...(index + 2))
2709
- @index += 2
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).new(input, index...(index + 2))
2720
- @index += 2
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).new(input, index...(index + 2))
2731
- @index += 2
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).new(input, index...(index + 2))
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).new(input, index...(index + 2))
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).new(input, index...(index + 2))
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).new(input, index...(index + 2))
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).new(input, index...(index + 2))
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).new(input, index...(index + 2))
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).new(input, index...(index + 2))
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).new(input, index...(index + 4))
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).new(input, index...(index + 2))
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).new(input, index...(index + 1))
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).new(input, i1...index, s1)
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).new(input, i7...index, s7)
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).new(input, i11...index, s11)
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).new(input, i17...index, s17)
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).new(input, i23...index, s23)
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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).new(input, i0...index, s0)
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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.new(input, i2...index, s2)
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).new(input, i0...index, s0)
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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.new(input, i3...index, s3)
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).new(input, i0...index, s0)
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).new(input, index...(index + 1))
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).new(input, index...(index + 1))
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).new(input, index...(index + 2))
3459
- @index += 2
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).new(input, index...(index + 1))
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.new(input, i0...index, s0)
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).new(input, index...(index + 1))
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.new(input, i0...index, s0)
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).new(input, index...(index + 1))
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.new(input, i0...index, s0)
3579
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3579
3580
  end
3580
3581
 
3581
3582
  node_cache[:space_hard][start_index] = r0
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  dir = File.dirname("__FILE__")
2
3
  require 'rubygems'
3
4
  require 'spec'
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.9
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: