Runtime::SyntaxNode
# 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
# File lib/treetop/compiler/node_classes/parsing_expression.rb, line 45
45: def accumulator_var
46: var(:accumulator)
47: end
# File lib/treetop/compiler/node_classes/parsing_expression.rb, line 93
93: def assign_failure(start_index_var)
94: assign_result("nil")
95: end
# File lib/treetop/compiler/node_classes/parsing_expression.rb, line 97
97: def assign_lazily_instantiated_node
98: assign_result("true")
99: end
# 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
# 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
# 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
# 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
# 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
# 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
# File lib/treetop/compiler/node_classes/parsing_expression.rb, line 89
89: def epsilon_node
90: "instantiate_node(SyntaxNode,input, index...index)"
91: end
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# File lib/treetop/compiler/node_classes/parsing_expression.rb, line 85
85: def reset_index
86: builder.assign '@index', start_index_var
87: end
# File lib/treetop/compiler/node_classes/parsing_expression.rb, line 41
41: def result_var
42: var(:result)
43: end
# File lib/treetop/compiler/node_classes/parsing_expression.rb, line 49
49: def start_index_var
50: var(:start_index)
51: end
# File lib/treetop/compiler/node_classes/parsing_expression.rb, line 53
53: def subexpression_result_var
54: "r#{subexpression_address}"
55: end
# File lib/treetop/compiler/node_classes/parsing_expression.rb, line 57
57: def subexpression_success?
58: subexpression_result_var
59: end
# 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
# 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
# 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.
Generated with the Darkfish Rdoc Generator 1.1.6.