![]() |
|
Base class for describing data types. More...
#include <cdatatype.h>
Public Member Functions | |
| CDataType (VarDataType_t t) | |
| Create data type instance. | |
| virtual CDataType * | Clone (CObstack *heap)=0 |
| Create a new copy with a deep copy. | |
| virtual void | SetVarDataType (VarDataType_t v) |
| Set declaration's variable data type. | |
| virtual VarDataType_t | GetVarDataType () const |
| Get declaration's variable data type. | |
| virtual void | SetConst (int v) |
| Set declaration's const property. | |
| virtual int | GetConst () const |
| Get declaration's const property. | |
| virtual int | GetTwoState () const =0 |
| Get declaration's 2 state property. | |
| virtual int | GetSigned () const =0 |
| Get declartion's signed property. | |
| virtual NodeType_t | GetNodeType (void) const =0 |
| Get data type. | |
| virtual int | IsPacked () const =0 |
| Determine if complete data structure is packed. | |
| virtual CNode * | GetPackedRange () const =0 |
| Get expression for datatype's overall packed range (msb/lsb). | |
| virtual void | Dump (FILE *f) const =0 |
| Dump data type info to file descriptor. | |
| virtual void | PreVisit1 (int(*callback)(CNode *, void *), void *data)=0 |
| Walk tree invoking callback on each node before children have been visited. | |
| virtual void | PostVisit1 (void(*callback)(CNode *, void *), void *data)=0 |
| Walk tree invoking callback on each node after children have been visited. | |
| virtual void | PostSubVisit1 (CNode *(*callback)(CNode *, void *), void *data)=0 |
| Walk tree invoking callback on each node after children have been visited. | |
Protected Member Functions | |
| void | Copy (CObstack *heap, const CDataType &o) |
| Perform deep copy of given object to this one This should never be call directly, only by subclasses. | |
Base class for describing data types.
| CDataType::CDataType | ( | VarDataType_t | t | ) |
Create data type instance.
Create a new copy with a deep copy.
| heap | heap to use for allocation. |
Implemented in CSimpleType.
Perform deep copy of given object to this one This should never be call directly, only by subclasses.
| heap | heap to use for allocation. | |
| o | declaration to copy. |
Reimplemented in CSimpleType.
| virtual void CDataType::Dump | ( | FILE * | f | ) | const [pure virtual] |
| virtual int CDataType::GetConst | ( | ) | const [inline, virtual] |
Get declaration's const property.
| virtual NodeType_t CDataType::GetNodeType | ( | void | ) | const [pure virtual] |
| virtual CNode* CDataType::GetPackedRange | ( | ) | const [pure virtual] |
Get expression for datatype's overall packed range (msb/lsb).
Implemented in CSimpleType.
| virtual int CDataType::GetSigned | ( | ) | const [pure virtual] |
| virtual int CDataType::GetTwoState | ( | ) | const [pure virtual] |
| virtual VarDataType_t CDataType::GetVarDataType | ( | ) | const [inline, virtual] |
Get declaration's variable data type.
| virtual int CDataType::IsPacked | ( | ) | const [pure virtual] |
Determine if complete data structure is packed.
Implemented in CSimpleType.
| virtual void CDataType::PostSubVisit1 | ( | CNode *(*)(CNode *, void *) | callback, | |
| void * | data | |||
| ) | [pure virtual] |
Walk tree invoking callback on each node after children have been visited.
callback may modify tree and return a modified subtree.
| callback | function to be called for each node | |
| data | opaque argument passed to callback function |
Implemented in CSimpleType.
| virtual void CDataType::PostVisit1 | ( | void(*)(CNode *, void *) | callback, | |
| void * | data | |||
| ) | [pure virtual] |
Walk tree invoking callback on each node after children have been visited.
| callback | function to be called for each node | |
| data | opaque argument passed to callback function |
Implemented in CSimpleType.
| virtual void CDataType::PreVisit1 | ( | int(*)(CNode *, void *) | callback, | |
| void * | data | |||
| ) | [pure virtual] |
Walk tree invoking callback on each node before children have been visited.
callback can terminate transversal early. callback returns 0 to terminate transversal early.
| callback | function to be called for each node | |
| data | opaque argument passed to callback function |
Implemented in CSimpleType.
| virtual void CDataType::SetConst | ( | int | v | ) | [inline, virtual] |
Set declaration's const property.
Use to indicate type is a constant variable.
| v | value to const property. |
| virtual void CDataType::SetVarDataType | ( | VarDataType_t | v | ) | [inline, virtual] |
Set declaration's variable data type.
| v | variable data type |
1.6.1