class Crokus::BasicBlock
Attributes
id[RW]
infos[RW]
label[RW]
stmts[RW]
succs[RW]
Public Class Methods
new(infos={})
click to toggle source
# File lib/crokus/cfg.rb, line 50 def initialize infos={} @@id+=1 @id="L"+@@id.to_s @stmts=[] @succs=[] @infos=infos end
Public Instance Methods
<<(e)
click to toggle source
# File lib/crokus/cfg.rb, line 58 def <<(e) @stmts << e end
code4dot()
click to toggle source
# File lib/crokus/cfg.rb, line 80 def code4dot @ppr||=PrettyPrinter.new @stmts.compact.collect{|stmt| stmt.accept(@ppr)}.join("\n") end
falseBranch()
click to toggle source
# File lib/crokus/cfg.rb, line 73 def falseBranch unless @succs.size==2 raise "request for falseBranch failed because #{@succs.size} branch(es) found. Strange." end return @succs.last end
nextBranch()
click to toggle source
# File lib/crokus/cfg.rb, line 85 def nextBranch @succs.first end
size()
click to toggle source
# File lib/crokus/cfg.rb, line 89 def size @stmts.size end
to(bb)
click to toggle source
# File lib/crokus/cfg.rb, line 62 def to bb @succs << bb end
trueBranch()
click to toggle source
# File lib/crokus/cfg.rb, line 66 def trueBranch unless @succs.size==2 raise "request for trueBranch failed because #{@succs.size} branch(es) found. Strange." end return @succs.first end