biodiversity 0.5.14

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.
@@ -0,0 +1,1056 @@
1
+ # encoding: UTF-8
2
+ module ScientificNameDirty
3
+ include Treetop::Runtime
4
+
5
+ def root
6
+ @root || :root
7
+ end
8
+
9
+ include ScientificNameClean
10
+
11
+ def _nt_root
12
+ start_index = index
13
+ if node_cache[:root].has_key?(index)
14
+ cached = node_cache[:root][index]
15
+ @index = cached.interval.end if cached
16
+ return cached
17
+ end
18
+
19
+ r0 = super
20
+
21
+ node_cache[:root][start_index] = r0
22
+
23
+ r0
24
+ end
25
+
26
+ module ScientificName50
27
+ def a
28
+ elements[0]
29
+ end
30
+
31
+ def garbage
32
+ elements[1]
33
+ end
34
+ end
35
+
36
+ module ScientificName51
37
+ def value
38
+ a.value
39
+ end
40
+
41
+ def canonical
42
+ a.canonical
43
+ end
44
+
45
+ def pos
46
+ a.pos
47
+ end
48
+
49
+ def details
50
+ a.details
51
+ end
52
+ end
53
+
54
+ def _nt_scientific_name_5
55
+ start_index = index
56
+ if node_cache[:scientific_name_5].has_key?(index)
57
+ cached = node_cache[:scientific_name_5][index]
58
+ @index = cached.interval.end if cached
59
+ return cached
60
+ end
61
+
62
+ i0 = index
63
+ i1, s1 = index, []
64
+ r2 = _nt_scientific_name_4
65
+ s1 << r2
66
+ if r2
67
+ r3 = _nt_garbage
68
+ s1 << r3
69
+ end
70
+ if s1.last
71
+ r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
72
+ r1.extend(ScientificName50)
73
+ r1.extend(ScientificName51)
74
+ else
75
+ @index = i1
76
+ r1 = nil
77
+ end
78
+ if r1
79
+ r0 = r1
80
+ else
81
+ r4 = super
82
+ if r4
83
+ r0 = r4
84
+ else
85
+ @index = i0
86
+ r0 = nil
87
+ end
88
+ end
89
+
90
+ node_cache[:scientific_name_5][start_index] = r0
91
+
92
+ r0
93
+ end
94
+
95
+ module Infraspecies0
96
+ def a
97
+ elements[0]
98
+ end
99
+
100
+ def space
101
+ elements[1]
102
+ end
103
+
104
+ def b
105
+ elements[2]
106
+ end
107
+ end
108
+
109
+ module Infraspecies1
110
+ def value
111
+ a.value + " " + b.value
112
+ end
113
+
114
+ def canonical
115
+ a.canonical
116
+ end
117
+
118
+ def pos
119
+ a.pos.merge(b.pos)
120
+ end
121
+
122
+ def details
123
+ {:infraspecies => a.details[:infraspecies].merge(b.details)}
124
+ end
125
+ end
126
+
127
+ module Infraspecies2
128
+ def a
129
+ elements[0]
130
+ end
131
+
132
+ def space
133
+ elements[1]
134
+ end
135
+
136
+ def epitheton_authorship_inconsistencies
137
+ elements[2]
138
+ end
139
+
140
+ def space
141
+ elements[3]
142
+ end
143
+
144
+ def b
145
+ elements[4]
146
+ end
147
+ end
148
+
149
+ module Infraspecies3
150
+ def value
151
+ a.value + " " + b.value
152
+ end
153
+
154
+ def canonical
155
+ a.canonical
156
+ end
157
+
158
+ def pos
159
+ a.pos.merge(b.pos)
160
+ end
161
+
162
+ def details
163
+ {:infraspecies => a.details[:infraspecies].merge(b.details)}
164
+ end
165
+ end
166
+
167
+ def _nt_infraspecies
168
+ start_index = index
169
+ if node_cache[:infraspecies].has_key?(index)
170
+ cached = node_cache[:infraspecies][index]
171
+ @index = cached.interval.end if cached
172
+ return cached
173
+ end
174
+
175
+ i0 = index
176
+ i1, s1 = index, []
177
+ r2 = _nt_infraspecies_epitheton
178
+ s1 << r2
179
+ if r2
180
+ r3 = _nt_space
181
+ s1 << r3
182
+ if r3
183
+ r4 = _nt_year
184
+ s1 << r4
185
+ end
186
+ end
187
+ if s1.last
188
+ r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
189
+ r1.extend(Infraspecies0)
190
+ r1.extend(Infraspecies1)
191
+ else
192
+ @index = i1
193
+ r1 = nil
194
+ end
195
+ if r1
196
+ r0 = r1
197
+ else
198
+ i5, s5 = index, []
199
+ r6 = _nt_infraspecies_epitheton
200
+ s5 << r6
201
+ if r6
202
+ r7 = _nt_space
203
+ s5 << r7
204
+ if r7
205
+ r8 = _nt_epitheton_authorship_inconsistencies
206
+ s5 << r8
207
+ if r8
208
+ r9 = _nt_space
209
+ s5 << r9
210
+ if r9
211
+ r10 = _nt_authorship
212
+ s5 << r10
213
+ end
214
+ end
215
+ end
216
+ end
217
+ if s5.last
218
+ r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
219
+ r5.extend(Infraspecies2)
220
+ r5.extend(Infraspecies3)
221
+ else
222
+ @index = i5
223
+ r5 = nil
224
+ end
225
+ if r5
226
+ r0 = r5
227
+ else
228
+ r11 = super
229
+ if r11
230
+ r0 = r11
231
+ else
232
+ @index = i0
233
+ r0 = nil
234
+ end
235
+ end
236
+ end
237
+
238
+ node_cache[:infraspecies][start_index] = r0
239
+
240
+ r0
241
+ end
242
+
243
+ module Species0
244
+ def a
245
+ elements[0]
246
+ end
247
+
248
+ def space
249
+ elements[1]
250
+ end
251
+
252
+ def b
253
+ elements[2]
254
+ end
255
+ end
256
+
257
+ module Species1
258
+ def value
259
+ a.value + " " + b.value
260
+ end
261
+
262
+ def canonical
263
+ a.canonical
264
+ end
265
+
266
+ def pos
267
+ a.pos.merge(b.pos)
268
+ end
269
+
270
+ def details
271
+ {:species => a.details[:species].merge(b.details)}
272
+ end
273
+ end
274
+
275
+ def _nt_species
276
+ start_index = index
277
+ if node_cache[:species].has_key?(index)
278
+ cached = node_cache[:species][index]
279
+ @index = cached.interval.end if cached
280
+ return cached
281
+ end
282
+
283
+ i0 = index
284
+ i1, s1 = index, []
285
+ r2 = _nt_species_epitheton
286
+ s1 << r2
287
+ if r2
288
+ r3 = _nt_space
289
+ s1 << r3
290
+ if r3
291
+ r4 = _nt_year
292
+ s1 << r4
293
+ end
294
+ end
295
+ if s1.last
296
+ r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
297
+ r1.extend(Species0)
298
+ r1.extend(Species1)
299
+ else
300
+ @index = i1
301
+ r1 = nil
302
+ end
303
+ if r1
304
+ r0 = r1
305
+ else
306
+ r5 = super
307
+ if r5
308
+ r0 = r5
309
+ else
310
+ @index = i0
311
+ r0 = nil
312
+ end
313
+ end
314
+
315
+ node_cache[:species][start_index] = r0
316
+
317
+ r0
318
+ end
319
+
320
+ module RightParen0
321
+ def space
322
+ elements[1]
323
+ end
324
+
325
+ end
326
+
327
+ def _nt_right_paren
328
+ start_index = index
329
+ if node_cache[:right_paren].has_key?(index)
330
+ cached = node_cache[:right_paren][index]
331
+ @index = cached.interval.end if cached
332
+ return cached
333
+ end
334
+
335
+ i0 = index
336
+ i1, s1 = index, []
337
+ if has_terminal?(")", false, index)
338
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
339
+ @index += 1
340
+ else
341
+ terminal_parse_failure(")")
342
+ r2 = nil
343
+ end
344
+ s1 << r2
345
+ if r2
346
+ r3 = _nt_space
347
+ s1 << r3
348
+ if r3
349
+ if has_terminal?(")", false, index)
350
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
351
+ @index += 1
352
+ else
353
+ terminal_parse_failure(")")
354
+ r4 = nil
355
+ end
356
+ s1 << r4
357
+ end
358
+ end
359
+ if s1.last
360
+ r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
361
+ r1.extend(RightParen0)
362
+ else
363
+ @index = i1
364
+ r1 = nil
365
+ end
366
+ if r1
367
+ r0 = r1
368
+ else
369
+ r5 = super
370
+ if r5
371
+ r0 = r5
372
+ else
373
+ @index = i0
374
+ r0 = nil
375
+ end
376
+ end
377
+
378
+ node_cache[:right_paren][start_index] = r0
379
+
380
+ r0
381
+ end
382
+
383
+ module LeftParen0
384
+ def space
385
+ elements[1]
386
+ end
387
+
388
+ end
389
+
390
+ def _nt_left_paren
391
+ start_index = index
392
+ if node_cache[:left_paren].has_key?(index)
393
+ cached = node_cache[:left_paren][index]
394
+ @index = cached.interval.end if cached
395
+ return cached
396
+ end
397
+
398
+ i0 = index
399
+ i1, s1 = index, []
400
+ if has_terminal?("(", false, index)
401
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
402
+ @index += 1
403
+ else
404
+ terminal_parse_failure("(")
405
+ r2 = nil
406
+ end
407
+ s1 << r2
408
+ if r2
409
+ r3 = _nt_space
410
+ s1 << r3
411
+ if r3
412
+ if has_terminal?("(", false, index)
413
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
414
+ @index += 1
415
+ else
416
+ terminal_parse_failure("(")
417
+ r4 = nil
418
+ end
419
+ s1 << r4
420
+ end
421
+ end
422
+ if s1.last
423
+ r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
424
+ r1.extend(LeftParen0)
425
+ else
426
+ @index = i1
427
+ r1 = nil
428
+ end
429
+ if r1
430
+ r0 = r1
431
+ else
432
+ r5 = super
433
+ if r5
434
+ r0 = r5
435
+ else
436
+ @index = i0
437
+ r0 = nil
438
+ end
439
+ end
440
+
441
+ node_cache[:left_paren][start_index] = r0
442
+
443
+ r0
444
+ end
445
+
446
+ module Year0
447
+ def a
448
+ elements[0]
449
+ end
450
+
451
+ def space
452
+ elements[1]
453
+ end
454
+
455
+ def b
456
+ elements[2]
457
+ end
458
+ end
459
+
460
+ module Year1
461
+ def value
462
+ a.value + " " + b.value
463
+ end
464
+
465
+ def pos
466
+ a.pos.merge(b.pos)
467
+ end
468
+
469
+ def details
470
+ {:year => a.value, :approximate_year => b.value}
471
+ end
472
+ end
473
+
474
+ module Year2
475
+ def a
476
+ elements[0]
477
+ end
478
+
479
+ def space
480
+ elements[1]
481
+ end
482
+
483
+ def page_number
484
+ elements[2]
485
+ end
486
+ end
487
+
488
+ module Year3
489
+ def value
490
+ a.text_value
491
+ end
492
+
493
+ def pos
494
+ {a.interval.begin => ['year', a.interval.end]}
495
+ end
496
+
497
+ def details
498
+ {:year => value}
499
+ end
500
+ end
501
+
502
+ def _nt_year
503
+ start_index = index
504
+ if node_cache[:year].has_key?(index)
505
+ cached = node_cache[:year][index]
506
+ @index = cached.interval.end if cached
507
+ return cached
508
+ end
509
+
510
+ i0 = index
511
+ i1, s1 = index, []
512
+ r2 = _nt_year_number
513
+ s1 << r2
514
+ if r2
515
+ r3 = _nt_space
516
+ s1 << r3
517
+ if r3
518
+ r4 = _nt_approximate_year
519
+ s1 << r4
520
+ end
521
+ end
522
+ if s1.last
523
+ r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
524
+ r1.extend(Year0)
525
+ r1.extend(Year1)
526
+ else
527
+ @index = i1
528
+ r1 = nil
529
+ end
530
+ if r1
531
+ r0 = r1
532
+ else
533
+ i5, s5 = index, []
534
+ r6 = _nt_year_number
535
+ s5 << r6
536
+ if r6
537
+ r7 = _nt_space
538
+ s5 << r7
539
+ if r7
540
+ r8 = _nt_page_number
541
+ s5 << r8
542
+ end
543
+ end
544
+ if s5.last
545
+ r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
546
+ r5.extend(Year2)
547
+ r5.extend(Year3)
548
+ else
549
+ @index = i5
550
+ r5 = nil
551
+ end
552
+ if r5
553
+ r0 = r5
554
+ else
555
+ r9 = _nt_year_number_with_punctuation
556
+ if r9
557
+ r0 = r9
558
+ else
559
+ r10 = _nt_approximate_year
560
+ if r10
561
+ r0 = r10
562
+ else
563
+ r11 = _nt_double_year
564
+ if r11
565
+ r0 = r11
566
+ else
567
+ r12 = super
568
+ if r12
569
+ r0 = r12
570
+ else
571
+ @index = i0
572
+ r0 = nil
573
+ end
574
+ end
575
+ end
576
+ end
577
+ end
578
+ end
579
+
580
+ node_cache[:year][start_index] = r0
581
+
582
+ r0
583
+ end
584
+
585
+ module ApproximateYear0
586
+ def space
587
+ elements[1]
588
+ end
589
+
590
+ def a
591
+ elements[2]
592
+ end
593
+
594
+ def space
595
+ elements[3]
596
+ end
597
+
598
+ end
599
+
600
+ module ApproximateYear1
601
+ def value
602
+ "(" + a.text_value + ")"
603
+ end
604
+
605
+ def pos
606
+ {a.interval.begin => ['year', a.interval.end]}
607
+ end
608
+
609
+ def details
610
+ {:approximate_year => value}
611
+ end
612
+ end
613
+
614
+ def _nt_approximate_year
615
+ start_index = index
616
+ if node_cache[:approximate_year].has_key?(index)
617
+ cached = node_cache[:approximate_year][index]
618
+ @index = cached.interval.end if cached
619
+ return cached
620
+ end
621
+
622
+ i0, s0 = index, []
623
+ if has_terminal?("[", false, index)
624
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
625
+ @index += 1
626
+ else
627
+ terminal_parse_failure("[")
628
+ r1 = nil
629
+ end
630
+ s0 << r1
631
+ if r1
632
+ r2 = _nt_space
633
+ s0 << r2
634
+ if r2
635
+ r3 = _nt_year_number
636
+ s0 << r3
637
+ if r3
638
+ r4 = _nt_space
639
+ s0 << r4
640
+ if r4
641
+ s5, i5 = [], index
642
+ loop do
643
+ if has_terminal?("]", false, index)
644
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
645
+ @index += 1
646
+ else
647
+ terminal_parse_failure("]")
648
+ r6 = nil
649
+ end
650
+ if r6
651
+ s5 << r6
652
+ else
653
+ break
654
+ end
655
+ end
656
+ if s5.empty?
657
+ @index = i5
658
+ r5 = nil
659
+ else
660
+ r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
661
+ end
662
+ s0 << r5
663
+ end
664
+ end
665
+ end
666
+ end
667
+ if s0.last
668
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
669
+ r0.extend(ApproximateYear0)
670
+ r0.extend(ApproximateYear1)
671
+ else
672
+ @index = i0
673
+ r0 = nil
674
+ end
675
+
676
+ node_cache[:approximate_year][start_index] = r0
677
+
678
+ r0
679
+ end
680
+
681
+ module DoubleYear0
682
+ def year_number
683
+ elements[0]
684
+ end
685
+
686
+ end
687
+
688
+ module DoubleYear1
689
+ def value
690
+ text_value
691
+ end
692
+
693
+ def pos
694
+ {interval.begin => ['year', interval.end]}
695
+ end
696
+
697
+ def details
698
+ {:year => value}
699
+ end
700
+ end
701
+
702
+ def _nt_double_year
703
+ start_index = index
704
+ if node_cache[:double_year].has_key?(index)
705
+ cached = node_cache[:double_year][index]
706
+ @index = cached.interval.end if cached
707
+ return cached
708
+ end
709
+
710
+ i0, s0 = index, []
711
+ r1 = _nt_year_number
712
+ s0 << r1
713
+ if r1
714
+ if has_terminal?("-", false, index)
715
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
716
+ @index += 1
717
+ else
718
+ terminal_parse_failure("-")
719
+ r2 = nil
720
+ end
721
+ s0 << r2
722
+ if r2
723
+ s3, i3 = [], index
724
+ loop do
725
+ if has_terminal?('\G[0-9]', true, index)
726
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
727
+ @index += 1
728
+ else
729
+ r4 = nil
730
+ end
731
+ if r4
732
+ s3 << r4
733
+ else
734
+ break
735
+ end
736
+ end
737
+ if s3.empty?
738
+ @index = i3
739
+ r3 = nil
740
+ else
741
+ r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
742
+ end
743
+ s0 << r3
744
+ if r3
745
+ if has_terminal?('\G[A-Za-z]', true, index)
746
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
747
+ @index += 1
748
+ else
749
+ r6 = nil
750
+ end
751
+ if r6
752
+ r5 = r6
753
+ else
754
+ r5 = instantiate_node(SyntaxNode,input, index...index)
755
+ end
756
+ s0 << r5
757
+ if r5
758
+ if has_terminal?('\G[\\?]', true, index)
759
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
760
+ @index += 1
761
+ else
762
+ r8 = nil
763
+ end
764
+ if r8
765
+ r7 = r8
766
+ else
767
+ r7 = instantiate_node(SyntaxNode,input, index...index)
768
+ end
769
+ s0 << r7
770
+ end
771
+ end
772
+ end
773
+ end
774
+ if s0.last
775
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
776
+ r0.extend(DoubleYear0)
777
+ r0.extend(DoubleYear1)
778
+ else
779
+ @index = i0
780
+ r0 = nil
781
+ end
782
+
783
+ node_cache[:double_year][start_index] = r0
784
+
785
+ r0
786
+ end
787
+
788
+ module YearNumberWithPunctuation0
789
+ def a
790
+ elements[0]
791
+ end
792
+
793
+ end
794
+
795
+ module YearNumberWithPunctuation1
796
+ def value
797
+ a.text_value
798
+ end
799
+
800
+ def pos
801
+ {interval.begin => ['year', interval.end]}
802
+ end
803
+
804
+ def details
805
+ {:year => value}
806
+ end
807
+ end
808
+
809
+ def _nt_year_number_with_punctuation
810
+ start_index = index
811
+ if node_cache[:year_number_with_punctuation].has_key?(index)
812
+ cached = node_cache[:year_number_with_punctuation][index]
813
+ @index = cached.interval.end if cached
814
+ return cached
815
+ end
816
+
817
+ i0, s0 = index, []
818
+ r1 = _nt_year_number
819
+ s0 << r1
820
+ if r1
821
+ if has_terminal?(".", false, index)
822
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
823
+ @index += 1
824
+ else
825
+ terminal_parse_failure(".")
826
+ r2 = nil
827
+ end
828
+ s0 << r2
829
+ end
830
+ if s0.last
831
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
832
+ r0.extend(YearNumberWithPunctuation0)
833
+ r0.extend(YearNumberWithPunctuation1)
834
+ else
835
+ @index = i0
836
+ r0 = nil
837
+ end
838
+
839
+ node_cache[:year_number_with_punctuation][start_index] = r0
840
+
841
+ r0
842
+ end
843
+
844
+ module PageNumber0
845
+ def space
846
+ elements[1]
847
+ end
848
+
849
+ end
850
+
851
+ module PageNumber1
852
+ def value
853
+ end
854
+ end
855
+
856
+ def _nt_page_number
857
+ start_index = index
858
+ if node_cache[:page_number].has_key?(index)
859
+ cached = node_cache[:page_number][index]
860
+ @index = cached.interval.end if cached
861
+ return cached
862
+ end
863
+
864
+ i0, s0 = index, []
865
+ if has_terminal?(":", false, index)
866
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
867
+ @index += 1
868
+ else
869
+ terminal_parse_failure(":")
870
+ r1 = nil
871
+ end
872
+ s0 << r1
873
+ if r1
874
+ r2 = _nt_space
875
+ s0 << r2
876
+ if r2
877
+ s3, i3 = [], index
878
+ loop do
879
+ if has_terminal?('\G[\\d]', true, index)
880
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
881
+ @index += 1
882
+ else
883
+ r4 = nil
884
+ end
885
+ if r4
886
+ s3 << r4
887
+ else
888
+ break
889
+ end
890
+ end
891
+ if s3.empty?
892
+ @index = i3
893
+ r3 = nil
894
+ else
895
+ r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
896
+ end
897
+ s0 << r3
898
+ end
899
+ end
900
+ if s0.last
901
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
902
+ r0.extend(PageNumber0)
903
+ r0.extend(PageNumber1)
904
+ else
905
+ @index = i0
906
+ r0 = nil
907
+ end
908
+
909
+ node_cache[:page_number][start_index] = r0
910
+
911
+ r0
912
+ end
913
+
914
+ def _nt_epitheton_authorship_inconsistencies
915
+ start_index = index
916
+ if node_cache[:epitheton_authorship_inconsistencies].has_key?(index)
917
+ cached = node_cache[:epitheton_authorship_inconsistencies][index]
918
+ @index = cached.interval.end if cached
919
+ return cached
920
+ end
921
+
922
+ if has_terminal?("corrig.", false, index)
923
+ r0 = instantiate_node(SyntaxNode,input, index...(index + 7))
924
+ @index += 7
925
+ else
926
+ terminal_parse_failure("corrig.")
927
+ r0 = nil
928
+ end
929
+
930
+ node_cache[:epitheton_authorship_inconsistencies][start_index] = r0
931
+
932
+ r0
933
+ end
934
+
935
+ module Garbage0
936
+ def space
937
+ elements[0]
938
+ end
939
+
940
+ def space
941
+ elements[2]
942
+ end
943
+
944
+ end
945
+
946
+ module Garbage1
947
+ def space_hard
948
+ elements[0]
949
+ end
950
+
951
+ end
952
+
953
+ def _nt_garbage
954
+ start_index = index
955
+ if node_cache[:garbage].has_key?(index)
956
+ cached = node_cache[:garbage][index]
957
+ @index = cached.interval.end if cached
958
+ return cached
959
+ end
960
+
961
+ i0 = index
962
+ i1, s1 = index, []
963
+ r2 = _nt_space
964
+ s1 << r2
965
+ if r2
966
+ if has_terminal?('\G["\',.]', true, index)
967
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
968
+ @index += 1
969
+ else
970
+ r3 = nil
971
+ end
972
+ s1 << r3
973
+ if r3
974
+ r4 = _nt_space
975
+ s1 << r4
976
+ if r4
977
+ s5, i5 = [], index
978
+ loop do
979
+ if has_terminal?('\G[^щ]', true, index)
980
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
981
+ @index += 1
982
+ else
983
+ r6 = nil
984
+ end
985
+ if r6
986
+ s5 << r6
987
+ else
988
+ break
989
+ end
990
+ end
991
+ r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
992
+ s1 << r5
993
+ end
994
+ end
995
+ end
996
+ if s1.last
997
+ r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
998
+ r1.extend(Garbage0)
999
+ else
1000
+ @index = i1
1001
+ r1 = nil
1002
+ end
1003
+ if r1
1004
+ r0 = r1
1005
+ else
1006
+ i7, s7 = index, []
1007
+ r8 = _nt_space_hard
1008
+ s7 << r8
1009
+ if r8
1010
+ s9, i9 = [], index
1011
+ loop do
1012
+ if has_terminal?('\G[^ш]', true, index)
1013
+ r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
1014
+ @index += 1
1015
+ else
1016
+ r10 = nil
1017
+ end
1018
+ if r10
1019
+ s9 << r10
1020
+ else
1021
+ break
1022
+ end
1023
+ end
1024
+ if s9.empty?
1025
+ @index = i9
1026
+ r9 = nil
1027
+ else
1028
+ r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
1029
+ end
1030
+ s7 << r9
1031
+ end
1032
+ if s7.last
1033
+ r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
1034
+ r7.extend(Garbage1)
1035
+ else
1036
+ @index = i7
1037
+ r7 = nil
1038
+ end
1039
+ if r7
1040
+ r0 = r7
1041
+ else
1042
+ @index = i0
1043
+ r0 = nil
1044
+ end
1045
+ end
1046
+
1047
+ node_cache[:garbage][start_index] = r0
1048
+
1049
+ r0
1050
+ end
1051
+
1052
+ end
1053
+
1054
+ class ScientificNameDirtyParser < Treetop::Runtime::CompiledParser
1055
+ include ScientificNameDirty
1056
+ end