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 ()
PtreeComments ()
PtreeName ()
PtreeBaseClasses ()
PtreeMembers ()
PtreeDefinition ()
virtual char * MetaclassName ()
Class * NthBaseClass (int nth)
PtreeNthBaseClassName (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)
MemberListGetMemberList ()
int Subclasses (ClassArray &subclasses)
int ImmediateSubclasses (ClassArray &subclasses)
PtreeNthMemberName (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 PtreeTranslateInitializer (Environment *, Ptree *var_name, Ptree *initializer)
virtual PtreeTranslateNew (Environment *, Ptree *header, Ptree *new_operator, Ptree *placement, Ptree *type_name, Ptree *arglist)
virtual PtreeTranslateDelete (Environment *, Ptree *op, Ptree *obj)
virtual PtreeTranslateAssign (Environment *, Ptree *left, Ptree *assign_op, Ptree *right)
virtual PtreeTranslateBinary (Environment *, Ptree *left, Ptree *binary_op, Ptree *right)
virtual PtreeTranslateUnary (Environment *, Ptree *unary_op, Ptree *object)
virtual PtreeTranslateSubscript (Environment *, Ptree *object, Ptree *index)
virtual PtreeTranslatePostfix (Environment *, Ptree *object, Ptree *postfix_op)
virtual PtreeTranslateFunctionCall (Environment *, Ptree *object, Ptree *arglist)
virtual PtreeTranslateMemberCall (Environment *, Ptree *object, Ptree *access_op, Ptree *member_name, Ptree *arglist)
virtual PtreeTranslateMemberCall (Environment *, Ptree *member_name, Ptree *arglist)
virtual PtreeTranslateMemberRead (Environment *, Ptree *object, Ptree *access_op, Ptree *member_name)
virtual PtreeTranslateMemberRead (Environment *, Ptree *member_name)
virtual PtreeTranslateMemberWrite (Environment *, Ptree *object, Ptree *access_op, Ptree *member_name, Ptree *assign_op, Ptree *expr)
virtual PtreeTranslateMemberWrite (Environment *, Ptree *member_name, Ptree *assign_op, Ptree *expr)
virtual PtreeTranslateUnaryOnMember (Environment *, Ptree *unary_op, Ptree *object, Ptree *access_op, Ptree *member_name)
virtual PtreeTranslateUnaryOnMember (Environment *, Ptree *unary_op, Ptree *member_name)
virtual PtreeTranslatePostfixOnMember (Environment *, Ptree *object, Ptree *access_op, Ptree *member_name, Ptree *postfix_op)
virtual PtreeTranslatePostfixOnMember (Environment *, Ptree *member_name, Ptree *postfix_op)
virtual PtreeTranslatePointer (Environment *, Ptree *var_name)
virtual PtreeTranslateUserStatement (Environment *, Ptree *object, Ptree *access_op, Ptree *keyword, Ptree *rest)
virtual PtreeTranslateStaticUserStatement (Environment *, Ptree *keyword, Ptree *rest)
PtreeTranslateExpression (Environment *, Ptree *expr)
PtreeTranslateExpression (Environment *, Ptree *expr, TypeInfo &type)
PtreeTranslateStatement (Environment *env, Ptree *expr)
PtreeTranslateNewType (Environment *env, Ptree *type)
PtreeTranslateArguments (Environment *, Ptree *arglist)
PtreeTranslateFunctionBody (Environment *, Member &m, Ptree *body)
EnvironmentGetEnvironment ()
virtual bool AcceptTemplate ()
virtual PtreeFinalizeInstance ()
virtual PtreeFinalize ()
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

ClassArrayAllClasses ()
int Subclasses (Ptree *name, ClassArray &subclasses)
int ImmediateSubclasses (Ptree *name, ClassArray &subclasses)
int InstancesOf (char *metaclass_name, ClassArray &classes)
PtreeStripClassQualifier (Ptree *qualified_name)
bool Initialize ()
void FinalizeAll (ostream &out)
PtreeFinalizeClass ()
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 *)
PtreeGetClassSpecifier ()
PtreeGetNewName ()
PtreeGetBaseClasses ()
ChangedMemberList::CmemGetChangedMember (Ptree *)
ChangedMemberListGetAppendedMembers ()
PtreeGetAppendedCode ()
void TranslateClassHasFinished ()
void CheckValidity (char *)

Private Attributes

Ptreedefinition
Ptreefull_definition
Environmentclass_environment
MemberListmember_list
bool done_decl_translation
bool removed
ChangedMemberListchanged_member_list
ChangedMemberListappended_member_list
Ptreeappended_code
Ptreenew_base_classes
Ptreenew_class_specifier
Ptreenew_class_name

Static Private Attributes

ClassArrayclass_list = 0
int num_of_cmd_options = 0
char * cmd_options [MaxOptions *2]
char * metaclass_for_c_functions = 0
Class * for_c_functions = 0
Ptreeclass_t = new LeafReserved("class", 5)
Ptreeempty_block_t
Ptreepublic_t = new LeafPUBLIC("public", 6)
Ptreeprotected_t = new LeafPROTECTED("protected", 9)
Ptreeprivate_t = new LeafPRIVATE("private", 7)
Ptreevirtual_t = new LeafVIRTUAL("virtual", 7)
Ptreecolon_t = new Leaf(":", 1)
Ptreecomma_t = new Leaf(",", 1)
Ptreesemicolon_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