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

CPPStructType Class Reference

#include <cppStructType.h>

Inheritance diagram for CPPStructType:

CPPExtensionType CPPType CPPDeclaration List of all members.

Public Types

typedef vector< BaseDerivation
typedef list< CPPInstance * > VFunctions

Public Member Functions

 CPPStructType (Type type, CPPIdentifier *ident, CPPScope *current_scope, CPPScope *scope, const CPPFile &file)
 CPPStructType (const CPPStructType &copy)
void operator= (const CPPStructType &copy)
void append_derivation (CPPType *base, CPPVisibility vis, bool is_virtual)
CPPScopeget_scope () const
bool is_abstract () const
void check_virtual ()
virtual bool is_fully_specified () const
virtual bool is_incomplete () const
CPPInstanceget_destructor () const
virtual CPPDeclarationinstantiate (const CPPTemplateParameterList *actual_params, CPPScope *current_scope, CPPScope *global_scope, CPPPreprocessor *error_sink=NULL) const
virtual CPPDeclarationsubstitute_decl (SubstDecl &subst, CPPScope *current_scope, CPPScope *global_scope)
virtual void output (ostream &out, int indent_level, CPPScope *scope, bool complete) const
virtual SubType get_subtype () const
virtual CPPStructType * as_struct_type ()
void get_virtual_funcs (VFunctions &funcs) const
void get_pure_virtual_funcs (VFunctions &funcs) const

Public Attributes

CPPScope_scope
bool _incomplete
Derivation _derivation

Protected Types

typedef vector< CPPTypeProxy * > Proxies

Protected Member Functions

virtual bool is_equal (const CPPDeclaration *other) const
virtual bool is_less (const CPPDeclaration *other) const

Protected Attributes

bool _subst_decl_recursive_protect
Proxies _proxies

Member Typedef Documentation

typedef vector<Base> CPPStructType::Derivation
 

Definition at line 84 of file cppStructType.h.

typedef vector<CPPTypeProxy *> CPPStructType::Proxies [protected]
 

Definition at line 96 of file cppStructType.h.

typedef list<CPPInstance *> CPPStructType::VFunctions
 

Definition at line 87 of file cppStructType.h.


Constructor & Destructor Documentation

CPPStructType::CPPStructType Type  type,
CPPIdentifier ident,
CPPScope current_scope,
CPPScope scope,
const CPPFile file
 

Definition at line 50 of file cppStructType.cxx.

References _incomplete, _scope, _subst_decl_recursive_protect, current_scope, and type.

Referenced by substitute_decl().

CPPStructType::CPPStructType const CPPStructType &  copy  ) 
 

Definition at line 66 of file cppStructType.cxx.

References _subst_decl_recursive_protect.


Member Function Documentation

void CPPStructType::append_derivation CPPType base,
CPPVisibility  vis,
bool  is_virtual
 

Definition at line 96 of file cppStructType.cxx.

References _derivation, b, and NULL.

CPPStructType * CPPStructType::as_struct_type  )  [virtual]
 

Reimplemented from CPPDeclaration.

Definition at line 432 of file cppStructType.cxx.

void CPPStructType::check_virtual  ) 
 

Definition at line 149 of file cppStructType.cxx.

References get_virtual_funcs().

Referenced by InterrogateBuilder::define_struct_type(), and show_type_or_expression().

CPPInstance * CPPStructType::get_destructor  )  const
 

Definition at line 188 of file cppStructType.cxx.

References CPPFunctionType::_flags, CPPScope::_functions, CPPFunctionGroup::_instances, _scope, CPPInstance::_type, CPPDeclaration::as_function_type(), assert, CPPFunctionType::F_destructor, and NULL.

Referenced by get_virtual_funcs().

void CPPStructType::get_pure_virtual_funcs VFunctions funcs  )  const
 

Definition at line 553 of file cppStructType.cxx.

References CPPInstance::_storage_class, get_virtual_funcs(), and CPPInstance::SC_pure_virtual.

Referenced by is_abstract(), and show_type_or_expression().

CPPScope * CPPStructType::get_scope  )  const
 

Definition at line 113 of file cppStructType.cxx.

References _scope.

Referenced by InterrogateBuilder::define_struct_type(), InterrogateBuilder::get_cast_function(), TypeManager::has_protected_destructor(), instantiate(), show_data_members(), show_methods(), show_type_or_expression(), and show_typedefs().

CPPDeclaration::SubType CPPStructType::get_subtype  )  const [virtual]
 

Reimplemented from CPPExtensionType.

Definition at line 422 of file cppStructType.cxx.

References CPPDeclaration::ST_struct.

void CPPStructType::get_virtual_funcs VFunctions funcs  )  const
 

Definition at line 450 of file cppStructType.cxx.

References _derivation, CPPFunctionType::_flags, CPPScope::_functions, CPPFunctionGroup::_instances, _scope, CPPInstance::_storage_class, CPPInstance::_type, CPPDeclaration::as_function_type(), assert, CPPFunctionType::F_destructor, get_destructor(), CPPInstance::get_local_name(), CPPFunctionType::is_equivalent_function(), NULL, CPPInstance::SC_inherited_virtual, and CPPInstance::SC_virtual.

