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

Class Class Reference

#include <mop.h>

Inheritance diagram for Class:

Inheritance graph
[legend]
Collaboration diagram for Class:

Collaboration graph
[legend]
List of all members.

Public Types

enum  { Public = 298, Protected = 297, Private = 296, Undefined = 0 }

Public Methods

 Class ()
 Class (Environment *e, char *name)
 Class (Environment *e, Ptree *name)
virtual void InitializeInstance (Ptree *def, Ptree *margs)
virtual ~Class ()
Ptree * Comments ()
Ptree * Name ()
Ptree * BaseClasses ()
Ptree * Members ()
Ptree * Definition ()
virtual char * MetaclassName ()
Class * NthBaseClass (int nth)
Ptree * NthBaseClassName (int nth)
bool IsSubclassOf (Ptree *name)
bool IsImmediateSubclassOf (Ptree *name)
bool NthMember (int nth, Member &member)
bool LookupMember (Ptree *name)
bool LookupMember (Ptree *name, Member &member, int index=0)
bool LookupMember (char *name)
bool LookupMember (char *name, Member &member, int index=0)
MemberList * GetMemberList ()
int Subclasses (ClassArray &subclasses)
int ImmediateSubclasses (ClassArray &subclasses)
Ptree * NthMemberName (int)
int IsMember (Ptree *)
bool LookupMemberType (Ptree *, TypeInfo &)
virtual void TranslateClass (Environment *)
void RemoveClass ()
void AddClassSpecifier (Ptree *spec)
void ChangeName (Ptree *name)
void ChangeBaseClasses (Ptree *)
void RemoveBaseClasses ()
void AppendBaseClass (Class *c, int specifier=Public, bool is_virtual=false)
void AppendBaseClass (char *class_name, int specifier=Public, bool is_virtual=false)
void AppendBaseClass (Ptree *class_name, int specifier=Public, bool is_virtual=false)
void ChangeMember (Member &changed_member)
void AppendMember (Member &added_member, int specifier=Public)
void AppendMember (Ptree *added_member)
void RemoveMember (Member &)
virtual void TranslateMemberFunction (Environment *, Member &)
virtual Ptree * TranslateInitializer (Environment *, Ptree *var_name, Ptree *initializer)
virtual Ptree * TranslateNew (Environment *, Ptree *header, Ptree *new_operator, Ptree *placement, Ptree *type_name, Ptree *arglist)
virtual Ptree * TranslateDelete (Environment *, Ptree *op, Ptree *obj)
virtual Ptree * TranslateAssign (Environment *, Ptree *left, Ptree *assign_op, Ptree *right)
virtual Ptree * TranslateBinary (Environment *, Ptree *left, Ptree *binary_op, Ptree *right)
virtual Ptree * TranslateUnary (Environment *, Ptree *unary_op, Ptree *object)
virtual Ptree * TranslateSubscript (Environment *, Ptree *object, Ptree *index)
virtual Ptree * TranslatePostfix (Environment *, Ptree *object, Ptree *postfix_op)
virtual Ptree * TranslateFunctionCall (Environment *, Ptree *object, Ptree *arglist)
virtual Ptree * TranslateMemberCall (Environment *, Ptree *object, Ptree *access_op, Ptree *member_name, Ptree *arglist)
virtual Ptree * TranslateMemberCall (Environment *, Ptree *member_name, Ptree *arglist)
virtual Ptree * TranslateMemberRead (Environment *, Ptree *object, Ptree *access_op, Ptree *member_name)
virtual Ptree * TranslateMemberRead (Environment *, Ptree *member_name)
virtual Ptree * TranslateMemberWrite (Environment *, Ptree *object, Ptree *access_op, Ptree *member_name, Ptree *assign_op, Ptree *expr)
virtual Ptree * TranslateMemberWrite (Environment *, Ptree *member_name, Ptree *assign_op, Ptree *expr)
virtual Ptree * TranslateUnaryOnMember (Environment *, Ptree *unary_op, Ptree *object, Ptree *access_op, Ptree *member_name)
virtual Ptree * TranslateUnaryOnMember (Environment *, Ptree *unary_op, Ptree *member_name)
virtual Ptree * TranslatePostfixOnMember (Environment *, Ptree *object, Ptree *access_op, Ptree *member_name, Ptree *postfix_op)
virtual Ptree * TranslatePostfixOnMember (Environment *, Ptree *member_name, Ptree *postfix_op)
virtual Ptree * TranslatePointer (Environment *, Ptree *var_name)
virtual Ptree * TranslateUserStatement (Environment *, Ptree *object, Ptree *access_op, Ptree *keyword, Ptree *rest)
virtual Ptree * TranslateStaticUserStatement (Environment *, Ptree *keyword, Ptree *rest)
Ptree * TranslateExpression (Environment *, Ptree *expr)
Ptree * TranslateExpression (Environment *, Ptree *expr, TypeInfo &type)
Ptree * TranslateStatement (Environment *env, Ptree *expr)
Ptree * TranslateNewType (Environment *env, Ptree *type)
Ptree * TranslateArguments (Environment *, Ptree *arglist)
Ptree * TranslateFunctionBody (Environment *, Member &m, Ptree *body)
Environment * GetEnvironment ()
virtual bool AcceptTemplate ()
virtual Ptree * FinalizeInstance ()
virtual Ptree * Finalize ()
bool InsertDeclaration (Environment *, Ptree *declaration)
bool InsertDeclaration (Environment *, Ptree *declaration, Ptree *key, void *client_data)
void * LookupClientData (Environment *, Ptree *key)
void ErrorMessage (Environment *, char *message, Ptree *name, Ptree *where)
void WarningMessage (Environment *, char *message, Ptree *name, Ptree *where)
void ErrorMessage (char *message, Ptree *name, Ptree *where)
void WarningMessage (char *message, Ptree *name, Ptree *where)

