#include <ss_ss2pi_base.g.hh>
Inheritance diagram for lestes::lang::cplus::sem::ss_destructor_tables_stack:

Public Member Functions | |
| virtual ptr< ss_destructor_table > | open_compound_stmt (ptr< ss_compound_stmt >) |
| virtual ptr< ss_destructor_table > | close_compound_stmt () |
| virtual void | destructor_add (ptr< ss_type >, ptr< ::lestes::backend_v2::intercode::pi_mem_factory >) |
| virtual void | destructor_add_to_destr (ptr< ss_destructor_table >, ptr< ss_type >, ptr< ::lestes::backend_v2::intercode::pi_mem_factory >) |
| virtual void | back_roll_from_current_compound_stmt () |
| 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) |
| 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) |
| Abnormal end of compound statement; psp,nsp shall be taken from current return statement. | |
| virtual ptr< reflection_list > | reflection_get () const |
| for purposes of dumping | |
| virtual ptr< field_list_list > | field_values_get () const |
| for purposes of dumping | |
Static Public Member Functions | |
| static ptr< ss_destructor_table > | current_get () |
| The method current_get returns the value of the field ss_destructor_tables_stack::current. | |
| static void | current_set (const ptr< ss_destructor_table > &) |
| The method current_set sets the field ss_destructor_tables_stack::current to the given value. | |
| static ptr< ::lestes::std::list< srp< ss_destructor_table > > > | tables_get () |
| The method tables_get returns the value of the field ss_destructor_tables_stack::tables. | |
| static void | tables_set (const ptr< ::lestes::std::list< srp< ss_destructor_table > > > &) |
| The method tables_set sets the field ss_destructor_tables_stack::tables to the given value. | |
| static ptr< ss_destructor_tables_stack > | create () |
| First generated factory method for class ss_destructor_tables_stack. | |
Protected Member Functions | |
| ss_destructor_tables_stack () | |
| Generated constructor for class ss_destructor_tables_stack. | |
| virtual void | gc_mark () |
| Marking routine for class ss_destructor_tables_stack. | |
Static Private Attributes | |
| static ptr< ss_destructor_table > | current = NULL |
| Current destructor table. | |
| static ptr< ::lestes::std::list< srp< ss_destructor_table > > > | tables = ::lestes::std::list< srp< ss_destructor_table > > ::create() |
| Destructor table for each compound statement. | |
| static ptr< reflection_list > | reflection = reflection |
Definition at line 779 of file ss_ss2pi_base.g.hh.
| lestes::lang::cplus::sem::ss_destructor_tables_stack::ss_destructor_tables_stack | ( | ) | [protected] |
Generated constructor for class ss_destructor_tables_stack.
Generated constructor for class ss_destructor_tables_stack.
Definition at line 941 of file ss_ss2pi_base.g.cc.
Referenced by create().
00942 : ss_destructor_tables() 00943 {}
| ptr< ss_destructor_table > lestes::lang::cplus::sem::ss_destructor_tables_stack::current_get | ( | ) | [static] |
The method current_get returns the value of the field ss_destructor_tables_stack::current.
Definition at line 896 of file ss_ss2pi_base.g.cc.
References current.
00897 { 00898 return current; 00899 }
| void lestes::lang::cplus::sem::ss_destructor_tables_stack::current_set | ( | const ptr< ss_destructor_table > & | x | ) | [static] |
The method current_set sets the field ss_destructor_tables_stack::current to the given value.
| [in] | x | The new value to set ss_destructor_tables_stack::current to. |
Definition at line 905 of file ss_ss2pi_base.g.cc.
References current.
00906 { 00907 ss_destructor_tables_stack::current = x; 00908 }
| ptr<::lestes::std::list< srp< ss_destructor_table > > > lestes::lang::cplus::sem::ss_destructor_tables_stack::tables_get | ( | ) | [static] |
The method tables_get returns the value of the field ss_destructor_tables_stack::tables.
Definition at line 914 of file ss_ss2pi_base.g.cc.
References tables.
00915 { 00916 return tables; 00917 }
| void lestes::lang::cplus::sem::ss_destructor_tables_stack::tables_set | ( | const ptr< ::lestes::std::list< srp< ss_destructor_table > > > & | x | ) | [static] |
The method tables_set sets the field ss_destructor_tables_stack::tables to the given value.
| [in] | x | The new value to set ss_destructor_tables_stack::tables to. |
Definition at line 923 of file ss_ss2pi_base.g.cc.
References tables.
00924 { 00925 ss_destructor_tables_stack::tables = x; 00926 }
| ptr< ss_destructor_table > lestes::lang::cplus::sem::ss_destructor_tables_stack::open_compound_stmt | ( | ptr< ss_compound_stmt > | x | ) | [virtual] |
Open new destructor table for newly entered compound statement and insert it into destructor_tables structure.
Implements lestes::lang::cplus::sem::ss_destructor_tables.
Definition at line 1740 of file ss_ss2pi_base.cc.
References lestes::lang::cplus::sem::ss_destructor_table::create(), current, lestes::msg::eolog, plog, and tables.
01740 { 01741 ptr< ss_destructor_table > tmp = ss_destructor_table::create(x); 01742 plog(dtl) << "Opening Scope Table " << tmp->uid_get()<<"\n" << eolog; 01743 01744 tables->push_back(tmp); 01745 current = tmp; 01746 return tmp; 01747 }
| ptr< ss_destructor_table > lestes::lang::cplus::sem::ss_destructor_tables_stack::close_compound_stmt | ( | ) | [virtual] |
Close destructor table of compound statement and return table for now.
Implements lestes::lang::cplus::sem::ss_destructor_tables.
Definition at line 1752 of file ss_ss2pi_base.cc.
References current, lestes::msg::eolog, lassert2, plog, and tables.
01752 { 01753 01754 lassert2(!tables->empty(),"There is no destructor table left to be removed."); 01755 plog(dtl) << "Closing Scope Table " << tables->back()->uid_get()<<"\n" << eolog; 01756 01757 tables->pop_back(); 01758 current = tables->back(); 01759 if (tables->empty()) return NULL; //occurs in a case of closing global compound statement 01760 return tables->back(); 01761 }
| void lestes::lang::cplus::sem::ss_destructor_tables_stack::destructor_add | ( | ptr< ss_type > | type, | |
| ptr< ::lestes::backend_v2::intercode::pi_mem_factory > | var | |||
| ) | [virtual] |
Find and record destructor for ss type, which destructs appropriate memory placeholder. Such a record will be added to current destructor table.
Implements lestes::lang::cplus::sem::ss_destructor_tables.
Definition at line 1776 of file ss_ss2pi_base.cc.
References current, and destructor_add_to_destr().
Referenced by destructor_add_to_destr().
01776 { 01777 01778 destructor_add_to_destr (current, type , var ); 01779 }
| void lestes::lang::cplus::sem::ss_destructor_tables_stack::destructor_add_to_destr | ( | ptr< ss_destructor_table > | destr, | |
| ptr< ss_type > | type, | |||
| ptr< ::lestes::backend_v2::intercode::pi_mem_factory > | var | |||
| ) | [virtual] |
Find and record destructor for ss type, which destructs appropriate memory placeholder. Such a record will be added to a given destructor table.
Implements lestes::lang::cplus::sem::ss_destructor_tables.
Definition at line 1767 of file ss_ss2pi_base.cc.
References lestes::lang::cplus::sem::ss_type2destructor::create(), and destructor_add().
Referenced by destructor_add().
01767 { 01768 01769 destr -> destructor_add ( ss_type2destructor::create()->find_destructor(type) , var ); 01770 }
| void lestes::lang::cplus::sem::ss_destructor_tables_stack::back_roll_from_current_compound_stmt | ( | ) | [virtual] |
Normal end of compound statement. back_roll_table shall be called. Also appropriate sequence points have to be tranformed into pseudoinstruction sequence points. (this transformation has to be done before new nested pi-sp will be added.
Implements lestes::lang::cplus::sem::ss_destructor_tables.
Definition at line 1823 of file ss_ss2pi_base.cc.
References current, plog, and lestes::lang::cplus::sem::ss_sp2pi_sp().
01823 { 01824 plog(dtl) << "From current compound"; 01825 current->back_roll_table( 01826 ss_sp2pi_sp(current->compound_stmt_get()->destructor_sp_get()), 01827 ss_sp2pi_sp(current->compound_stmt_get()->nsp_get()) 01828 ); 01829 }
| virtual void lestes::lang::cplus::sem::ss_destructor_tables_stack::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 | |||
| ) | [virtual] |
Abnormal end of compound statement;psp,nsp shall be taken from current statement(e.g. break, continue, goto).
Implements lestes::lang::cplus::sem::ss_destructor_tables.
| virtual void lestes::lang::cplus::sem::ss_destructor_tables_stack::back_roll_from_function | ( | ptr< ::lestes::backend_v2::intercode::pi_sp > | psp, | |
| ptr< ::lestes::backend_v2::intercode::pi_sp > | nsp | |||
| ) | [virtual] |
Abnormal end of compound statement; psp,nsp shall be taken from current return statement.
Implements lestes::lang::cplus::sem::ss_destructor_tables.
| ptr< ss_destructor_tables_stack > lestes::lang::cplus::sem::ss_destructor_tables_stack::create | ( | void | ) | [static] |
First generated factory method for class ss_destructor_tables_stack.
This factory method for class ss_destructor_tables_stack takes values of all fields as arguments.
Definition at line 932 of file ss_ss2pi_base.g.cc.
References ss_destructor_tables_stack().
Referenced by lestes::lang::cplus::sem::ss_destructor_tables::instance().
00933 { 00934 return ptr< ss_destructor_tables_stack > ( new ss_destructor_tables_stack() ); 00935 }
| ptr< object::reflection_list > lestes::lang::cplus::sem::ss_destructor_tables_stack::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::lang::cplus::sem::ss_destructor_tables.
Definition at line 945 of file ss_ss2pi_base.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::lang::cplus::sem::ss_destructor_tables::reflection_get().
00946 { 00947 if (!reflection) { 00948 typedef class_reflection::field_metadata md; 00949 typedef class_reflection::field_metadata_list mdlist; 00950 ptr<mdlist> mdl = mdlist::create(); 00951 mdl->push_back( md::create( "current", "ss_destructor_table" ) ); 00952 mdl->push_back( md::create( "tables", "list< srp< ss_destructor_table > >" ) ); 00953 reflection = reflection_list::create( ss_destructor_tables::reflection_get() ); 00954 reflection->push_back( class_reflection::create( "ss_destructor_tables_stack", mdl ) ); 00955 } 00956 return reflection; 00957 }
| ptr< object::field_list_list > lestes::lang::cplus::sem::ss_destructor_tables_stack::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::lang::cplus::sem::ss_destructor_tables.
Definition at line 959 of file ss_ss2pi_base.g.cc.
References lestes::std::list< T >::create(), and lestes::lang::cplus::sem::ss_destructor_tables::field_values_get().
00960 { 00961 ptr < field_list_list > result = ss_destructor_tables::field_values_get(); 00962 result->push_back( value_list::create() ); 00963 result->back()->push_back( this->current ); 00964 result->push_back( value_list::create() ); 00965 result->back()->push_back( this->tables ); 00966 return result; 00967 }
| void lestes::lang::cplus::sem::ss_destructor_tables_stack::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class ss_destructor_tables_stack.
Marking routine is used for garbage collection.
Reimplemented from lestes::lang::cplus::sem::ss_destructor_tables.
Definition at line 974 of file ss_ss2pi_base.g.cc.
References lestes::lang::cplus::sem::ss_destructor_tables::gc_mark().
00975 { 00976 ss_destructor_tables::gc_mark(); 00977 }
ptr< ss_destructor_table > lestes::lang::cplus::sem::ss_destructor_tables_stack::current = NULL [static, private] |
Current destructor table.
Definition at line 829 of file ss_ss2pi_base.g.hh.
Referenced by back_roll_from_current_compound_stmt(), close_compound_stmt(), current_get(), current_set(), destructor_add(), and open_compound_stmt().
ptr<::lestes::std::list< srp< ss_destructor_table > > > lestes::lang::cplus::sem::ss_destructor_tables_stack::tables = ::lestes::std::list< srp< ss_destructor_table > > ::create() [static, private] |
Destructor table for each compound statement.
Definition at line 831 of file ss_ss2pi_base.g.hh.
Referenced by close_compound_stmt(), open_compound_stmt(), tables_get(), and tables_set().
ptr< object::reflection_list > lestes::lang::cplus::sem::ss_destructor_tables_stack::reflection = reflection [static, private] |
Reimplemented from lestes::lang::cplus::sem::ss_destructor_tables.
Definition at line 832 of file ss_ss2pi_base.g.hh.
Referenced by reflection_get().
1.5.1-20070107