Class: Ikra::Translator::ParallelSectionInvocationVisitor
- Inherits:
-
AST::Visitor
- Object
- AST::Visitor
- Ikra::Translator::ParallelSectionInvocationVisitor
- 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 |