Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

TypeInfo Class Reference

#include <typeinfo.h>

Collaboration diagram for TypeInfo:

Collaboration graph
[legend]
List of all members.

Public Methods

 TypeInfo ()
void Unknown ()
void Set (char *, Environment *)
void Set (Class *)
void SetVoid ()
void SetInt ()
void SetMember (Ptree *)
TypeInfoId WhatIs ()
bool IsNoReturnType ()
bool IsConst ()
bool IsVolatile ()
uint IsBuiltInType ()
bool IsFunction ()
bool IsEllipsis ()
bool IsPointerType ()
bool IsReferenceType ()
bool IsArray ()
bool IsPointerToMember ()
bool IsTemplateClass ()
ClassClassMetaobject ()
bool IsClass (Class *&)
bool IsEnum ()
bool IsEnum (Ptree *&spec)
void Dereference ()
void Dereference (TypeInfo &)
void Reference ()
void Reference (TypeInfo &)
bool NthArgument (int, TypeInfo &)
int NumOfArguments ()
bool NthTemplateArgument (int, TypeInfo &)
PtreeFullTypeName ()
PtreeMakePtree (Ptree *=0)

Private Methods

void Normalize ()
bool ResolveTypedef (Environment *&, char *&, bool)

Static Private Methods

PtreeGetQualifiedName (Environment *, Ptree *)
PtreeGetQualifiedName2 (Class *)
char * SkipCv (char *, Environment *&)
char * SkipName (char *, Environment *)
char * GetReturnType (char *, Environment *)
char * SkipType (char *, Environment *)

Private Attributes

int refcount
char * encode
Classmetaobject
Environmentenv

Constructor & Destructor Documentation

TypeInfo::TypeInfo  
 

Definition at line 21 of file typeinfo.cc.

References encode, env, metaobject, nil, and refcount.


Member Function Documentation

Class * TypeInfo::ClassMetaobject  
 

Definition at line 265 of file typeinfo.cc.

References IsClass().

Referenced by Environment::LookupClassMetaobject(), Encoding::ResolveTypedefName(), SetMember(), ClassWalker::TranslateAssignInitializer(), and ClassWalker::TranslateInitializeArgs().

void TypeInfo::Dereference TypeInfo &   
 

Definition at line 327 of file typeinfo.cc.

References encode, env, metaobject, and refcount.

void TypeInfo::Dereference   [inline]
 

Definition at line 75 of file typeinfo.h.

Referenced by ClassWalker::GetClassMetaobject(), ClassWalker::TranslateArrowMember(), ClassWalker::TranslateAssign(), ClassWalker::TranslateDelete(), ClassWalker::TranslateFuncall(), ClassWalker::TranslatePostfix(), ClassWalker::TranslateThis(), ClassWalker::TranslateUnary(), ClassWalker::TranslateUserStatement(), ClassWalker::TranslateVariable(), Walker::TypeofArray(), Walker::TypeofArrowMember(), Walker::TypeofFuncall(), Walker::TypeofPm(), and Walker::TypeofUnary().

Ptree * TypeInfo::FullTypeName  
 

Definition at line 417 of file typeinfo.cc.

References Ptree::Car(), encode, env, Ptree::First(), GetQualifiedName(), GetQualifiedName2(), IsBuiltInType(), Encoding::IsSimpleName(), Encoding::MakeLeaf(), Encoding::MakePtree(), Encoding::MakeQname(), metaobject, Class::Name(), Ptree::Nconc(), nil, Normalize(), SkipCv(), and Ptree::Snoc().

Referenced by MakePtree().

Ptree * TypeInfo::GetQualifiedName Environment  ,
Ptree  
[static, private]
 

Definition at line 468 of file typeinfo.cc.

References GetQualifiedName2(), Environment::LookupClassMetaobject(), and nil.

Referenced by FullTypeName().

Ptree * TypeInfo::GetQualifiedName2 Class   [static, private]
 

Definition at line 477 of file typeinfo.cc.

References Ptree::Cons(), Class::GetEnvironment(), Environment::GetOuterEnvironment(), Environment::IsClassEnvironment(), Class::Name(), nil, and Encoding::scope.

Referenced by FullTypeName(), and GetQualifiedName().

char * TypeInfo::GetReturnType char *   ,
Environment  
[static, private]
 

Definition at line 649 of file typeinfo.cc.

References encode, nil, and SkipType().

Referenced by Normalize(), and SkipType().

bool TypeInfo::IsArray  
 

Definition at line 241 of file typeinfo.cc.

References encode, env, nil, Normalize(), and SkipCv().

uint TypeInfo::IsBuiltInType  
 

Definition at line 158 of file typeinfo.cc.

References BooleanType, CharType, DoubleType, encode, env, FloatType, IntType, LongDoubleType, LongLongType, LongType, nil, Normalize(), ShortType, SignedType, SkipCv(), uint, UnsignedType, and VoidType.

Referenced by FullTypeName().

bool TypeInfo::IsClass Class *&   
 

Definition at line 272 of file typeinfo.cc.

References encode, env, FALSE, metaobject, nil, Normalize(), Set(), SkipCv(), and TRUE.