Static Public Methods

ClassArray & AllClasses ()
int Subclasses (Ptree *name, ClassArray &subclasses)
int ImmediateSubclasses (Ptree *name, ClassArray &subclasses)
int InstancesOf (char *metaclass_name, ClassArray &classes)
Ptree * StripClassQualifier (Ptree *qualified_name)
bool Initialize ()
void FinalizeAll (ostream &out)
Ptree * FinalizeClass ()
void RegisterNewModifier (char *keyword)
void RegisterNewAccessSpecifier (char *keyword)
void RegisterNewMemberModifier (char *keyword)
void RegisterNewWhileStatement (char *keyword)
void RegisterNewForStatement (char *keyword)
void RegisterNewClosureStatement (char *keyword)
void RegisterMetaclass (char *keyword, char *class_name)
void ChangeDefaultMetaclass (char *name)
void SetMetaclassForFunctions (char *name)
void InsertBeforeStatement (Environment *, Ptree *)
void AppendAfterStatement (Environment *, Ptree *)
void InsertBeforeToplevel (Environment *, Class *)
void InsertBeforeToplevel (Environment *, Member &)
void InsertBeforeToplevel (Environment *, Ptree *)
void AppendAfterToplevel (Environment *, Class *)
void AppendAfterToplevel (Environment *, Member &)
void AppendAfterToplevel (Environment *, Ptree *)
bool RecordCmdLineOption (char *key, char *value)
bool LookupCmdLineOption (char *key)
bool LookupCmdLineOption (char *key, char *&value)
void WarnObsoleteness (char *, char *=0)

Private Types

enum  { MaxOptions = 8 }

Private Methods

void Construct (Environment *, Ptree *)
void SetEnvironment (Environment *)
Ptree * GetClassSpecifier ()
Ptree * GetNewName ()
Ptree * GetBaseClasses ()
ChangedMemberList::Cmem * GetChangedMember (Ptree *)
ChangedMemberList * GetAppendedMembers ()
Ptree * GetAppendedCode ()
void TranslateClassHasFinished ()
void CheckValidity (char *)

Private Attributes

Ptree * definition
Ptree * full_definition
Environment * class_environment
MemberList * member_list
bool done_decl_translation
bool removed
ChangedMemberList * changed_member_list
ChangedMemberList * appended_member_list
Ptree * appended_code
Ptree * new_base_classes
Ptree * new_class_specifier
Ptree * new_class_name

Static Private Attributes

ClassArray * class_list = 0
int num_of_cmd_options = 0
char * cmd_options [MaxOptions *2]
char * metaclass_for_c_functions = 0
Class * for_c_functions = 0
Ptree * class_t = new LeafReserved("class", 5)
Ptree * empty_block_t
Ptree * public_t = new LeafPUBLIC("public", 6)
Ptree * protected_t = new LeafPROTECTED("protected", 9)
Ptree * private_t = new LeafPRIVATE("private", 7)
Ptree * virtual_t = new LeafVIRTUAL("virtual", 7)
Ptree * colon_t = new Leaf(":", 1)
Ptree * comma_t = new Leaf(",", 1)
Ptree * semicolon_t = new Leaf(";", 1)

Friends

class Walker
class ClassWalker
class ClassBodyWalker
class Member

Member Enumeration Documentation

anonymous enum
 

Enumeration values:
Public 
Protected 
Private 
Undefined 

Definition at line 78 of file mop.h.

anonymous enum [private]
 

Enumeration values:
MaxOptions 

Definition at line 242 of file mop.h.


Constructor & Destructor Documentation

Class::Class (    )  [inline]
 

Definition at line 34 of file mop.h.

Class::Class (  Environment *    e,
char *    name
)  [inline]
 

Definition at line 35 of file mop.h.

References Ptree::Make().

Class::Class (  Environment *    e,
Ptree *    name
)  [inline]
 

Definition at line 36 of file mop.h.

Class::~Class (    )  [virtual]
 

Definition at line 97 of file mop.cc.


Member Function Documentation

bool Class::AcceptTemplate (    )  [virtual]
 

Reimplemented in TemplateClass.

Definition at line 770 of file mop.cc.

References FALSE.

Referenced by Walker::LookupBaseMetaclass(), Walker::MakeClassMetaobject(), Walker::MakeTemplateClassMetaobject(), Walker::MakeTemplateInstantiationMetaobject(), and ClassWalker::TranslateTemplateInstantiation().

void Class::AddClassSpecifier (  Ptree *    spec ) 
 

Definition at line 355 of file mop.cc.

References new_class_specifier.

Referenced by Metaclass::TranslateClass().

ClassArray & Class::AllClasses (    )  [static]
 

Definition at line 255 of file mop.cc.

References class_list.

void Class::AppendAfterStatement (  Environment *   ,
Ptree *   
)  [static]
 

Definition at line 898 of file mop.cc.

References Environment::GetWalker(), Walker::IsClassWalker(), and MopWarningMessage().

void Class::AppendAfterToplevel (  Environment *   ,
Ptree *   
)  [static]
 

Definition at line 964 of file mop.cc.

References Environment::GetWalker(), Walker::IsClassWalker(), and MopWarningMessage().

void Class::AppendAfterToplevel (  Environment *   ,
Member &   
)  [static]
 

Definition at line 951 of file mop.cc.

References AppendAfterToplevel(), Member::Copy(), Environment::GetWalker(), Walker::IsClassWalker(), and MopWarningMessage().

void Class::AppendAfterToplevel (  Environment *   ,
Class *   
)  [static]
 

Definition at line 941 of file mop.cc.

References Environment::GetWalker(), Walker::IsClassWalker(), and MopWarningMessage().

