Class Index [+]

Quicksearch

Treetop::Compiler::Choice

Public Instance Methods

compile(address, builder, parent_expression = nil) click to toggle source
    # File lib/treetop/compiler/node_classes/choice.rb, line 4
 4:       def compile(address, builder, parent_expression = nil)
 5:         super
 6:         begin_comment(self)
 7:         use_vars :result, :start_index
 8:         compile_alternatives(alternatives)
 9:         end_comment(self)
10:       end
compile_alternatives(alternatives) click to toggle source
    # File lib/treetop/compiler/node_classes/choice.rb, line 12
12:       def compile_alternatives(alternatives)
13:         obtain_new_subexpression_address
14:         alternatives.first.compile(subexpression_address, builder)
15:         builder.if__ subexpression_success? do
16:           assign_result subexpression_result_var
17:           extend_result_with_declared_module
18:           extend_result_with_inline_module
19:         end
20:         builder.else_ do
21:           if alternatives.size == 1
22:             reset_index
23:             assign_failure start_index_var
24:           else
25:             compile_alternatives(alternatives[1..1])
26:           end
27:         end
28:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.