dimus-biodiversity 0.5.10 → 0.5.11

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/README.rdoc CHANGED
@@ -21,17 +21,23 @@ You can use it as a library
21
21
 
22
22
  parser = ScientificNameParser.new
23
23
 
24
- # to parse a scientific name
24
+ # to parse a scientific name into a ruby hash
25
25
  parser.parse("Plantago major")
26
26
 
27
+ #to get json representation
28
+ parser.parse("Plantago").to_json
29
+ #or
30
+ parser.parse("Plantago")
31
+ parser.all_json
32
+
27
33
  # to clean name up
28
- parser.parse(" Plantago major ").value
34
+ parser.parse(" Plantago major ")[:normalized]
29
35
 
30
36
  # to get only cleaned up latin part of the name
31
- parser.parse("Pseudocercospora dendrobii (H.C. Burnett) U. Braun & Crous 2003").canonical
37
+ parser.parse("Pseudocercospora dendrobii (H.C. Burnett) U. Braun & Crous 2003")[:canonical]
32
38
 
33
39
  # to get detailed information about elements of the name
34
- parser.parse("Pseudocercospora dendrobii (H.C. Burnett 1883) U. Braun & Crous 2003").details
40
+ parser.parse("Pseudocercospora dendrobii (H.C. Burnett 1883) U. Braun & Crous 2003")[:details]
35
41
 
36
42
  # to resolve lsid and get back RDF file
37
43
  LsidResolver.resolve("urn:lsid:ubio.org:classificationbank:2232671")
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.10
1
+ 0.5.11
data/bin/nnparse CHANGED
@@ -22,7 +22,8 @@ IO.foreach(input) do |line|
22
22
  count += 1
23
23
  puts("%s lines parsed" % count) if count % 10000 == 0
24
24
  name = line.gsub(/^[\d]*\s*/, '').strip
25
- parsed_data = p.parse(name).to_json rescue {'parsed' => false, 'vernacular' => name, 'error' => 'Parser error'}.to_json
25
+ p.parse(name)
26
+ parsed_data = p.parsed.all_json rescue {'parsed' => false, 'vernacular' => name, 'error' => 'Parser error'}.to_json
26
27
  o.write parsed_data + "\n"
27
28
  end
28
29
 
