class Ikra::AST::Visitor

Public Instance Methods

visit_array_node(node) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/ast/visitor.rb, line 288
def visit_bool_node(node)
    visit_node(node)
end
visit_break_node(node) click to toggle source
# File lib/ast/visitor.rb, line 340
def visit_break_node(node)
    visit_node(node)
end
visit_class_def_node(node) click to toggle source
# 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) click to toggle source
# File lib/ast/visitor.rb, line 262
def visit_const_node(node)
    visit_node(node)
end
visit_float_node(node) click to toggle source
# File lib/ast/visitor.rb, line 283
def visit_float_node(node)
    visit_node(node)

end
visit_for_node(node) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/ast/visitor.rb, line 279
def visit_int_node(node)
    visit_node(node)
end
visit_ivar_read_node(node) click to toggle source
# File lib/ast/visitor.rb, line 275
def visit_ivar_read_node(node)
    visit_node(node)
end
visit_lvar_read_node(node) click to toggle source
# File lib/ast/visitor.rb, line 266
def visit_lvar_read_node(node)
    visit_node(node)
end
visit_lvar_write_node(node) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/ast/visitor.rb, line 292
def visit_nil_node(node)
    visit_node(node)
end
visit_node(node) click to toggle source
# File lib/ast/visitor.rb, line 194
def visit_node(node)

end
visit_program_node(node) click to toggle source
# 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) click to toggle source
# File lib/ast/visitor.rb, line 381
def visit_return_node(node)
    visit_node(node)
    node.value.accept(self)
end
visit_root_node(node) click to toggle source
# 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) click to toggle source
# File lib/ast/visitor.rb, line 368
def visit_send_node(node)
    visit_node(node)

    # Receiver might be nil for self sends
    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) click to toggle source
# File lib/ast/visitor.rb, line 235
def visit_source_code_expr_node(node)
    visit_node(node)
end
visit_string_node(node) click to toggle source
# File lib/ast/visitor.rb, line 300
def visit_string_node(node)
    visit_node(node)
end
visit_symbol_node(node) click to toggle source
# File lib/ast/visitor.rb, line 296
def visit_symbol_node(node)
    visit_node(node)
end
visit_ternary_node(node) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/ast/visitor.rb, line 248
def visit_var_def_node(node)
    visit_node(node)
end
visit_while_node(node) click to toggle source
# 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) click to toggle source
# 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