Class: Ikra::AST::Visitor
Instance Method Summary
collapse
Instance Method Details
#visit_array_node(node) ⇒ Object
227
228
229
230
231
232
233
|
# File 'lib/ast/visitor.rb', line 227
def visit_array_node(node)
visit_node(node)
for value in node.values
value.accept(self)
end
end
|
#visit_begin_node(node) ⇒ Object
360
361
362
363
364
365
366
|
# File 'lib/ast/visitor.rb', line 360
def visit_begin_node(node)
visit_node(node)
node.body_stmts.each do |stmt|
stmt.accept(self)
end
end
|
#visit_block_def_node(node) ⇒ Object
257
258
259
260
|
# File 'lib/ast/visitor.rb', line 257
def visit_block_def_node(node)
visit_node(node)
node.body.accept(self)
end
|
#visit_bool_node(node) ⇒ Object
288
289
290
|
# File 'lib/ast/visitor.rb', line 288
def visit_bool_node(node)
visit_node(node)
end
|
#visit_break_node(node) ⇒ Object
340
341
342
|
# File 'lib/ast/visitor.rb', line 340
def visit_break_node(node)
visit_node(node)
end
|
#visit_class_def_node(node) ⇒ Object
210
211
212
213
214
215
216
217
218
219
220
|
# File 'lib/ast/visitor.rb', line 210
def visit_class_def_node(node)
visit_node(node)
node.instance_variables.each do |iv|
iv.accept(self)
end
node.instance_methods.each do |im|
im.accept(self)
end
end
|
#visit_const_node(node) ⇒ Object
262
263
264
|
# File 'lib/ast/visitor.rb', line 262
def visit_const_node(node)
visit_node(node)
end
|
#visit_float_node(node) ⇒ Object
283
284
285
286
|
# File 'lib/ast/visitor.rb', line 283
def visit_float_node(node)
visit_node(node)
end
|
#visit_for_node(node) ⇒ Object
304
305
306
307
308
309
310
|
# File 'lib/ast/visitor.rb', line 304
def visit_for_node(node)
visit_node(node)
node.range_from.accept(self)
node.range_to.accept(self)
node.body_stmts.accept(self)
end
|
#visit_hash_node(node) ⇒ Object
239
240
241
242
243
244
245
246
|
# File 'lib/ast/visitor.rb', line 239
def visit_hash_node(node)
visit_node(node)
node.hash.each do |key, value|
key.accept(self)
value.accept(self)
end
end
|
#visit_if_node(node) ⇒ Object
344
345
346
347
348
349
350
|
# File 'lib/ast/visitor.rb', line 344
def visit_if_node(node)
visit_node(node)
node.condition.accept(self)
node.true_body_stmts.accept(self)
node.false_body_stmts.accept(self)
end
|
#visit_int_node(node) ⇒ Object
279
280
281
|
# File 'lib/ast/visitor.rb', line 279
def visit_int_node(node)
visit_node(node)
end
|
#visit_ivar_read_node(node) ⇒ Object
275
276
277
|
# File 'lib/ast/visitor.rb', line 275
def visit_ivar_read_node(node)
visit_node(node)
end
|
#visit_lvar_read_node(node) ⇒ Object
266
267
268
|
# File 'lib/ast/visitor.rb', line 266
def visit_lvar_read_node(node)
visit_node(node)
end
|
#visit_lvar_write_node(node) ⇒ Object
270
271
272
273
|
# File 'lib/ast/visitor.rb', line 270
def visit_lvar_write_node(node)
visit_node(node)
node.value.accept(self)
end
|
#visit_meth_def_node(node) ⇒ Object
252
253
254
255
|
# File 'lib/ast/visitor.rb', line 252
def visit_meth_def_node(node)
visit_node(node)
node.body.accept(self)
end
|
#visit_nil_node(node) ⇒ Object
292
293
294
|
# File 'lib/ast/visitor.rb', line 292
def visit_nil_node(node)
visit_node(node)
end
|
#visit_node(node) ⇒ Object
194
195
196
|
# File 'lib/ast/visitor.rb', line 194
def visit_node(node)
end
|
#visit_program_node(node) ⇒ Object
198
199
200
201
202
203
204
205
206
207
208
|
# File 'lib/ast/visitor.rb', line 198
def visit_program_node(node)
visit_node(node)
node.classes.each do |c|
c.accept(self)
end
node.blocks.each do |b|
b.accept(self)
end
end
|
#visit_return_node(node) ⇒ Object
381
382
383
384
|
# File 'lib/ast/visitor.rb', line 381
def visit_return_node(node)
visit_node(node)
node.value.accept(self)
end
|
#visit_root_node(node) ⇒ Object
222
223
224
225
|
# File 'lib/ast/visitor.rb', line 222
def visit_root_node(node)
visit_node(node)
node.single_child.accept(self)
end
|
#visit_send_node(node) ⇒ Object
368
369
370
371
372
373
374
375
376
377
378
379
|
# File 'lib/ast/visitor.rb', line 368
def visit_send_node(node)
visit_node(node)
if node.receiver != nil
node.receiver.accept(self)
end
node.arguments.each do |arg|
arg.accept(self)
end
end
|
#visit_source_code_expr_node(node) ⇒ Object
235
236
237
|
# File 'lib/ast/visitor.rb', line 235
def visit_source_code_expr_node(node)
visit_node(node)
end
|
#visit_string_node(node) ⇒ Object
300
301
302
|
# File 'lib/ast/visitor.rb', line 300
def visit_string_node(node)
visit_node(node)
end
|
#visit_symbol_node(node) ⇒ Object
296
297
298
|
# File 'lib/ast/visitor.rb', line 296
def visit_symbol_node(node)
visit_node(node)
end
|
#visit_ternary_node(node) ⇒ Object
352
353
354
355
356
357
358
|
# File 'lib/ast/visitor.rb', line 352
def visit_ternary_node(node)
visit_node(node)
node.condition.accept(self)
node.true_val.accept(self)
node.false_val.accept(self)
end
|
#visit_until_node(node) ⇒ Object
326
327
328
329
330
331
|
# File 'lib/ast/visitor.rb', line 326
def visit_until_node(node)
visit_node(node)
node.condition.accept(self)
node.body_stmts.accept(self)
end
|
#visit_until_post_node(node) ⇒ Object
333
334
335
336
337
338
|
# File 'lib/ast/visitor.rb', line 333
def visit_until_post_node(node)
visit_node(node)
node.condition.accept(self)
node.body_stmts.accept(self)
end
|
#visit_var_def_node(node) ⇒ Object
248
249
250
|
# File 'lib/ast/visitor.rb', line 248
def visit_var_def_node(node)
visit_node(node)
end
|
#visit_while_node(node) ⇒ Object
312
313
314
315
316
317
|
# File 'lib/ast/visitor.rb', line 312
def visit_while_node(node)
visit_node(node)
node.condition.accept(self)
node.body_stmts.accept(self)
end
|
#visit_while_post_node(node) ⇒ Object
319
320
321
322
323
324
|
# File 'lib/ast/visitor.rb', line 319
def visit_while_post_node(node)
visit_node(node)
node.condition.accept(self)
node.body_stmts.accept(self)
end
|