Class: Ikra::Translator::ParallelSectionInvocationVisitor

Inherits:
AST::Visitor show all
Defined in:
lib/translator/host_section/parallel_section_invocation_visitor.rb

Overview

This visitor inserts a synthetic method call whenever a parallel section should be invoked, i.e.:

  • The return value of the host section (must be an ArrayCommand-typed expression)

  • When the content of an ArrayCommand-typed expression is accessed

Instance Method Summary collapse

Methods inherited from AST::Visitor

#visit_array_node, #visit_begin_node, #visit_block_def_node, #visit_bool_node, #visit_break_node, #visit_class_def_node, #visit_const_node, #visit_float_node, #visit_for_node, #visit_hash_node, #visit_if_node, #visit_int_node, #visit_ivar_read_node, #visit_lvar_read_node, #visit_lvar_write_node, #visit_meth_def_node, #visit_nil_node, #visit_node, #visit_program_node, #visit_root_node, #visit_send_node, #visit_source_code_expr_node, #visit_string_node, #visit_symbol_node, #visit_ternary_node, #visit_until_node, #visit_until_post_node, #visit_var_def_node, #visit_while_node, #visit_while_post_node

Instance Method Details

#visit_return_node(node) ⇒ Object



12
13
14
15
16
# File 'lib/translator/host_section/parallel_section_invocation_visitor.rb', line 12

def visit_return_node(node)
    node.replace_child(
        node.value,
        AST::SendNode.new(receiver: node.value, selector: :__call__))
end