class ADSL::Parser::ASTTypecheckResolveContext::ASTStackFrame
Attributes
var_read_listeners[RW]
var_write_listeners[RW]
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/adsl/parser/ast_nodes.rb, line 349 def initialize super @var_write_listeners = [] @var_read_listeners = [] end
Public Instance Methods
clone()
click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 389 def clone dup end
dup()
click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 379 def dup other = ASTStackFrame.new self.each do |key, val| other[key] = val.dup end other.var_write_listeners = @var_write_listeners.dup other.var_read_listeners = @var_read_listeners.dup other end
fire_read_event(name)
click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 372 def fire_read_event(name) listeners = @var_read_listeners listeners.each do |listener| listener.call name end end
fire_write_event(name)
click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 365 def fire_write_event(name) listeners = @var_write_listeners listeners.each do |listener| listener.call name end end
on_var_read(&block)
click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 355 def on_var_read(&block) listeners = @var_read_listeners listeners.push block end
on_var_write(&block)
click to toggle source
# File lib/adsl/parser/ast_nodes.rb, line 360 def on_var_write(&block) listeners = @var_write_listeners listeners.push block end