|
decompiler
1.0.0
|
An enumerated Datatype object: an integer with named values. More...
#include <type.hh>
Public Member Functions | |
| TypeEnum (const TypeEnum &op) | |
| Construct from another TypeEnum. | |
| TypeEnum (int4 s, type_metatype m) | |
| Construct from a size and meta-type (TYPE_INT or TYPE_UINT) | |
| TypeEnum (int4 s, type_metatype m, const string &nm) | |
| Construct from a size, meta-type, and name. | |
| map< uintb, string >::const_iterator | beginEnum (void) const |
| Beginning of name map. | |
| map< uintb, string >::const_iterator | endEnum (void) const |
| End of name map. | |
| bool | getMatches (uintb val, vector< string > &matchname) const |
| Recover the named representation. More... | |
| virtual int4 | compare (const Datatype &op, int4 level) const |
| Compare for functional equivalence. More... | |
| virtual int4 | compareDependency (const Datatype &op) const |
| Compare for storage in tree structure. More... | |
| virtual Datatype * | clone (void) const |
| Clone the data-type. | |
| virtual void | saveXml (ostream &s) const |
| Serialize the data-type to XML. More... | |
Public Member Functions inherited from TypeBase | |
| TypeBase (const TypeBase &op) | |
| Construct TypeBase copying properties from another data-type. | |
| TypeBase (int4 s, type_metatype m) | |
| Construct TypeBase from a size and meta-type. | |
| TypeBase (int4 s, type_metatype m, const string &n) | |
| Construct TypeBase from a size, meta-type, and name. | |
Public Member Functions inherited from Datatype | |
| Datatype (const Datatype &op) | |
| Construct the base data-type copying low-level properties of another. | |
| Datatype (int4 s, type_metatype m) | |
| Construct the base data-type providing size and meta-type. | |
| Datatype (int4 s, type_metatype m, const string &n) | |
| Construct the base data-type providing size, meta-type, and name. | |
| virtual | ~Datatype (void) |
| Destructor. | |
| bool | isCoreType (void) const |
| Is this a core data-type. | |
| bool | isCharPrint (void) const |
| Does this print as a 'char'. | |
| bool | isEnumType (void) const |
| Is this an enumerated type. | |
| bool | isPowerOfTwo (void) const |
| Is this a flag-based enumeration. | |
| bool | isASCII (void) const |
| Does this print as an ASCII 'char'. | |
| bool | isUTF16 (void) const |
| Does this print as UTF16 'wchar'. | |
| bool | isUTF32 (void) const |
| Does this print as UTF32 'wchar'. | |
| bool | isVariableLength (void) const |
| Is this a variable length structure. | |
| bool | hasSameVariableBase (const Datatype *ct) const |
| Are these the same variable length data-type. More... | |
| bool | isOpaqueString (void) const |
| Is this an opaquely encoded string. | |
| uint4 | getInheritable (void) const |
| Get properties pointers inherit. | |
| type_metatype | getMetatype (void) const |
| Get the type meta-type. | |
| uint8 | getId (void) const |
| Get the type id. | |
| int4 | getSize (void) const |
| Get the type size. | |
| const string & | getName (void) const |
| Get the type name. | |
| virtual void | printRaw (ostream &s) const |
| Print a description of the type to stream. More... | |
| virtual Datatype * | getSubType (uintb off, uintb *newoff) const |
| Recover component data-type one-level down. More... | |
| virtual Datatype * | nearestArrayedComponentForward (uintb off, uintb *newoff, int4 *elSize) const |
| virtual Datatype * | nearestArrayedComponentBackward (uintb off, uintb *newoff, int4 *elSize) const |
| virtual int4 | numDepend (void) const |
| Return number of component sub-types. | |
| virtual Datatype * | getDepend (int4 index) const |
| Return the i-th component sub-type. | |
| virtual void | printNameBase (ostream &s) const |
| Print name as short prefix. | |
| int4 | typeOrder (const Datatype &op) const |
| Order this with -op- datatype. | |
| int4 | typeOrderBool (const Datatype &op) const |
| Order this with -op-, treating bool data-type as special. More... | |
| void | saveXmlBasic (ostream &s) const |
| Save basic data-type properties. More... | |
| void | saveXmlRef (ostream &s) const |
| Write an XML reference of this to stream. More... | |
| bool | isPtrsubMatching (uintb offset) const |
| Is this data-type suitable as input to a CPUI_PTRSUB op. More... | |
Protected Member Functions | |
| void | setNameMap (const map< uintb, string > &nmap) |
| Establish the value -> name map. More... | |
| virtual void | restoreXml (const Element *el, TypeFactory &typegrp) |
| Restore data-type from XML. More... | |
Protected Member Functions inherited from Datatype | |
| void | restoreXmlBasic (const Element *el) |
| Recover basic data-type properties. More... | |
Protected Attributes | |
| map< uintb, string > | namemap |
| Map from integer to name. | |
| vector< uintb > | masklist |
| Masks for each bitfield within the enum. | |
Protected Attributes inherited from Datatype | |
| int4 | size |
| Size (of variable holding a value of this type) | |
| string | name |
| Name of type. | |
| type_metatype | metatype |
| Meta-type - type disregarding size. | |
| uint4 | flags |
| Boolean properties of the type. | |
| uint8 | id |
| A unique id for the type (or 0 if an id is not assigned) | |
Friends | |
| class | TypeFactory |
Additional Inherited Members | |
Protected Types inherited from Datatype | |
| enum | { coretype = 1, chartype = 2, enumtype = 4, poweroftwo = 8, utf16 = 16, utf32 = 32, opaque_string = 64, variable_length = 128 } |
| Boolean properties of datatypes. More... | |
Static Protected Member Functions inherited from Datatype | |
| static uint8 | hashName (const string &nm) |
| Produce a data-type id by hashing the type name. More... | |
| static uint8 | hashSize (uint8 id, int4 size) |
| Reversibly hash size into id. More... | |
An enumerated Datatype object: an integer with named values.
This supports combinations of the enumeration values (using logical OR and bit-wise complement) by defining independent bit-fields.
|
virtual |
Compare for functional equivalence.
0 (equality) means the data-types are functionally equivalent (even if names differ) Smaller types come earlier. More specific types come earlier.
| op | is the data-type to compare with this |
| level | is maximum level to descend when recursively comparing |
Reimplemented from Datatype.
|
virtual |
Compare for storage in tree structure.
Ordering of data-types for the main TypeFactory container. Comparison only goes down one-level in the component structure, before just comparing pointers.
| op | is the data-type to compare with this |
Reimplemented from Datatype.
| bool TypeEnum::getMatches | ( | uintb | val, |
| vector< string > & | valnames | ||
| ) | const |
Recover the named representation.
Given a specific value of the enumeration, calculate the named representation of that value. The representation is returned as a list of names that must logically ORed and possibly complemented. If no representation is possible, no names will be returned.
| val | is the value to find the representation for |
| valnames | will hold the returned list of names |
Referenced by PrintC::pushEnumConstant().
|
protectedvirtual |
Restore data-type from XML.
Restore a Datatype object from an XML element
| el | is the XML element |
| typegrp | is the underlying TypeFactory that will hold the new object |
Reimplemented from Datatype.
Referenced by TypeFactory::restoreXmlTypeNoRef().
|
virtual |
Serialize the data-type to XML.
Write out a formal description of the data-type as an XML <type> tag. For composite data-types, the description goes down one level, describing the component types only by reference.
| s | is the stream to write to |
Reimplemented from Datatype.
|
protected |
Establish the value -> name map.
Set the map. Calculate the independent bit-fields within the named values of the enumeration Two bits are in the same bit-field if there is a name in the map whose value has those two bits set. Bit-fields must be a contiguous range of bits.
Referenced by TypeFactory::setEnumValues().
1.8.11