class Ikra::AST::LexicalVariablesEnumerator
Visitor
for determining the names all lexical variables that are accessed by a block (or method??). Lexical variables that are in scope are determined when translating the Ruby code and passed to this visitor. TODO(matthias): Does a method have access to lexical variables?
Attributes
lexical_variables[R]
Public Class Methods
new(lexical_var_names)
click to toggle source
# File lib/ast/lexical_variables_enumerator.rb, line 13 def initialize(lexical_var_names) @lexical_var_names = lexical_var_names @lexical_variables = Set.new end
Public Instance Methods
add_lvar_access(identifier)
click to toggle source
Register usage of lexical variable
# File lib/ast/lexical_variables_enumerator.rb, line 19 def add_lvar_access(identifier) if @lexical_var_names.include?(identifier) @lexical_variables.add(identifier) end end
visit_lvar_read_node(node)
click to toggle source
# File lib/ast/lexical_variables_enumerator.rb, line 25 def visit_lvar_read_node(node) add_lvar_access(node.identifier) end
visit_lvar_write_node(node)
click to toggle source
Calls superclass method
# File lib/ast/lexical_variables_enumerator.rb, line 29 def visit_lvar_write_node(node) add_lvar_access(node.identifier) super(node) end