Referenced by ClassMetaobject(), ClassWalker::GetClassMetaobject(), and WhatIs().

bool TypeInfo::IsConst  
 

Definition at line 137 of file typeinfo.cc.

References encode, nil, and Normalize().

bool TypeInfo::IsEllipsis  
 

Definition at line 209 of file typeinfo.cc.

References encode, env, nil, Normalize(), and SkipCv().

bool TypeInfo::IsEnum Ptree *&    spec
 

Definition at line 298 of file typeinfo.cc.

References encode, env, FALSE, Encoding::GetBaseName(), IsEnum(), Bind::isEnumName, Environment::LookupType(), metaobject, nil, Normalize(), Set(), SkipCv(), TRUE, and Bind::What().

bool TypeInfo::IsEnum  
 

Definition at line 292 of file typeinfo.cc.

Referenced by IsEnum(), and WhatIs().

bool TypeInfo::IsFunction  
 

Definition at line 201 of file typeinfo.cc.

References encode, env, nil, Normalize(), and SkipCv().

Referenced by Member::IsFunction(), and Walker::TypeofFuncall().

bool TypeInfo::IsNoReturnType  
 

Definition at line 129 of file typeinfo.cc.

References encode, env, nil, Normalize(), and SkipCv().

bool TypeInfo::IsPointerToMember  
 

Definition at line 249 of file typeinfo.cc.

References encode, env, nil, Normalize(), and SkipCv().

bool TypeInfo::IsPointerType  
 

Definition at line 217 of file typeinfo.cc.

References encode, env, FALSE, nil, Normalize(), refcount, SkipCv(), and TRUE.

Referenced by ClassWalker::TranslateVariable().

bool TypeInfo::IsReferenceType  
 

Definition at line 233 of file typeinfo.cc.

References encode, env, nil, Normalize(), and SkipCv().

Referenced by ClassWalker::GetClassMetaobject().

bool TypeInfo::IsTemplateClass  
 

Definition at line 257 of file typeinfo.cc.

References encode, env, nil, Normalize(), and SkipCv().

bool TypeInfo::IsVolatile  
 

Definition at line 144 of file typeinfo.cc.

References encode, FALSE, nil, Normalize(), and TRUE.

Ptree * TypeInfo::MakePtree Ptree   = 0
 

Definition at line 494 of file typeinfo.cc.

References encode, FullTypeName(), Ptree::List(), Encoding::MakePtree(), metaobject, nil, and Normalize().

void TypeInfo::Normalize   [private]
 

Definition at line 514 of file typeinfo.cc.

References encode, env, FALSE, GetReturnType(), nil, refcount, ResolveTypedef(), SkipName(), and TRUE.

Referenced by FullTypeName(), IsArray(), IsBuiltInType(), IsClass(), IsConst(), IsEllipsis(), IsEnum(), IsFunction(), IsNoReturnType(), IsPointerToMember(), IsPointerType(), IsReferenceType(), IsTemplateClass(), IsVolatile(), MakePtree(), NthArgument(), NthTemplateArgument(), NumOfArguments(), and WhatIs().

bool TypeInfo::NthArgument int   ,
TypeInfo &   
 

Definition at line 343 of file typeinfo.cc.

References encode, env, FALSE, nil, Normalize(), Set(), SetVoid(), SkipCv(), SkipType(), TRUE, and Unknown().

bool TypeInfo::NthTemplateArgument int   ,
TypeInfo &   
 

Definition at line 392 of file typeinfo.cc.

References encode, env, FALSE, Encoding::GetTemplateArguments(), nil, Normalize(), Set(), SkipCv(), SkipType(), TRUE, and Unknown().

int TypeInfo::NumOfArguments  
 

Definition at line 371 of file typeinfo.cc.

References encode, env, nil, Normalize(), SkipCv(), and SkipType().

void TypeInfo::Reference TypeInfo &   
 

Definition at line 335 of file typeinfo.cc.

References encode, env, metaobject, and refcount.

void TypeInfo::Reference   [inline]
 

Definition at line 77 of file typeinfo.h.

Referenced by Walker::TypeofNew(), Walker::TypeofUnary(), and Walker::TypeofVariable().

bool TypeInfo::ResolveTypedef Environment *&   ,
char *&   ,
bool   
[private]
 

Definition at line 563 of file typeinfo.cc.

References Bind::ClassMetaobject(), FALSE, Encoding::GetBaseName(), Bind::GetEncodedType(), Class::GetEnvironment(), Bind::isClassName, Bind::isTemplateClass, Bind::isTypedefName, Environment::LookupType(), nil, Set(), TRUE, Unknown(), and Bind::What().

Referenced by Normalize().

void TypeInfo::Set Class  
 

Definition at line 45 of file typeinfo.cc.

References encode, env, metaobject, nil, and refcount.

void TypeInfo::Set char *   ,
Environment  
 

Definition at line 37 of file typeinfo.cc.

References encode, env, metaobject, nil, and refcount.

