Class: Ikra::Translator::LocalVariablesEnumerator
Instance Method Summary
collapse
#visit_begin_node, #visit_bool_node, #visit_break_node, #visit_const_node, #visit_float_node, #visit_if_node, #visit_int_node, #visit_ivar_read_node, #visit_node, #visit_return_node, #visit_root_node, #visit_send_node
Constructor Details
Returns a new instance of LocalVariablesEnumerator.
8
9
10
|
# File 'lib/translator/local_variables_enumerator.rb', line 8
def initialize
@vars = {}
end
|
Instance Method Details
#add_local_var(var, type) ⇒ Object
12
13
14
|
# File 'lib/translator/local_variables_enumerator.rb', line 12
def add_local_var(var, type)
@vars[var] = type
end
|
#local_variables ⇒ Object
16
17
18
|
# File 'lib/translator/local_variables_enumerator.rb', line 16
def local_variables
@vars
end
|
#visit_for_node(node) ⇒ Object
29
30
31
32
|
# File 'lib/translator/local_variables_enumerator.rb', line 29
def visit_for_node(node)
add_local_var(node.iterator_identifier, Types::UnionType.create_int)
super(node)
end
|
#visit_lvar_read_node(node) ⇒ Object
20
21
22
|
# File 'lib/translator/local_variables_enumerator.rb', line 20
def visit_lvar_read_node(node)
add_local_var(node.identifier, node.get_type)
end
|
#visit_lvar_write_node(node) ⇒ Object
24
25
26
27
|
# File 'lib/translator/local_variables_enumerator.rb', line 24
def visit_lvar_write_node(node)
add_local_var(node.identifier, node.get_type)
super(node)
end
|