Referenced by AppendAfterToplevel(), Metaclass::AppendHousekeepingCode(), and Metaclass::TranslateClass().

void Class::AppendBaseClass (  Ptree *    class_name,
int    specifier = Public,
bool    is_virtual = false
) 
 

Definition at line 390 of file mop.cc.

References Ptree::Append(), CheckValidity(), colon_t, comma_t, Ptree::Cons(), Ptree::List(), MopErrorMessage(), new_base_classes, Private, private_t, Protected, protected_t, Public, public_t, and virtual_t.

void Class::AppendBaseClass (  char *    class_name,
int    specifier = Public,
bool    is_virtual = false
) 
 

Definition at line 385 of file mop.cc.

References AppendBaseClass().

void Class::AppendBaseClass (  Class *    c,
int    specifier = Public,
bool    is_virtual = false
) 
 

Definition at line 380 of file mop.cc.

References Name().

Referenced by AppendBaseClass().

void Class::AppendMember (  Ptree *    added_member ) 
 

Definition at line 442 of file mop.cc.

References appended_code, CheckValidity(), and Ptree::Snoc().

void Class::AppendMember (  Member &    added_member,
int    specifier = Public
) 
 

Definition at line 433 of file mop.cc.

References ChangedMemberList::Append(), appended_member_list, and CheckValidity().

Referenced by Metaclass::InsertInitialize(), and Metaclass::TranslateClass().

Ptree * Class::BaseClasses (    ) 
 

Definition at line 119 of file mop.cc.

References definition, and Ptree::Third().

Referenced by MemberList::Make().

void Class::ChangeBaseClasses (  Ptree *    ) 
 

Definition at line 365 of file mop.cc.

References CheckValidity(), Ptree::IsLeaf(), Ptree::List(), and new_base_classes.

void Class::ChangeDefaultMetaclass (  char *    name )  [static]
 

Definition at line 878 of file mop.cc.

References Walker::ChangeDefaultMetaclass().

void Class::ChangeMember (  Member &    changed_member ) 
 

Definition at line 423 of file mop.cc.

References ChangedMemberList::Append(), changed_member_list, CheckValidity(), and Undefined.

Referenced by RemoveMember().

void Class::ChangeName (  Ptree *    name ) 
 

Definition at line 360 of file mop.cc.

References new_class_name.

void Class::CheckValidity (  char *    )  [private]
 

Definition at line 455 of file mop.cc.

References MopWarningMessage2().

Referenced by AppendBaseClass(), AppendMember(), ChangeBaseClasses(), ChangeMember(), RemoveBaseClasses(), and RemoveMember().

Ptree * Class::Comments (    ) 
 

Definition at line 106 of file mop.cc.

References definition, Ptree::IsA(), and ntClassSpec.

void Class::Construct (  Environment *   ,
Ptree *   
)  [private]
 

Definition at line 47 of file mop.cc.

References appended_code, appended_member_list, changed_member_list, class_environment, class_t, definition, done_decl_translation, empty_block_t, FALSE, full_definition, Encoding::Get(), Ptree::List(), member_list, new_base_classes, new_class_specifier, removed, SetEnvironment(), Encoding::SimpleName(), and Ptree::Third().

Ptree* Class::Definition (    )  [inline]
 

Definition at line 47 of file mop.h.

Referenced by Metaclass::CheckObsoleteness(), ClassWalker::ConstructClass(), Metaclass::GetFinalizer(), and Metaclass::InsertInitialize().

void Class::ErrorMessage (  char *    message,
Ptree *    name,
Ptree *    where
) 
 

Definition at line 1017 of file mop.cc.

References Walker::InaccurateErrorMessage().

void Class::ErrorMessage (  Environment *   ,
char *    message,
Ptree *    name,
Ptree *    where
) 
 

Definition at line 1005 of file mop.cc.

References Walker::ErrorMessage(), and Environment::GetWalker().

Referenced by Metaclass::GetFinalizer(), Metaclass::InsertInitialize(), QuoteClass::ProcessBackQuote(), QuoteClass::TranslateMemberCall(), Metaclass::TranslateMemberFunction(), TranslateNew(), TranslateStaticUserStatement(), and TranslateUserStatement().

Ptree * Class::Finalize (    )  [virtual]
 

Definition at line 816 of file mop.cc.

Referenced by FinalizeInstance().

void Class::FinalizeAll (  ostream &    out )  [static]
 

Definition at line 786 of file mop.cc.

References class_list, FinalizeInstance(), ClassArray::Number(), ClassArray::Ref(), and Ptree::Write().

Referenced by Program::Write().

Ptree * Class::FinalizeClass (    )  [static]
 

Definition at line 821 of file mop.cc.

Ptree * Class::FinalizeInstance (    )  [virtual]
 

Definition at line 804 of file mop.cc.

References Finalize().

Referenced by FinalizeAll().

Ptree* Class::GetAppendedCode (    )  [inline, private]
 

Definition at line 221 of file mop.h.

Referenced by ClassBodyWalker::TranslateClassBody().

ChangedMemberList* Class::GetAppendedMembers (    )  [inline, private]
 

Definition at line 220 of file mop.h.

Referenced by ClassBodyWalker::AppendNewMembers().

Ptree* Class::GetBaseClasses (    )  [inline, private]
 

Definition at line 218 of file mop.h.

Referenced by ClassWalker::ConstructClass(), and ClassWalker::TranslateClassSpec().

ChangedMemberList::Cmem * Class::GetChangedMember (  Ptree *    )  [private]
 

Definition at line 468 of file mop.cc.

References changed_member_list, and ChangedMemberList::Lookup().

Referenced by ClassBodyWalker::TranslateDeclarator(), and ClassBodyWalker::TranslateFunctionImplementation().

