571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
|
# File 'lib/vendor/treetop/lib/treetop/compiler/metagrammar.rb', line 571
def _nt_declaration_sequence
start_index = index
if node_cache[:declaration_sequence].has_key?(index)
cached = node_cache[:declaration_sequence][index]
@index = cached.interval.end if cached
return cached
end
i0 = index
i1, s1 = index, []
r2 = _nt_declaration
s1 << r2
if r2
s3, i3 = [], index
loop do
i4, s4 = index, []
r5 = _nt_space
s4 << r5
if r5
r6 = _nt_declaration
s4 << r6
end
if s4.last
r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
r4.extend(DeclarationSequence0)
else
self.index = i4
r4 = nil
end
if r4
s3 << r4
else
break
end
end
r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
s1 << r3
end
if s1.last
r1 = instantiate_node(DeclarationSequence,input, i1...index, s1)
r1.extend(DeclarationSequence1)
r1.extend(DeclarationSequence2)
else
self.index = i1
r1 = nil
end
if r1
r0 = r1
else
if input.index('', index) == index
r7 = instantiate_node(SyntaxNode,input, index...(index + 0))
r7.extend(DeclarationSequence3)
@index += 0
else
terminal_parse_failure('')
r7 = nil
end
if r7
r0 = r7
else
self.index = i0
r0 = nil
end
end
node_cache[:declaration_sequence][start_index] = r0
return r0
end
|