data/bin/parserver ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'socket'
4
+ require 'biodiversity' # Get sockets from stdlib
5
+ parser = ScientificNameParser.new
6
+ server = TCPServer.open(4334) # Socket to listen on port 4334
7
+ loop do # Servers run forever
8
+ client = server.accept # Wait for a client to connect
9
+ while a = client.readline
10
+ client.close if ['end','exit','q', '.'].include? a.strip
11
+ client.puts parser.parse(a).to_json
12
+ end
13
+ end
14
+
@@ -0,0 +1,84 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{biodiversity}
8
+ s.version = "0.5.11"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Dmitry Mozzherin"]
12
+ s.date = %q{2009-08-16}
13
+ s.default_executable = %q{nnparse}
14
+ s.description = %q{Tools for biodiversity informatics}
15
+ s.email = %q{dmozzherin@gmail.com}
16
+ s.executables = ["nnparse"]
17
+ s.extra_rdoc_files = [
18
+ "LICENSE",
19
+ "README.rdoc"
20
+ ]
21
+ s.files = [
22
+ ".document",
23
+ ".gitignore",
24
+ "LICENSE",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "bin/nnparse",
29
+ "bin/parserver",
30
+ "biodiversity.gemspec",
31
+ "conf/environment.rb",
32
+ "lib/biodiversity.rb",
33
+ "lib/biodiversity/guid.rb",
34
+ "lib/biodiversity/guid/lsid.rb",
35
+ "lib/biodiversity/parser.rb",
36
+ "lib/biodiversity/parser/scientific_name_canonical.rb",
37
+ "lib/biodiversity/parser/scientific_name_canonical.treetop",
38
+ "lib/biodiversity/parser/scientific_name_clean.rb",
39
+ "lib/biodiversity/parser/scientific_name_clean.treetop",
40
+ "lib/biodiversity/parser/scientific_name_dirty.rb",
41
+ "lib/biodiversity/parser/scientific_name_dirty.treetop",
42
+ "pkg/.gitignore",
43
+ "spec/biodiversity_spec.rb",
44
+ "spec/guid/lsid.spec.rb",
45
+ "spec/parser/scientific_name.spec.rb",
46
+ "spec/parser/scientific_name_canonical.spec.rb",
47
+ "spec/parser/scientific_name_clean.spec.rb",
48
+ "spec/parser/scientific_name_dirty.spec.rb",
49
+ "spec/parser/spec_helper.rb",
50
+ "spec/parser/test_data.txt",
51
+ "spec/spec_helper.rb"
52
+ ]
53
+ s.homepage = %q{http://github.com/dimus/biodiversity}
54
+ s.rdoc_options = ["--charset=UTF-8"]
55
+ s.require_paths = ["lib"]
56
+ s.rubygems_version = %q{1.3.5}
57
+ s.summary = %q{Parser of scientific names}
58
+ s.test_files = [
59
+ "spec/biodiversity_spec.rb",
60
+ "spec/guid/lsid.spec.rb",
61
+ "spec/parser/scientific_name.spec.rb",
62
+ "spec/parser/scientific_name_canonical.spec.rb",
63
+ "spec/parser/scientific_name_clean.spec.rb",
64
+ "spec/parser/scientific_name_dirty.spec.rb",
65
+ "spec/parser/spec_helper.rb",
66
+ "spec/spec_helper.rb"
67
+ ]
68
+
69
+ if s.respond_to? :specification_version then
70
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
71
+ s.specification_version = 3
72
+
73
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
74
+ s.add_runtime_dependency(%q<treetop>, [">= 0"])
75
+ s.add_development_dependency(%q<rspec>, [">= 0"])
76
+ else
77
+ s.add_dependency(%q<treetop>, [">= 0"])
78
+ s.add_dependency(%q<rspec>, [">= 0"])
79
+ end
80
+ else
81
+ s.add_dependency(%q<treetop>, [">= 0"])
82
+ s.add_dependency(%q<rspec>, [">= 0"])
83
+ end
84
+ end
@@ -13,13 +13,13 @@ class ScientificNameParser
13
13
  @clean = ScientificNameCleanParser.new
14
14
  @dirty = ScientificNameDirtyParser.new
15
15
  @canonical = ScientificNameCanonicalParser.new
16
- @parser = nil
16
+ @parsed = nil
17
17
  end
18
18
 
19
19
  def parse(a_string)
20
20
  @verbatim = a_string
21
- @parser = @clean.parse(a_string) || @dirty.parse(a_string) || @canonical.parse(a_string) || {:verbatim => a_string}
22
- def @parser.to_json
21
+ @parsed = @clean.parse(a_string) || @dirty.parse(a_string) || @canonical.parse(a_string) || {:verbatim => a_string}
22
+ def @parsed.all
23
23
  parsed = self.class != Hash
24
24
  res = {:parsed => parsed}
25
25
  if parsed
@@ -36,13 +36,18 @@ class ScientificNameParser
36
36
  res.merge!(self)
37
37
  end
38
38
  res = {:scientificName => res}
39
- JSON.generate res
39
+ res
40
40
  end
41
41
 
42
- def @parser.pos_json
42
+ def @parsed.pos_json
43
43
  JSON.generate self.pos rescue ''
44
44
  end
45
- @parser
45
+
46
+ def @parsed.all_json
47
+ JSON.generate self.all
48
+ end
49
+
50
+ @parsed.all
46
51
  end
47
52
  end
48
53
 
@@ -49,14 +49,14 @@ module ScientificNameCanonical
49
49
  if r2
50
50
  r0 = r2
51
51
  else
52
- self.index = i0
52
+ @index = i0
53
53
  r0 = nil
54
54
  end
55
55
  end
56
56
 
57
57
  node_cache[:root][start_index] = r0
58
58
 
59
- return r0
59
+ r0
60
60
  end
61
61
 
62
62
  module MultinomialWithGarbage0
@@ -212,7 +212,7 @@ module ScientificNameCanonical
212
212
  r1.extend(MultinomialWithGarbage0)
213
213
  r1.extend(MultinomialWithGarbage1)
214
214
  else
215
- self.index = i1
215
+ @index = i1
216
216
  r1 = nil
217
217
  end
218
218
  if r1
@@ -238,7 +238,7 @@ module ScientificNameCanonical
238
238
  r8.extend(MultinomialWithGarbage2)
239
239
  r8.extend(MultinomialWithGarbage3)
240
240
  else
241
- self.index = i8
241
+ @index = i8
242
242
  r8 = nil
243
243
  end
244
244
  if r8
@@ -264,13 +264,13 @@ module ScientificNameCanonical
264
264
  r13.extend(MultinomialWithGarbage4)
265
265
  r13.extend(MultinomialWithGarbage5)
266
266
  else
267
- self.index = i13
267
+ @index = i13
268
268
  r13 = nil
269
269
  end
270
270
  if r13
271
271
  r0 = r13
272
272
  else
273
- self.index = i0
273
+ @index = i0
274
274
  r0 = nil
275
275
  end
276
276
  end
@@ -278,7 +278,7 @@ module ScientificNameCanonical
278
278
 
279
279
  node_cache[:multinomial_with_garbage][start_index] = r0
280
280
 
281
- return r0
281
+ r0
282
282
  end
283
283
 
284
284
  module UninomialWithGarbage0
@@ -329,13 +329,13 @@ module ScientificNameCanonical
329
329
  r0.extend(UninomialWithGarbage0)
330
330
  r0.extend(UninomialWithGarbage1)
331
331
  else
332
- self.index = i0
332
+ @index = i0
333
333
  r0 = nil
334
334
  end
335
335
 
336
336
  node_cache[:uninomial_with_garbage][start_index] = r0
337
337
 
338
- return r0
338
+ r0
339
339
  end
340
340
 
341
341
  module Garbage0
@@ -369,7 +369,7 @@ module ScientificNameCanonical
369
369
  r2 = _nt_space
370
370
  s1 << r2
371
371
  if r2
372
- if input.index(Regexp.new('["\',.]'), index) == index
372
+ if has_terminal?('\G["\',.]', true, index)
373
373
  r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
374
374
  @index += 1
375
375
  else
@@ -382,7 +382,7 @@ module ScientificNameCanonical
382
382
  if r4
383
383
  s5, i5 = [], index
384
384
  loop do
385
- if input.index(Regexp.new('[^щ]'), index) == index
385
+ if has_terminal?('\G[^щ]', true, index)
386
386
  r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
387
387
  @index += 1
388
388
  else
@@ -403,7 +403,7 @@ module ScientificNameCanonical
403
403
  r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
404
404
  r1.extend(Garbage0)
405
405
  else
406
- self.index = i1
406
+ @index = i1
407
407
  r1 = nil
408
408
  end
409
409
  if r1
@@ -415,7 +415,7 @@ module ScientificNameCanonical
415
415
  if r8
416
416
  s9, i9 = [], index
417
417
  loop do
418
- if input.index(Regexp.new('[^ш]'), index) == index
418
+ if has_terminal?('\G[^ш]', true, index)
419
419
  r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
420
420
  @index += 1
421
421
  else
@@ -428,7 +428,7 @@ module ScientificNameCanonical
428
428
  end
429
429
  end
430
430
  if s9.empty?
431
- self.index = i9
431
+ @index = i9
432
432
  r9 = nil
433
433
  else
434
434
  r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
@@ -439,20 +439,20 @@ module ScientificNameCanonical
439
439
  r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
440
440
  r7.extend(Garbage1)
441
441
  else
442
- self.index = i7
442
+ @index = i7
443
443
  r7 = nil
444
444
  end
445
445
  if r7
446
446
  r0 = r7
447
447
  else
448
- self.index = i0
448
+ @index = i0
449
449
  r0 = nil
450
450
  end
451
451
  end
452
452
 
453
453
  node_cache[:garbage][start_index] = r0
454
454
 
455
- return r0
455
+ r0
456
456
  end
457
457
 
458
458
  end
@@ -66,13 +66,13 @@ module ScientificNameClean
66
66
  r0.extend(Root0)
67
67
  r0.extend(Root1)
68
68
  else
69
- self.index = i0
69
+ @index = i0
70
70
  r0 = nil
71
71
  end
72
72
 
73
73
  node_cache[:root][start_index] = r0
74
74
 
75
- return r0
75
+ r0
76
76
  end
77
77
 
78
78
  module ScientificName50
@@ -152,7 +152,7 @@ module ScientificNameClean
152
152
  r1.extend(ScientificName50)
153
153
  r1.extend(ScientificName51)
154
154
  else
155
- self.index = i1
155
+ @index = i1
156
156
  r1 = nil
157
157
  end
158
158
  if r1
@@ -162,14 +162,14 @@ module ScientificNameClean
162
162
  if r7
163
163
  r0 = r7
164
164
  else
165
- self.index = i0
165
+ @index = i0
166
166
  r0 = nil
167
167
  end
168
168
  end
169
169
 
170
170
  node_cache[:scientific_name_5][start_index] = r0
171
171
 
172
- return r0
172
+ r0
173
173
  end
174
174
 
175
175
  module ScientificName40
@@ -290,7 +290,7 @@ module ScientificNameClean
290
290
  r1.extend(ScientificName40)
291
291
  r1.extend(ScientificName41)
292
292
  else
293
- self.index = i1
293
+ @index = i1
294
294
  r1 = nil
295
295
  end
296
296
  if r1
@@ -309,7 +309,7 @@ module ScientificNameClean
309
309
  r11 = _nt_space
310
310
  s7 << r11
311
311
  if r11
312
- if input.index(Regexp.new('[\\?]'), index) == index
312
+ if has_terminal?('\G[\\?]', true, index)
313
313
  r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
314
314
  @index += 1
315
315
  else
@@ -330,7 +330,7 @@ module ScientificNameClean
330
330
  r7.extend(ScientificName42)
331
331
  r7.extend(ScientificName43)
332
332
  else
333
- self.index = i7
333
+ @index = i7
334
334
  r7 = nil
335
335
  end
336
336
  if r7
@@ -340,7 +340,7 @@ module ScientificNameClean
340
340
  if r14
341
341
  r0 = r14
342
342
  else
343
- self.index = i0
343
+ @index = i0
344
344
  r0 = nil
345
345
  end
346
346
  end
@@ -348,7 +348,7 @@ module ScientificNameClean
348
348
 
349
349
  node_cache[:scientific_name_4][start_index] = r0
350
350
 
351
- return r0
351
+ r0
352
352
  end
353
353
 
354
354
  module ScientificName30
@@ -412,7 +412,7 @@ module ScientificNameClean
412
412
  r1.extend(ScientificName30)
413
413
  r1.extend(ScientificName31)
414
414
  else
415
- self.index = i1
415
+ @index = i1
416
416
  r1 = nil
417
417
  end
418
418
  if r1
@@ -422,14 +422,14 @@ module ScientificNameClean
422
422
  if r5
423
423
  r0 = r5
424
424
  else
425
- self.index = i0
425
+ @index = i0
426
426
  r0 = nil
427
427
  end
428
428
  end
429
429
 
430
430
  node_cache[:scientific_name_3][start_index] = r0
431
431
 
432
- return r0
432
+ r0
433
433
  end
434
434
 
435
435
  module ScientificName20
@@ -493,7 +493,7 @@ module ScientificNameClean
493
493
  r1.extend(ScientificName20)
494
494
  r1.extend(ScientificName21)
495
495
  else
496
- self.index = i1
496
+ @index = i1
497
497
  r1 = nil
498
498
  end
499
499
  if r1
@@ -503,14 +503,14 @@ module ScientificNameClean
503
503
  if r5
504
504
  r0 = r5
505
505
  else
506
- self.index = i0
506
+ @index = i0
507
507
  r0 = nil
508
508
  end
509
509
  end
510
510
 
511
511
  node_cache[:scientific_name_2][start_index] = r0
512
512
 
513
- return r0
513
+ r0
514
514
  end
515
515
 
516
516
  def _nt_scientific_name_1
@@ -530,14 +530,14 @@ module ScientificNameClean
530
530
  if r2
531
531
  r0 = r2
532
532
  else
533
- self.index = i0
533
+ @index = i0
534
534
  r0 = nil
535
535
  end
536
536
  end
537
537
 
538
538
  node_cache[:scientific_name_1][start_index] = r0
539
539
 
540
- return r0
540
+ r0
541
541
  end
542
542
 
543
543
  module StatusPart0
@@ -588,7 +588,7 @@ module ScientificNameClean
588
588
  r1.extend(StatusPart0)
589
589
  r1.extend(StatusPart1)
590
590
  else
591
- self.index = i1
591
+ @index = i1
592
592
  r1 = nil
593
593
  end
594
594
  if r1
@@ -598,14 +598,14 @@ module ScientificNameClean
598
598
  if r5
599
599
  r0 = r5
600
600
  else
601
- self.index = i0
601
+ @index = i0
602
602
  r0 = nil
603
603
  end
604
604
  end
605
605
 
606
606
  node_cache[:status_part][start_index] = r0
607
607
 
608
- return r0
608
+ r0
609
609
  end
610
610
 
611
611
  module StatusWord0
@@ -636,7 +636,7 @@ module ScientificNameClean
636
636
  r1 = _nt_latin_word
637
637
  s0 << r1
638
638
  if r1
639
- if input.index(Regexp.new('[\\.]'), index) == index
639
+ if has_terminal?('\G[\\.]', true, index)
640
640
  r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
641
641
  @index += 1
642
642
  else
@@ -649,13 +649,13 @@ module ScientificNameClean
649
649
  r0.extend(StatusWord0)
650
650
  r0.extend(StatusWord1)
651
651
  else
652
- self.index = i0
652
+ @index = i0
653
653
  r0 = nil
654
654
  end
655
655
 
656
656
  node_cache[:status_word][start_index] = r0
657
657
 
658
- return r0
658
+ r0
659
659
  end
660
660
 
661
661
  module MultinomialName0
@@ -904,7 +904,7 @@ module ScientificNameClean
904
904
  r1.extend(MultinomialName0)
905
905
  r1.extend(MultinomialName1)
906
906
  else
907
- self.index = i1
907
+ @index = i1
908
908
  r1 = nil
909
909
  end
910
910
  if r1
@@ -947,7 +947,7 @@ module ScientificNameClean
947
947
  r12.extend(MultinomialName2)
948
948
  r12.extend(MultinomialName3)
949
949
  else
950
- self.index = i12
950
+ @index = i12
951
951
  r12 = nil
952
952
  end
953
953
  if r12
@@ -990,7 +990,7 @@ module ScientificNameClean
990
990
  r21.extend(MultinomialName4)
991
991
  r21.extend(MultinomialName5)
992
992
  else
993
- self.index = i21
993
+ @index = i21
994
994
  r21 = nil
995
995
  end
996
996
  if r21
@@ -1025,13 +1025,13 @@ module ScientificNameClean
1025
1025
  r30.extend(MultinomialName6)
1026
1026
  r30.extend(MultinomialName7)
1027
1027
  else
1028
- self.index = i30
1028
+ @index = i30
1029
1029
  r30 = nil
1030
1030
  end
1031
1031
  if r30
1032
1032
  r0 = r30
1033
1033
  else
1034
- self.index = i0
1034
+ @index = i0
1035
1035
  r0 = nil
1036
1036
  end
1037
1037
  end
@@ -1040,7 +1040,7 @@ module ScientificNameClean
1040
1040
 
1041
1041
  node_cache[:multinomial_name][start_index] = r0
1042
1042
 
1043
- return r0
1043
+ r0
1044
1044
  end
1045
1045
 
1046
1046
  module InfraspeciesMult0
@@ -1108,7 +1108,7 @@ module ScientificNameClean
1108
1108
  r1.extend(InfraspeciesMult0)
1109
1109
  r1.extend(InfraspeciesMult1)
1110
1110
  else
1111
- self.index = i1
1111
+ @index = i1
1112
1112
  r1 = nil
1113
1113
  end
1114
1114
  if r1
@@ -1119,14 +1119,14 @@ module ScientificNameClean
1119
1119
  if r5
1120
1120
  r0 = r5
1121
1121
  else
1122
- self.index = i0
1122
+ @index = i0
1123
1123
  r0 = nil
1124
1124
  end
1125
1125
  end
1126
1126
 
1127
1127
  node_cache[:infraspecies_mult][start_index] = r0
1128
1128
 
1129
- return r0
1129
+ r0
1130
1130
  end
1131
1131
 
1132
1132
  module Infraspecies0
@@ -1186,7 +1186,7 @@ module ScientificNameClean
1186
1186
  r1.extend(Infraspecies0)
1187
1187
  r1.extend(Infraspecies1)
1188
1188
  else
1189
- self.index = i1
1189
+ @index = i1
1190
1190
  r1 = nil
1191
1191
  end
1192
1192
  if r1
@@ -1196,14 +1196,14 @@ module ScientificNameClean
1196
1196
  if r5
1197
1197
  r0 = r5
1198
1198
  else
1199
- self.index = i0
1199
+ @index = i0
1200
1200
  r0 = nil
1201
1201
  end
1202
1202
  end
1203
1203
 
1204
1204
  node_cache[:infraspecies][start_index] = r0
1205
1205
 
1206
- return r0
1206
+ r0
1207
1207
  end
1208
1208
 
1209
1209
  module InfraspeciesEpitheton0
@@ -1287,7 +1287,7 @@ module ScientificNameClean
1287
1287
  r1.extend(InfraspeciesEpitheton0)
1288
1288
  r1.extend(InfraspeciesEpitheton1)
1289
1289
  else
1290
- self.index = i1
1290
+ @index = i1
1291
1291
  r1 = nil
1292
1292
  end
1293
1293
  if r1
@@ -1298,7 +1298,7 @@ module ScientificNameClean
1298
1298
  s5 << r6
1299
1299
  if r6
1300
1300
  i7 = index
1301
- if input.index(Regexp.new('[\\.]'), index) == index
1301
+ if has_terminal?('\G[\\.]', true, index)
1302
1302
  r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
1303
1303
  @index += 1
1304
1304
  else
@@ -1307,7 +1307,7 @@ module ScientificNameClean
1307
1307
  if r8
1308
1308
  r7 = nil
1309
1309
  else
1310
- self.index = i7
1310
+ @index = i7
1311
1311
  r7 = instantiate_node(SyntaxNode,input, index...index)
1312
1312
  end
1313
1313
  s5 << r7
@@ -1317,20 +1317,20 @@ module ScientificNameClean
1317
1317
  r5.extend(InfraspeciesEpitheton2)
1318
1318
  r5.extend(InfraspeciesEpitheton3)
1319
1319
  else
1320
- self.index = i5
1320
+ @index = i5
1321
1321
  r5 = nil
1322
1322
  end
1323
1323
  if r5
1324
1324
  r0 = r5
1325
1325
  else
1326
- self.index = i0
1326
+ @index = i0
1327
1327
  r0 = nil
1328
1328
  end
1329
1329
  end
1330
1330
 
1331
1331
  node_cache[:infraspecies_epitheton][start_index] = r0
1332
1332
 
1333
- return r0
1333
+ r0
1334
1334
  end
1335
1335
 
1336
1336
  module TaxonConceptRank0
@@ -1354,7 +1354,7 @@ module ScientificNameClean
1354
1354
  end
1355
1355
 
1356
1356
  i0 = index
1357
- if input.index("sec.", index) == index
1357
+ if has_terminal?("sec.", false, index)
1358
1358
  r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
1359
1359
  @index += 4
1360
1360
  else
@@ -1365,7 +1365,7 @@ module ScientificNameClean
1365
1365
  r0 = r1
1366
1366
  r0.extend(TaxonConceptRank0)
1367
1367
  else
1368
- if input.index("sensu.", index) == index
1368
+ if has_terminal?("sensu.", false, index)
1369
1369
  r2 = instantiate_node(SyntaxNode,input, index...(index + 6))
1370
1370
  @index += 6
1371
1371
  else
@@ -1376,14 +1376,14 @@ module ScientificNameClean
1376
1376
  r0 = r2
1377
1377
  r0.extend(TaxonConceptRank0)
1378
1378
  else
1379
- self.index = i0
1379
+ @index = i0
1380
1380
  r0 = nil
1381
1381
  end
1382
1382
  end
1383
1383
 
1384
1384
  node_cache[:taxon_concept_rank][start_index] = r0
1385
1385
 
1386
- return r0
1386
+ r0
1387
1387
  end
1388
1388
 
1389
1389
  module Rank0
@@ -1414,7 +1414,7 @@ module ScientificNameClean
1414
1414
 
1415
1415
  i0 = index
1416
1416
  i1 = index
1417
- if input.index("morph.", index) == index
1417
+ if has_terminal?("morph.", false, index)
1418
1418
  r2 = instantiate_node(SyntaxNode,input, index...(index + 6))
1419
1419
  @index += 6
1420
1420
  else
@@ -1425,7 +1425,7 @@ module ScientificNameClean
1425
1425
  r1 = r2
1426
1426
  r1.extend(Rank0)
1427
1427
  else
1428
- if input.index("f.sp.", index) == index
1428
+ if has_terminal?("f.sp.", false, index)
1429
1429
  r3 = instantiate_node(SyntaxNode,input, index...(index + 5))
1430
1430
  @index += 5
1431
1431
  else
@@ -1436,7 +1436,7 @@ module ScientificNameClean
1436
1436
  r1 = r3
1437
1437
  r1.extend(Rank0)
1438
1438
  else
1439
- if input.index("B", index) == index
1439
+ if has_terminal?("B", false, index)
1440
1440
  r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
1441
1441
  @index += 1
1442
1442
  else
@@ -1447,7 +1447,7 @@ module ScientificNameClean
1447
1447
  r1 = r4
1448
1448
  r1.extend(Rank0)
1449
1449
  else
1450
- if input.index("ssp.", index) == index
1450
+ if has_terminal?("ssp.", false, index)
1451
1451
  r5 = instantiate_node(SyntaxNode,input, index...(index + 4))
1452
1452
  @index += 4
1453
1453
  else
@@ -1458,7 +1458,7 @@ module ScientificNameClean
1458
1458
  r1 = r5
1459
1459
  r1.extend(Rank0)
1460
1460
  else
1461
- if input.index("mut.", index) == index
1461
+ if has_terminal?("mut.", false, index)
1462
1462
  r6 = instantiate_node(SyntaxNode,input, index...(index + 4))
1463
1463
  @index += 4
1464
1464
  else
@@ -1469,7 +1469,7 @@ module ScientificNameClean
1469
1469
  r1 = r6
1470
1470
  r1.extend(Rank0)
1471
1471
  else
1472
- if input.index("nat", index) == index
1472
+ if has_terminal?("nat", false, index)
1473
1473
  r7 = instantiate_node(SyntaxNode,input, index...(index + 3))
1474
1474
  @index += 3
1475
1475
  else
@@ -1480,7 +1480,7 @@ module ScientificNameClean
1480
1480
  r1 = r7
1481
1481
  r1.extend(Rank0)
1482
1482
  else
1483
- if input.index("nothosubsp.", index) == index
1483
+ if has_terminal?("nothosubsp.", false, index)
1484
1484
  r8 = instantiate_node(SyntaxNode,input, index...(index + 11))
1485
1485
  @index += 11
1486
1486
  else
@@ -1491,7 +1491,7 @@ module ScientificNameClean
1491
1491
  r1 = r8
1492
1492
  r1.extend(Rank0)
1493
1493
  else
1494
- if input.index("pseudovar.", index) == index
1494
+ if has_terminal?("pseudovar.", false, index)
1495
1495
  r9 = instantiate_node(SyntaxNode,input, index...(index + 10))
1496
1496
  @index += 10
1497
1497
  else
@@ -1502,7 +1502,7 @@ module ScientificNameClean
1502
1502
  r1 = r9
1503
1503
  r1.extend(Rank0)
1504
1504
  else
1505
- if input.index("sect.", index) == index
1505
+ if has_terminal?("sect.", false, index)
1506
1506
  r10 = instantiate_node(SyntaxNode,input, index...(index + 5))
1507
1507
  @index += 5
1508
1508
  else
@@ -1513,7 +1513,7 @@ module ScientificNameClean
1513
1513
  r1 = r10
1514
1514
  r1.extend(Rank0)
1515
1515
  else
1516
- if input.index("ser.", index) == index
1516
+ if has_terminal?("ser.", false, index)
1517
1517
  r11 = instantiate_node(SyntaxNode,input, index...(index + 4))
1518
1518
  @index += 4
1519
1519
  else
@@ -1524,7 +1524,7 @@ module ScientificNameClean
1524
1524
  r1 = r11
1525
1525
  r1.extend(Rank0)
1526
1526
  else
1527
- if input.index("var.", index) == index
1527
+ if has_terminal?("var.", false, index)
1528
1528
  r12 = instantiate_node(SyntaxNode,input, index...(index + 4))
1529
1529
  @index += 4
1530
1530
  else
@@ -1535,7 +1535,7 @@ module ScientificNameClean
1535
1535
  r1 = r12
1536
1536
  r1.extend(Rank0)
1537
1537
  else
1538
- if input.index("subvar.", index) == index
1538
+ if has_terminal?("subvar.", false, index)
1539
1539
  r13 = instantiate_node(SyntaxNode,input, index...(index + 7))
1540
1540
  @index += 7
1541
1541
  else
@@ -1546,7 +1546,7 @@ module ScientificNameClean
1546
1546
  r1 = r13
1547
1547
  r1.extend(Rank0)
1548
1548
  else
1549
- if input.index("[var.]", index) == index
1549
+ if has_terminal?("[var.]", false, index)
1550
1550
  r14 = instantiate_node(SyntaxNode,input, index...(index + 6))
1551
1551
  @index += 6
1552
1552
  else
@@ -1557,7 +1557,7 @@ module ScientificNameClean
1557
1557
  r1 = r14
1558
1558
  r1.extend(Rank0)
1559
1559
  else
1560
- if input.index("subsp.", index) == index
1560
+ if has_terminal?("subsp.", false, index)
1561
1561
  r15 = instantiate_node(SyntaxNode,input, index...(index + 6))
1562
1562
  @index += 6
1563
1563
  else
@@ -1568,7 +1568,7 @@ module ScientificNameClean
1568
1568
  r1 = r15
1569
1569
  r1.extend(Rank0)
1570
1570
  else
1571
- if input.index("subf.", index) == index
1571
+ if has_terminal?("subf.", false, index)
1572
1572
  r16 = instantiate_node(SyntaxNode,input, index...(index + 5))
1573
1573
  @index += 5
1574
1574
  else
@@ -1579,7 +1579,7 @@ module ScientificNameClean
1579
1579
  r1 = r16
1580
1580
  r1.extend(Rank0)
1581
1581
  else
1582
- if input.index("race", index) == index
1582
+ if has_terminal?("race", false, index)
1583
1583
  r17 = instantiate_node(SyntaxNode,input, index...(index + 4))
1584
1584
  @index += 4
1585
1585
  else
@@ -1590,7 +1590,7 @@ module ScientificNameClean
1590
1590
  r1 = r17
1591
1591
  r1.extend(Rank0)
1592
1592
  else
1593
- if input.index("α", index) == index
1593
+ if has_terminal?("α", false, index)
1594
1594
  r18 = instantiate_node(SyntaxNode,input, index...(index + 2))
1595
1595
  @index += 2
1596
1596
  else
@@ -1601,7 +1601,7 @@ module ScientificNameClean
1601
1601
  r1 = r18
1602
1602
  r1.extend(Rank0)
1603
1603
  else
1604
- if input.index("ββ", index) == index
1604
+ if has_terminal?("ββ", false, index)
1605
1605
  r19 = instantiate_node(SyntaxNode,input, index...(index + 4))
1606
1606
  @index += 4
1607
1607
  else
@@ -1612,7 +1612,7 @@ module ScientificNameClean
1612
1612
  r1 = r19
1613
1613
  r1.extend(Rank0)
1614
1614
  else
1615
- if input.index("β", index) == index
1615
+ if has_terminal?("β", false, index)
1616
1616
  r20 = instantiate_node(SyntaxNode,input, index...(index + 2))
1617
1617
  @index += 2
1618
1618
  else
@@ -1623,7 +1623,7 @@ module ScientificNameClean
1623
1623
  r1 = r20
1624
1624
  r1.extend(Rank0)
1625
1625
  else
1626
- if input.index("γ", index) == index
1626
+ if has_terminal?("γ", false, index)
1627
1627
  r21 = instantiate_node(SyntaxNode,input, index...(index + 2))
1628
1628
  @index += 2
1629
1629
  else
@@ -1634,7 +1634,7 @@ module ScientificNameClean
1634
1634
  r1 = r21
1635
1635
  r1.extend(Rank0)
1636
1636
  else
1637
- if input.index("δ", index) == index
1637
+ if has_terminal?("δ", false, index)
1638
1638
  r22 = instantiate_node(SyntaxNode,input, index...(index + 2))
1639
1639
  @index += 2
1640
1640
  else
@@ -1645,7 +1645,7 @@ module ScientificNameClean
1645
1645
  r1 = r22
1646
1646
  r1.extend(Rank0)
1647
1647
  else
1648
- if input.index("ε", index) == index
1648
+ if has_terminal?("ε", false, index)
1649
1649
  r23 = instantiate_node(SyntaxNode,input, index...(index + 2))
1650
1650
  @index += 2
1651
1651
  else
@@ -1656,7 +1656,7 @@ module ScientificNameClean
1656
1656
  r1 = r23
1657
1657
  r1.extend(Rank0)
1658
1658
  else
1659
- if input.index("φ", index) == index
1659
+ if has_terminal?("φ", false, index)
1660
1660
  r24 = instantiate_node(SyntaxNode,input, index...(index + 2))
1661
1661
  @index += 2
1662
1662
  else
@@ -1667,7 +1667,7 @@ module ScientificNameClean
1667
1667
  r1 = r24
1668
1668
  r1.extend(Rank0)
1669
1669
  else
1670
- if input.index("θ", index) == index
1670
+ if has_terminal?("θ", false, index)
1671
1671
  r25 = instantiate_node(SyntaxNode,input, index...(index + 2))
1672
1672
  @index += 2
1673
1673
  else
@@ -1678,7 +1678,7 @@ module ScientificNameClean
1678
1678
  r1 = r25
1679
1679
  r1.extend(Rank0)
1680
1680
  else
1681
- if input.index("μ", index) == index
1681
+ if has_terminal?("μ", false, index)
1682
1682
  r26 = instantiate_node(SyntaxNode,input, index...(index + 2))
1683
1683
  @index += 2
1684
1684
  else
@@ -1689,7 +1689,7 @@ module ScientificNameClean
1689
1689
  r1 = r26
1690
1690
  r1.extend(Rank0)
1691
1691
  else
1692
- if input.index("a.", index) == index
1692
+ if has_terminal?("a.", false, index)
1693
1693
  r27 = instantiate_node(SyntaxNode,input, index...(index + 2))
1694
1694
  @index += 2
1695
1695
  else
@@ -1700,7 +1700,7 @@ module ScientificNameClean
1700
1700
  r1 = r27
1701
1701
  r1.extend(Rank0)
1702
1702
  else
1703
- if input.index("b.", index) == index
1703
+ if has_terminal?("b.", false, index)
1704
1704
  r28 = instantiate_node(SyntaxNode,input, index...(index + 2))
1705
1705
  @index += 2
1706
1706
  else
@@ -1711,7 +1711,7 @@ module ScientificNameClean
1711
1711
  r1 = r28
1712
1712
  r1.extend(Rank0)
1713
1713
  else
1714
- if input.index("c.", index) == index
1714
+ if has_terminal?("c.", false, index)
1715
1715
  r29 = instantiate_node(SyntaxNode,input, index...(index + 2))
1716
1716
  @index += 2
1717
1717
  else
@@ -1722,7 +1722,7 @@ module ScientificNameClean
1722
1722
  r1 = r29
1723
1723
  r1.extend(Rank0)
1724
1724
  else
1725
- if input.index("d.", index) == index
1725
+ if has_terminal?("d.", false, index)
1726
1726
  r30 = instantiate_node(SyntaxNode,input, index...(index + 2))
1727
1727
  @index += 2
1728
1728
  else
@@ -1733,7 +1733,7 @@ module ScientificNameClean
1733
1733
  r1 = r30
1734
1734
  r1.extend(Rank0)
1735
1735
  else
1736
- if input.index("e.", index) == index
1736
+ if has_terminal?("e.", false, index)
1737
1737
  r31 = instantiate_node(SyntaxNode,input, index...(index + 2))
1738
1738
  @index += 2
1739
1739
  else
@@ -1744,7 +1744,7 @@ module ScientificNameClean
1744
1744
  r1 = r31
1745
1745
  r1.extend(Rank0)
1746
1746
  else
1747
- if input.index("g.", index) == index
1747
+ if has_terminal?("g.", false, index)
1748
1748
  r32 = instantiate_node(SyntaxNode,input, index...(index + 2))
1749
1749
  @index += 2
1750
1750
  else
@@ -1755,7 +1755,7 @@ module ScientificNameClean
1755
1755
  r1 = r32
1756
1756
  r1.extend(Rank0)
1757
1757
  else
1758
- if input.index("k.", index) == index
1758
+ if has_terminal?("k.", false, index)
1759
1759
  r33 = instantiate_node(SyntaxNode,input, index...(index + 2))
1760
1760
  @index += 2
1761
1761
  else
@@ -1766,7 +1766,7 @@ module ScientificNameClean
1766
1766
  r1 = r33
1767
1767
  r1.extend(Rank0)
1768
1768
  else
1769
- if input.index("****", index) == index
1769
+ if has_terminal?("****", false, index)
1770
1770
  r34 = instantiate_node(SyntaxNode,input, index...(index + 4))
1771
1771
  @index += 4
1772
1772
  else
@@ -1777,7 +1777,7 @@ module ScientificNameClean
1777
1777
  r1 = r34
1778
1778
  r1.extend(Rank0)
1779
1779
  else
1780
- if input.index("**", index) == index
1780
+ if has_terminal?("**", false, index)
1781
1781
  r35 = instantiate_node(SyntaxNode,input, index...(index + 2))
1782
1782
  @index += 2
1783
1783
  else
@@ -1788,7 +1788,7 @@ module ScientificNameClean
1788
1788
  r1 = r35
1789
1789
  r1.extend(Rank0)
1790
1790
  else
1791
- if input.index("*", index) == index
1791
+ if has_terminal?("*", false, index)
1792
1792
  r36 = instantiate_node(SyntaxNode,input, index...(index + 1))
1793
1793
  @index += 1
1794
1794
  else
@@ -1799,7 +1799,7 @@ module ScientificNameClean
1799
1799
  r1 = r36
1800
1800
  r1.extend(Rank0)
1801
1801
  else
1802
- self.index = i1
1802
+ @index = i1
1803
1803
  r1 = nil
1804
1804
  end
1805
1805
  end
@@ -1843,14 +1843,14 @@ module ScientificNameClean
1843
1843
  if r37
1844
1844
  r0 = r37
1845
1845
  else
1846
- self.index = i0
1846
+ @index = i0
1847
1847
  r0 = nil
1848
1848
  end
1849
1849
  end
1850
1850
 
1851
1851
  node_cache[:rank][start_index] = r0
1852
1852
 
1853
- return r0
1853
+ r0
1854
1854
  end
1855
1855
 
1856
1856
  module RankForma0
@@ -1877,7 +1877,7 @@ module ScientificNameClean
1877
1877
  end
1878
1878
 
1879
1879
  i0 = index
1880
- if input.index("forma", index) == index
1880
+ if has_terminal?("forma", false, index)
1881
1881
  r1 = instantiate_node(SyntaxNode,input, index...(index + 5))
1882
1882
  @index += 5
1883
1883
  else
@@ -1888,7 +1888,7 @@ module ScientificNameClean
1888
1888
  r0 = r1
1889
1889
  r0.extend(RankForma0)
1890
1890
  else
1891
- if input.index("form.", index) == index
1891
+ if has_terminal?("form.", false, index)
1892
1892
  r2 = instantiate_node(SyntaxNode,input, index...(index + 5))
1893
1893
  @index += 5
1894
1894
  else
@@ -1899,7 +1899,7 @@ module ScientificNameClean
1899
1899
  r0 = r2
1900
1900
  r0.extend(RankForma0)
1901
1901
  else
1902
- if input.index("fo.", index) == index
1902
+ if has_terminal?("fo.", false, index)
1903
1903
  r3 = instantiate_node(SyntaxNode,input, index...(index + 3))
1904
1904
  @index += 3
1905
1905
  else
@@ -1910,7 +1910,7 @@ module ScientificNameClean
1910
1910
  r0 = r3
1911
1911
  r0.extend(RankForma0)
1912
1912
  else
1913
- if input.index("f.", index) == index
1913
+ if has_terminal?("f.", false, index)
1914
1914
  r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
1915
1915
  @index += 2
1916
1916
  else
@@ -1921,7 +1921,7 @@ module ScientificNameClean
1921
1921
  r0 = r4
1922
1922
  r0.extend(RankForma0)
1923
1923
  else
1924
- self.index = i0
1924
+ @index = i0
1925
1925
  r0 = nil
1926
1926
  end
1927
1927
  end
@@ -1930,7 +1930,7 @@ module ScientificNameClean
1930
1930
 
1931
1931
  node_cache[:rank_forma][start_index] = r0
1932
1932
 
1933
- return r0
1933
+ r0
1934
1934
  end
1935
1935
 
1936
1936
  module Species0
@@ -1994,7 +1994,7 @@ module ScientificNameClean
1994
1994
  r1.extend(Species0)
1995
1995
  r1.extend(Species1)
1996
1996
  else
1997
- self.index = i1
1997
+ @index = i1
1998
1998
  r1 = nil
1999
1999
  end
2000
2000
  if r1
@@ -2004,14 +2004,14 @@ module ScientificNameClean
2004
2004
  if r5
2005
2005
  r0 = r5
2006
2006
  else
2007
- self.index = i0
2007
+ @index = i0
2008
2008
  r0 = nil
2009
2009
  end
2010
2010
  end
2011
2011
 
2012
2012
  node_cache[:species][start_index] = r0
2013
2013
 
2014
- return r0
2014
+ r0
2015
2015
  end
2016
2016
 
2017
2017
  module SpeciesEpitheton0
@@ -2104,11 +2104,11 @@ module ScientificNameClean
2104
2104
  r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
2105
2105
  r4.extend(SpeciesEpitheton0)
2106
2106
  else
2107
- self.index = i4
2107
+ @index = i4
2108
2108
  r4 = nil
2109
2109
  end
2110
2110
  if r4
2111
- self.index = i3
2111
+ @index = i3
2112
2112
  r3 = instantiate_node(SyntaxNode,input, index...index)
2113
2113
  else
2114
2114
  r3 = nil
@@ -2120,7 +2120,7 @@ module ScientificNameClean
2120
2120
  r1.extend(SpeciesEpitheton1)
2121
2121
  r1.extend(SpeciesEpitheton2)
2122
2122
  else
2123
- self.index = i1
2123
+ @index = i1
2124
2124
  r1 = nil
2125
2125
  end
2126
2126
  if r1
@@ -2135,7 +2135,7 @@ module ScientificNameClean
2135
2135
  if r9
2136
2136
  r0 = r9
2137
2137
  else
2138
- self.index = i0
2138
+ @index = i0
2139
2139
  r0 = nil
2140
2140
  end
2141
2141
  end
@@ -2143,7 +2143,7 @@ module ScientificNameClean
2143
2143
 
2144
2144
  node_cache[:species_epitheton][start_index] = r0
2145
2145
 
2146
- return r0
2146
+ r0
2147
2147
  end
2148
2148
 
2149
2149
  module Subgenus0
@@ -2218,13 +2218,13 @@ module ScientificNameClean
2218
2218
  r0.extend(Subgenus0)
2219
2219
  r0.extend(Subgenus1)
2220
2220
  else
2221
- self.index = i0
2221
+ @index = i0
2222
2222
  r0 = nil
2223
2223
  end
2224
2224
 
2225
2225
  node_cache[:subgenus][start_index] = r0
2226
2226
 
2227
- return r0
2227
+ r0
2228
2228
  end
2229
2229
 
2230
2230
  module Genus0
@@ -2302,13 +2302,13 @@ module ScientificNameClean
2302
2302
  r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
2303
2303
  r3.extend(Genus0)
2304
2304
  else
2305
- self.index = i3
2305
+ @index = i3
2306
2306
  r3 = nil
2307
2307
  end
2308
2308
  if r3
2309
2309
  r2 = nil
2310
2310
  else
2311
- self.index = i2
2311
+ @index = i2
2312
2312
  r2 = instantiate_node(SyntaxNode,input, index...index)
2313
2313
  end
2314
2314
  s0 << r2
@@ -2318,13 +2318,13 @@ module ScientificNameClean
2318
2318
  r0.extend(Genus1)
2319
2319
  r0.extend(Genus2)
2320
2320
  else
2321
- self.index = i0
2321
+ @index = i0
2322
2322
  r0 = nil
2323
2323
  end
2324
2324
 
2325
2325
  node_cache[:genus][start_index] = r0
2326
2326
 
2327
- return r0
2327
+ r0
2328
2328
  end
2329
2329
 
2330
2330
  module UninomialName0
@@ -2388,7 +2388,7 @@ module ScientificNameClean
2388
2388
  r1.extend(UninomialName0)
2389
2389
  r1.extend(UninomialName1)
2390
2390
  else
2391
- self.index = i1
2391
+ @index = i1
2392
2392
  r1 = nil
2393
2393
  end
2394
2394
  if r1
@@ -2398,14 +2398,14 @@ module ScientificNameClean
2398
2398
  if r5
2399
2399
  r0 = r5
2400
2400
  else
2401
- self.index = i0
2401
+ @index = i0
2402
2402
  r0 = nil
2403
2403
  end
2404
2404
  end
2405
2405
 
2406
2406
  node_cache[:uninomial_name][start_index] = r0
2407
2407
 
2408
- return r0
2408
+ r0
2409
2409
  end
2410
2410
 
2411
2411
  module UninomialEpitheton0
@@ -2439,7 +2439,7 @@ module ScientificNameClean
2439
2439
 
2440
2440
  node_cache[:uninomial_epitheton][start_index] = r0
2441
2441
 
2442
- return r0
2442
+ r0
2443
2443
  end
2444
2444
 
2445
2445
  module Authorship0
@@ -2558,7 +2558,7 @@ module ScientificNameClean
2558
2558
  r4 = _nt_simple_authorship
2559
2559
  s1 << r4
2560
2560
  if r4
2561
- if input.index(",", index) == index
2561
+ if has_terminal?(",", false, index)
2562
2562
  r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
2563
2563
  @index += 1
2564
2564
  else
@@ -2587,7 +2587,7 @@ module ScientificNameClean
2587
2587
  r1.extend(Authorship0)
2588
2588
  r1.extend(Authorship1)
2589
2589
  else
2590
- self.index = i1
2590
+ @index = i1
2591
2591
  r1 = nil
2592
2592
  end
2593
2593
  if r1
@@ -2609,7 +2609,7 @@ module ScientificNameClean
2609
2609
  r9.extend(Authorship2)
2610
2610
  r9.extend(Authorship3)
2611
2611
  else
2612
- self.index = i9
2612
+ @index = i9
2613
2613
  r9 = nil
2614
2614
  end
2615
2615
  if r9
@@ -2623,7 +2623,7 @@ module ScientificNameClean
2623
2623
  r15 = _nt_simple_authorship
2624
2624
  s14 << r15
2625
2625
  if r15
2626
- if input.index(",", index) == index
2626
+ if has_terminal?(",", false, index)
2627
2627
  r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
2628
2628
  @index += 1
2629
2629
  else
@@ -2650,7 +2650,7 @@ module ScientificNameClean
2650
2650
  r14.extend(Authorship4)
2651
2651
  r14.extend(Authorship5)
2652
2652
  else
2653
- self.index = i14
2653
+ @index = i14
2654
2654
  r14 = nil
2655
2655
  end
2656
2656
  if r14
@@ -2660,7 +2660,7 @@ module ScientificNameClean
2660
2660
  if r20
2661
2661
  r0 = r20
2662
2662
  else
2663
- self.index = i0
2663
+ @index = i0
2664
2664
  r0 = nil
2665
2665
  end
2666
2666
  end
@@ -2670,7 +2670,7 @@ module ScientificNameClean
2670
2670
 
2671
2671
  node_cache[:authorship][start_index] = r0
2672
2672
 
2673
- return r0
2673
+ r0
2674
2674
  end
2675
2675
 
2676
2676
  module BasionymAuthorshipWithParenthesis0
@@ -2872,7 +2872,7 @@ module ScientificNameClean
2872
2872
  r7 = _nt_space
2873
2873
  s1 << r7
2874
2874
  if r7
2875
- if input.index(Regexp.new('[,]'), index) == index
2875
+ if has_terminal?('\G[,]', true, index)
2876
2876
  r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
2877
2877
  @index += 1
2878
2878
  else
@@ -2903,7 +2903,7 @@ module ScientificNameClean
2903
2903
  r1.extend(BasionymAuthorshipWithParenthesis0)
2904
2904
  r1.extend(BasionymAuthorshipWithParenthesis1)
2905
2905
  else
2906
- self.index = i1
2906
+ @index = i1
2907
2907
  r1 = nil
2908
2908
  end
2909
2909
  if r1
@@ -2919,7 +2919,7 @@ module ScientificNameClean
2919
2919
  r15 = _nt_simple_authorship
2920
2920
  s12 << r15
2921
2921
  if r15
2922
- if input.index(",", index) == index
2922
+ if has_terminal?(",", false, index)
2923
2923
  r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
2924
2924
  @index += 1
2925
2925
  else
@@ -2956,7 +2956,7 @@ module ScientificNameClean
2956
2956
  r12.extend(BasionymAuthorshipWithParenthesis2)
2957
2957
  r12.extend(BasionymAuthorshipWithParenthesis3)
2958
2958
  else
2959
- self.index = i12
2959
+ @index = i12
2960
2960
  r12 = nil
2961
2961
  end
2962
2962
  if r12
@@ -2986,7 +2986,7 @@ module ScientificNameClean
2986
2986
  r22.extend(BasionymAuthorshipWithParenthesis4)
2987
2987
  r22.extend(BasionymAuthorshipWithParenthesis5)
2988
2988
  else
2989
- self.index = i22
2989
+ @index = i22
2990
2990
  r22 = nil
2991
2991
  end
2992
2992
  if r22
@@ -2999,7 +2999,7 @@ module ScientificNameClean
2999
2999
  r30 = _nt_space
3000
3000
  s28 << r30
3001
3001
  if r30
3002
- if input.index("?", index) == index
3002
+ if has_terminal?("?", false, index)
3003
3003
  r31 = instantiate_node(SyntaxNode,input, index...(index + 1))
3004
3004
  @index += 1
3005
3005
  else
@@ -3022,13 +3022,13 @@ module ScientificNameClean
3022
3022
  r28.extend(BasionymAuthorshipWithParenthesis6)
3023
3023
  r28.extend(BasionymAuthorshipWithParenthesis7)
3024
3024
  else
3025
- self.index = i28
3025
+ @index = i28
3026
3026
  r28 = nil
3027
3027
  end
3028
3028
  if r28
3029
3029
  r0 = r28
3030
3030
  else
3031
- self.index = i0
3031
+ @index = i0
3032
3032
  r0 = nil
3033
3033
  end
3034
3034
  end
@@ -3037,7 +3037,7 @@ module ScientificNameClean
3037
3037
 
3038
3038
  node_cache[:basionym_authorship_with_parenthesis][start_index] = r0
3039
3039
 
3040
- return r0
3040
+ r0
3041
3041
  end
3042
3042
 
3043
3043
  module ExAuthorship0
@@ -3093,13 +3093,13 @@ module ScientificNameClean
3093
3093
  r0.extend(ExAuthorship0)
3094
3094
  r0.extend(ExAuthorship1)
3095
3095
  else
3096
- self.index = i0
3096
+ @index = i0
3097
3097
  r0 = nil
3098
3098
  end
3099
3099
 
3100
3100
  node_cache[:ex_authorship][start_index] = r0
3101
3101
 
3102
- return r0
3102
+ r0
3103
3103
  end
3104
3104
 
3105
3105
  module SimpleAuthorship0
@@ -3238,7 +3238,7 @@ module ScientificNameClean
3238
3238
  r3 = _nt_space
3239
3239
  s1 << r3
3240
3240
  if r3
3241
- if input.index(Regexp.new('[,]'), index) == index
3241
+ if has_terminal?('\G[,]', true, index)
3242
3242
  r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
3243
3243
  @index += 1
3244
3244
  else
@@ -3262,7 +3262,7 @@ module ScientificNameClean
3262
3262
  end
3263
3263
  s1 << r7
3264
3264
  if r7
3265
- if input.index(Regexp.new('[,]'), index) == index
3265
+ if has_terminal?('\G[,]', true, index)
3266
3266
  r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
3267
3267
  @index += 1
3268
3268
  else
@@ -3278,7 +3278,7 @@ module ScientificNameClean
3278
3278
  r11 = _nt_space
3279
3279
  s1 << r11
3280
3280
  if r11
3281
- if input.index("non", index) == index
3281
+ if has_terminal?("non", false, index)
3282
3282
  r12 = instantiate_node(SyntaxNode,input, index...(index + 3))
3283
3283
  @index += 3
3284
3284
  else
@@ -3296,7 +3296,7 @@ module ScientificNameClean
3296
3296
  r15 = _nt_space
3297
3297
  s1 << r15
3298
3298
  if r15
3299
- if input.index(Regexp.new('[,]'), index) == index
3299
+ if has_terminal?('\G[,]', true, index)
3300
3300
  r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
3301
3301
  @index += 1
3302
3302
  else
@@ -3332,7 +3332,7 @@ module ScientificNameClean
3332
3332
  r1.extend(SimpleAuthorship0)
3333
3333
  r1.extend(SimpleAuthorship1)
3334
3334
  else
3335
- self.index = i1
3335
+ @index = i1
3336
3336
  r1 = nil
3337
3337
  end
3338
3338
  if r1
@@ -3345,7 +3345,7 @@ module ScientificNameClean
3345
3345
  r22 = _nt_space
3346
3346
  s20 << r22
3347
3347
  if r22
3348
- if input.index(Regexp.new('[,]'), index) == index
3348
+ if has_terminal?('\G[,]', true, index)
3349
3349
  r24 = instantiate_node(SyntaxNode,input, index...(index + 1))
3350
3350
  @index += 1
3351
3351
  else
@@ -3372,7 +3372,7 @@ module ScientificNameClean
3372
3372
  r20.extend(SimpleAuthorship2)
3373
3373
  r20.extend(SimpleAuthorship3)
3374
3374
  else
3375
- self.index = i20
3375
+ @index = i20
3376
3376
  r20 = nil
3377
3377
  end
3378
3378
  if r20
@@ -3383,7 +3383,7 @@ module ScientificNameClean
3383
3383
  if r27
3384
3384
  r0 = r27
3385
3385
  else
3386
- self.index = i0
3386
+ @index = i0
3387
3387
  r0 = nil
3388
3388
  end
3389
3389
  end
@@ -3391,7 +3391,7 @@ module ScientificNameClean
3391
3391
 
3392
3392
  node_cache[:simple_authorship][start_index] = r0
3393
3393
 
3394
- return r0
3394
+ r0
3395
3395
  end
3396
3396
 
3397
3397
  module AuthorsNames0
@@ -3463,7 +3463,7 @@ module ScientificNameClean
3463
3463
  r1.extend(AuthorsNames0)
3464
3464
  r1.extend(AuthorsNames1)
3465
3465
  else
3466
- self.index = i1
3466
+ @index = i1
3467
3467
  r1 = nil
3468
3468
  end
3469
3469
  if r1
@@ -3477,7 +3477,7 @@ module ScientificNameClean
3477
3477
  if r8
3478
3478
  r0 = r8
3479
3479
  else
3480
- self.index = i0
3480
+ @index = i0
3481
3481
  r0 = nil
3482
3482
  end
3483
3483
  end
@@ -3485,7 +3485,7 @@ module ScientificNameClean
3485
3485
 
3486
3486
  node_cache[:authors_names][start_index] = r0
3487
3487
 
3488
- return r0
3488
+ r0
3489
3489
  end
3490
3490
 
3491
3491
  module UnknownAuth0
@@ -3511,7 +3511,7 @@ module ScientificNameClean
3511
3511
  end
3512
3512
 
3513
3513
  i0 = index
3514
- if input.index("auct.", index) == index
3514
+ if has_terminal?("auct.", false, index)
3515
3515
  r1 = instantiate_node(SyntaxNode,input, index...(index + 5))
3516
3516
  @index += 5
3517
3517
  else
@@ -3522,7 +3522,7 @@ module ScientificNameClean
3522
3522
  r0 = r1
3523
3523
  r0.extend(UnknownAuth0)
3524
3524
  else
3525
- if input.index("hort.", index) == index
3525
+ if has_terminal?("hort.", false, index)
3526
3526
  r2 = instantiate_node(SyntaxNode,input, index...(index + 5))
3527
3527
  @index += 5
3528
3528
  else
@@ -3533,7 +3533,7 @@ module ScientificNameClean
3533
3533
  r0 = r2
3534
3534
  r0.extend(UnknownAuth0)
3535
3535
  else
3536
- if input.index("anon.", index) == index
3536
+ if has_terminal?("anon.", false, index)
3537
3537
  r3 = instantiate_node(SyntaxNode,input, index...(index + 5))
3538
3538
  @index += 5
3539
3539
  else
@@ -3544,7 +3544,7 @@ module ScientificNameClean
3544
3544
  r0 = r3
3545
3545
  r0.extend(UnknownAuth0)
3546
3546
  else
3547
- if input.index("ht.", index) == index
3547
+ if has_terminal?("ht.", false, index)
3548
3548
  r4 = instantiate_node(SyntaxNode,input, index...(index + 3))
3549
3549
  @index += 3
3550
3550
  else
@@ -3555,7 +3555,7 @@ module ScientificNameClean
3555
3555
  r0 = r4
3556
3556
  r0.extend(UnknownAuth0)
3557
3557
  else
3558
- self.index = i0
3558
+ @index = i0
3559
3559
  r0 = nil
3560
3560
  end
3561
3561
  end
@@ -3564,7 +3564,7 @@ module ScientificNameClean
3564
3564
 
3565
3565
  node_cache[:unknown_auth][start_index] = r0
3566
3566
 
3567
- return r0
3567
+ r0
3568
3568
  end
3569
3569
 
3570
3570
  module ExSep0
@@ -3580,7 +3580,7 @@ module ScientificNameClean
3580
3580
 
3581
3581
  i0, s0 = index, []
3582
3582
  i1 = index
3583
- if input.index("ex", index) == index
3583
+ if has_terminal?("ex", false, index)
3584
3584
  r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
3585
3585
  @index += 2
3586
3586
  else
@@ -3590,7 +3590,7 @@ module ScientificNameClean
3590
3590
  if r2
3591
3591
  r1 = r2
3592
3592
  else
3593
- if input.index("in", index) == index
3593
+ if has_terminal?("in", false, index)
3594
3594
  r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
3595
3595
  @index += 2
3596
3596
  else
@@ -3600,21 +3600,21 @@ module ScientificNameClean
3600
3600
  if r3
3601
3601
  r1 = r3
3602
3602
  else
3603
- self.index = i1
3603
+ @index = i1
3604
3604
  r1 = nil
3605
3605
  end
3606
3606
  end
3607
3607
  s0 << r1
3608
3608
  if r1
3609
3609
  i4 = index
3610
- if input.index(Regexp.new('[\\s]'), index) == index
3610
+ if has_terminal?('\G[\\s]', true, index)
3611
3611
  r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
3612
3612
  @index += 1
3613
3613
  else
3614
3614
  r5 = nil
3615
3615
  end
3616
3616
  if r5
3617
- self.index = i4
3617
+ @index = i4
3618
3618
  r4 = instantiate_node(SyntaxNode,input, index...index)
3619
3619
  else
3620
3620
  r4 = nil
@@ -3625,13 +3625,13 @@ module ScientificNameClean
3625
3625
  r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3626
3626
  r0.extend(ExSep0)
3627
3627
  else
3628
- self.index = i0
3628
+ @index = i0
3629
3629
  r0 = nil
3630
3630
  end
3631
3631
 
3632
3632
  node_cache[:ex_sep][start_index] = r0
3633
3633
 
3634
- return r0
3634
+ r0
3635
3635
  end
3636
3636
 
3637
3637
  module AuthorSeparator0
@@ -3659,7 +3659,7 @@ module ScientificNameClean
3659
3659
  end
3660
3660
 
3661
3661
  i0 = index
3662
- if input.index("&", index) == index
3662
+ if has_terminal?("&", false, index)
3663
3663
  r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
3664
3664
  @index += 1
3665
3665
  else
@@ -3670,7 +3670,7 @@ module ScientificNameClean
3670
3670
  r0 = r1
3671
3671
  r0.extend(AuthorSeparator0)
3672
3672
  else
3673
- if input.index(",", index) == index
3673
+ if has_terminal?(",", false, index)
3674
3674
  r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
3675
3675
  @index += 1
3676
3676
  else
@@ -3681,7 +3681,7 @@ module ScientificNameClean
3681
3681
  r0 = r2
3682
3682
  r0.extend(AuthorSeparator0)
3683
3683
  else
3684
- if input.index("and", index) == index
3684
+ if has_terminal?("and", false, index)
3685
3685
  r3 = instantiate_node(SyntaxNode,input, index...(index + 3))
3686
3686
  @index += 3
3687
3687
  else
@@ -3692,7 +3692,7 @@ module ScientificNameClean
3692
3692
  r0 = r3
3693
3693
  r0.extend(AuthorSeparator0)
3694
3694
  else
3695
- if input.index("et", index) == index
3695
+ if has_terminal?("et", false, index)
3696
3696
  r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
3697
3697
  @index += 2
3698
3698
  else
@@ -3703,7 +3703,7 @@ module ScientificNameClean
3703
3703
  r0 = r4
3704
3704
  r0.extend(AuthorSeparator0)
3705
3705
  else
3706
- self.index = i0
3706
+ @index = i0
3707
3707
  r0 = nil
3708
3708
  end
3709
3709
  end
@@ -3712,7 +3712,7 @@ module ScientificNameClean
3712
3712
 
3713
3713
  node_cache[:author_separator][start_index] = r0
3714
3714
 
3715
- return r0
3715
+ r0
3716
3716
  end
3717
3717
 
3718
3718
  module AuthorName0
@@ -3820,7 +3820,7 @@ module ScientificNameClean
3820
3820
  r1.extend(AuthorName0)
3821
3821
  r1.extend(AuthorName1)
3822
3822
  else
3823
- self.index = i1
3823
+ @index = i1
3824
3824
  r1 = nil
3825
3825
  end
3826
3826
  if r1
@@ -3850,7 +3850,7 @@ module ScientificNameClean
3850
3850
  r7.extend(AuthorName2)
3851
3851
  r7.extend(AuthorName3)
3852
3852
  else
3853
- self.index = i7
3853
+ @index = i7
3854
3854
  r7 = nil
3855
3855
  end
3856
3856
  if r7
@@ -3860,7 +3860,7 @@ module ScientificNameClean
3860
3860
  if r13
3861
3861
  r0 = r13
3862
3862
  else
3863
- self.index = i0
3863
+ @index = i0
3864
3864
  r0 = nil
3865
3865
  end
3866
3866
  end
@@ -3868,7 +3868,7 @@ module ScientificNameClean
3868
3868
 
3869
3869
  node_cache[:author_name][start_index] = r0
3870
3870
 
3871
- return r0
3871
+ r0
3872
3872
  end
3873
3873
 
3874
3874
  module AuthorWord0
@@ -3943,7 +3943,7 @@ module ScientificNameClean
3943
3943
  end
3944
3944
 
3945
3945
  i0 = index
3946
- if input.index("A S. Xu", index) == index
3946
+ if has_terminal?("A S. Xu", false, index)
3947
3947
  r1 = instantiate_node(SyntaxNode,input, index...(index + 7))
3948
3948
  r1.extend(AuthorWord0)
3949
3949
  @index += 7
@@ -3955,7 +3955,7 @@ module ScientificNameClean
3955
3955
  r0 = r1
3956
3956
  else
3957
3957
  i2 = index
3958
- if input.index("arg.", index) == index
3958
+ if has_terminal?("arg.", false, index)
3959
3959
  r3 = instantiate_node(SyntaxNode,input, index...(index + 4))
3960
3960
  @index += 4
3961
3961
  else
@@ -3966,7 +3966,7 @@ module ScientificNameClean
3966
3966
  r2 = r3
3967
3967
  r2.extend(AuthorWord1)
3968
3968
  else
3969
- if input.index("et al.\{\?\}", index) == index
3969
+ if has_terminal?("et al.\{\?\}", false, index)
3970
3970
  r4 = instantiate_node(SyntaxNode,input, index...(index + 9))
3971
3971
  @index += 9
3972
3972
  else
@@ -3977,7 +3977,7 @@ module ScientificNameClean
3977
3977
  r2 = r4
3978
3978
  r2.extend(AuthorWord1)
3979
3979
  else
3980
- if input.index("et al.", index) == index
3980
+ if has_terminal?("et al.", false, index)
3981
3981
  r5 = instantiate_node(SyntaxNode,input, index...(index + 6))
3982
3982
  @index += 6
3983
3983
  else
@@ -3988,7 +3988,7 @@ module ScientificNameClean
3988
3988
  r2 = r5
3989
3989
  r2.extend(AuthorWord1)
3990
3990
  else
3991
- self.index = i2
3991
+ @index = i2
3992
3992
  r2 = nil
3993
3993
  end
3994
3994
  end
@@ -3998,7 +3998,7 @@ module ScientificNameClean
3998
3998
  else
3999
3999
  i6, s6 = index, []
4000
4000
  i7 = index
4001
- if input.index("Å", index) == index
4001
+ if has_terminal?("Å", false, index)
4002
4002
  r8 = instantiate_node(SyntaxNode,input, index...(index + 2))
4003
4003
  @index += 2
4004
4004
  else
@@ -4008,7 +4008,7 @@ module ScientificNameClean
4008
4008
  if r8
4009
4009
  r7 = r8
4010
4010
  else
4011
- if input.index("Ö", index) == index
4011
+ if has_terminal?("Ö", false, index)
4012
4012
  r9 = instantiate_node(SyntaxNode,input, index...(index + 2))
4013
4013
  @index += 2
4014
4014
  else
@@ -4018,7 +4018,7 @@ module ScientificNameClean
4018
4018
  if r9
4019
4019
  r7 = r9
4020
4020
  else
4021
- if input.index("Á", index) == index
4021
+ if has_terminal?("Á", false, index)
4022
4022
  r10 = instantiate_node(SyntaxNode,input, index...(index + 2))
4023
4023
  @index += 2
4024
4024
  else
@@ -4028,7 +4028,7 @@ module ScientificNameClean
4028
4028
  if r10
4029
4029
  r7 = r10
4030
4030
  else
4031
- if input.index("Ø", index) == index
4031
+ if has_terminal?("Ø", false, index)
4032
4032
  r11 = instantiate_node(SyntaxNode,input, index...(index + 2))
4033
4033
  @index += 2
4034
4034
  else
@@ -4038,7 +4038,7 @@ module ScientificNameClean
4038
4038
  if r11
4039
4039
  r7 = r11
4040
4040
  else
4041
- if input.index("Ô", index) == index
4041
+ if has_terminal?("Ô", false, index)
4042
4042
  r12 = instantiate_node(SyntaxNode,input, index...(index + 2))
4043
4043
  @index += 2
4044
4044
  else
@@ -4048,7 +4048,7 @@ module ScientificNameClean
4048
4048
  if r12
4049
4049
  r7 = r12
4050
4050
  else
4051
- if input.index("Š", index) == index
4051
+ if has_terminal?("Š", false, index)
4052
4052
  r13 = instantiate_node(SyntaxNode,input, index...(index + 2))
4053
4053
  @index += 2
4054
4054
  else
@@ -4058,7 +4058,7 @@ module ScientificNameClean
4058
4058
  if r13
4059
4059
  r7 = r13
4060
4060
  else
4061
- if input.index("Ś", index) == index
4061
+ if has_terminal?("Ś", false, index)
4062
4062
  r14 = instantiate_node(SyntaxNode,input, index...(index + 2))
4063
4063
  @index += 2
4064
4064
  else
@@ -4068,7 +4068,7 @@ module ScientificNameClean
4068
4068
  if r14
4069
4069
  r7 = r14
4070
4070
  else
4071
- if input.index("Č", index) == index
4071
+ if has_terminal?("Č", false, index)
4072
4072
  r15 = instantiate_node(SyntaxNode,input, index...(index + 2))
4073
4073
  @index += 2
4074
4074
  else
@@ -4078,7 +4078,7 @@ module ScientificNameClean
4078
4078
  if r15
4079
4079
  r7 = r15
4080
4080
  else
4081
- if input.index("Ķ", index) == index
4081
+ if has_terminal?("Ķ", false, index)
4082
4082
  r16 = instantiate_node(SyntaxNode,input, index...(index + 2))
4083
4083
  @index += 2
4084
4084
  else
@@ -4088,7 +4088,7 @@ module ScientificNameClean
4088
4088
  if r16
4089
4089
  r7 = r16
4090
4090
  else
4091
- if input.index("Ł", index) == index
4091
+ if has_terminal?("Ł", false, index)
4092
4092
  r17 = instantiate_node(SyntaxNode,input, index...(index + 2))
4093
4093
  @index += 2
4094
4094
  else
@@ -4098,7 +4098,7 @@ module ScientificNameClean
4098
4098
  if r17
4099
4099
  r7 = r17
4100
4100
  else
4101
- if input.index("É", index) == index
4101
+ if has_terminal?("É", false, index)
4102
4102
  r18 = instantiate_node(SyntaxNode,input, index...(index + 2))
4103
4103
  @index += 2
4104
4104
  else
@@ -4108,7 +4108,7 @@ module ScientificNameClean
4108
4108
  if r18
4109
4109
  r7 = r18
4110
4110
  else
4111
- if input.index("Ž", index) == index
4111
+ if has_terminal?("Ž", false, index)
4112
4112
  r19 = instantiate_node(SyntaxNode,input, index...(index + 2))
4113
4113
  @index += 2
4114
4114
  else
@@ -4118,7 +4118,7 @@ module ScientificNameClean
4118
4118
  if r19
4119
4119
  r7 = r19
4120
4120
  else
4121
- if input.index(Regexp.new('[A-W]'), index) == index
4121
+ if has_terminal?('\G[A-W]', true, index)
4122
4122
  r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
4123
4123
  @index += 1
4124
4124
  else
@@ -4127,7 +4127,7 @@ module ScientificNameClean
4127
4127
  if r20
4128
4128
  r7 = r20
4129
4129
  else
4130
- if input.index(Regexp.new('[Y-Z]'), index) == index
4130
+ if has_terminal?('\G[Y-Z]', true, index)
4131
4131
  r21 = instantiate_node(SyntaxNode,input, index...(index + 1))
4132
4132
  @index += 1
4133
4133
  else
@@ -4136,7 +4136,7 @@ module ScientificNameClean
4136
4136
  if r21
4137
4137
  r7 = r21
4138
4138
  else
4139
- self.index = i7
4139
+ @index = i7
4140
4140
  r7 = nil
4141
4141
  end
4142
4142
  end
@@ -4156,7 +4156,7 @@ module ScientificNameClean
4156
4156
  if r7
4157
4157
  s22, i22 = [], index
4158
4158
  loop do
4159
- if input.index(Regexp.new('[^0-9\\[\\]\\(\\)\\s&,]'), index) == index
4159
+ if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
4160
4160
  r23 = instantiate_node(SyntaxNode,input, index...(index + 1))
4161
4161
  @index += 1
4162
4162
  else
@@ -4176,14 +4176,14 @@ module ScientificNameClean
4176
4176
  r6.extend(AuthorWord2)
4177
4177
  r6.extend(AuthorWord3)
4178
4178
  else
4179
- self.index = i6
4179
+ @index = i6
4180
4180
  r6 = nil
4181
4181
  end
4182
4182
  if r6
4183
4183
  r0 = r6
4184
4184
  else
4185
4185
  i24, s24 = index, []
4186
- if input.index("X", index) == index
4186
+ if has_terminal?("X", false, index)
4187
4187
  r25 = instantiate_node(SyntaxNode,input, index...(index + 1))
4188
4188
  @index += 1
4189
4189
  else
@@ -4194,7 +4194,7 @@ module ScientificNameClean
4194
4194
  if r25
4195
4195
  s26, i26 = [], index
4196
4196
  loop do
4197
- if input.index(Regexp.new('[^0-9\\[\\]\\(\\)\\s&,]'), index) == index
4197
+ if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
4198
4198
  r27 = instantiate_node(SyntaxNode,input, index...(index + 1))
4199
4199
  @index += 1
4200
4200
  else
@@ -4207,7 +4207,7 @@ module ScientificNameClean
4207
4207
  end
4208
4208
  end
4209
4209
  if s26.empty?
4210
- self.index = i26
4210
+ @index = i26
4211
4211
  r26 = nil
4212
4212
  else
4213
4213
  r26 = instantiate_node(SyntaxNode,input, i26...index, s26)
@@ -4219,7 +4219,7 @@ module ScientificNameClean
4219
4219
  r24.extend(AuthorWord4)
4220
4220
  r24.extend(AuthorWord5)
4221
4221
  else
4222
- self.index = i24
4222
+ @index = i24
4223
4223
  r24 = nil
4224
4224
  end
4225
4225
  if r24
@@ -4229,7 +4229,7 @@ module ScientificNameClean
4229
4229
  if r28
4230
4230
  r0 = r28
4231
4231
  else
4232
- self.index = i0
4232
+ @index = i0
4233
4233
  r0 = nil
4234
4234
  end
4235
4235
  end
@@ -4239,7 +4239,7 @@ module ScientificNameClean
4239
4239
 
4240
4240
  node_cache[:author_word][start_index] = r0
4241
4241
 
4242
- return r0
4242
+ r0
4243
4243
  end
4244
4244
 
4245
4245
  module AuthorPrefixWord0
@@ -4273,7 +4273,7 @@ module ScientificNameClean
4273
4273
  s0 << r1
4274
4274
  if r1
4275
4275
  i2 = index
4276
- if input.index("ab", index) == index
4276
+ if has_terminal?("ab", false, index)
4277
4277
  r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
4278
4278
  @index += 2
4279
4279
  else
@@ -4283,7 +4283,7 @@ module ScientificNameClean
4283
4283
  if r3
4284
4284
  r2 = r3
4285
4285
  else
4286
- if input.index("bis", index) == index
4286
+ if has_terminal?("bis", false, index)
4287
4287
  r4 = instantiate_node(SyntaxNode,input, index...(index + 3))
4288
4288
  @index += 3
4289
4289
  else
@@ -4293,7 +4293,7 @@ module ScientificNameClean
4293
4293
  if r4
4294
4294
  r2 = r4
4295
4295
  else
4296
- if input.index("da", index) == index
4296
+ if has_terminal?("da", false, index)
4297
4297
  r5 = instantiate_node(SyntaxNode,input, index...(index + 2))
4298
4298
  @index += 2
4299
4299
  else
@@ -4303,7 +4303,7 @@ module ScientificNameClean
4303
4303
  if r5
4304
4304
  r2 = r5
4305
4305
  else
4306
- if input.index("der", index) == index
4306
+ if has_terminal?("der", false, index)
4307
4307
  r6 = instantiate_node(SyntaxNode,input, index...(index + 3))
4308
4308
  @index += 3
4309
4309
  else
@@ -4313,7 +4313,7 @@ module ScientificNameClean
4313
4313
  if r6
4314
4314
  r2 = r6
4315
4315
  else
4316
- if input.index("den", index) == index
4316
+ if has_terminal?("den", false, index)
4317
4317
  r7 = instantiate_node(SyntaxNode,input, index...(index + 3))
4318
4318
  @index += 3
4319
4319
  else
@@ -4323,7 +4323,7 @@ module ScientificNameClean
4323
4323
  if r7
4324
4324
  r2 = r7
4325
4325
  else
4326
- if input.index("della", index) == index
4326
+ if has_terminal?("della", false, index)
4327
4327
  r8 = instantiate_node(SyntaxNode,input, index...(index + 5))
4328
4328
  @index += 5
4329
4329
  else
@@ -4333,7 +4333,7 @@ module ScientificNameClean
4333
4333
  if r8
4334
4334
  r2 = r8
4335
4335
  else
4336
- if input.index("dela", index) == index
4336
+ if has_terminal?("dela", false, index)
4337
4337
  r9 = instantiate_node(SyntaxNode,input, index...(index + 4))
4338
4338
  @index += 4
4339
4339
  else
@@ -4343,7 +4343,7 @@ module ScientificNameClean
4343
4343
  if r9
4344
4344
  r2 = r9
4345
4345
  else
4346
- if input.index("de", index) == index
4346
+ if has_terminal?("de", false, index)
4347
4347
  r10 = instantiate_node(SyntaxNode,input, index...(index + 2))
4348
4348
  @index += 2
4349
4349
  else
@@ -4353,7 +4353,7 @@ module ScientificNameClean
4353
4353
  if r10
4354
4354
  r2 = r10
4355
4355
  else
4356
- if input.index("di", index) == index
4356
+ if has_terminal?("di", false, index)
4357
4357
  r11 = instantiate_node(SyntaxNode,input, index...(index + 2))
4358
4358
  @index += 2
4359
4359
  else
@@ -4363,7 +4363,7 @@ module ScientificNameClean
4363
4363
  if r11
4364
4364
  r2 = r11
4365
4365
  else
4366
- if input.index("du", index) == index
4366
+ if has_terminal?("du", false, index)
4367
4367
  r12 = instantiate_node(SyntaxNode,input, index...(index + 2))
4368
4368
  @index += 2
4369
4369
  else
@@ -4373,7 +4373,7 @@ module ScientificNameClean
4373
4373
  if r12
4374
4374
  r2 = r12
4375
4375
  else
4376
- if input.index("la", index) == index
4376
+ if has_terminal?("la", false, index)
4377
4377
  r13 = instantiate_node(SyntaxNode,input, index...(index + 2))
4378
4378
  @index += 2
4379
4379
  else
@@ -4383,7 +4383,7 @@ module ScientificNameClean
4383
4383
  if r13
4384
4384
  r2 = r13
4385
4385
  else
4386
- if input.index("ter", index) == index
4386
+ if has_terminal?("ter", false, index)
4387
4387
  r14 = instantiate_node(SyntaxNode,input, index...(index + 3))
4388
4388
  @index += 3
4389
4389
  else
@@ -4393,7 +4393,7 @@ module ScientificNameClean
4393
4393
  if r14
4394
4394
  r2 = r14
4395
4395
  else
4396
- if input.index("van", index) == index
4396
+ if has_terminal?("van", false, index)
4397
4397
  r15 = instantiate_node(SyntaxNode,input, index...(index + 3))
4398
4398
  @index += 3
4399
4399
  else
@@ -4403,7 +4403,7 @@ module ScientificNameClean
4403
4403
  if r15
4404
4404
  r2 = r15
4405
4405
  else
4406
- if input.index("von", index) == index
4406
+ if has_terminal?("von", false, index)
4407
4407
  r16 = instantiate_node(SyntaxNode,input, index...(index + 3))
4408
4408
  @index += 3
4409
4409
  else
@@ -4413,7 +4413,7 @@ module ScientificNameClean
4413
4413
  if r16
4414
4414
  r2 = r16
4415
4415
  else
4416
- self.index = i2
4416
+ @index = i2
4417
4417
  r2 = nil
4418
4418
  end
4419
4419
  end
@@ -4434,7 +4434,7 @@ module ScientificNameClean
4434
4434
  i17 = index
4435
4435
  r18 = _nt_space_hard
4436
4436
  if r18
4437
- self.index = i17
4437
+ @index = i17
4438
4438
  r17 = instantiate_node(SyntaxNode,input, index...index)
4439
4439
  else
4440
4440
  r17 = nil
@@ -4447,13 +4447,13 @@ module ScientificNameClean
4447
4447
  r0.extend(AuthorPrefixWord0)
4448
4448
  r0.extend(AuthorPrefixWord1)
4449
4449
  else
4450
- self.index = i0
4450
+ @index = i0
4451
4451
  r0 = nil
4452
4452
  end
4453
4453
 
4454
4454
  node_cache[:author_prefix_word][start_index] = r0
4455
4455
 
4456
- return r0
4456
+ r0
4457
4457
  end
4458
4458
 
4459
4459
  module CapLatinWord0
@@ -4506,7 +4506,7 @@ module ScientificNameClean
4506
4506
  i0 = index
4507
4507
  i1, s1 = index, []
4508
4508
  i2 = index
4509
- if input.index(Regexp.new('[A-Z]'), index) == index
4509
+ if has_terminal?('\G[A-Z]', true, index)
4510
4510
  r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
4511
4511
  @index += 1
4512
4512
  else
@@ -4519,7 +4519,7 @@ module ScientificNameClean
4519
4519
  if r4
4520
4520
  r2 = r4
4521
4521
  else
4522
- self.index = i2
4522
+ @index = i2
4523
4523
  r2 = nil
4524
4524
  end
4525
4525
  end
@@ -4528,7 +4528,7 @@ module ScientificNameClean
4528
4528
  r5 = _nt_latin_word
4529
4529
  s1 << r5
4530
4530
  if r5
4531
- if input.index("?", index) == index
4531
+ if has_terminal?("?", false, index)
4532
4532
  r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
4533
4533
  @index += 1
4534
4534
  else
@@ -4543,7 +4543,7 @@ module ScientificNameClean
4543
4543
  r1.extend(CapLatinWord0)
4544
4544
  r1.extend(CapLatinWord1)
4545
4545
  else
4546
- self.index = i1
4546
+ @index = i1
4547
4547
  r1 = nil
4548
4548
  end
4549
4549
  if r1
@@ -4551,7 +4551,7 @@ module ScientificNameClean
4551
4551
  else
4552
4552
  i7, s7 = index, []
4553
4553
  i8 = index
4554
- if input.index(Regexp.new('[A-Z]'), index) == index
4554
+ if has_terminal?('\G[A-Z]', true, index)
4555
4555
  r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
4556
4556
  @index += 1
4557
4557
  else
@@ -4564,7 +4564,7 @@ module ScientificNameClean
4564
4564
  if r10
4565
4565
  r8 = r10
4566
4566
  else
4567
- self.index = i8
4567
+ @index = i8
4568
4568
  r8 = nil
4569
4569
  end
4570
4570
  end
@@ -4578,14 +4578,14 @@ module ScientificNameClean
4578
4578
  r7.extend(CapLatinWord2)
4579
4579
  r7.extend(CapLatinWord3)
4580
4580
  else
4581
- self.index = i7
4581
+ @index = i7
4582
4582
  r7 = nil
4583
4583
  end
4584
4584
  if r7
4585
4585
  r0 = r7
4586
4586
  else
4587
4587
  i12 = index
4588
- if input.index("Ca", index) == index
4588
+ if has_terminal?("Ca", false, index)
4589
4589
  r13 = instantiate_node(SyntaxNode,input, index...(index + 2))
4590
4590
  @index += 2
4591
4591
  else
@@ -4596,7 +4596,7 @@ module ScientificNameClean
4596
4596
  r12 = r13
4597
4597
  r12.extend(CapLatinWord4)
4598
4598
  else
4599
- if input.index("Ea", index) == index
4599
+ if has_terminal?("Ea", false, index)
4600
4600
  r14 = instantiate_node(SyntaxNode,input, index...(index + 2))
4601
4601
  @index += 2
4602
4602
  else
@@ -4607,7 +4607,7 @@ module ScientificNameClean
4607
4607
  r12 = r14
4608
4608
  r12.extend(CapLatinWord4)
4609
4609
  else
4610
- if input.index("Ge", index) == index
4610
+ if has_terminal?("Ge", false, index)
4611
4611
  r15 = instantiate_node(SyntaxNode,input, index...(index + 2))
4612
4612
  @index += 2
4613
4613
  else
@@ -4618,7 +4618,7 @@ module ScientificNameClean
4618
4618
  r12 = r15
4619
4619
  r12.extend(CapLatinWord4)
4620
4620
  else
4621
- if input.index("Ia", index) == index
4621
+ if has_terminal?("Ia", false, index)
4622
4622
  r16 = instantiate_node(SyntaxNode,input, index...(index + 2))
4623
4623
  @index += 2
4624
4624
  else
@@ -4629,7 +4629,7 @@ module ScientificNameClean
4629
4629
  r12 = r16
4630
4630
  r12.extend(CapLatinWord4)
4631
4631
  else
4632
- if input.index("Io", index) == index
4632
+ if has_terminal?("Io", false, index)
4633
4633
  r17 = instantiate_node(SyntaxNode,input, index...(index + 2))
4634
4634
  @index += 2
4635
4635
  else
@@ -4640,7 +4640,7 @@ module ScientificNameClean
4640
4640
  r12 = r17
4641
4641
  r12.extend(CapLatinWord4)
4642
4642
  else
4643
- if input.index("Io", index) == index
4643
+ if has_terminal?("Io", false, index)
4644
4644
  r18 = instantiate_node(SyntaxNode,input, index...(index + 2))
4645
4645
  @index += 2
4646
4646
  else
@@ -4651,7 +4651,7 @@ module ScientificNameClean
4651
4651
  r12 = r18
4652
4652
  r12.extend(CapLatinWord4)
4653
4653
  else
4654
- if input.index("Ix", index) == index
4654
+ if has_terminal?("Ix", false, index)
4655
4655
  r19 = instantiate_node(SyntaxNode,input, index...(index + 2))
4656
4656
  @index += 2
4657
4657
  else
@@ -4662,7 +4662,7 @@ module ScientificNameClean
4662
4662
  r12 = r19
4663
4663
  r12.extend(CapLatinWord4)
4664
4664
  else
4665
- if input.index("Lo", index) == index
4665
+ if has_terminal?("Lo", false, index)
4666
4666
  r20 = instantiate_node(SyntaxNode,input, index...(index + 2))
4667
4667
  @index += 2
4668
4668
  else
@@ -4673,7 +4673,7 @@ module ScientificNameClean
4673
4673
  r12 = r20
4674
4674
  r12.extend(CapLatinWord4)
4675
4675
  else
4676
- if input.index("Oa", index) == index
4676
+ if has_terminal?("Oa", false, index)
4677
4677
  r21 = instantiate_node(SyntaxNode,input, index...(index + 2))
4678
4678
  @index += 2
4679
4679
  else
@@ -4684,7 +4684,7 @@ module ScientificNameClean
4684
4684
  r12 = r21
4685
4685
  r12.extend(CapLatinWord4)
4686
4686
  else
4687
- if input.index("Ra", index) == index
4687
+ if has_terminal?("Ra", false, index)
4688
4688
  r22 = instantiate_node(SyntaxNode,input, index...(index + 2))
4689
4689
  @index += 2
4690
4690
  else
@@ -4695,7 +4695,7 @@ module ScientificNameClean
4695
4695
  r12 = r22
4696
4696
  r12.extend(CapLatinWord4)
4697
4697
  else
4698
- if input.index("Ty", index) == index
4698
+ if has_terminal?("Ty", false, index)
4699
4699
  r23 = instantiate_node(SyntaxNode,input, index...(index + 2))
4700
4700
  @index += 2
4701
4701
  else
@@ -4706,7 +4706,7 @@ module ScientificNameClean
4706
4706
  r12 = r23
4707
4707
  r12.extend(CapLatinWord4)
4708
4708
  else
4709
- if input.index("Ua", index) == index
4709
+ if has_terminal?("Ua", false, index)
4710
4710
  r24 = instantiate_node(SyntaxNode,input, index...(index + 2))
4711
4711
  @index += 2
4712
4712
  else
@@ -4717,7 +4717,7 @@ module ScientificNameClean
4717
4717
  r12 = r24
4718
4718
  r12.extend(CapLatinWord4)
4719
4719
  else
4720
- if input.index("Aa", index) == index
4720
+ if has_terminal?("Aa", false, index)
4721
4721
  r25 = instantiate_node(SyntaxNode,input, index...(index + 2))
4722
4722
  @index += 2
4723
4723
  else
@@ -4728,7 +4728,7 @@ module ScientificNameClean
4728
4728
  r12 = r25
4729
4729
  r12.extend(CapLatinWord4)
4730
4730
  else
4731
- if input.index("Ja", index) == index
4731
+ if has_terminal?("Ja", false, index)
4732
4732
  r26 = instantiate_node(SyntaxNode,input, index...(index + 2))
4733
4733
  @index += 2
4734
4734
  else
@@ -4739,7 +4739,7 @@ module ScientificNameClean
4739
4739
  r12 = r26
4740
4740
  r12.extend(CapLatinWord4)
4741
4741
  else
4742
- if input.index("Zu", index) == index
4742
+ if has_terminal?("Zu", false, index)
4743
4743
  r27 = instantiate_node(SyntaxNode,input, index...(index + 2))
4744
4744
  @index += 2
4745
4745
  else
@@ -4750,7 +4750,7 @@ module ScientificNameClean
4750
4750
  r12 = r27
4751
4751
  r12.extend(CapLatinWord4)
4752
4752
  else
4753
- if input.index("La", index) == index
4753
+ if has_terminal?("La", false, index)
4754
4754
  r28 = instantiate_node(SyntaxNode,input, index...(index + 2))
4755
4755
  @index += 2
4756
4756
  else
@@ -4761,7 +4761,7 @@ module ScientificNameClean
4761
4761
  r12 = r28
4762
4762
  r12.extend(CapLatinWord4)
4763
4763
  else
4764
- if input.index("Qu", index) == index
4764
+ if has_terminal?("Qu", false, index)
4765
4765
  r29 = instantiate_node(SyntaxNode,input, index...(index + 2))
4766
4766
  @index += 2
4767
4767
  else
@@ -4772,7 +4772,7 @@ module ScientificNameClean
4772
4772
  r12 = r29
4773
4773
  r12.extend(CapLatinWord4)
4774
4774
  else
4775
- if input.index("As", index) == index
4775
+ if has_terminal?("As", false, index)
4776
4776
  r30 = instantiate_node(SyntaxNode,input, index...(index + 2))
4777
4777
  @index += 2
4778
4778
  else
@@ -4783,7 +4783,7 @@ module ScientificNameClean
4783
4783
  r12 = r30
4784
4784
  r12.extend(CapLatinWord4)
4785
4785
  else
4786
- if input.index("Ba", index) == index
4786
+ if has_terminal?("Ba", false, index)
4787
4787
  r31 = instantiate_node(SyntaxNode,input, index...(index + 2))
4788
4788
  @index += 2
4789
4789
  else
@@ -4794,7 +4794,7 @@ module ScientificNameClean
4794
4794
  r12 = r31
4795
4795
  r12.extend(CapLatinWord4)
4796
4796
  else
4797
- self.index = i12
4797
+ @index = i12
4798
4798
  r12 = nil
4799
4799
  end
4800
4800
  end
@@ -4818,7 +4818,7 @@ module ScientificNameClean
4818
4818
  if r12
4819
4819
  r0 = r12
4820
4820
  else
4821
- self.index = i0
4821
+ @index = i0
4822
4822
  r0 = nil
4823
4823
  end
4824
4824
  end
@@ -4826,7 +4826,7 @@ module ScientificNameClean
4826
4826
 
4827
4827
  node_cache[:cap_latin_word][start_index] = r0
4828
4828
 
4829
- return r0
4829
+ r0
4830
4830
  end
4831
4831
 
4832
4832
  module SpeciesWordHybrid0
@@ -4962,14 +4962,14 @@ module ScientificNameClean
4962
4962
  r1.extend(SpeciesWordHybrid0)
4963
4963
  r1.extend(SpeciesWordHybrid1)
4964
4964
  else
4965
- self.index = i1
4965
+ @index = i1
4966
4966
  r1 = nil
4967
4967
  end
4968
4968
  if r1
4969
4969
  r0 = r1
4970
4970
  else
4971
4971
  i5, s5 = index, []
4972
- if input.index("X", index) == index
4972
+ if has_terminal?("X", false, index)
4973
4973
  r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
4974
4974
  @index += 1
4975
4975
  else
@@ -4990,14 +4990,14 @@ module ScientificNameClean
4990
4990
  r5.extend(SpeciesWordHybrid2)
4991
4991
  r5.extend(SpeciesWordHybrid3)
4992
4992
  else
4993
- self.index = i5
4993
+ @index = i5
4994
4994
  r5 = nil
4995
4995
  end
4996
4996
  if r5
4997
4997
  r0 = r5
4998
4998
  else
4999
4999
  i9, s9 = index, []
5000
- if input.index("x", index) == index
5000
+ if has_terminal?("x", false, index)
5001
5001
  r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
5002
5002
  @index += 1
5003
5003
  else
@@ -5018,13 +5018,13 @@ module ScientificNameClean
5018
5018
  r9.extend(SpeciesWordHybrid4)
5019
5019
  r9.extend(SpeciesWordHybrid5)
5020
5020
  else
5021
- self.index = i9
5021
+ @index = i9
5022
5022
  r9 = nil
5023
5023
  end
5024
5024
  if r9
5025
5025
  r0 = r9
5026
5026
  else
5027
- self.index = i0
5027
+ @index = i0
5028
5028
  r0 = nil
5029
5029
  end
5030
5030
  end
@@ -5032,7 +5032,7 @@ module ScientificNameClean
5032
5032
 
5033
5033
  node_cache[:species_word_hybrid][start_index] = r0
5034
5034
 
5035
- return r0
5035
+ r0
5036
5036
  end
5037
5037
 
5038
5038
  module SpeciesPrefix0
@@ -5048,7 +5048,7 @@ module ScientificNameClean
5048
5048
 
5049
5049
  i0, s0 = index, []
5050
5050
  i1 = index
5051
- if input.index("aff.", index) == index
5051
+ if has_terminal?("aff.", false, index)
5052
5052
  r2 = instantiate_node(SyntaxNode,input, index...(index + 4))
5053
5053
  @index += 4
5054
5054
  else
@@ -5058,7 +5058,7 @@ module ScientificNameClean
5058
5058
  if r2
5059
5059
  r1 = r2
5060
5060
  else
5061
- if input.index("corrig.", index) == index
5061
+ if has_terminal?("corrig.", false, index)
5062
5062
  r3 = instantiate_node(SyntaxNode,input, index...(index + 7))
5063
5063
  @index += 7
5064
5064
  else
@@ -5068,7 +5068,7 @@ module ScientificNameClean
5068
5068
  if r3
5069
5069
  r1 = r3
5070
5070
  else
5071
- if input.index("?", index) == index
5071
+ if has_terminal?("?", false, index)
5072
5072
  r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
5073
5073
  @index += 1
5074
5074
  else
@@ -5078,7 +5078,7 @@ module ScientificNameClean
5078
5078
  if r4
5079
5079
  r1 = r4
5080
5080
  else
5081
- self.index = i1
5081
+ @index = i1
5082
5082
  r1 = nil
5083
5083
  end
5084
5084
  end
@@ -5088,7 +5088,7 @@ module ScientificNameClean
5088
5088
  i5 = index
5089
5089
  r6 = _nt_space_hard
5090
5090
  if r6
5091
- self.index = i5
5091
+ @index = i5
5092
5092
  r5 = instantiate_node(SyntaxNode,input, index...index)
5093
5093
  else
5094
5094
  r5 = nil
@@ -5099,13 +5099,13 @@ module ScientificNameClean
5099
5099
  r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
5100
5100
  r0.extend(SpeciesPrefix0)
5101
5101
  else
5102
- self.index = i0
5102
+ @index = i0
5103
5103
  r0 = nil
5104
5104
  end
5105
5105
 
5106
5106
  node_cache[:species_prefix][start_index] = r0
5107
5107
 
5108
- return r0
5108
+ r0
5109
5109
  end
5110
5110
 
5111
5111
  module SpeciesWord0
@@ -5136,7 +5136,7 @@ module ScientificNameClean
5136
5136
  i1, s1 = index, []
5137
5137
  s2, i2 = [], index
5138
5138
  loop do
5139
- if input.index(Regexp.new('[0-9]'), index) == index
5139
+ if has_terminal?('\G[0-9]', true, index)
5140
5140
  r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
5141
5141
  @index += 1
5142
5142
  else
@@ -5149,14 +5149,14 @@ module ScientificNameClean
5149
5149
  end
5150
5150
  end
5151
5151
  if s2.empty?
5152
- self.index = i2
5152
+ @index = i2
5153
5153
  r2 = nil
5154
5154
  else
5155
5155
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
5156
5156
  end
5157
5157
  s1 << r2
5158
5158
  if r2
5159
- if input.index("-", index) == index
5159
+ if has_terminal?("-", false, index)
5160
5160
  r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
5161
5161
  @index += 1
5162
5162
  else
@@ -5179,7 +5179,7 @@ module ScientificNameClean
5179
5179
  r1.extend(SpeciesWord0)
5180
5180
  r1.extend(SpeciesWord1)
5181
5181
  else
5182
- self.index = i1
5182
+ @index = i1
5183
5183
  r1 = nil
5184
5184
  end
5185
5185
  if r1
@@ -5189,14 +5189,14 @@ module ScientificNameClean
5189
5189
  if r7
5190
5190
  r0 = r7
5191
5191
  else
5192
- self.index = i0
5192
+ @index = i0
5193
5193
  r0 = nil
5194
5194
  end
5195
5195
  end
5196
5196
 
5197
5197
  node_cache[:species_word][start_index] = r0
5198
5198
 
5199
- return r0
5199
+ r0
5200
5200
  end
5201
5201
 
5202
5202
  module LatinWord0
@@ -5241,7 +5241,7 @@ module ScientificNameClean
5241
5241
 
5242
5242
  i0 = index
5243
5243
  i1, s1 = index, []
5244
- if input.index(Regexp.new('[a-zëüäöïéåóç]'), index) == index
5244
+ if has_terminal?('\G[a-zëüäöïéåóç]', true, index)
5245
5245
  r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
5246
5246
  @index += 1
5247
5247
  else
@@ -5257,7 +5257,7 @@ module ScientificNameClean
5257
5257
  r1.extend(LatinWord0)
5258
5258
  r1.extend(LatinWord1)
5259
5259
  else
5260
- self.index = i1
5260
+ @index = i1
5261
5261
  r1 = nil
5262
5262
  end
5263
5263
  if r1
@@ -5275,20 +5275,20 @@ module ScientificNameClean
5275
5275
  r4.extend(LatinWord2)
5276
5276
  r4.extend(LatinWord3)
5277
5277
  else
5278
- self.index = i4
5278
+ @index = i4
5279
5279
  r4 = nil
5280
5280
  end
5281
5281
  if r4
5282
5282
  r0 = r4
5283
5283
  else
5284
- self.index = i0
5284
+ @index = i0
5285
5285
  r0 = nil
5286
5286
  end
5287
5287
  end
5288
5288
 
5289
5289
  node_cache[:latin_word][start_index] = r0
5290
5290
 
5291
- return r0
5291
+ r0
5292
5292
  end
5293
5293
 
5294
5294
  module FullNameLetters0
@@ -5348,7 +5348,7 @@ module ScientificNameClean
5348
5348
  r1.extend(FullNameLetters0)
5349
5349
  r1.extend(FullNameLetters1)
5350
5350
  else
5351
- self.index = i1
5351
+ @index = i1
5352
5352
  r1 = nil
5353
5353
  end
5354
5354
  if r1
@@ -5370,7 +5370,7 @@ module ScientificNameClean
5370
5370
  r4.extend(FullNameLetters2)
5371
5371
  r4.extend(FullNameLetters3)
5372
5372
  else
5373
- self.index = i4
5373
+ @index = i4
5374
5374
  r4 = nil
5375
5375
  end
5376
5376
  if r4
@@ -5380,7 +5380,7 @@ module ScientificNameClean
5380
5380
  if r8
5381
5381
  r0 = r8
5382
5382
  else
5383
- self.index = i0
5383
+ @index = i0
5384
5384
  r0 = nil
5385
5385
  end
5386
5386
  end
@@ -5388,7 +5388,7 @@ module ScientificNameClean
5388
5388
 
5389
5389
  node_cache[:full_name_letters][start_index] = r0
5390
5390
 
5391
- return r0
5391
+ r0
5392
5392
  end
5393
5393
 
5394
5394
  module ValidNameLetters0
@@ -5407,7 +5407,7 @@ module ScientificNameClean
5407
5407
 
5408
5408
  s0, i0 = [], index
5409
5409
  loop do
5410
- if input.index(Regexp.new('[a-z\\-ëüäöïéåóç]'), index) == index
5410
+ if has_terminal?('\G[a-z\\-ëüäöïéåóç]', true, index)
5411
5411
  r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
5412
5412
  @index += 1
5413
5413
  else
@@ -5420,7 +5420,7 @@ module ScientificNameClean
5420
5420
  end
5421
5421
  end
5422
5422
  if s0.empty?
5423
- self.index = i0
5423
+ @index = i0
5424
5424
  r0 = nil
5425
5425
  else
5426
5426
  r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
@@ -5429,7 +5429,7 @@ module ScientificNameClean
5429
5429
 
5430
5430
  node_cache[:valid_name_letters][start_index] = r0
5431
5431
 
5432
- return r0
5432
+ r0
5433
5433
  end
5434
5434
 
5435
5435
  module CapDigraph0
@@ -5453,7 +5453,7 @@ module ScientificNameClean
5453
5453
  end
5454
5454
 
5455
5455
  i0 = index
5456
- if input.index("Æ", index) == index
5456
+ if has_terminal?("Æ", false, index)
5457
5457
  r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
5458
5458
  r1.extend(CapDigraph0)
5459
5459
  @index += 2
@@ -5464,7 +5464,7 @@ module ScientificNameClean
5464
5464
  if r1
5465
5465
  r0 = r1
5466
5466
  else
5467
- if input.index("Œ", index) == index
5467
+ if has_terminal?("Œ", false, index)
5468
5468
  r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
5469
5469
  r2.extend(CapDigraph1)
5470
5470
  @index += 2
@@ -5475,14 +5475,14 @@ module ScientificNameClean
5475
5475
  if r2
5476
5476
  r0 = r2
5477
5477
  else
5478
- self.index = i0
5478
+ @index = i0
5479
5479
  r0 = nil
5480
5480
  end
5481
5481
  end
5482
5482
 
5483
5483
  node_cache[:cap_digraph][start_index] = r0
5484
5484
 
5485
- return r0
5485
+ r0
5486
5486
  end
5487
5487
 
5488
5488
  module Digraph0
@@ -5506,7 +5506,7 @@ module ScientificNameClean
5506
5506
  end
5507
5507
 
5508
5508
  i0 = index
5509
- if input.index("æ", index) == index
5509
+ if has_terminal?("æ", false, index)
5510
5510
  r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
5511
5511
  r1.extend(Digraph0)
5512
5512
  @index += 2
@@ -5517,7 +5517,7 @@ module ScientificNameClean
5517
5517
  if r1
5518
5518
  r0 = r1
5519
5519
  else
5520
- if input.index("œ", index) == index
5520
+ if has_terminal?("œ", false, index)
5521
5521
  r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
5522
5522
  r2.extend(Digraph1)
5523
5523
  @index += 2
@@ -5528,14 +5528,14 @@ module ScientificNameClean
5528
5528
  if r2
5529
5529
  r0 = r2
5530
5530
  else
5531
- self.index = i0
5531
+ @index = i0
5532
5532
  r0 = nil
5533
5533
  end
5534
5534
  end
5535
5535
 
5536
5536
  node_cache[:digraph][start_index] = r0
5537
5537
 
5538
- return r0
5538
+ r0
5539
5539
  end
5540
5540
 
5541
5541
  module Year0
@@ -5599,7 +5599,7 @@ module ScientificNameClean
5599
5599
  if r6
5600
5600
  r4 = r6
5601
5601
  else
5602
- self.index = i4
5602
+ @index = i4
5603
5603
  r4 = nil
5604
5604
  end
5605
5605
  end
@@ -5619,7 +5619,7 @@ module ScientificNameClean
5619
5619
  r1.extend(Year0)
5620
5620
  r1.extend(Year1)
5621
5621
  else
5622
- self.index = i1
5622
+ @index = i1
5623
5623
  r1 = nil
5624
5624
  end
5625
5625
  if r1
@@ -5633,7 +5633,7 @@ module ScientificNameClean
5633
5633
  if r10
5634
5634
  r0 = r10
5635
5635
  else
5636
- self.index = i0
5636
+ @index = i0
5637
5637
  r0 = nil
5638
5638
  end
5639
5639
  end
@@ -5641,7 +5641,7 @@ module ScientificNameClean
5641
5641
 
5642
5642
  node_cache[:year][start_index] = r0
5643
5643
 
5644
- return r0
5644
+ r0
5645
5645
  end
5646
5646
 
5647
5647
  module YearNumberWithCharacter0
@@ -5677,7 +5677,7 @@ module ScientificNameClean
5677
5677
  r1 = _nt_year_number
5678
5678
  s0 << r1
5679
5679
  if r1
5680
- if input.index(Regexp.new('[a-zA-Z]'), index) == index
5680
+ if has_terminal?('\G[a-zA-Z]', true, index)
5681
5681
  r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
5682
5682
  @index += 1
5683
5683
  else
@@ -5690,13 +5690,13 @@ module ScientificNameClean
5690
5690
  r0.extend(YearNumberWithCharacter0)
5691
5691
  r0.extend(YearNumberWithCharacter1)
5692
5692
  else
5693
- self.index = i0
5693
+ @index = i0
5694
5694
  r0 = nil
5695
5695
  end
5696
5696
 
5697
5697
  node_cache[:year_number_with_character][start_index] = r0
5698
5698
 
5699
- return r0
5699
+ r0
5700
5700
  end
5701
5701
 
5702
5702
  module YearNumber0
@@ -5725,7 +5725,7 @@ module ScientificNameClean
5725
5725
  end
5726
5726
 
5727
5727
  i0, s0 = index, []
5728
- if input.index(Regexp.new('[12]'), index) == index
5728
+ if has_terminal?('\G[12]', true, index)
5729
5729
  r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
5730
5730
  @index += 1
5731
5731
  else
@@ -5733,7 +5733,7 @@ module ScientificNameClean
5733
5733
  end
5734
5734
  s0 << r1
5735
5735
  if r1
5736
- if input.index(Regexp.new('[7890]'), index) == index
5736
+ if has_terminal?('\G[7890]', true, index)
5737
5737
  r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
5738
5738
  @index += 1
5739
5739
  else
@@ -5741,7 +5741,7 @@ module ScientificNameClean
5741
5741
  end
5742
5742
  s0 << r2
5743
5743
  if r2
5744
- if input.index(Regexp.new('[0-9]'), index) == index
5744
+ if has_terminal?('\G[0-9]', true, index)
5745
5745
  r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
5746
5746
  @index += 1
5747
5747
  else
@@ -5749,7 +5749,7 @@ module ScientificNameClean
5749
5749
  end
5750
5750
  s0 << r3
5751
5751
  if r3
5752
- if input.index(Regexp.new('[0-9]'), index) == index
5752
+ if has_terminal?('\G[0-9]', true, index)
5753
5753
  r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
5754
5754
  @index += 1
5755
5755
  else
@@ -5762,7 +5762,7 @@ module ScientificNameClean
5762
5762
  end
5763
5763
  s0 << r4
5764
5764
  if r4
5765
- if input.index(Regexp.new('[\\?]'), index) == index
5765
+ if has_terminal?('\G[\\?]', true, index)
5766
5766
  r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
5767
5767
  @index += 1
5768
5768
  else
@@ -5783,13 +5783,13 @@ module ScientificNameClean
5783
5783
  r0.extend(YearNumber0)
5784
5784
  r0.extend(YearNumber1)
5785
5785
  else
5786
- self.index = i0
5786
+ @index = i0
5787
5787
  r0 = nil
5788
5788
  end
5789
5789
 
5790
5790
  node_cache[:year_number][start_index] = r0
5791
5791
 
5792
- return r0
5792
+ r0
5793
5793
  end
5794
5794
 
5795
5795
  def _nt_left_paren
@@ -5800,7 +5800,7 @@ module ScientificNameClean
5800
5800
  return cached
5801
5801
  end
5802
5802
 
5803
- if input.index("(", index) == index
5803
+ if has_terminal?("(", false, index)
5804
5804
  r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
5805
5805
  @index += 1
5806
5806
  else
@@ -5810,7 +5810,7 @@ module ScientificNameClean
5810
5810
 
5811
5811
  node_cache[:left_paren][start_index] = r0
5812
5812
 
5813
- return r0
5813
+ r0
5814
5814
  end
5815
5815
 
5816
5816
  def _nt_right_paren
@@ -5821,7 +5821,7 @@ module ScientificNameClean
5821
5821
  return cached
5822
5822
  end
5823
5823
 
5824
- if input.index(")", index) == index
5824
+ if has_terminal?(")", false, index)
5825
5825
  r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
5826
5826
  @index += 1
5827
5827
  else
@@ -5831,7 +5831,7 @@ module ScientificNameClean
5831
5831
 
5832
5832
  node_cache[:right_paren][start_index] = r0
5833
5833
 
5834
- return r0
5834
+ r0
5835
5835
  end
5836
5836
 
5837
5837
  module HybridCharacter0
@@ -5850,7 +5850,7 @@ module ScientificNameClean
5850
5850
 
5851
5851
  i0 = index
5852
5852
  i1 = index
5853
- if input.index("x", index) == index
5853
+ if has_terminal?("x", false, index)
5854
5854
  r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
5855
5855
  @index += 1
5856
5856
  else
@@ -5861,7 +5861,7 @@ module ScientificNameClean
5861
5861
  r1 = r2
5862
5862
  r1.extend(HybridCharacter0)
5863
5863
  else
5864
- if input.index("X", index) == index
5864
+ if has_terminal?("X", false, index)
5865
5865
  r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
5866
5866
  @index += 1
5867
5867
  else
@@ -5872,7 +5872,7 @@ module ScientificNameClean
5872
5872
  r1 = r3
5873
5873
  r1.extend(HybridCharacter0)
5874
5874
  else
5875
- self.index = i1
5875
+ @index = i1
5876
5876
  r1 = nil
5877
5877
  end
5878
5878
  end
@@ -5883,14 +5883,14 @@ module ScientificNameClean
5883
5883
  if r4
5884
5884
  r0 = r4
5885
5885
  else
5886
- self.index = i0
5886
+ @index = i0
5887
5887
  r0 = nil
5888
5888
  end
5889
5889
  end
5890
5890
 
5891
5891
  node_cache[:hybrid_character][start_index] = r0
5892
5892
 
5893
- return r0
5893
+ r0
5894
5894
  end
5895
5895
 
5896
5896
  module MultiplicationSign0
@@ -5907,7 +5907,7 @@ module ScientificNameClean
5907
5907
  return cached
5908
5908
  end
5909
5909
 
5910
- if input.index("×", index) == index
5910
+ if has_terminal?("×", false, index)
5911
5911
  r0 = instantiate_node(SyntaxNode,input, index...(index + 2))
5912
5912
  r0.extend(MultiplicationSign0)
5913
5913
  @index += 2
@@ -5918,7 +5918,7 @@ module ScientificNameClean
5918
5918
 
5919
5919
  node_cache[:multiplication_sign][start_index] = r0
5920
5920
 
5921
- return r0
5921
+ r0
5922
5922
  end
5923
5923
 
5924
5924
  def _nt_space
@@ -5931,7 +5931,7 @@ module ScientificNameClean
5931
5931
 
5932
5932
  s0, i0 = [], index
5933
5933
  loop do
5934
- if input.index(Regexp.new('[\\s]'), index) == index
5934
+ if has_terminal?('\G[\\s]', true, index)
5935
5935
  r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
5936
5936
  @index += 1
5937
5937
  else
@@ -5947,7 +5947,7 @@ module ScientificNameClean
5947
5947
 
5948
5948
  node_cache[:space][start_index] = r0
5949
5949
 
5950
- return r0
5950
+ r0
5951
5951
  end
5952
5952
 
5953
5953
  def _nt_space_hard
@@ -5960,7 +5960,7 @@ module ScientificNameClean
5960
5960
 
5961
5961
  s0, i0 = [], index
5962
5962
  loop do
5963
- if input.index(Regexp.new('[\\s]'), index) == index
5963
+ if has_terminal?('\G[\\s]', true, index)
5964
5964
  r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
5965
5965
  @index += 1
5966
5966
  else
@@ -5973,7 +5973,7 @@ module ScientificNameClean
5973
5973
  end
5974
5974
  end
5975
5975
  if s0.empty?
5976
- self.index = i0
5976
+ @index = i0
5977
5977
  r0 = nil
5978
5978
  else
5979
5979
  r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
@@ -5981,7 +5981,7 @@ module ScientificNameClean
5981
5981
 
5982
5982
  node_cache[:space_hard][start_index] = r0
5983
5983
 
5984
- return r0
5984
+ r0
5985
5985
  end
5986
5986
 
5987
5987
  end