Ptree* Class::GetClassSpecifier (    )  [inline, private]
 

Definition at line 216 of file mop.h.

Referenced by ClassWalker::ConstructClass(), and ClassWalker::TranslateClassSpec().

Environment* Class::GetEnvironment (    )  [inline]
 

Definition at line 168 of file mop.h.

Referenced by MemberList::Append(), Encoding::GetBaseNameIfTemplate(), TypeInfo::GetQualifiedName2(), Member::IsConstructor(), Member::IsDestructor(), MemberList::Make(), Member::Name(), ClassWalker::RecordArgsAndTranslateFbody(), Walker::RecordBaseclassEnv(), TypeInfo::ResolveTypedef(), Encoding::ResolveTypedefName(), TypeInfo::SetMember(), Member::Signature(), and ClassBodyWalker::TranslateClassBody().

MemberList * Class::GetMemberList (    ) 
 

Definition at line 245 of file mop.cc.

References MemberList::Make(), and member_list.

Referenced by MemberList::AppendBaseClass(), ChangedMemberList::Copy(), Member::Find(), Member::FunctionBody(), Member::GetUserAccessSpecifier(), Member::GetUserMemberModifier(), Member::IsInline(), Member::IsMutable(), Member::IsPrivate(), Member::IsProtected(), Member::IsPublic(), Member::IsStatic(), Member::IsVirtual(), LookupMember(), NthMember(), and Member::Supplier().

Ptree* Class::GetNewName (    )  [inline, private]
 

Definition at line 217 of file mop.h.

Referenced by ClassWalker::ConstructClass(), and ClassWalker::TranslateClassSpec().

int Class::ImmediateSubclasses (  Ptree *    name,
ClassArray &    subclasses
)  [static]
 

Definition at line 286 of file mop.cc.

References ClassArray::Append(), class_list, ClassArray::Clear(), IsImmediateSubclassOf(), ClassArray::Number(), ClassArray::Ref(), and uint.

int Class::ImmediateSubclasses (  ClassArray &    subclasses ) 
 

Definition at line 281 of file mop.cc.

References Name().

bool Class::Initialize (    )  [static]
 

Reimplemented in Metaclass, TemplateClass, and QuoteClass.

Definition at line 781 of file mop.cc.

References TRUE.

Referenced by opcxx_init_Class().

void Class::InitializeInstance (  Ptree *    def,
Ptree *    margs
)  [virtual]
 

Reimplemented in TemplateClass.

Definition at line 71 of file mop.cc.

References ClassArray::Append(), appended_code, appended_member_list, Ptree::Car(), Ptree::Cdr(), changed_member_list, class_environment, class_list, definition, done_decl_translation, FALSE, full_definition, Ptree::IsLeaf(), member_list, new_base_classes, new_class_name, new_class_specifier, removed, and Ptree::Third().

Referenced by CreateClass(), CreateMetaclass(), CreateQuoteClass(), CreateTemplateClass(), TemplateClass::InitializeInstance(), Walker::LookupMetaclass(), Walker::MakeClassMetaobject(), and Walker::MakeTemplateClassMetaobject().

void Class::InsertBeforeStatement (  Environment *   ,
Ptree *   
)  [static]
 

Definition at line 888 of file mop.cc.

References Environment::GetWalker(), Walker::IsClassWalker(), and MopWarningMessage().

void Class::InsertBeforeToplevel (  Environment *   ,
Ptree *   
)  [static]
 

Definition at line 931 of file mop.cc.

References Environment::GetWalker(), Walker::IsClassWalker(), and MopWarningMessage().

void Class::InsertBeforeToplevel (  Environment *   ,
Member &   
)  [static]
 

Definition at line 918 of file mop.cc.

References Member::Copy(), Environment::GetWalker(), InsertBeforeToplevel(), Walker::IsClassWalker(), and MopWarningMessage().

void Class::InsertBeforeToplevel (  Environment *   ,
Class *   
)  [static]
 

Definition at line 908 of file mop.cc.

References Environment::GetWalker(), Walker::IsClassWalker(), and MopWarningMessage().

Referenced by InsertBeforeToplevel().

bool Class::InsertDeclaration (  Environment *   ,
Ptree *    declaration,
Ptree *    key,
void *    client_data
) 
 

Definition at line 979 of file mop.cc.

References FALSE, Environment::GetWalker(), Walker::IsClassWalker(), and MopWarningMessage().

bool Class::InsertDeclaration (  Environment *   ,
Ptree *    declaration
) 
 

Definition at line 974 of file mop.cc.

int Class::InstancesOf (  char *    metaclass_name,
ClassArray &    classes
)  [static]
 

Definition at line 302 of file mop.cc.

References ClassArray::Append(), class_list, ClassArray::Clear(), MetaclassName(), ClassArray::Number(), ClassArray::Ref(), and uint.

bool Class::IsImmediateSubclassOf (  Ptree *    name ) 
 

Definition at line 166 of file mop.cc.

References Ptree::Car(), Ptree::Cdr(), definition, Ptree::Eq(), FALSE, Ptree::Last(), Ptree::Third(), and TRUE.

Referenced by ImmediateSubclasses().

int Class::IsMember (  Ptree *    ) 
 

Definition at line 328 of file mop.cc.

References LookupMember(), and Member::Nth().

bool Class::IsSubclassOf (  Ptree *    name ) 
 

Definition at line 145 of file mop.cc.

References Ptree::Car(), Ptree::Cdr(), class_environment, definition, Ptree::Eq(), FALSE, Ptree::Last(), Environment::LookupClassMetaobject(), Ptree::Third(), and TRUE.

Referenced by Subclasses().

void * Class::LookupClientData (  Environment *   ,
Ptree *    key
) 
 

Definition at line 993 of file mop.cc.

