WSF
UsType Class Reference

#include <UsSymbolTable.hpp>

Collaboration diagram for UsType:

Public Types

enum  Flags {
  cCONSTRUCTIBLE = 1 , cCLONEABLE = 2 , cCONTAINER = 4 , cLESS_THAN_COMPARABLE = 8 ,
  cEQUALITY_COMPARABLE = 16
}
typedef std::multimap< const char *, UsFunction, wizard::UtilCStringCompareMethodMap
using VarMap = std::map<std::string, UsType*>

Public Member Functions

 UsType (UsTypeList *aTypes)
UsTypeSpecialize (std::pair< UsType *, UsType * > aTemplateArgs) const
void ReSpecialize (UsType *aTemplateBase)
int Id () const
bool IsImplicitlyCastable (int aTypeId) const
bool IsExplicitlyCastable (int aTypeId) const
bool IsBaseType (int aTypeId) const
bool HasStaticMethod (const char *aName)
UsFunctionFindMethod (const char *aName, std::vector< int > &aArgTypes)
void AddInheritedType (int aTypeId)
void AddImplicitCastType (int aTypeId)
void AddExplicitCastType (int aTypeId)
bool HasMethod (const char *aName, const UsFunction &aFunc) const

Public Attributes

UsTypeListmTypeList
int mTypeId
int mFlags
std::string mName
std::pair< UsType *, UsType * > mTemplateArgs
MethodMap mMethods
std::vector< int > mInheritedTypes
std::vector< int > mImplicitCastTypes
std::vector< int > mExplicitCastTypes
VarMap mVariables

Member Typedef Documentation

◆ MethodMap

typedef std::multimap<const char*, UsFunction, wizard::UtilCStringCompare> UsType::MethodMap

◆ VarMap

using UsType::VarMap = std::map<std::string, UsType*>

Member Enumeration Documentation

◆ Flags

Enumerator
cCONSTRUCTIBLE 
cCLONEABLE 
cCONTAINER 
cLESS_THAN_COMPARABLE 
cEQUALITY_COMPARABLE 

Constructor & Destructor Documentation

◆ UsType()

UsType::UsType ( UsTypeList * aTypes)
inlineexplicit

References mFlags, mTypeId, and mTypeList.

Referenced by FindMethod(), ReSpecialize(), and Specialize().

Member Function Documentation

◆ AddExplicitCastType()

void UsType::AddExplicitCastType ( int aTypeId)
inline

References mExplicitCastTypes.

◆ AddImplicitCastType()

void UsType::AddImplicitCastType ( int aTypeId)
inline

References mImplicitCastTypes.

◆ AddInheritedType()

void UsType::AddInheritedType ( int aTypeId)
inline

References mInheritedTypes, and mTypeId.

◆ FindMethod()

UsFunction * UsType::FindMethod ( const char * aName,
std::vector< int > & aArgTypes )

◆ HasMethod()

bool UsType::HasMethod ( const char * aName,
const UsFunction & aFunc ) const

◆ HasStaticMethod()

bool UsType::HasStaticMethod ( const char * aName)

◆ Id()

◆ IsBaseType()

bool UsType::IsBaseType ( int aTypeId) const

◆ IsExplicitlyCastable()

bool UsType::IsExplicitlyCastable ( int aTypeId) const

References mExplicitCastTypes.

Referenced by Us::UsCtx::ExplicitCast().

◆ IsImplicitlyCastable()

bool UsType::IsImplicitlyCastable ( int aTypeId) const

◆ ReSpecialize()

void UsType::ReSpecialize ( UsType * aTemplateBase)

◆ Specialize()

UsType * UsType::Specialize ( std::pair< UsType *, UsType * > aTemplateArgs) const

References mName, mTypeId, mTypeList, and UsType().

Referenced by UsTypeList::GetType().

Member Data Documentation

◆ mExplicitCastTypes

std::vector<int> UsType::mExplicitCastTypes

◆ mFlags

int UsType::mFlags

◆ mImplicitCastTypes

std::vector<int> UsType::mImplicitCastTypes

◆ mInheritedTypes

◆ mMethods

◆ mName

◆ mTemplateArgs

◆ mTypeId

◆ mTypeList

UsTypeList* UsType::mTypeList

Referenced by FindMethod(), Specialize(), and UsType().

◆ mVariables

VarMap UsType::mVariables

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved