class Metasm::C::Function

Attributes

args[RW]
type[RW]
varargs[RW]

Public Class Methods

new(type=nil, args=nil) click to toggle source
# File metasm/parse_c.rb, line 213
def initialize(type=nil, args=nil)
        @type = type
        @args = args if args
end

Public Instance Methods

base() click to toggle source
# File metasm/parse_c.rb, line 218
def base ; @type.base ; end
dump_declarator(decl, scope, r=[CRenderString.new], dep=[]) click to toggle source
# File metasm/parse_c.rb, line 3622
def dump_declarator(decl, scope, r=[CRenderString.new], dep=[])
        decl.last << '()' if decl.last.empty?
        decl.last << '('
        if args
                @args.each { |arg|
                        decl.last << ', ' if decl.last[-1] != ?(
                        decl, dep = arg.dump_def(scope, decl, dep)
                }
                if varargs
                        decl.last << ', ' if decl.last[-1] != ?(
                        decl.last << '...'
                else
                        decl.last << 'void' if @args.empty?
                end
        end
        decl.last << ')'
        @type.dump_declarator(decl, scope, r, dep)
end
dump_initializer(init, scope, r=[CRenderString.new], dep=[]) click to toggle source
# File metasm/parse_c.rb, line 3641
def dump_initializer(init, scope, r=[CRenderString.new], dep=[])
        Statement.dump(init, scope, r << CRenderString.new, dep)
end