Sha256: 2942bb0a6cb505ad0daa9eb3f74580cd8f24efec9b0e88e5a46b088810276262

Contents?: true

Size: 793 Bytes

Versions: 1

Compression:

Stored size: 793 Bytes

Contents

module Furnace
  module CFG
    class Edge
      attr_accessor :source_operation, :source_label, :target_label

      def initialize(cfg, source_operation, source_label, target_label)
        @cfg, @source_operation, @source_label, @target_label =
            cfg, source_operation, source_label, target_label
      end

      def source
        @cfg.find_node(@source_label)
      end

      def target
        @cfg.find_node(@target_label) if @target_label
      end

      def source=(node)
        @source_label = node.label
      end

      def target=(node)
        if node
          @target_label = node.label
        else
          @target_label = nil
        end
      end

      def inspect
        "<#{@source_label.inspect} -> #{@target_label.inspect}>"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
furnace-0.0.1 lib/furnace/cfg/edge.rb