class Bpl::AST::AssignStatement

Public Instance Methods

abstract() { |{ description: "havocing assigned variables", weight: count, action: proc do replace_with(*map{|id| bpl("havoc #{id};")}) end }| ... } click to toggle source
# File lib/bpl/passes/transformation/abstraction.rb, line 185
def abstract
  ids = lhs.map do |expr|
    loop do
      break if expr.is_a?(Identifier)
      expr = expr.map
    end
    expr
  end
  yield({
    description: "havocing assigned variables",
    weight: count,
    action: Proc.new do
      replace_with(*ids.map{|id| bpl("havoc #{id};")})
    end
  })
end
show() click to toggle source
# File lib/bpl/ast/statement.rb, line 39
def show
  "#{@lhs.map{|a| yield a} * ", "} := #{@rhs.map{|a| yield a} * ", "};"
end