Referenced by check_virtual(), and get_pure_virtual_funcs().

CPPDeclaration * CPPStructType::instantiate const CPPTemplateParameterList actual_params,
CPPScope current_scope,
CPPScope global_scope,
CPPPreprocessor error_sink = NULL
const [virtual]
 

Reimplemented from CPPDeclaration.

Definition at line 224 of file cppStructType.cxx.

References _scope, current_scope, CPPExtensionType::get_fully_scoped_name(), CPPExtensionType::get_local_name(), get_scope(), CPPScope::get_struct_type(), global_scope, CPPScope::instantiate(), CPPType::new_type(), NULL, and CPPPreprocessor::warning().

bool CPPStructType::is_abstract  )  const
 

Definition at line 126 of file cppStructType.cxx.

References get_pure_virtual_funcs().

Referenced by InterrogateBuilder::get_function(), and show_type_or_expression().

bool CPPStructType::is_equal const CPPDeclaration other  )  const [protected, virtual]
 

Reimplemented from CPPDeclaration.

Definition at line 576 of file cppStructType.cxx.

References CPPDeclaration::is_equal().

bool CPPStructType::is_fully_specified  )  const [virtual]
 

Reimplemented from CPPDeclaration.

Definition at line 163 of file cppStructType.cxx.

References _scope, CPPDeclaration::is_fully_specified(), CPPScope::is_fully_specified(), and NULL.

bool CPPStructType::is_incomplete  )  const [virtual]
 

Reimplemented from CPPExtensionType.

Definition at line 177 of file cppStructType.cxx.

References _incomplete.

bool CPPStructType::is_less const CPPDeclaration other  )  const [protected, virtual]
 

Reimplemented from CPPDeclaration.

Definition at line 595 of file cppStructType.cxx.

References CPPDeclaration::is_less().

void CPPStructType::operator= const CPPStructType &  copy  ) 
 

Definition at line 81 of file cppStructType.cxx.

References _derivation, _incomplete, and _scope.

void CPPStructType::output ostream out,
int  indent_level,
CPPScope scope,
bool  complete
const [virtual]
 

Reimplemented from CPPExtensionType.

Definition at line 369 of file cppStructType.cxx.

References _derivation, CPPExtensionType::_ident, CPPTemplateScope::_parameters, _scope, CPPExtensionType::_type, CPPType::_typedefs, CPPIdentifier::get_local_name(), CPPDeclaration::get_template_scope(), indent(), CPPDeclaration::is_template(), NULL, CPPTemplateParameterList::output(), CPPScope::write(), and CPPTemplateParameterList::write_formal().

CPPDeclaration * CPPStructType::substitute_decl SubstDecl subst,
CPPScope current_scope,
CPPScope global_scope
[virtual]
 

Reimplemented from CPPExtensionType.

Definition at line 270 of file cppStructType.cxx.

References _derivation, CPPExtensionType::_ident, CPPDeclaration::_instantiations, CPPScope::_name, CPPIdentifier::_names, _proxies, _scope, _subst_decl_recursive_protect, CPPDeclaration::_template_scope, CPPDeclaration::as_struct_type(), assert, CPPStructType(), current_scope, CPPScope::get_parent_scope(), CPPExtensionType::get_simple_name(), CPPNameComponent::get_templ(), global_scope, CPPNameComponent::has_templ(), CPPDeclaration::is_template(), CPPType::new_type(), NULL, CPPScope::set_struct_type(), CPPNameComponent::set_templ(), CPPScope::substitute_decl(), and CPPIdentifier::substitute_decl().


Member Data Documentation

Derivation CPPStructType::_derivation
 

Definition at line 85 of file cppStructType.h.

Referenced by append_derivation(), CPPScope::copy_substitute_decl(), InterrogateBuilder::define_method(), InterrogateBuilder::define_struct_type(), CPPScope::find_scope(), CPPScope::find_symbol(), CPPScope::find_template(), CPPScope::find_type(), get_virtual_funcs(), TypeManager::is_pointer_to_base(), TypeManager::is_reference_count(), operator=(), output(), and substitute_decl().

bool CPPStructType::_incomplete
 

Definition at line 73 of file cppStructType.h.

Referenced by CPPScope::copy_substitute_decl(), CPPStructType(), is_incomplete(), and operator=().

Proxies CPPStructType::_proxies [protected]
 

Definition at line 97 of file cppStructType.h.

Referenced by substitute_decl().

CPPScope* CPPStructType::_scope
 

Definition at line 72 of file cppStructType.h.

Referenced by CPPStructType(), InterrogateBuilder::define_struct_type(), CPPScope::find_scope(), CPPScope::find_symbol(), CPPScope::find_template(), CPPScope::find_type(), get_destructor(), TypeManager::get_pointer_type(), get_scope(), get_virtual_funcs(), instantiate(), is_fully_specified(), operator=(), output(), and substitute_decl().

bool CPPStructType::_subst_decl_recursive_protect [protected]
 

Definition at line 95 of file cppStructType.h.

Referenced by CPPStructType(), and substitute_decl().


The documentation for this class was generated from the following files:
Generated on Fri Apr 18 01:34:53 2003 for DTool by doxygen1.3