Class Index [+]

Quicksearch

Treetop::Compiler::Sequence

Public Instance Methods

compile(address, builder, parent_expression = nil) click to toggle source
    # 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
compile_sequence_elements(elements) click to toggle source
    # 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
node_class_name() click to toggle source
    # 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
sequence_element_accessor_module() click to toggle source
    # File lib/treetop/compiler/node_classes/sequence.rb, line 36
36:       def sequence_element_accessor_module
37:         @sequence_element_accessor_module ||= SequenceElementAccessorModule.new(sequence_elements)
38:       end
sequence_element_accessor_module_name() click to toggle source
    # File lib/treetop/compiler/node_classes/sequence.rb, line 40
40:       def sequence_element_accessor_module_name
41:         sequence_element_accessor_module.module_name
42:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.