References Environment::GetWalker(), Walker::IsClassWalker(), and MopWarningMessage().

bool Class::LookupCmdLineOption (  char *    key,
char *&    value
)  [static]
 

Definition at line 1044 of file mop.cc.

References cmd_options, FALSE, num_of_cmd_options, and TRUE.

bool Class::LookupCmdLineOption (  char *    key )  [static]
 

Definition at line 1038 of file mop.cc.

bool Class::LookupMember (  char *    name,
Member &    member,
int    index = 0
) 
 

Definition at line 231 of file mop.cc.

References class_environment, FALSE, GetMemberList(), MemberList::Lookup(), MemberList::Ref(), Member::Set(), and TRUE.

bool Class::LookupMember (  char *    name ) 
 

Definition at line 225 of file mop.cc.

References LookupMember().

bool Class::LookupMember (  Ptree *    name,
Member &    member,
int    index = 0
) 
 

Definition at line 211 of file mop.cc.

References class_environment, FALSE, GetMemberList(), MemberList::Lookup(), MemberList::Ref(), Member::Set(), and TRUE.

bool Class::LookupMember (  Ptree *    name ) 
 

Definition at line 205 of file mop.cc.

Referenced by Metaclass::CheckObsoleteness(), Metaclass::GetFinalizer(), Metaclass::InsertInitialize(), IsMember(), and LookupMember().

bool Class::LookupMemberType (  Ptree *   ,
TypeInfo &   
) 
 

Definition at line 337 of file mop.cc.

References class_environment, and Environment::Lookup().

Ptree * Class::Members (    ) 
 

Definition at line 124 of file mop.cc.

References definition, Ptree::Nth(), and Ptree::Second().

Referenced by MemberList::AppendThisClass().

char * Class::MetaclassName (    )  [virtual]
 

Reimplemented in Metaclass, TemplateClass, and QuoteClass.

Definition at line 101 of file mop.cc.

Referenced by InstancesOf(), and Walker::LookupBaseMetaclass().

Ptree * Class::Name (    ) 
 

Definition at line 114 of file mop.cc.

References definition, and Ptree::Second().

Referenced by MemberList::Append(), AppendBaseClass(), Metaclass::CheckObsoleteness(), Metaclass::FindFirstNotInlinedVirtualFunction(), TypeInfo::FullTypeName(), Metaclass::GetFinalizer(), TypeInfo::GetQualifiedName2(), ImmediateSubclasses(), Metaclass::InsertInitialize(), Member::IsConstructor(), Environment::RecordPointerVariable(), Environment::RecordVariable(), Subclasses(), Metaclass::TranslateClass(), and Metaclass::TranslateMemberFunction().

Class * Class::NthBaseClass (  int    nth ) 
 

Definition at line 129 of file mop.cc.

References Ptree::Car(), Ptree::Cdr(), class_environment, definition, Ptree::Last(), Environment::LookupClassMetaobject(), and Ptree::Third().

Ptree * Class::NthBaseClassName (  int    nth ) 
 

Definition at line 181 of file mop.cc.

References Ptree::Car(), Ptree::Cdr(), definition, Ptree::Last(), and Ptree::Third().

Referenced by Metaclass::ProduceInitFile().

bool Class::NthMember (  int    nth,
Member &    member
) 
 

Definition at line 195 of file mop.cc.

References FALSE, GetMemberList(), MemberList::Number(), MemberList::Ref(), Member::Set(), and TRUE.

Referenced by Metaclass::FindFirstNotInlinedVirtualFunction(), and NthMemberName().

Ptree * Class::NthMemberName (  int    ) 
 

Definition at line 318 of file mop.cc.

References Member::Name(), and NthMember().

bool Class::RecordCmdLineOption (  char *    key,
char *    value
)  [static]
 

Definition at line 1027 of file mop.cc.

References cmd_options, FALSE, MaxOptions, num_of_cmd_options, and TRUE.

Referenced by RecordCmdOption().

void Class::RegisterMetaclass (  char *    keyword,
char *    class_name
)  [static]
 

Definition at line 868 of file mop.cc.

References MopErrorMessage(), Environment::RecordClasskeyword(), Lex::RecordKeyword(), and UserKeyword.

void Class::RegisterNewAccessSpecifier (  char *    keyword )  [static]
 

Definition at line 833 of file mop.cc.

References MopErrorMessage(), Lex::RecordKeyword(), and UserKeyword4.

void Class::RegisterNewClosureStatement (  char *    keyword )  [static]
 

Definition at line 861 of file mop.cc.

References MopErrorMessage(), Lex::RecordKeyword(), and UserKeyword2.

void Class::RegisterNewForStatement (  char *    keyword )  [static]
 

Definition at line 854 of file mop.cc.

References MopErrorMessage(), Lex::RecordKeyword(), and UserKeyword3.

void Class::RegisterNewMemberModifier (  char *    keyword )  [static]
 

Definition at line 840 of file mop.cc.

References MopErrorMessage(), Lex::RecordKeyword(), and UserKeyword5.

void Class::RegisterNewModifier (  char *    keyword )  [static]
 

Definition at line 826 of file mop.cc.

References MopErrorMessage(), Lex::RecordKeyword(), and UserKeyword.

void Class::RegisterNewWhileStatement (  char *    keyword )  [static]
 

Definition at line 847 of file mop.cc.

References MopErrorMessage(), Lex::RecordKeyword(), and UserKeyword.

void Class::RemoveBaseClasses (    ) 
 

Definition at line 374 of file mop.cc.

References CheckValidity(), and new_base_classes.

void Class::RemoveClass (    )  [inline]
 

Definition at line 81 of file mop.h.

References TRUE.

void Class::RemoveMember (  Member &    ) 
 

Definition at line 448 of file mop.cc.

