Class: Parser::AST::Processor
- Inherits:
-
AST::Processor
- Object
- AST::Processor
- Parser::AST::Processor
show all
- Defined in:
- lib/parser/ast/processor.rb
Instance Method Summary
collapse
-
#on_argument(node) ⇒ Object
-
#on_case(node) ⇒ Object
-
#on_cdecl(node) ⇒ Object
-
#on_class(node) ⇒ Object
-
#on_const(node) ⇒ Object
-
#on_def(node) ⇒ Object
-
#on_defs(node) ⇒ Object
-
#on_if(node) ⇒ Object
-
#on_op_asgn(node) ⇒ Object
-
#on_resbody(node) ⇒ Object
-
#on_rescue(node) ⇒ Object
-
#on_send(node) ⇒ Object
-
#on_var(node) ⇒ Object
-
#on_vasgn(node) ⇒ Object
-
#process_argument_node(node) ⇒ Object
(also: #on_arg, #on_optarg, #on_splatarg, #on_blockarg, #on_kwarg, #on_kwoptarg, #on_kwsplatarg)
-
#process_regular_node(node) ⇒ Object
(also: #on_dstr, #on_dsym, #on_regexp, #on_xstr, #on_splat, #on_array, #on_pair, #on_hash, #on_irange, #on_erange, #on_and_asgn, #on_or_asgn, #on_mlhs, #on_masgn, #on_args, #on_arg_expr, #on_restarg_expr, #on_blockarg_expr, #on_module, #on_sclass, #on_undef, #on_alias, #on_block, #on_while, #on_until, #on_for, #on_return, #on_break, #on_next, #on_redo, #on_retry, #on_super, #on_yield, #on_defined?, #on_not, #on_and, #on_or, #on_when, #on_ensure, #on_begin)
-
#process_var_asgn_node(node) ⇒ Object
(also: #on_lvasgn, #on_ivasgn, #on_gvasgn, #on_cvdecl, #on_cvasgn)
-
#process_variable_node(node) ⇒ Object
(also: #on_lvar, #on_ivar, #on_gvar, #on_cvar, #on_back_ref, #on_nth_ref)
Instance Method Details
#on_argument(node) ⇒ Object
85
86
87
88
89
90
|
# File 'lib/parser/ast/processor.rb', line 85
def on_argument(node)
arg_name, value_node = *node
value_node = process(value_node) if value_node
node.updated(nil, [ arg_name, value_node ])
end
|
#on_case(node) ⇒ Object
184
185
186
187
188
189
190
191
192
193
|
# File 'lib/parser/ast/processor.rb', line 184
def on_case(node)
cond_node, *bodies = *node
when_nodes, else_node = bodies[0..-2], bodies[-1]
else_node = process(else_node) if else_node
node.updated(nil, [
process(cond_node),
*(process_all(when_nodes) << else_node)
])
end
|
#on_cdecl(node) ⇒ Object
75
76
77
78
79
80
81
|
# File 'lib/parser/ast/processor.rb', line 75
def on_cdecl(node)
scope_node, name, value_node = *node
scope_node = process(scope_node) if scope_node
value_node = process(value_node)
node.updated(nil, [ scope_node, name, value_node ])
end
|
#on_class(node) ⇒ Object
110
111
112
113
114
115
116
117
|
# File 'lib/parser/ast/processor.rb', line 110
def on_class(node)
name_node, superclass_node, body_node = *node
superclass_node = process(superclass_node) if superclass_node
node.updated(nil, [
name_node, superclass_node, process(body_node)
])
end
|
#on_const(node) ⇒ Object
68
69
70
71
72
73
|
# File 'lib/parser/ast/processor.rb', line 68
def on_const(node)
scope_node, name = *node
scope_node = process(scope_node) if scope_node
node.updated(nil, [ scope_node, name ])
end
|
#on_def(node) ⇒ Object
121
122
123
124
125
126
127
128
|
# File 'lib/parser/ast/processor.rb', line 121
def on_def(node)
name, args_node, body_node = *node
node.updated(nil, [
name,
process(args_node), process(body_node)
])
end
|
#on_defs(node) ⇒ Object
130
131
132
133
134
135
136
137
|
# File 'lib/parser/ast/processor.rb', line 130
def on_defs(node)
definee_node, name, args_node, body_node = *node
node.updated(nil, [
process(definee_node), name,
process(args_node), process(body_node)
])
end
|
#on_if(node) ⇒ Object
170
171
172
173
174
175
176
177
178
179
180
|
# File 'lib/parser/ast/processor.rb', line 170
def on_if(node)
cond_node, if_true_node, if_false_node = *node
if_true_node = process(if_true_node) if if_true_node
if_false_node = process(if_false_node) if if_false_node
node.updated(nil, [
process(cond_node),
if_true_node, if_false_node
])
end
|
#on_op_asgn(node) ⇒ Object
57
58
59
60
61
62
63
|
# File 'lib/parser/ast/processor.rb', line 57
def on_op_asgn(node)
var_node, method_name, value_node = *node
node.updated(nil, [
process(var_node), method_name, process(value_node)
])
end
|
#on_resbody(node) ⇒ Object
195
196
197
198
199
200
201
202
203
204
205
|
# File 'lib/parser/ast/processor.rb', line 195
def on_resbody(node)
exc_list_node, exc_var_node, body_node = *node
exc_list_node = process(exc_list_node) if exc_list_node
exc_var_node = process(exc_var_node) if exc_var_node
node.updated(nil, [
exc_list_node, exc_var_node,
process(body_node)
])
end
|
#on_rescue(node) ⇒ Object
207
208
209
210
211
212
213
214
215
216
|
# File 'lib/parser/ast/processor.rb', line 207
def on_rescue(node)
body_node, *handlers = *node
handler_nodes, else_node = handlers[0..-2], handlers[-1]
else_node = process(else_node) if else_node
node.updated(nil, [
process(body_node),
*(process_all(handler_nodes) << else_node)
])
end
|
#on_send(node) ⇒ Object
142
143
144
145
146
147
148
149
|
# File 'lib/parser/ast/processor.rb', line 142
def on_send(node)
receiver_node, method_name, *arg_nodes = *node
receiver_node = process(receiver_node) if receiver_node
node.updated(nil, [
receiver_node, method_name, *process_all(arg_nodes)
])
end
|
#on_var(node) ⇒ Object
20
21
22
23
24
|
# File 'lib/parser/ast/processor.rb', line 20
def on_var(node)
name, = *node
node.updated
end
|
#on_vasgn(node) ⇒ Object
37
38
39
40
41
42
|
# File 'lib/parser/ast/processor.rb', line 37
def on_vasgn(node)
name, value_node = *node
value_node = process(value_node) if value_node
node.updated(nil, [ name, value_node ])
end
|
#process_argument_node(node) ⇒ Object
Also known as:
on_arg, on_optarg, on_splatarg, on_blockarg, on_kwarg, on_kwoptarg, on_kwsplatarg
92
93
94
|
# File 'lib/parser/ast/processor.rb', line 92
def process_argument_node(node)
on_argument(node)
end
|
#process_regular_node(node) ⇒ Object
Also known as:
on_dstr, on_dsym, on_regexp, on_xstr, on_splat, on_array, on_pair, on_hash, on_irange, on_erange, on_and_asgn, on_or_asgn, on_mlhs, on_masgn, on_args, on_arg_expr, on_restarg_expr, on_blockarg_expr, on_module, on_sclass, on_undef, on_alias, on_block, on_while, on_until, on_for, on_return, on_break, on_next, on_redo, on_retry, on_super, on_yield, on_defined?, on_not, on_and, on_or, on_when, on_ensure, on_begin
5
6
7
|
# File 'lib/parser/ast/processor.rb', line 5
def process_regular_node(node)
node.updated(nil, process_all(node))
end
|
#process_var_asgn_node(node) ⇒ Object
Also known as:
on_lvasgn, on_ivasgn, on_gvasgn, on_cvdecl, on_cvasgn
44
45
46
|
# File 'lib/parser/ast/processor.rb', line 44
def process_var_asgn_node(node)
on_vasgn(node)
end
|
#process_variable_node(node) ⇒ Object
Also known as:
on_lvar, on_ivar, on_gvar, on_cvar, on_back_ref, on_nth_ref
26
27
28
|
# File 'lib/parser/ast/processor.rb', line 26
def process_variable_node(node)
on_var(node)
end
|