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

Public Member Functions | |
| ptr< ::lestes::std::list< srp< ss_label > > > | labels_get () const |
| The method labels_get returns the value of the field ss_statement::labels. | |
| ptr< ss_compound_stmt > | parent_get () const |
| The method parent_get returns the value of the field ss_statement::parent. | |
| ptr< ss_sp > | psp_get () const |
| The method psp_get returns the value of the field ss_statement::psp. | |
| void | psp_set (const ptr< ss_sp > &) |
| The method psp_set sets the field ss_statement::psp to the given value. | |
| ptr< ss_sp > | nsp_get () const |
| The method nsp_get returns the value of the field ss_statement::nsp. | |
| void | nsp_set (const ptr< ss_sp > &) |
| The method nsp_set sets the field ss_statement::nsp to the given value. | |
| ptr< ::lestes::std::list< srp< ss_sp > > > | sequence_points_get () const |
| The method sequence_points_get returns the value of the field ss_statement::sequence_points. | |
| void | parent_set_once_hack (ptr< ss_compound_stmt >) |
| Sets the parent field, can only be called from ss_compound_stmt::instance. | |
| virtual void | accept_ss_statement_visitor (ptr< ss_statement_visitor > v) override |
| virtual ptr< reflection_list > | reflection_get () const |
| for purposes of dumping | |
| virtual ptr< field_list_list > | field_values_get () const |
| for purposes of dumping | |
Protected Member Functions | |
| ss_statement (ptr< ::lestes::std::source_location > a__ss_base_with_location__location, ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels, ptr< ss_compound_stmt > a__ss_statement__parent, ptr< ss_sp > a__ss_statement__psp, ptr< ss_sp > a__ss_statement__nsp, ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points) | |
| Generated constructor for class ss_statement. | |
| virtual void | gc_mark () |
| Marking routine for class ss_statement. | |
Private Attributes | |
| srp< ::lestes::std::list< srp< ss_label > > > | labels |
| List of labels prefixing the current statement. | |
| srp< ss_compound_stmt > | parent |
| srp< ss_sp > | psp |
| srp< ss_sp > | nsp |
| srp< ::lestes::std::list< srp< ss_sp > > > | sequence_points |
| List of all sequence points in this statement. | |
Static Private Attributes | |
| static bool | parent_set_ward = false |
| static ptr< reflection_list > | reflection = reflection |
Definition at line 58 of file ss_statement.g.hh.
| lestes::lang::cplus::sem::ss_statement::ss_statement | ( | ptr< ::lestes::std::source_location > | a__ss_base_with_location__location, | |
| ptr< ::lestes::std::list< srp< ss_label > > > | a__ss_statement__labels, | |||
| ptr< ss_compound_stmt > | a__ss_statement__parent, | |||
| ptr< ss_sp > | a__ss_statement__psp, | |||
| ptr< ss_sp > | a__ss_statement__nsp, | |||
| ptr< ::lestes::std::list< srp< ss_sp > > > | a__ss_statement__sequence_points | |||
| ) | [protected] |
Generated constructor for class ss_statement.
Generated constructor for class ss_statement.
Definition at line 97 of file ss_statement.g.cc.
00103 : ss_base_with_location(a__ss_base_with_location__location), labels(checked(a__ss_statement__labels)), parent(check__ss_statement__parent(a__ss_statement__parent)), psp(checked(a__ss_statement__psp)), nsp(checked(a__ss_statement__nsp)), sequence_points(checked(a__ss_statement__sequence_points)) 00104 {}
| ptr<::lestes::std::list< srp< ss_label > > > lestes::lang::cplus::sem::ss_statement::labels_get | ( | ) | const |
The method labels_get returns the value of the field ss_statement::labels.
Definition at line 34 of file ss_statement.g.cc.
References labels.
00035 { 00036 return labels; 00037 }
| ptr< ss_compound_stmt > lestes::lang::cplus::sem::ss_statement::parent_get | ( | ) | const |
The method parent_get returns the value of the field ss_statement::parent.
Definition at line 43 of file ss_statement.g.cc.
References parent.
00044 { 00045 return parent; 00046 }
| ptr< ss_sp > lestes::lang::cplus::sem::ss_statement::psp_get | ( | ) | const |
The method psp_get returns the value of the field ss_statement::psp.
Definition at line 52 of file ss_statement.g.cc.
References psp.
00053 { 00054 return psp; 00055 }
| void lestes::lang::cplus::sem::ss_statement::psp_set | ( | const ptr< ss_sp > & | x | ) |
The method psp_set sets the field ss_statement::psp to the given value.
| [in] | x | The new value to set ss_statement::psp to. |
Definition at line 61 of file ss_statement.g.cc.
References psp.
00062 { 00063 ss_statement::psp = x; 00064 }
| ptr< ss_sp > lestes::lang::cplus::sem::ss_statement::nsp_get | ( | ) | const |
The method nsp_get returns the value of the field ss_statement::nsp.
Definition at line 70 of file ss_statement.g.cc.
References nsp.
00071 { 00072 return nsp; 00073 }
| void lestes::lang::cplus::sem::ss_statement::nsp_set | ( | const ptr< ss_sp > & | x | ) |
The method nsp_set sets the field ss_statement::nsp to the given value.
| [in] | x | The new value to set ss_statement::nsp to. |
Definition at line 79 of file ss_statement.g.cc.
References nsp.
00080 { 00081 ss_statement::nsp = x; 00082 }
| ptr<::lestes::std::list< srp< ss_sp > > > lestes::lang::cplus::sem::ss_statement::sequence_points_get | ( | ) | const |
The method sequence_points_get returns the value of the field ss_statement::sequence_points.
Definition at line 88 of file ss_statement.g.cc.
References sequence_points.
00089 { 00090 return sequence_points; 00091 }
| void lestes::lang::cplus::sem::ss_statement::parent_set_once_hack | ( | ptr< ss_compound_stmt > | a_parent | ) |
Sets the parent field, can only be called from ss_compound_stmt::instance.
As we currently do not have protected setters, a setter for the parent field is not provided. However, when constructing the "global" ss_compound_stmt, which is derived from ss_statement, the parent field has to be set to point to the instance itself, which is impossible to achieve using the factory method.
Therefore, this hack is provided. It exists solely for the purpose above. Normal code MUST NOT call it, or it will explode :)
Definition at line 53 of file ss_statement.cc.
References lestes::lang::cplus::sem::hack_used, lassert2, and parent.
00054 { 00055 lassert2( !hack_used, "This method is not meant to be called twice." ); 00056 hack_used = true; 00057 parent = a_parent; 00058 }
| virtual void lestes::lang::cplus::sem::ss_statement::accept_ss_statement_visitor | ( | ptr< ss_statement_visitor > | v | ) | [pure virtual] |
Implemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.
| ptr< object::reflection_list > lestes::lang::cplus::sem::ss_statement::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::intercode::ss_base_with_location.
Reimplemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.
Definition at line 106 of file ss_statement.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::intercode::ss_base_with_location::reflection_get().
Referenced by lestes::lang::cplus::sem::ss_breakable_stmt::reflection_get(), lestes::lang::cplus::sem::ss_catch::reflection_get(), lestes::lang::cplus::sem::ss_if_stmt::reflection_get(), lestes::lang::cplus::sem::ss_continue::reflection_get(), lestes::lang::cplus::sem::ss_expr_stmt::reflection_get(), lestes::lang::cplus::sem::ss_goto::reflection_get(), lestes::lang::cplus::sem::ss_return::reflection_get(), lestes::lang::cplus::sem::ss_break::reflection_get(), lestes::lang::cplus::sem::ss_try::reflection_get(), lestes::lang::cplus::sem::ss_decl_stmt::reflection_get(), and lestes::lang::cplus::sem::ss_compound_stmt::reflection_get().
00107 { 00108 if (!reflection) { 00109 typedef class_reflection::field_metadata md; 00110 typedef class_reflection::field_metadata_list mdlist; 00111 ptr<mdlist> mdl = mdlist::create(); 00112 mdl->push_back( md::create( "labels", "list< srp< ss_label > >" ) ); 00113 mdl->push_back( md::create( "parent", "ss_compound_stmt" ) ); 00114 mdl->push_back( md::create( "psp", "ss_sp" ) ); 00115 mdl->push_back( md::create( "nsp", "ss_sp" ) ); 00116 mdl->push_back( md::create( "sequence_points", "list< srp< ss_sp > >" ) ); 00117 mdl->push_back( md::create( "parent_set_ward", "bool" ) ); 00118 reflection = reflection_list::create( ::lestes::intercode::ss_base_with_location::reflection_get() ); 00119 reflection->push_back( class_reflection::create( "ss_statement", mdl ) ); 00120 } 00121 return reflection; 00122 }
| ptr< object::field_list_list > lestes::lang::cplus::sem::ss_statement::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::intercode::ss_base_with_location.
Reimplemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.
Definition at line 124 of file ss_statement.g.cc.
References lestes::std::list< T >::create(), and lestes::intercode::ss_base_with_location::field_values_get().
Referenced by lestes::lang::cplus::sem::ss_breakable_stmt::field_values_get(), lestes::lang::cplus::sem::ss_catch::field_values_get(), lestes::lang::cplus::sem::ss_if_stmt::field_values_get(), lestes::lang::cplus::sem::ss_continue::field_values_get(), lestes::lang::cplus::sem::ss_expr_stmt::field_values_get(), lestes::lang::cplus::sem::ss_goto::field_values_get(), lestes::lang::cplus::sem::ss_return::field_values_get(), lestes::lang::cplus::sem::ss_break::field_values_get(), lestes::lang::cplus::sem::ss_try::field_values_get(), lestes::lang::cplus::sem::ss_decl_stmt::field_values_get(), and lestes::lang::cplus::sem::ss_compound_stmt::field_values_get().
00125 { 00126 ptr < field_list_list > result = ::lestes::intercode::ss_base_with_location::field_values_get(); 00127 result->push_back( value_list::create() ); 00128 result->back()->push_back( this->labels ); 00129 result->push_back( value_list::create() ); 00130 result->back()->push_back( this->parent ); 00131 result->push_back( value_list::create() ); 00132 result->back()->push_back( this->psp ); 00133 result->push_back( value_list::create() ); 00134 result->back()->push_back( this->nsp ); 00135 result->push_back( value_list::create() ); 00136 result->back()->push_back( this->sequence_points ); 00137 result->push_back( value_list::create() ); 00138 result->back()->push_back( objectize< bool > ::create( this->parent_set_ward ) ); 00139 return result; 00140 }
| void lestes::lang::cplus::sem::ss_statement::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class ss_statement.
Marking routine is used for garbage collection.
Reimplemented from lestes::intercode::ss_base_with_location.
Reimplemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.
Definition at line 147 of file ss_statement.g.cc.
References lestes::intercode::ss_base_with_location::gc_mark().
Referenced by lestes::lang::cplus::sem::ss_breakable_stmt::gc_mark(), lestes::lang::cplus::sem::ss_catch::gc_mark(), lestes::lang::cplus::sem::ss_if_stmt::gc_mark(), lestes::lang::cplus::sem::ss_continue::gc_mark(), lestes::lang::cplus::sem::ss_expr_stmt::gc_mark(), lestes::lang::cplus::sem::ss_goto::gc_mark(), lestes::lang::cplus::sem::ss_return::gc_mark(), lestes::lang::cplus::sem::ss_break::gc_mark(), lestes::lang::cplus::sem::ss_try::gc_mark(), lestes::lang::cplus::sem::ss_decl_stmt::gc_mark(), and lestes::lang::cplus::sem::ss_compound_stmt::gc_mark().
00148 { 00149 ::lestes::intercode::ss_base_with_location::gc_mark(); 00150 }
srp< ::lestes::std::list< srp< ss_label > > > lestes::lang::cplus::sem::ss_statement::labels [private] |
List of labels prefixing the current statement.
Definition at line 107 of file ss_statement.g.hh.
Referenced by labels_get().
srp< ss_compound_stmt > lestes::lang::cplus::sem::ss_statement::parent [private] |
Definition at line 108 of file ss_statement.g.hh.
Referenced by parent_get(), and parent_set_once_hack().
srp< ss_sp > lestes::lang::cplus::sem::ss_statement::psp [private] |
Definition at line 109 of file ss_statement.g.hh.
Referenced by psp_get(), psp_set(), and lestes::lang::cplus::sem::ss_compound_stmt::root_instance().
srp< ss_sp > lestes::lang::cplus::sem::ss_statement::nsp [private] |
Definition at line 110 of file ss_statement.g.hh.
Referenced by nsp_get(), nsp_set(), and lestes::lang::cplus::sem::ss_compound_stmt::root_instance().
srp< ::lestes::std::list< srp< ss_sp > > > lestes::lang::cplus::sem::ss_statement::sequence_points [private] |
List of all sequence points in this statement.
Note: This also includes previous and next sequnce point(psp,nsp).
It might be necessary to allow setter/alter after two-pass analysis of expressions is implemented.
Definition at line 120 of file ss_statement.g.hh.
Referenced by sequence_points_get().
bool lestes::lang::cplus::sem::ss_statement::parent_set_ward = false [static, private] |
Definition at line 121 of file ss_statement.g.hh.
ptr< object::reflection_list > lestes::lang::cplus::sem::ss_statement::reflection = reflection [static, private] |
Reimplemented from lestes::intercode::ss_base_with_location.
Reimplemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.
Definition at line 122 of file ss_statement.g.hh.
Referenced by reflection_get().
1.5.1-20070107