References ChangeMember(), CheckValidity(), and Member::Remove().

void Class::SetEnvironment (  Environment *    )  [private]
 

Definition at line 762 of file mop.cc.

References class_environment, and Environment::SetMetaobject().

Referenced by Construct(), ClassWalker::MakeMetaobjectForCfunctions(), and Walker::NewScope().

void Class::SetMetaclassForFunctions (  char *    name )  [static]
 

Definition at line 883 of file mop.cc.

References metaclass_for_c_functions.

Ptree * Class::StripClassQualifier (  Ptree *    qualified_name )  [static]
 

Definition at line 705 of file mop.cc.

References Ptree::First(), Ptree::IsLeaf(), and Ptree::Last().

Referenced by QuoteClass::TranslateMemberCall().

int Class::Subclasses (  Ptree *    name,
ClassArray &    subclasses
)  [static]
 

Definition at line 265 of file mop.cc.

References ClassArray::Append(), class_list, ClassArray::Clear(), IsSubclassOf(), ClassArray::Number(), ClassArray::Ref(), and uint.

int Class::Subclasses (  ClassArray &    subclasses ) 
 

Definition at line 260 of file mop.cc.

References Name().

Ptree * Class::TranslateArguments (  Environment *   ,
Ptree *    arglist
) 
 

Definition at line 749 of file mop.cc.

References Environment::GetWalker(), and Walker::TranslateArguments().

Referenced by TranslateFunctionCall(), TranslateInitializer(), TranslateMemberCall(), and TranslateNew().

Ptree * Class::TranslateAssign (  Environment *   ,
Ptree *    left,
Ptree *    assign_op,
Ptree *    right
)  [virtual]
 

Definition at line 524 of file mop.cc.

References Ptree::List(), and TranslateExpression().

Referenced by ClassWalker::TranslateAssign().

Ptree * Class::TranslateBinary (  Environment *   ,
Ptree *    left,
Ptree *    binary_op,
Ptree *    right
)  [virtual]
 

Definition at line 532 of file mop.cc.

References Ptree::List(), and TranslateExpression().

Referenced by ClassWalker::TranslateInfix().

void Class::TranslateClass (  Environment *    )  [virtual]
 

Reimplemented in Metaclass.

Definition at line 345 of file mop.cc.

Referenced by Metaclass::TranslateClass(), and ClassWalker::TranslateClassSpec().

void Class::TranslateClassHasFinished (    )  [inline, private]
 

Definition at line 222 of file mop.h.

References TRUE.

Referenced by ClassWalker::ConstructClass(), and ClassWalker::TranslateClassSpec().

Ptree * Class::TranslateDelete (  Environment *   ,
Ptree *    op,
Ptree *    obj
)  [virtual]
 

Definition at line 518 of file mop.cc.

References Ptree::List(), and TranslateExpression().

Referenced by ClassWalker::TranslateDelete().

Ptree * Class::TranslateExpression (  Environment *   ,
Ptree *    expr,
TypeInfo &    type
) 
 

Definition at line 724 of file mop.cc.

References Environment::GetWalker(), Walker::Translate(), Walker::Typeof(), and TypeInfo::Unknown().

Ptree * Class::TranslateExpression (  Environment *   ,
Ptree *    expr
) 
 

Definition at line 716 of file mop.cc.

References Environment::GetWalker(), and Walker::Translate().

Referenced by TranslateAssign(), TranslateBinary(), TranslateDelete(), TranslateFunctionCall(), TranslateInitializer(), TranslateMemberCall(), TranslateMemberRead(), TranslateMemberWrite(), TranslatePostfix(), TranslatePostfixOnMember(), TranslateStatement(), TranslateSubscript(), TranslateUnary(), and TranslateUnaryOnMember().

Ptree * Class::TranslateFunctionBody (  Environment *   ,
Member &    m,
Ptree *    body
) 
 

Definition at line 754 of file mop.cc.

References Member::ArgumentList(), Environment::GetWalker(), and Walker::RecordArgsAndTranslateFbody().

Ptree * Class::TranslateFunctionCall (  Environment *   ,
Ptree *    object,
Ptree *    arglist
)  [virtual]
 

Definition at line 568 of file mop.cc.

References TranslateArguments(), and TranslateExpression().

Referenced by ClassWalker::TranslateFuncall().

Ptree * Class::TranslateInitializer (  Environment *   ,
Ptree *    var_name,
Ptree *    initializer
)  [virtual]
 

Definition at line 481 of file mop.cc.

References Ptree::Car(), Ptree::Eq(), Ptree::List(), Ptree::Second(), TranslateArguments(), and TranslateExpression().

Referenced by ClassWalker::TranslateAssignInitializer(), and ClassWalker::TranslateInitializeArgs().

Ptree * Class::TranslateMemberCall (  Environment *   ,
Ptree *    member_name,
Ptree *    arglist
)  [virtual]
 

Reimplemented in QuoteClass.

Definition at line 591 of file mop.cc.

References TranslateArguments().

Ptree * Class::TranslateMemberCall (  Environment *   ,
Ptree *    object,
Ptree *    access_op,
Ptree *    member_name,
Ptree *    arglist
)  [virtual]
 

Definition at line 575 of file mop.cc.

References Ptree::Eq(), Ptree::List(), TranslateArguments(), and TranslateExpression().

Referenced by ClassWalker::TranslateFuncall(), and QuoteClass::TranslateMemberCall().

void Class::TranslateMemberFunction (  Environment *   ,
Member &   
)  [virtual]
 

Reimplemented in Metaclass.

Definition at line 464 of file mop.cc.

Referenced by ClassWalker::TranslateFunctionImplementation(), and ClassWalker::TranslateTemplateFunction().

Ptree * Class::TranslateMemberRead (  Environment *   ,
Ptree *    member_name
)  [virtual]
 

