Parent

Class Index [+]

Quicksearch

Treetop::Compiler::ParsingRule

Public Instance Methods

compile(builder) click to toggle source
   # File lib/treetop/compiler/node_classes/parsing_rule.rb, line 5
5:       def compile(builder)
6:         compile_inline_module_declarations(builder)
7:         generate_method_definition(builder)
8:       end
compile_inline_module_declarations(builder) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_rule.rb, line 10
10:       def compile_inline_module_declarations(builder)
11:         parsing_expression.inline_modules.each_with_index do |inline_module, i|
12:           inline_module.compile(i, builder, self)
13:           builder.newline
14:         end
15:       end
generate_cache_lookup(builder) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_rule.rb, line 34
34:       def generate_cache_lookup(builder)
35:         builder.if_ "node_cache[:#{name}].has_key?(index)" do
36:           builder.assign 'cached', "node_cache[:#{name}][index]"
37:           builder.if_ "cached" do
38:             builder << 'cached = SyntaxNode.new(input, index...(index + 1)) if cached == true'
39:             builder << '@index = cached.interval.end'
40:           end
41:           builder << 'return cached'
42:         end
43:       end
generate_cache_storage(builder, result_var) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_rule.rb, line 45
45:       def generate_cache_storage(builder, result_var)
46:         builder.assign "node_cache[:#{name}][start_index]", result_var
47:       end
generate_method_definition(builder) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_rule.rb, line 17
17:       def generate_method_definition(builder)
18:         builder.reset_addresses
19:         expression_address = builder.next_address
20:         result_var = "r#{expression_address}"
21:         
22:         builder.method_declaration(method_name) do
23:           builder.assign 'start_index', 'index'
24:           generate_cache_lookup(builder)
25:           builder.newline
26:           parsing_expression.compile(expression_address, builder)
27:           builder.newline
28:           generate_cache_storage(builder, result_var)
29:           builder.newline          
30:           builder << result_var
31:         end
32:       end
method_name() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_rule.rb, line 49
49:       def method_name
50:         "_nt_#{name}"
51:       end
name() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_rule.rb, line 53
53:       def name
54:         nonterminal.text_value
55:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.