class RDG::Control::Jump

Public Instance Methods

analyse() click to toggle source
# File lib/rdg/control/jump.rb, line 6
def analyse
  return unless block
  remove_all_successors
  add_new_successors
end

Protected Instance Methods

block_types() click to toggle source
# File lib/rdg/control/jump.rb, line 14
def block_types
  %i(while until for)
end

Private Instance Methods

add_new_successors() click to toggle source
# File lib/rdg/control/jump.rb, line 24
def add_new_successors
  new_successors.each { |s| graph.add_edge(@ast_node, s) }
end
block() click to toggle source
# File lib/rdg/control/jump.rb, line 28
def block
  @ast_node.ancestors.detect { |a| block_types.include?(a.type) }
end
remove_all_successors() click to toggle source
# File lib/rdg/control/jump.rb, line 20
def remove_all_successors
  graph.each_successor(@ast_node) { |s| graph.remove_edge(@ast_node, s) }
end