Runtime::SyntaxNode
# 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
# 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
# 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
# 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
# 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
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.