class Metasm::C::Type
Attributes
qualifier[RW]
Public Instance Methods
arithmetic?()
click to toggle source
# File metasm/parse_c.rb, line 120 def arithmetic? ; false end
base()
click to toggle source
# File metasm/parse_c.rb, line 124 def base ; self end
dump_cast(scope, r=[''], dep=[])
click to toggle source
# File metasm/parse_c.rb, line 3515 def dump_cast(scope, r=[''], dep=[]) r.last << '(' r.last << dump_attributes_pre if not kind_of? TypeDef r, dep = base.dump(scope, r, dep) r, dep = dump_declarator([kind_of?(TypeDef) ? '' : dump_attributes], scope, r, dep) r.last << ')' [r, dep] end
dump_declarator(decl, scope, r=[''], dep=[])
click to toggle source
# File metasm/parse_c.rb, line 3505 def dump_declarator(decl, scope, r=[''], dep=[]) r.last << decl.shift r.concat decl [r, dep] end
dump_def(*a)
click to toggle source
# File metasm/parse_c.rb, line 3511 def dump_def(*a) dump(*a) end
dump_initializer(init, scope, r=[''], dep=[])
click to toggle source
# File metasm/parse_c.rb, line 3493 def dump_initializer(init, scope, r=[''], dep=[]) case init when ::Numeric r.last << init.to_s [r, dep] when ::Array r.last << init.inspect [r, dep] else init.dump_inner(scope, r, dep) end end
float?()
click to toggle source
# File metasm/parse_c.rb, line 122 def float? ; false end
integral?()
click to toggle source
# File metasm/parse_c.rb, line 121 def integral? ; false end
parse_initializer(parser, scope)
click to toggle source
# File metasm/parse_c.rb, line 127 def parse_initializer(parser, scope) raise parser, 'expr expected' if not ret = CExpression.parse(parser, scope, false) p, i = pointer?, integral? r = ret.reduce(parser) if p or i if (not p and not i) or (i and not r.kind_of? ::Integer) or (p and r != 0) parser.check_compatible_type(parser, ret.type, self) end ret end
parse_initializer_designator(parser, scope, value, idx, root=true)
click to toggle source
# File metasm/parse_c.rb, line 137 def parse_initializer_designator(parser, scope, value, idx, root=true) if not root and (not nt = parser.skipspaces or nt.type != :punct or nt.raw != '=') raise nt || parser, '"=" expected' end value[idx] = parse_initializer(parser, scope) idx + 1 end
pointer?()
click to toggle source
# File metasm/parse_c.rb, line 119 def pointer? ; false end
to_s()
click to toggle source
# File metasm/parse_c.rb, line 3524 def to_s dump_cast(Block.new(nil))[0].join(' ') end
untypedef()
click to toggle source
# File metasm/parse_c.rb, line 125 def untypedef ; self end
void?()
click to toggle source
# File metasm/parse_c.rb, line 123 def void? ; false end