Definition at line 608 of file mop.cc.

Ptree * Class::TranslateMemberRead (  Environment *   ,
Ptree *    object,
Ptree *    access_op,
Ptree *    member_name
)  [virtual]
 

Definition at line 597 of file mop.cc.

References Ptree::Eq(), Ptree::List(), and TranslateExpression().

Referenced by ClassWalker::TranslateArrowMember(), ClassWalker::TranslateDotMember(), and ClassWalker::TranslateVariable().

Ptree * Class::TranslateMemberWrite (  Environment *   ,
Ptree *    member_name,
Ptree *    assign_op,
Ptree *    expr
)  [virtual]
 

Definition at line 635 of file mop.cc.

References Ptree::List(), and TranslateExpression().

Ptree * Class::TranslateMemberWrite (  Environment *   ,
Ptree *    object,
Ptree *    access_op,
Ptree *    member_name,
Ptree *    assign_op,
Ptree *    expr
)  [virtual]
 

Definition at line 613 of file mop.cc.

References Ptree::Eq(), Ptree::List(), and TranslateExpression().

Referenced by ClassWalker::TranslateAssign().

Ptree * Class::TranslateNew (  Environment *   ,
Ptree *    header,
Ptree *    new_operator,
Ptree *    placement,
Ptree *    type_name,
Ptree *    arglist
)  [virtual]
 

Definition at line 496 of file mop.cc.

References Ptree::Cons(), Ptree::Eq(), ErrorMessage(), Ptree::List(), TranslateArguments(), and TranslateNewType().

Referenced by ClassWalker::TranslateNew2().

Ptree * Class::TranslateNewType (  Environment *    env,
Ptree *    type
) 
 

Definition at line 744 of file mop.cc.

References Environment::GetWalker(), and Walker::TranslateNew3().

Referenced by TranslateNew().

Ptree * Class::TranslatePointer (  Environment *   ,
Ptree *    var_name
)  [virtual]
 

Definition at line 685 of file mop.cc.

Referenced by ClassWalker::TranslateThis(), and ClassWalker::TranslateVariable().

Ptree * Class::TranslatePostfix (  Environment *   ,
Ptree *    object,
Ptree *    postfix_op
)  [virtual]
 

Definition at line 558 of file mop.cc.

References Ptree::List(), and TranslateExpression().

Referenced by ClassWalker::TranslatePostfix().

Ptree * Class::TranslatePostfixOnMember (  Environment *   ,
Ptree *    member_name,
Ptree *    postfix_op
)  [virtual]
 

Definition at line 679 of file mop.cc.

References Ptree::List().

Ptree * Class::TranslatePostfixOnMember (  Environment *   ,
Ptree *    object,
Ptree *    access_op,
Ptree *    member_name,
Ptree *    postfix_op
)  [virtual]
 

Definition at line 664 of file mop.cc.

References Ptree::Eq(), Ptree::List(), and TranslateExpression().

Referenced by ClassWalker::TranslatePostfix().

Ptree * Class::TranslateStatement (  Environment *    env,
Ptree *    expr
) 
 

Definition at line 737 of file mop.cc.

References TranslateExpression(), and WarnObsoleteness().

Ptree * Class::TranslateStaticUserStatement (  Environment *   ,
Ptree *    keyword,
Ptree *    rest
)  [virtual]
 

Definition at line 698 of file mop.cc.

References ErrorMessage().

Referenced by ClassWalker::TranslateStaticUserStatement().

Ptree * Class::TranslateSubscript (  Environment *   ,
Ptree *    object,
Ptree *    index
)  [virtual]
 

Definition at line 545 of file mop.cc.

References Ptree::Second(), Ptree::ShallowSubst(), and TranslateExpression().

Referenced by ClassWalker::TranslateArray().

Ptree * Class::TranslateUnary (  Environment *   ,
Ptree *    unary_op,
Ptree *    object
)  [virtual]
 

Definition at line 539 of file mop.cc.

References Ptree::List(), and TranslateExpression().

Referenced by ClassWalker::TranslateUnary().

Ptree * Class::TranslateUnaryOnMember (  Environment *   ,
Ptree *    unary_op,
Ptree *    member_name
)  [virtual]
 

Definition at line 658 of file mop.cc.

References Ptree::List().

Ptree * Class::TranslateUnaryOnMember (  Environment *   ,
Ptree *    unary_op,
Ptree *    object,
Ptree *    access_op,
Ptree *    member_name
)  [virtual]
 

Definition at line 643 of file mop.cc.

References Ptree::Eq(), Ptree::List(), and TranslateExpression().

Referenced by ClassWalker::TranslateUnary().

Ptree * Class::TranslateUserStatement (  Environment *   ,
Ptree *    object,
Ptree *    access_op,
Ptree *    keyword,
Ptree *    rest
)  [virtual]
 

Definition at line 690 of file mop.cc.

References ErrorMessage().

Referenced by ClassWalker::TranslateUserStatement().

void Class::WarningMessage (  char *    message,
Ptree *    name,
Ptree *    where
) 
 

Definition at line 1022 of file mop.cc.

References Walker::InaccurateWarningMessage().

void Class::WarningMessage (  Environment *   ,
char *    message,
Ptree *    name,
Ptree *    where
) 
 

Definition at line 1011 of file mop.cc.

References Environment::GetWalker(), and Walker::WarningMessage().

Referenced by Metaclass::CheckObsoleteness(), and Metaclass::FindFirstNotInlinedVirtualFunction().

void Class::WarnObsoleteness (  char *   ,
char *    = 0
)  [static]
 

Definition at line 1055 of file mop.cc.

References MopMoreWarningMessage(), and MopWarningMessage2().

Referenced by Ptree::MakeStatement(), QuoteClass::TranslateMemberCall(), and TranslateStatement().


