# File lib/treetop/compiler/node_classes/sequence.rb, line 4
4: def compile(address, builder, parent_expression = nil)
5: super
6: begin_comment(self)
7: use_vars :result, :start_index, :accumulator
8: compile_sequence_elements(sequence_elements)
9: builder.if__ "#{accumulator_var}.last" do
10: assign_result "instantiate_node(#{node_class_name},input, #{start_index_var}...index, #{accumulator_var})"
11: extend_result sequence_element_accessor_module_name if sequence_element_accessor_module_name
12: extend_result_with_inline_module
13: end
14: builder.else_ do
15: reset_index
16: assign_failure start_index_var
17: end
18: end_comment(self)
19: end
# File lib/treetop/compiler/node_classes/sequence.rb, line 25
25: def compile_sequence_elements(elements)
26: obtain_new_subexpression_address
27: elements.first.compile(subexpression_address, builder)
28: accumulate_subexpression_result
29: if elements.size > 1
30: builder.if_ subexpression_success? do
31: compile_sequence_elements(elements[1..1])
32: end
33: end
34: end
# File lib/treetop/compiler/node_classes/sequence.rb, line 21
21: def node_class_name
22: node_class_declarations.node_class_name || 'SyntaxNode'
23: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.