Referenced by BindTemplateClass::GetType(), BindEnumName::GetType(), BindClassName::GetType(), BindTypedefName::GetType(), BindVarName::GetType(), IsClass(), IsEnum(), NthArgument(), NthTemplateArgument(), ResolveTypedef(), Member::Signature(), ClassWalker::TranslateNew2(), Walker::TypeofCast(), Walker::TypeofFstyleCast(), Walker::TypeofNew(), Walker::TypeofThis(), and WhatIs().

void TypeInfo::SetInt  
 

Definition at line 61 of file typeinfo.cc.

References encode, env, metaobject, nil, and refcount.

Referenced by Walker::TypeofSizeof().

void TypeInfo::SetMember Ptree  
 

Definition at line 69 of file typeinfo.cc.

References ClassMetaobject(), Class::GetEnvironment(), Environment::Lookup(), nil, and Unknown().

Referenced by Walker::TypeofArrowMember(), and Walker::TypeofDotMember().

void TypeInfo::SetVoid  
 

Definition at line 53 of file typeinfo.cc.

References encode, env, metaobject, nil, and refcount.

Referenced by NthArgument(), Walker::TypeofDelete(), and Walker::TypeofThrow().

char * TypeInfo::SkipCv char *   ,
Environment *&   
[static, private]
 

Definition at line 605 of file typeinfo.cc.

References Encoding::GetBaseName(), Bind::GetEncodedType(), Bind::isTypedefName, Environment::LookupType(), nil, and Bind::What().

Referenced by FullTypeName(), IsArray(), IsBuiltInType(), IsClass(), IsEllipsis(), IsEnum(), IsFunction(), IsNoReturnType(), IsPointerToMember(), IsPointerType(), IsReferenceType(), IsTemplateClass(), NthArgument(), NthTemplateArgument(), NumOfArguments(), and WhatIs().

char * TypeInfo::SkipName char *   ,
Environment  
[static, private]
 

Definition at line 635 of file typeinfo.cc.

References encode, Encoding::GetBaseName(), MopErrorMessage(), and nil.

Referenced by Normalize(), and SkipType().

char * TypeInfo::SkipType char *   ,
Environment  
[static, private]
 

Definition at line 663 of file typeinfo.cc.

References GetReturnType(), nil, and SkipName().

Referenced by GetReturnType(), NthArgument(), NthTemplateArgument(), and NumOfArguments().

void TypeInfo::Unknown  
 

Definition at line 29 of file typeinfo.cc.

References encode, env, metaobject, nil, and refcount.

Referenced by BindTemplateFunction::GetType(), Environment::Lookup(), NthArgument(), NthTemplateArgument(), ResolveTypedef(), SetMember(), Member::Signature(), Class::TranslateExpression(), Walker::TypeofPtree(), Walker::TypeofStaticUserStatement(), and Walker::TypeofUserStatement().

TypeInfoId TypeInfo::WhatIs  
 

Definition at line 83 of file typeinfo.cc.

References ArrayType, BuiltInType, ClassType, encode, EnumType, env, FunctionType, IsClass(), IsEnum(), metaobject, nil, Normalize(), PointerToMemberType, PointerType, refcount, ReferenceType, Set(), SkipCv(), TemplateType, TypeInfoId, and UndefType.


Member Data Documentation

char* TypeInfo::encode [private]
 

Definition at line 99 of file typeinfo.h.

Referenced by Dereference(), FullTypeName(), GetReturnType(), IsArray(), IsBuiltInType(), IsClass(), IsConst(), IsEllipsis(), IsEnum(), IsFunction(), IsNoReturnType(), IsPointerToMember(), IsPointerType(), IsReferenceType(), IsTemplateClass(), IsVolatile(), MakePtree(), Normalize(), NthArgument(), NthTemplateArgument(), NumOfArguments(), Reference(), Set(), SetInt(), SetVoid(), SkipName(), TypeInfo(), Unknown(), and WhatIs().

Environment* TypeInfo::env [private]
 

Definition at line 101 of file typeinfo.h.

Referenced by Dereference(), FullTypeName(), IsArray(), IsBuiltInType(), IsClass(), IsEllipsis(), IsEnum(), IsFunction(), IsNoReturnType(), IsPointerToMember(), IsPointerType(), IsReferenceType(), IsTemplateClass(), Normalize(), NthArgument(), NthTemplateArgument(), NumOfArguments(), Reference(), Set(), SetInt(), SetVoid(), TypeInfo(), Unknown(), and WhatIs().

Class* TypeInfo::metaobject [private]
 

Definition at line 100 of file typeinfo.h.

Referenced by Dereference(), FullTypeName(), IsClass(), IsEnum(), MakePtree(), Reference(), Set(), SetInt(), SetVoid(), TypeInfo(), Unknown(), and WhatIs().

int TypeInfo::refcount [private]
 

Definition at line 98 of file typeinfo.h.

Referenced by Dereference(), IsPointerType(), Normalize(), Reference(), Set(), SetInt(), SetVoid(), TypeInfo(), Unknown(), and WhatIs().


The documentation for this class was generated from the following files:
Generated on Mon Feb 10 17:36:51 2003 for VFiasco Semantics Compiler by doxygen1.2.15