#include <Type.hpp>
Public Types | |
typedef std::list< Extension * > | Extensions |
Public Member Functions | |
Type () | |
virtual Type * | clone () const =0 |
virtual | ~Type () |
virtual bool | isCompatibleType (const Type *other) const =0 |
virtual bool | isScalarType () const |
virtual bool | isArithmeticType () const |
virtual bool | isIntegerType () const |
virtual bool | isVoidType () const |
const Extensions & | getExtensions () const |
void | addExtension (Extension *e) |
virtual size_t | getSize (const TargetInfo &targetInfo) const =0 |
virtual size_t | getAlign (const TargetInfo &targetInfo) const =0 |
Protected Member Functions | |
Type (const Type &other) | |
Protected Attributes | |
Extensions | extensions_ |
Data Structures | |
class | Definition |
Definition at line 62 of file Type.hpp.
typedef std::list<Extension*> cfront::Type::Extensions |
cfront::Type::Type | ( | const Type & | other | ) | [inline, protected] |
virtual Type* cfront::Type::clone | ( | ) | const [pure virtual] |
Return the copy of self.
Implemented in cfront::ArrayType, cfront::BasicType, cfront::EnumType, cfront::FunctionType, cfront::PointerType, cfront::StructType, cfront::TypedefType, cfront::UnionType, and cfront::VectorType.
Referenced by cfront::CAnalyzer::getOriginalType().
virtual bool cfront::Type::isCompatibleType | ( | const Type * | other | ) | const [pure virtual] |
Tests whether this type is compatible to the given one.
Implemented in cfront::ArrayType, cfront::BasicType, cfront::EnumType, cfront::FieldInclusionType, cfront::FunctionType, cfront::PointerType, cfront::TypedefType, and cfront::VectorType.
Referenced by cfront::CAnalyzer::checkAssignment(), cfront::CAnalyzer::checkCondOperands(), cfront::TypedefType::isCompatibleType(), cfront::PointerType::isCompatibleType(), cfront::FunctionType::isCompatibleType(), cfront::ArrayType::isCompatibleType(), cfront::CAnalyzer::makeImplicitCastNode(), and cfront::CAnalyzer::typeComparisonExpr().
virtual bool cfront::Type::isScalarType | ( | ) | const [inline, virtual] |
Reimplemented in cfront::BasicType, cfront::PointerType, and cfront::TypedefType.
Definition at line 108 of file Type.hpp.
Referenced by cfront::TypedefType::isScalarType(), and cfront::CAnalyzer::typeExpr().
virtual bool cfront::Type::isArithmeticType | ( | ) | const [inline, virtual] |
Reimplemented in cfront::BasicType, cfront::EnumType, and cfront::TypedefType.
Definition at line 113 of file Type.hpp.
Referenced by cfront::CAnalyzer::checkAssignment(), cfront::TypedefType::isArithmeticType(), cfront::CAnalyzer::typeCastExpr(), cfront::CAnalyzer::typeComparisonExpr(), and cfront::CAnalyzer::typeFunctionArgument().
virtual bool cfront::Type::isIntegerType | ( | ) | const [inline, virtual] |
Reimplemented in cfront::BasicType, cfront::EnumType, and cfront::TypedefType.
Definition at line 118 of file Type.hpp.
Referenced by cfront::CAnalyzer::checkAssignment(), cfront::CAnalyzer::checkPointerArithmeticAdditive(), cfront::TypedefType::isIntegerType(), and cfront::CAnalyzer::typeCastExpr().
virtual bool cfront::Type::isVoidType | ( | ) | const [inline, virtual] |
Tests whether this type is 'void' type.
Reimplemented in cfront::BasicType, and cfront::TypedefType.
Definition at line 126 of file Type.hpp.
Referenced by cfront::CAnalyzer::checkAssignment(), cfront::CAnalyzer::checkCondOperands(), cfront::TypedefType::isVoidType(), cfront::CAnalyzer::typeCastExpr(), and cfront::CAnalyzer::typeComparisonExpr().
const Extensions& cfront::Type::getExtensions | ( | ) | const [inline] |
void cfront::Type::addExtension | ( | Extension * | e | ) | [inline] |
Definition at line 136 of file Type.hpp.
References extensions_.
Referenced by cfront::CAnalyzer::setTypeAttribute().
virtual size_t cfront::Type::getSize | ( | const TargetInfo & | targetInfo | ) | const [pure virtual] |
Implemented in cfront::ArrayType, cfront::BasicType, cfront::EnumType, cfront::FieldInclusionType, cfront::FunctionType, cfront::PointerType, cfront::TypedefType, and cfront::VectorType.
Referenced by cfront::TypedefType::getSize(), and cfront::ArrayType::getSize().
virtual size_t cfront::Type::getAlign | ( | const TargetInfo & | targetInfo | ) | const [pure virtual] |
Implemented in cfront::ArrayType, cfront::BasicType, cfront::EnumType, cfront::FieldInclusionType, cfront::FunctionType, cfront::PointerType, cfront::TypedefType, and cfront::VectorType.
Referenced by cfront::TypedefType::getAlign(), and cfront::ArrayType::getAlign().
Extensions cfront::Type::extensions_ [protected] |