biodiversity 0.5.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -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