lestes::lang::cplus::sem::ss_destructor_tables Class Reference

#include <ss_ss2pi_base.g.hh>

Inheritance diagram for lestes::lang::cplus::sem::ss_destructor_tables:

lestes::std::object lestes::std::mem::keystone lestes::lang::cplus::sem::ss_destructor_tables_stack List of all members.

Public Member Functions

virtual ptr< ss_destructor_tableopen_compound_stmt (ptr< ss_compound_stmt >) override
 Returns DT corresponding to newly entered compound statement, where to add destructors.
virtual ptr< ss_destructor_tableclose_compound_stmt () override
 Returns DT corresponding to parent compound statement, where to continue adding destructors.
virtual void destructor_add (ptr< ss_type >, ptr< ::lestes::backend_v2::intercode::pi_mem_factory >) override
 Find and record destructor for ss type, which destructs appropriate memory placeholder.
virtual void destructor_add_to_destr (ptr< ss_destructor_table >, ptr< ss_type >, ptr< ::lestes::backend_v2::intercode::pi_mem_factory >) override
 Find and record destructor for ss type, which destructs appropriate memory placeholder.
virtual void back_roll_from_current_compound_stmt () override
 Normal end of compound statement.
virtual void back_roll_to_compound_stmt (ptr< ss_compound_stmt >, bool, ptr< ::lestes::backend_v2::intercode::pi_sp > psp, ptr< ::lestes::backend_v2::intercode::pi_sp > nsp) override
 Abnormal end of compound statement;psp,nsp shall be taken from current statement(e.g. break, continue, goto).
virtual void back_roll_from_function (ptr< ::lestes::backend_v2::intercode::pi_sp > psp, ptr< ::lestes::backend_v2::intercode::pi_sp > nsp) override
 Abnormal end of compound statement; psp,nsp shall be taken from current return statement.
virtual ptr< reflection_listreflection_get () const
 for purposes of dumping
virtual ptr< field_list_listfield_values_get () const
 for purposes of dumping

Static Public Member Functions

static ptr< ss_destructor_tablessingleton_instance_get ()
 The method singleton_instance_get returns the value of the field ss_destructor_tables::singleton_instance.
static void singleton_instance_set (const ptr< ss_destructor_tables > &)
 The method singleton_instance_set sets the field ss_destructor_tables::singleton_instance to the given value.
static ptr< ss_destructor_tablesinstance ()

Protected Member Functions

 ss_destructor_tables ()
 Generated constructor for class ss_destructor_tables.
virtual void gc_mark ()
 Marking routine for class ss_destructor_tables.

Static Private Attributes

static ptr< ss_destructor_tablessingleton_instance = NULL
static ptr< reflection_listreflection = reflection

Detailed Description

Definition at line 726 of file ss_ss2pi_base.g.hh.


Constructor & Destructor Documentation

lestes::lang::cplus::sem::ss_destructor_tables::ss_destructor_tables (  )  [protected]

Generated constructor for class ss_destructor_tables.

Generated constructor for class ss_destructor_tables.

Author:
lsg

Definition at line 853 of file ss_ss2pi_base.g.cc.

00854         : object()
00855 {}


Member Function Documentation

ptr< ss_destructor_tables > lestes::lang::cplus::sem::ss_destructor_tables::singleton_instance_get (  )  [static]

The method singleton_instance_get returns the value of the field ss_destructor_tables::singleton_instance.

Returns:
The value of ss_destructor_tables::singleton_instance.
Author:
lsg

Definition at line 835 of file ss_ss2pi_base.g.cc.

References singleton_instance.

Referenced by instance().

00836 {
00837         return singleton_instance;
00838 }

void lestes::lang::cplus::sem::ss_destructor_tables::singleton_instance_set ( const ptr< ss_destructor_tables > &  x  )  [static]

The method singleton_instance_set sets the field ss_destructor_tables::singleton_instance to the given value.

Parameters:
[in] x The new value to set ss_destructor_tables::singleton_instance to.
Author:
lsg

Definition at line 844 of file ss_ss2pi_base.g.cc.

References singleton_instance.

Referenced by instance().

00845 {
00846         ss_destructor_tables::singleton_instance = x;
00847 }

ptr< ss_destructor_tables > lestes::lang::cplus::sem::ss_destructor_tables::instance ( void   )  [static]

Basic interface to get handle for destructor tables of the current translatioon unit. Internal fields of destructor tables are static. They shall be initialized by open_compound_stmt method.

Definition at line 1730 of file ss_ss2pi_base.cc.

References lestes::lang::cplus::sem::ss_destructor_tables_stack::create(), singleton_instance_get(), and singleton_instance_set().

Referenced by lestes::lang::cplus::sem::ss_expr2pi::visit_ss_funcall().

