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

Public Member Functions | |
| ptr< ::lestes::std::list< srp< ss_declaration > > > | contents_get () const |
| The method contents_get returns the value of the field ss_decl_seq::contents. | |
| ptr< ss_decl_seq > | parent_get () const |
| The method parent_get returns the value of the field ss_decl_seq::parent. | |
| ptr< ss_compound_stmt > | compound_stmt_get () const |
| The method compound_stmt_get returns the value of the field ss_decl_seq::compound_stmt. | |
| void | compound_stmt_set (const ptr< ss_compound_stmt > &) |
| The method compound_stmt_set sets the field ss_decl_seq::compound_stmt to the given value. | |
| ptr< ::lestes::std::list< srp< ss_using_directive > > > | using_directives_get () const |
| The method using_directives_get returns the value of the field ss_decl_seq::using_directives. | |
| ptr< ss_declaration > | declared_by_get () const |
| The method declared_by_get returns the value of the field ss_decl_seq::declared_by. | |
| void | declared_by_set (const ptr< ss_declaration > &) |
| The method declared_by_set sets the field ss_decl_seq::declared_by to the given value. | |
| 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_decl_seq > | root_instance () |
| Returns pointer to the instance of root (grandparent) ss_decl_seq. | |
| static ptr< ss_decl_seq > | create (ptr< ::lestes::std::source_location > a__ss_base_with_location__location, ptr< ::lestes::std::list< srp< ss_declaration > > > a__ss_decl_seq__contents, ptr< ss_decl_seq > a__ss_decl_seq__parent, ptr< ss_compound_stmt > a__ss_decl_seq__compound_stmt, ptr< ::lestes::std::list< srp< ss_using_directive > > > a__ss_decl_seq__using_directives, ptr< ss_declaration > a__ss_decl_seq__declared_by) |
| First generated factory method for class ss_decl_seq. | |
| static ptr< ss_decl_seq > | create (ptr< ::lestes::std::source_location > a__ss_base_with_location__location, ptr< ::lestes::std::list< srp< ss_declaration > > > a__ss_decl_seq__contents, ptr< ss_decl_seq > a__ss_decl_seq__parent, ptr< ss_compound_stmt > a__ss_decl_seq__compound_stmt, ptr< ss_declaration > a__ss_decl_seq__declared_by) |
| Second generated factory method for class ss_decl_seq. | |
Protected Member Functions | |
| ss_decl_seq (ptr< ::lestes::std::source_location > a__ss_base_with_location__location, ptr< ::lestes::std::list< srp< ss_declaration > > > a__ss_decl_seq__contents, ptr< ss_decl_seq > a__ss_decl_seq__parent, ptr< ss_compound_stmt > a__ss_decl_seq__compound_stmt, ptr< ::lestes::std::list< srp< ss_using_directive > > > a__ss_decl_seq__using_directives, ptr< ss_declaration > a__ss_decl_seq__declared_by) | |
| Generated constructor for class ss_decl_seq. | |
| virtual void | gc_mark () |
| Marking routine for class ss_decl_seq. | |
Private Attributes | |
| srp< ::lestes::std::list< srp< ss_declaration > > > | contents |
| Contained declarations. | |
| srp< ss_decl_seq > | parent |
| Lexically enclosing ss_decl_seq. | |
| srp< ss_compound_stmt > | compound_stmt |
| Compound statement containing declaration statements for declarations declared in this declaration sequence. | |
| srp< ::lestes::std::list< srp< ss_using_directive > > > | using_directives |
| Namespaces which are 'included' by using directive. | |
| srp< ss_declaration > | declared_by |
| Pointer back to the declaration that caused that this declaration sequence exists. | |
Static Private Attributes | |
| static ptr< ss_decl_seq > | the_root_instance = the_root_instance |
| static bool | parent_set_ward = false |
| static ptr< reflection_list > | reflection = reflection |
Used as scope
Definition at line 126 of file ss_misc.g.hh.
| lestes::lang::cplus::sem::ss_decl_seq::ss_decl_seq | ( | ptr< ::lestes::std::source_location > | a__ss_base_with_location__location, | |
| ptr< ::lestes::std::list< srp< ss_declaration > > > | a__ss_decl_seq__contents, | |||
| ptr< ss_decl_seq > | a__ss_decl_seq__parent, | |||
| ptr< ss_compound_stmt > | a__ss_decl_seq__compound_stmt, | |||
| ptr< ::lestes::std::list< srp< ss_using_directive > > > | a__ss_decl_seq__using_directives, | |||
| ptr< ss_declaration > | a__ss_decl_seq__declared_by | |||
| ) | [protected] |
Generated constructor for class ss_decl_seq.
Generated constructor for class ss_decl_seq.
Definition at line 191 of file ss_misc.g.cc.
Referenced by create(), and root_instance().
00197 : ss_base_with_location(a__ss_base_with_location__location), contents(checked(a__ss_decl_seq__contents)), parent(check__ss_decl_seq__parent(a__ss_decl_seq__parent)), compound_stmt(a__ss_decl_seq__compound_stmt), using_directives(checked(a__ss_decl_seq__using_directives)), declared_by(a__ss_decl_seq__declared_by) 00198 {}
| ptr<::lestes::std::list< srp< ss_declaration > > > lestes::lang::cplus::sem::ss_decl_seq::contents_get | ( | ) | const |
The method contents_get returns the value of the field ss_decl_seq::contents.
Definition at line 96 of file ss_misc.g.cc.
References contents.
00097 { 00098 return contents; 00099 }
| ptr< ss_decl_seq > lestes::lang::cplus::sem::ss_decl_seq::parent_get | ( | ) | const |
The method parent_get returns the value of the field ss_decl_seq::parent.
Definition at line 105 of file ss_misc.g.cc.
References parent.
00106 { 00107 return parent; 00108 }
| ptr< ss_compound_stmt > lestes::lang::cplus::sem::ss_decl_seq::compound_stmt_get | ( | ) | const |
The method compound_stmt_get returns the value of the field ss_decl_seq::compound_stmt.
Definition at line 114 of file ss_misc.g.cc.
References compound_stmt.
00115 { 00116 return compound_stmt; 00117 }
| void lestes::lang::cplus::sem::ss_decl_seq::compound_stmt_set | ( | const ptr< ss_compound_stmt > & | x | ) |
The method compound_stmt_set sets the field ss_decl_seq::compound_stmt to the given value.
| [in] | x | The new value to set ss_decl_seq::compound_stmt to. |
Definition at line 123 of file ss_misc.g.cc.
References compound_stmt.
00124 { 00125 ss_decl_seq::compound_stmt = x; 00126 }
| ptr<::lestes::std::list< srp< ss_using_directive > > > lestes::lang::cplus::sem::ss_decl_seq::using_directives_get | ( | ) | const |
The method using_directives_get returns the value of the field ss_decl_seq::using_directives.
Definition at line 132 of file ss_misc.g.cc.
References using_directives.
00133 { 00134 return using_directives; 00135 }
| ptr< ss_declaration > lestes::lang::cplus::sem::ss_decl_seq::declared_by_get | ( | ) | const |
The method declared_by_get returns the value of the field ss_decl_seq::declared_by.
Definition at line 141 of file ss_misc.g.cc.
References declared_by.
00142 { 00143 return declared_by; 00144 }
| void lestes::lang::cplus::sem::ss_decl_seq::declared_by_set | ( | const ptr< ss_declaration > & | x | ) |
The method declared_by_set sets the field ss_decl_seq::declared_by to the given value.
| [in] | x | The new value to set ss_decl_seq::declared_by to. |
Definition at line 150 of file ss_misc.g.cc.
References declared_by.
00151 { 00152 ss_decl_seq::declared_by = x; 00153 }
| ptr< ss_decl_seq > lestes::lang::cplus::sem::ss_decl_seq::root_instance | ( | ) | [static] |
Returns pointer to the instance of root (grandparent) ss_decl_seq.
When called for the first time, constructs the grandparent of all instances of ss_decl_seq. This means that you can simply recognize it, just compare your ptr to the return value of this method.
Note that the instance is its own parent. Also note that when creating it, root ss_compound_stmt must be created too. This is achieved by calling ss_compound_stmt::root_instance(), which might in turn call us back. The code is prepared for this. You can choose which of the two methods you call first.
Definition at line 76 of file ss_misc.cc.
References lestes::lang::cplus::sem::ss_linkage::create(), lestes::lang::cplus::sem::ss_declaration_time::create(), lestes::intercode::intercode::create(), lestes::lang::cplus::sem::ss_declaration_time::infinity(), lestes::lang::cplus::sem::ss_void::instance(), lestes::lang::cplus::sem::ss_linkage::LINKAGE_NO, loc, lestes::lang::cplus::sem::ss_compound_stmt::root_instance(), ss_decl_seq(), and the_root_instance.
Referenced by lestes::lang::cplus::sem::as_class_key_to_ss_struct_base::class_or_struct(), lestes::lang::cplus::sem::or_builtin_operator_declaration_creator::construct_builtin_op(), lestes::lang::cplus::sem::sa_context_manager_concrete::instance(), lestes::lang::cplus::sem::or_builtin_operator_declaration_creator::instance(), lestes::lang::cplus::sem::ss_function_declaration::is_entry_point(), main(), lestes::lang::cplus::sem::lu_lookup::main(), lestes::lang::cplus::sem::ss_compound_stmt::root_instance(), lestes::lang::cplus::syn::dump_at_lassert::run(), lestes::lang::cplus::sem::ss_decl2mangled_name::visit_ss_function_declaration(), lestes::lang::cplus::sem::ss_decl2mangled_name::visit_ss_namespace_definition(), and lestes::lang::cplus::sem::ss_decl2mangled_name::visit_ss_object_declaration().
00077 { 00078 if (!the_root_instance) { 00079 /* FIXME: non-null location needed */ 00080 ptr < source_location > loc = source_location::create(file_info::create("",NULL),1,1); 00081 the_root_instance = new ss_decl_seq(loc, 00082 list< srp<ss_declaration> >::create(), 00083 NULL, NULL, list< srp<ss_using_directive> >::create(), NULL ); 00084 /* there is no setter for the parent field... */ 00085 the_root_instance->parent = the_root_instance; 00086 /* FIXME: non-null location needed _twice_ */ 00087 /* FIXME: non-null ss_declaration_time needed */ 00088 /* FIXME: non-null ss_linkage needed */ 00089 ptr<ss_declaration> gl_decl = ss_namespace_definition::create( 00090 loc, ss_declaration_time::infinity(), ss_declaration_time::create(0), 00091 ss_dummy_name::create(loc), the_root_instance, 00092 ss_void::instance(), ss_linkage::create("C++", ss_linkage::LINKAGE_NO), 00093 the_root_instance ); 00094 the_root_instance->declared_by_set( gl_decl ); 00095 the_root_instance->contents_get()->push_back( gl_decl ); 00096 /* calls this method again; luckily, we have the_root_instance already set up ;-) */ 00097 the_root_instance->compound_stmt = ss_compound_stmt::root_instance(); 00098 } 00099 return the_root_instance; 00100 }
| ptr< ss_decl_seq > lestes::lang::cplus::sem::ss_decl_seq::create | ( | ptr< ::lestes::std::source_location > | a__ss_base_with_location__location, | |
| ptr< ::lestes::std::list< srp< ss_declaration > > > | a__ss_decl_seq__contents, | |||
| ptr< ss_decl_seq > | a__ss_decl_seq__parent, | |||
| ptr< ss_compound_stmt > | a__ss_decl_seq__compound_stmt, | |||
| ptr< ::lestes::std::list< srp< ss_using_directive > > > | a__ss_decl_seq__using_directives, | |||
| ptr< ss_declaration > | a__ss_decl_seq__declared_by | |||
| ) | [static] |
First generated factory method for class ss_decl_seq.
This factory method for class ss_decl_seq takes values of all fields as arguments.
Definition at line 159 of file ss_misc.g.cc.
References ss_decl_seq().
00165 { 00166 return ptr< ss_decl_seq > ( new ss_decl_seq(a__ss_base_with_location__location, 00167 a__ss_decl_seq__contents, 00168 a__ss_decl_seq__parent, 00169 a__ss_decl_seq__compound_stmt, 00170 a__ss_decl_seq__using_directives, 00171 a__ss_decl_seq__declared_by) ); 00172 }
| ptr< ss_decl_seq > lestes::lang::cplus::sem::ss_decl_seq::create | ( | ptr< ::lestes::std::source_location > | a__ss_base_with_location__location, | |
| ptr< ::lestes::std::list< srp< ss_declaration > > > | a__ss_decl_seq__contents, | |||
| ptr< ss_decl_seq > | a__ss_decl_seq__parent, | |||
| ptr< ss_compound_stmt > | a__ss_decl_seq__compound_stmt, | |||
| ptr< ss_declaration > | a__ss_decl_seq__declared_by | |||
| ) | [static] |
Second generated factory method for class ss_decl_seq.
This factory method for class ss_decl_seq uses initializers.
Definition at line 178 of file ss_misc.g.cc.
References lestes::intercode::intercode::create(), and ss_decl_seq().
00183 { 00184 return ptr< ss_decl_seq > ( new ss_decl_seq(a__ss_base_with_location__location, a__ss_decl_seq__contents, a__ss_decl_seq__parent, a__ss_decl_seq__compound_stmt, ::lestes::std::list< srp< ss_using_directive > > ::create(), a__ss_decl_seq__declared_by) ); 00185 }
| ptr< object::reflection_list > lestes::lang::cplus::sem::ss_decl_seq::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::intercode::ss_base_with_location.
Definition at line 200 of file ss_misc.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::intercode::ss_base_with_location::reflection_get().
00201 { 00202 if (!reflection) { 00203 typedef class_reflection::field_metadata md; 00204 typedef class_reflection::field_metadata_list mdlist; 00205 ptr<mdlist> mdl = mdlist::create(); 00206 mdl->push_back( md::create( "contents", "list< srp< ss_declaration > >" ) ); 00207 mdl->push_back( md::create( "parent", "ss_decl_seq" ) ); 00208 mdl->push_back( md::create( "compound_stmt", "ss_compound_stmt" ) ); 00209 mdl->push_back( md::create( "using_directives", "list< srp< ss_using_directive > >" ) ); 00210 mdl->push_back( md::create( "declared_by", "ss_declaration" ) ); 00211 mdl->push_back( md::create( "the_root_instance", "ss_decl_seq" ) ); 00212 mdl->push_back( md::create( "parent_set_ward", "bool" ) ); 00213 reflection = reflection_list::create( ::lestes::intercode::ss_base_with_location::reflection_get() ); 00214 reflection->push_back( class_reflection::create( "ss_decl_seq", mdl ) ); 00215 } 00216 return reflection; 00217 }
| ptr< object::field_list_list > lestes::lang::cplus::sem::ss_decl_seq::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::intercode::ss_base_with_location.
Definition at line 219 of file ss_misc.g.cc.
References lestes::std::list< T >::create(), and lestes::intercode::ss_base_with_location::field_values_get().
00220 { 00221 ptr < field_list_list > result = ::lestes::intercode::ss_base_with_location::field_values_get(); 00222 result->push_back( value_list::create() ); 00223 result->back()->push_back( this->contents ); 00224 result->push_back( value_list::create() ); 00225 result->back()->push_back( this->parent ); 00226 result->push_back( value_list::create() ); 00227 result->back()->push_back( this->compound_stmt ); 00228 result->push_back( value_list::create() ); 00229 result->back()->push_back( this->using_directives ); 00230 result->push_back( value_list::create() ); 00231 result->back()->push_back( this->declared_by ); 00232 result->push_back( value_list::create() ); 00233 result->back()->push_back( this->the_root_instance ); 00234 result->push_back( value_list::create() ); 00235 result->back()->push_back( objectize< bool > ::create( this->parent_set_ward ) ); 00236 return result; 00237 }
| void lestes::lang::cplus::sem::ss_decl_seq::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class ss_decl_seq.
Marking routine is used for garbage collection.
Reimplemented from lestes::intercode::ss_base_with_location.
Definition at line 244 of file ss_misc.g.cc.
References lestes::intercode::ss_base_with_location::gc_mark().
00245 { 00246 ::lestes::intercode::ss_base_with_location::gc_mark(); 00247 }
srp< ::lestes::std::list< srp< ss_declaration > > > lestes::lang::cplus::sem::ss_decl_seq::contents [private] |
srp< ss_decl_seq > lestes::lang::cplus::sem::ss_decl_seq::parent [private] |
Lexically enclosing ss_decl_seq.
Definition at line 194 of file ss_misc.g.hh.
Referenced by parent_get().
srp< ss_compound_stmt > lestes::lang::cplus::sem::ss_decl_seq::compound_stmt [private] |
Compound statement containing declaration statements for declarations declared in this declaration sequence.
The value is unchecked only to allow creating ss_decl_seq before the ss_compound_stmt pointed to.
Definition at line 202 of file ss_misc.g.hh.
Referenced by compound_stmt_get(), and compound_stmt_set().
srp< ::lestes::std::list< srp< ss_using_directive > > > lestes::lang::cplus::sem::ss_decl_seq::using_directives [private] |
Namespaces which are 'included' by using directive.
Using directives are allowed in namespace and block scope [7.3.4]. They are a property of ss_decl_seq, as it would be clumsy to have them in both ss_namespace_definition and ss_compound_statement.
Definition at line 211 of file ss_misc.g.hh.
Referenced by using_directives_get().
srp< ss_declaration > lestes::lang::cplus::sem::ss_decl_seq::declared_by [private] |
Pointer back to the declaration that caused that this declaration sequence exists.
The value is unchecked only to allow creating ss_decl_seq before the ss_declaration pointed to.
Definition at line 219 of file ss_misc.g.hh.
Referenced by declared_by_get(), and declared_by_set().
ptr< ss_decl_seq > lestes::lang::cplus::sem::ss_decl_seq::the_root_instance = the_root_instance [static, private] |
bool lestes::lang::cplus::sem::ss_decl_seq::parent_set_ward = false [static, private] |
Definition at line 221 of file ss_misc.g.hh.
ptr< object::reflection_list > lestes::lang::cplus::sem::ss_decl_seq::reflection = reflection [static, private] |
Reimplemented from lestes::intercode::ss_base_with_location.
Definition at line 222 of file ss_misc.g.hh.
Referenced by reflection_get().
1.5.1-20070107