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 ()
Class * ClassMetaobject ()
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 &)
Ptree * FullTypeName ()
Ptree * MakePtree (Ptree *=0)

Private Methods

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

Static Private Methods

Ptree * GetQualifiedName (Environment *, Ptree *)
Ptree * GetQualifiedName2 (Class *)
char * SkipCv (char *, Environment *&)
char * SkipName (char *, Environment *)
char * GetReturnType (char *, Environment *)
char * SkipType (char *, Environment *)

Private Attributes

int refcount
char * encode
Class * metaobject
Environment * env

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