01730                                                           {
01731         if ( !singleton_instance_get() ) {
01732                 singleton_instance_set(ss_destructor_tables_stack::create());
01733         }
01734         return singleton_instance_get();
01735 }

virtual ptr< ss_destructor_table > lestes::lang::cplus::sem::ss_destructor_tables::open_compound_stmt ( ptr< ss_compound_stmt  )  [pure virtual]

Returns DT corresponding to newly entered compound statement, where to add destructors.

Implemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

virtual ptr< ss_destructor_table > lestes::lang::cplus::sem::ss_destructor_tables::close_compound_stmt (  )  [pure virtual]

Returns DT corresponding to parent compound statement, where to continue adding destructors.

Implemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

virtual void lestes::lang::cplus::sem::ss_destructor_tables::destructor_add ( ptr< ss_type ,
ptr< ::lestes::backend_v2::intercode::pi_mem_factory  
) [pure virtual]

Find and record destructor for ss type, which destructs appropriate memory placeholder.

Implemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

virtual void lestes::lang::cplus::sem::ss_destructor_tables::destructor_add_to_destr ( ptr< ss_destructor_table ,
ptr< ss_type ,
ptr< ::lestes::backend_v2::intercode::pi_mem_factory  
) [pure virtual]

Find and record destructor for ss type, which destructs appropriate memory placeholder.

Implemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

virtual void lestes::lang::cplus::sem::ss_destructor_tables::back_roll_from_current_compound_stmt (  )  [pure virtual]

Normal end of compound statement.

Implemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

virtual void lestes::lang::cplus::sem::ss_destructor_tables::back_roll_to_compound_stmt ( ptr< ss_compound_stmt ,
bool  ,
ptr< ::lestes::backend_v2::intercode::pi_sp psp,
ptr< ::lestes::backend_v2::intercode::pi_sp nsp 
) [pure virtual]

Abnormal end of compound statement;psp,nsp shall be taken from current statement(e.g. break, continue, goto).

Implemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

virtual void lestes::lang::cplus::sem::ss_destructor_tables::back_roll_from_function ( ptr< ::lestes::backend_v2::intercode::pi_sp psp,
ptr< ::lestes::backend_v2::intercode::pi_sp nsp 
) [pure virtual]

Abnormal end of compound statement; psp,nsp shall be taken from current return statement.

Implemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

ptr< object::reflection_list > lestes::lang::cplus::sem::ss_destructor_tables::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

Definition at line 857 of file ss_ss2pi_base.g.cc.

References lestes::std::list< T >::create(), reflection, and lestes::std::object::reflection_get().

Referenced by lestes::lang::cplus::sem::ss_destructor_tables_stack::reflection_get().

00858 {
00859         if (!reflection) {
00860                 typedef class_reflection::field_metadata md;
00861                 typedef class_reflection::field_metadata_list mdlist;
00862                 ptr<mdlist> mdl = mdlist::create();
00863                 mdl->push_back( md::create( "singleton_instance", "ss_destructor_tables" ) );
00864                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00865                 reflection->push_back( class_reflection::create( "ss_destructor_tables", mdl ) );
00866         }
00867         return reflection;
00868 }

ptr< object::field_list_list > lestes::lang::cplus::sem::ss_destructor_tables::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

Definition at line 870 of file ss_ss2pi_base.g.cc.

References lestes::std::list< T >::create(), and lestes::std::object::field_values_get().

Referenced by lestes::lang::cplus::sem::ss_destructor_tables_stack::field_values_get().

00871 {
00872         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00873         result->push_back( value_list::create() );
00874         result->back()->push_back( this->singleton_instance );
00875         return result;
00876 }

void lestes::lang::cplus::sem::ss_destructor_tables::gc_mark ( void   )  [protected, virtual]

Marking routine for class ss_destructor_tables.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::std::mem::keystone.

Reimplemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

Definition at line 883 of file ss_ss2pi_base.g.cc.

References lestes::std::mem::keystone::gc_mark().

Referenced by lestes::lang::cplus::sem::ss_destructor_tables_stack::gc_mark().

00884 {
00885 	::lestes::std::object::gc_mark();
00886 }


Member Data Documentation

ptr< ss_destructor_tables > lestes::lang::cplus::sem::ss_destructor_tables::singleton_instance = NULL [static, private]

Definition at line 773 of file ss_ss2pi_base.g.hh.

Referenced by singleton_instance_get(), and singleton_instance_set().

ptr< object::reflection_list > lestes::lang::cplus::sem::ss_destructor_tables::reflection = reflection [static, private]

Reimplemented from lestes::std::object.

Reimplemented in lestes::lang::cplus::sem::ss_destructor_tables_stack.

Definition at line 774 of file ss_ss2pi_base.g.hh.

Referenced by reflection_get().


The documentation for this class was generated from the following files:
Generated on Mon Feb 12 18:25:26 2007 for lestes by doxygen 1.5.1-20070107