Friends And Related Function Documentation

friend class ClassBodyWalker [friend]
 

Definition at line 261 of file mop.h.

friend class ClassWalker [friend]
 

Definition at line 260 of file mop.h.

friend class Member [friend]
 

Definition at line 262 of file mop.h.

friend class Walker [friend]
 

Definition at line 259 of file mop.h.


Member Data Documentation

Ptree* Class::appended_code [private]
 

Definition at line 235 of file mop.h.

Referenced by AppendMember(), Construct(), and InitializeInstance().

ChangedMemberList* Class::appended_member_list [private]
 

Definition at line 234 of file mop.h.

Referenced by AppendMember(), Construct(), and InitializeInstance().

ChangedMemberList* Class::changed_member_list [private]
 

Definition at line 233 of file mop.h.

Referenced by ChangeMember(), Construct(), GetChangedMember(), and InitializeInstance().

Environment* Class::class_environment [private]
 

Definition at line 228 of file mop.h.

Referenced by Construct(), InitializeInstance(), IsSubclassOf(), LookupMember(), LookupMemberType(), NthBaseClass(), and SetEnvironment().

ClassArray * Class::class_list = 0 [static, private]
 

Definition at line 26 of file mop.cc.

Referenced by AllClasses(), FinalizeAll(), ImmediateSubclasses(), InitializeInstance(), InstancesOf(), and Subclasses().

Ptree * Class::class_t = new LeafReserved("class", 5) [static, private]
 

Definition at line 33 of file mop.cc.

Referenced by Construct(), and ClassWalker::MakeMetaobjectForCfunctions().

char * Class::cmd_options [static, private]
 

Definition at line 28 of file mop.cc.

Referenced by LookupCmdLineOption(), and RecordCmdLineOption().

Ptree * Class::colon_t = new Leaf(":", 1) [static, private]
 

Definition at line 41 of file mop.cc.

Referenced by AppendBaseClass(), and ClassWalker::ConstructAccessSpecifier().

Ptree * Class::comma_t = new Leaf(",", 1) [static, private]
 

Definition at line 42 of file mop.cc.

Referenced by AppendBaseClass().

Ptree* Class::definition [private]
 

Definition at line 226 of file mop.h.

Referenced by BaseClasses(), Comments(), Construct(), InitializeInstance(), IsImmediateSubclassOf(), IsSubclassOf(), Members(), Name(), NthBaseClass(), and NthBaseClassName().

bool Class::done_decl_translation [private]
 

Definition at line 231 of file mop.h.

Referenced by Construct(), and InitializeInstance().

Ptree * Class::empty_block_t [static, private]
 

Initial value:

 new PtreeClassBody(new Leaf("{", 1),
                                                  0 ,
                                                 new Leaf("}", 1))

Definition at line 34 of file mop.cc.

Referenced by Construct(), and ClassWalker::MakeMetaobjectForCfunctions().

Class * Class::for_c_functions = 0 [static, private]
 

Definition at line 31 of file mop.cc.

Referenced by ClassWalker::MakeMetaobjectForCfunctions(), and ClassWalker::TranslateFuncall().

Ptree* Class::full_definition [private]
 

Definition at line 227 of file mop.h.

Referenced by Construct(), and InitializeInstance().

MemberList* Class::member_list [private]
 

Definition at line 229 of file mop.h.

Referenced by Construct(), GetMemberList(), and InitializeInstance().

char * Class::metaclass_for_c_functions = 0 [static, private]
 

Definition at line 30 of file mop.cc.

Referenced by ClassWalker::MakeMetaobjectForCfunctions(), SetMetaclassForFunctions(), and ClassWalker::TranslateFunctionImplementation().

Ptree* Class::new_base_classes [private]
 

Definition at line 236 of file mop.h.

Referenced by AppendBaseClass(), ChangeBaseClasses(), Construct(), InitializeInstance(), and RemoveBaseClasses().

Ptree* Class::new_class_name [private]
 

Definition at line 238 of file mop.h.

Referenced by ChangeName(), and InitializeInstance().

Ptree* Class::new_class_specifier [private]
 

Definition at line 237 of file mop.h.

Referenced by AddClassSpecifier(), Construct(), and InitializeInstance().

int Class::num_of_cmd_options = 0 [static, private]
 

Definition at line 27 of file mop.cc.

Referenced by LookupCmdLineOption(), and RecordCmdLineOption().

Ptree * Class::private_t = new LeafPRIVATE("private", 7) [static, private]
 

Definition at line 39 of file mop.cc.

Referenced by AppendBaseClass(), and ClassWalker::ConstructAccessSpecifier().

Ptree * Class::protected_t = new LeafPROTECTED("protected", 9) [static, private]
 

Definition at line 38 of file mop.cc.

Referenced by AppendBaseClass(), and ClassWalker::ConstructAccessSpecifier().

Ptree * Class::public_t = new LeafPUBLIC("public", 6) [static, private]
 

Definition at line 37 of file mop.cc.

Referenced by AppendBaseClass(), and ClassWalker::ConstructAccessSpecifier().

bool Class::removed [private]
 

Definition at line 232 of file mop.h.

Referenced by Construct(), InitializeInstance(), and ClassWalker::TranslateClassSpec().

Ptree * Class::semicolon_t = new Leaf(";", 1) [static, private]
 

Definition at line 43 of file mop.cc.

Referenced by ClassWalker::ConstructClass(), ClassWalker::ConstructMember(), Walker::TranslateDeclaration(), and ClassBodyWalker::TranslateFunctionImplementation().

Ptree * Class::virtual_t = new LeafVIRTUAL("virtual", 7) [static, private]
 

Definition at line 40 of file mop.cc.

Referenced by AppendBaseClass().


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