Class: RDG::Control::Rescue

Inherits:
Analysis::Propagater show all
Defined in:
lib/rdg/control/rescue.rb

Instance Method Summary collapse

Methods inherited from Analysis::Analyser

#initialize, register_analyser, register_default_analyser

Constructor Details

This class inherits a constructor from RDG::Analysis::Analyser

Instance Method Details

#analyseObject



13
14
15
16
# File 'lib/rdg/control/rescue.rb', line 13

def analyse
  super
  @handlers.each { |h| registry.prepend_for(h, Handler) }
end

#end_nodesObject



26
27
28
# File 'lib/rdg/control/rescue.rb', line 26

def end_nodes
  @alternative.empty? ? nodes : @handlers.push(@alternative)
end

#internal_flow_edgesObject



18
19
20
# File 'lib/rdg/control/rescue.rb', line 18

def internal_flow_edges
  @alternative.empty? ? [] : [[@main, @alternative]]
end

#prepareObject



9
10
11
# File 'lib/rdg/control/rescue.rb', line 9

def prepare
  @main, *@handlers, @alternative = children
end

#start_nodeObject



22
23
24
# File 'lib/rdg/control/rescue.rb', line 22

def start_node
  @main
end