Parent

Class Index [+]

Quicksearch

Treetop::Compiler::ParsingExpression

Attributes

address[R]
builder[R]
subexpression_address[R]
var_symbols[R]
parent_expression[R]

Public Instance Methods

accumulate_subexpression_result() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 65
65:       def accumulate_subexpression_result
66:         builder.accumulate accumulator_var, subexpression_result_var
67:       end
accumulator_var() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 45
45:       def accumulator_var
46:         var(:accumulator)
47:       end
assign_failure(start_index_var) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 93
93:       def assign_failure(start_index_var)
94:         assign_result("nil")
95:       end
assign_lazily_instantiated_node() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 97
97:       def assign_lazily_instantiated_node
98:         assign_result("true")
99:       end
assign_result(value_ruby) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 69
69:       def assign_result(value_ruby)
70:         builder.assign result_var, value_ruby
71:       end
begin_comment(expression) click to toggle source
     # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 133
133:       def begin_comment(expression)
134:         #builder << "# begin #{on_one_line(expression)}"
135:       end
compile(address, builder, parent_expression) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 6
 6:       def compile(address, builder, parent_expression)
 7:         @address = address
 8:         @builder = builder
 9:         @parent_expression = parent_expression
10:       end
declared_module_name() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 16
16:       def declared_module_name
17:         parent_expression && parent_expression.node_class_name
18:       end
decorated?() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 24
24:       def decorated?
25:         parent_expression && (parent_expression.node_class_name || parent_expression.node_class_name || parent_expression.inline_module_name)
26:       end
end_comment(expression) click to toggle source
     # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 137
137:       def end_comment(expression)
138:         #builder << "# end #{on_one_line(expression)}"
139:       end
epsilon_node() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 89
89:       def epsilon_node
90:         "instantiate_node(SyntaxNode,input, index...index)"
91:       end
extend_result(module_name) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 73
73:       def extend_result(module_name)
74:         builder.extend result_var, module_name
75:       end
extend_result_with_declared_module() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 77
77:       def extend_result_with_declared_module
78:         extend_result declared_module_name if declared_module_name
79:       end
extend_result_with_inline_module() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 81
81:       def extend_result_with_inline_module
82:         extend_result inline_module_name if inline_module_name
83:       end
init_value(var_symbol) click to toggle source
     # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 125
125:       def init_value(var_symbol)
126:         case var_symbol
127:         when :accumulator then '[]'
128:         when :start_index then 'index'
129:         else nil
130:         end
131:       end
inline_module_name() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 20
20:       def inline_module_name
21:         parent_expression && parent_expression.inline_module_name
22:       end
node_class_name() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 12
12:       def node_class_name
13:         parent_expression && parent_expression.node_class_name || 'SyntaxNode'
14:       end
obtain_new_subexpression_address() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 61
61:       def obtain_new_subexpression_address
62:         @subexpression_address = builder.next_address
63:       end
on_one_line(expression) click to toggle source
     # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 141
141:       def on_one_line(expression)
142:         expression.text_value.tr("\n", ' ')
143:       end
optional_arg(arg) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 28
28:       def optional_arg(arg)
29:         if arg
30:           ", #{arg}"
31:         else
32:           ''
33:         end
34:       end
reset_index() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 85
85:       def reset_index
86:         builder.assign '@index', start_index_var
87:       end
result_var() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 41
41:       def result_var
42:         var(:result)
43:       end
start_index_var() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 49
49:       def start_index_var
50:         var(:start_index)
51:       end
subexpression_result_var() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 53
53:       def subexpression_result_var
54:         "r#{subexpression_address}"
55:       end
subexpression_success?() click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 57
57:       def subexpression_success?
58:         subexpression_result_var
59:       end
use_vars(*var_symbols) click to toggle source
    # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 36
36:       def use_vars(*var_symbols)
37:         @var_symbols = var_symbols
38:         builder << var_initialization
39:       end
var(var_symbol) click to toggle source
     # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 116
116:       def var(var_symbol)
117:         case var_symbol
118:         when :result then "r#{address}"
119:         when :accumulator then "s#{address}"
120:         when :start_index then "i#{address}"
121:         else raise "Unknown var symbol #{var_symbol}."
122:         end
123:       end
var_initialization() click to toggle source
     # File lib/treetop/compiler/node_classes/parsing_expression.rb, line 101
101:       def var_initialization
102:         left, right = [], []
103:         var_symbols.each do |symbol|
104:           if init_value(symbol)
105:             left << var(symbol)
106:             right << init_value(symbol)
107:           end
108:         end
109:         if left.empty?
110:           ""
111:         else
112:           left.join(', ') + ' = ' + right.join(', ')
113:         end
114:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.