class Metasm::C::Statement

Public Class Methods

dump(e, scope, r=[''], dep=[]) click to toggle source
# File metasm/parse_c.rb, line 3325
def self.dump(e, scope, r=[''], dep=[])
        case e
        when nil; r.last << ';'
        when Block
                r.last << ' ' if not r.last.empty?
                r.last << '{'
                tr, dep = e.dump(scope, [''], dep)
                tr.pop if tr.last.empty?
                r.concat tr.map { |s| Case.dump_indent(s) }
                (r.last[-1] == { ? r.last : r) << '}'
        else
                tr, dep = e.dump(scope, [''], dep)
                r.concat tr.map { |s| Case.dump_indent(s) }
        end
        [r, dep]
end

Public Instance Methods

precompile_make_block(scope) click to toggle source

turns a statement into a new block

# File metasm/compile_c.rb, line 442
def precompile_make_block(scope)
        b = Block.new scope
        b.statements << self
        b
end
to_s() click to toggle source
# File metasm/parse_c.rb, line 3342
def to_s
        dump(Block.new(nil))[0].join(' ')
end