lestes::lang::cplus::sem::ss_declaration Class Reference

Class for declarations. More...

#include <ss_declaration.g.hh>

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

lestes::intercode::ss_base_with_location lestes::intercode::ss_base lestes::intercode::intercode lestes::std::object lestes::std::mem::keystone lestes::lang::cplus::sem::ss_declaration_with_access_specifier lestes::lang::cplus::sem::ss_dummy_declaration lestes::lang::cplus::sem::ss_namespace_definition lestes::lang::cplus::sem::ss_befriendable_declaration lestes::lang::cplus::sem::ss_enum_definition lestes::lang::cplus::sem::ss_enumerator_declaration lestes::lang::cplus::sem::ss_fake_declaration lestes::lang::cplus::sem::ss_injected_class_declaration lestes::lang::cplus::sem::ss_object_declaration lestes::lang::cplus::sem::ss_typedef_definition lestes::lang::cplus::sem::ss_using_declaration lestes::lang::cplus::sem::ss_compound_stmt_declaration List of all members.

Public Member Functions

ptr< ss_declaration_timevisible_since_get () const
 The method visible_since_get returns the value of the field ss_declaration::visible_since.
void visible_since_set (const ptr< ss_declaration_time > &)
 The method visible_since_set sets the field ss_declaration::visible_since to the given value.
ptr< ss_declaration_timedecl_time_get () const
 The method decl_time_get returns the value of the field ss_declaration::decl_time.
void decl_time_set (const ptr< ss_declaration_time > &)
 The method decl_time_set sets the field ss_declaration::decl_time to the given value.
ptr< ss_decl_namename_get () const
 The method name_get returns the value of the field ss_declaration::name.
void name_set (const ptr< ss_decl_name > &)
 The method name_set sets the field ss_declaration::name to the given value.
ptr< ss_decl_seqcontained_in_get () const
 The method contained_in_get returns the value of the field ss_declaration::contained_in.
void contained_in_set (const ptr< ss_decl_seq > &)
 The method contained_in_set sets the field ss_declaration::contained_in to the given value.
ptr< ss_typetype_get () const
 The method type_get returns the value of the field ss_declaration::type.
void type_set (const ptr< ss_type > &)
 The method type_set sets the field ss_declaration::type to the given value.
ptr< ss_linkagelinkage_get () const
 The method linkage_get returns the value of the field ss_declaration::linkage.
void linkage_set (const ptr< ss_linkage > &)
 The method linkage_set sets the field ss_declaration::linkage to the given value.
virtual void accept_ss_declaration_visitor (ptr< ss_declaration_visitor > v) override
virtual ulint accept_ss_decl2ulint_base (ptr< ss_decl2ulint_base > v) override
virtual lstring accept_ss_decl2lstring_base (ptr< ss_decl2lstring_base > v) override
virtual ptr< reflection_listreflection_get () const
 for purposes of dumping
virtual ptr< field_list_listfield_values_get () const
 for purposes of dumping

Protected Member Functions

 ss_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location, ptr< ss_declaration_time > a__ss_declaration__visible_since, ptr< ss_declaration_time > a__ss_declaration__decl_time, ptr< ss_decl_name > a__ss_declaration__name, ptr< ss_decl_seq > a__ss_declaration__contained_in, ptr< ss_type > a__ss_declaration__type, ptr< ss_linkage > a__ss_declaration__linkage)
 Generated constructor for class ss_declaration.
virtual void gc_mark ()
 Marking routine for class ss_declaration.

Private Attributes

srp< ss_declaration_timevisible_since
 Invisible declarations are results of friend declarations.
srp< ss_declaration_timedecl_time
srp< ss_decl_namename
srp< ss_decl_seqcontained_in
srp< ss_typetype
 Type of the declared thing.
srp< ss_linkagelinkage
 external,internal,inline,no linkage

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Class for declarations.

Definition at line 63 of file ss_declaration.g.hh.


Constructor & Destructor Documentation

lestes::lang::cplus::sem::ss_declaration::ss_declaration ( ptr< ::lestes::std::source_location a__ss_base_with_location__location,
ptr< ss_declaration_time a__ss_declaration__visible_since,
ptr< ss_declaration_time a__ss_declaration__decl_time,
ptr< ss_decl_name a__ss_declaration__name,
ptr< ss_decl_seq a__ss_declaration__contained_in,
ptr< ss_type a__ss_declaration__type,
ptr< ss_linkage a__ss_declaration__linkage 
) [protected]

Generated constructor for class ss_declaration.

Generated constructor for class ss_declaration.

Author:
lsg

Definition at line 139 of file ss_declaration.g.cc.

00146         : ss_base_with_location(a__ss_base_with_location__location), visible_since(checked(a__ss_declaration__visible_since)), decl_time(checked(a__ss_declaration__decl_time)), name(checked(a__ss_declaration__name)), contained_in(checked(a__ss_declaration__contained_in)), type(checked(a__ss_declaration__type)), linkage(checked(a__ss_declaration__linkage))
00147 {}


Member Function Documentation

ptr< ss_declaration_time > lestes::lang::cplus::sem::ss_declaration::visible_since_get (  )  const

The method visible_since_get returns the value of the field ss_declaration::visible_since.

Returns:
The value of ss_declaration::visible_since.
Author:
lsg

Definition at line 31 of file ss_declaration.g.cc.

References visible_since.

00032 {
00033         return visible_since;
00034 }

void lestes::lang::cplus::sem::ss_declaration::visible_since_set ( const ptr< ss_declaration_time > &  x  ) 

The method visible_since_set sets the field ss_declaration::visible_since to the given value.

Parameters:
[in] x The new value to set ss_declaration::visible_since to.
Author:
lsg

Definition at line 40 of file ss_declaration.g.cc.

References visible_since.

00041 {
00042         ss_declaration::visible_since = x;
00043 }

ptr< ss_declaration_time > lestes::lang::cplus::sem::ss_declaration::decl_time_get (  )  const

The method decl_time_get returns the value of the field ss_declaration::decl_time.

Returns:
The value of ss_declaration::decl_time.
Author:
lsg

Definition at line 49 of file ss_declaration.g.cc.

References decl_time.

00050 {
00051         return decl_time;
00052 }

void lestes::lang::cplus::sem::ss_declaration::decl_time_set ( const ptr< ss_declaration_time > &  x  ) 

The method decl_time_set sets the field ss_declaration::decl_time to the given value.

Parameters:
[in] x The new value to set ss_declaration::decl_time to.
Author:
lsg

Definition at line 58 of file ss_declaration.g.cc.

References decl_time.

00059 {
00060         ss_declaration::decl_time = x;
00061 }

ptr< ss_decl_name > lestes::lang::cplus::sem::ss_declaration::name_get ( void   )  const

The method name_get returns the value of the field ss_declaration::name.

Returns:
The value of ss_declaration::name.
Author:
lsg

Definition at line 67 of file ss_declaration.g.cc.

References name.

Referenced by lestes::lang::cplus::sem::ss_function_declaration::is_entry_point().

00068 {
00069         return name;
00070 }

void lestes::lang::cplus::sem::ss_declaration::name_set ( const ptr< ss_decl_name > &  x  ) 

The method name_set sets the field ss_declaration::name to the given value.

Parameters:
[in] x The new value to set ss_declaration::name to.
Author:
lsg

Definition at line 76 of file ss_declaration.g.cc.

References name.

00077 {
00078         ss_declaration::name = x;
00079 }

ptr< ss_decl_seq > lestes::lang::cplus::sem::ss_declaration::contained_in_get (  )  const

The method contained_in_get returns the value of the field ss_declaration::contained_in.

Returns:
The value of ss_declaration::contained_in.
Author:
lsg

Definition at line 85 of file ss_declaration.g.cc.

References contained_in.

Referenced by lestes::lang::cplus::sem::ss_function_declaration::is_entry_point().

00086 {
00087         return contained_in;
00088 }

void lestes::lang::cplus::sem::ss_declaration::contained_in_set ( const ptr< ss_decl_seq > &  x  ) 

The method contained_in_set sets the field ss_declaration::contained_in to the given value.

Parameters:
[in] x The new value to set ss_declaration::contained_in to.
Author:
lsg

Definition at line 94 of file ss_declaration.g.cc.

References contained_in.

00095 {
00096         ss_declaration::contained_in = x;
00097 }

ptr< ss_type > lestes::lang::cplus::sem::ss_declaration::type_get ( void   )  const

The method type_get returns the value of the field ss_declaration::type.

Returns:
The value of ss_declaration::type.
Author:
lsg

Definition at line 103 of file ss_declaration.g.cc.

References type.

00104 {
00105         return type;
00106 }

void lestes::lang::cplus::sem::ss_declaration::type_set ( const ptr< ss_type > &  x  ) 

The method type_set sets the field ss_declaration::type to the given value.

Parameters:
[in] x The new value to set ss_declaration::type to.
Author:
lsg

Definition at line 112 of file ss_declaration.g.cc.

References type.

00113 {
00114         ss_declaration::type = x;
00115 }

ptr< ss_linkage > lestes::lang::cplus::sem::ss_declaration::linkage_get (  )  const

The method linkage_get returns the value of the field ss_declaration::linkage.

Returns:
The value of ss_declaration::linkage.
Author:
lsg

Definition at line 121 of file ss_declaration.g.cc.

References linkage.

00122 {
00123         return linkage;
00124 }

void lestes::lang::cplus::sem::ss_declaration::linkage_set ( const ptr< ss_linkage > &  x  ) 

The method linkage_set sets the field ss_declaration::linkage to the given value.

Parameters:
[in] x The new value to set ss_declaration::linkage to.
Author:
lsg

Definition at line 130 of file ss_declaration.g.cc.

References linkage.

00131 {
00132         ss_declaration::linkage = x;
00133 }

virtual void lestes::lang::cplus::sem::ss_declaration::accept_ss_declaration_visitor ( ptr< ss_declaration_visitor v  )  [pure virtual]

Implemented in lestes::lang::cplus::sem::ss_namespace_definition, lestes::lang::cplus::sem::ss_declaration_with_access_specifier, lestes::lang::cplus::sem::ss_object_declaration, lestes::lang::cplus::sem::ss_bitfield_declaration, lestes::lang::cplus::sem::ss_parameter_declaration, lestes::lang::cplus::sem::ss_fake_declaration, lestes::lang::cplus::sem::ss_injected_class_declaration, lestes::lang::cplus::sem::ss_enum_definition, lestes::lang::cplus::sem::ss_typedef_definition, lestes::lang::cplus::sem::ss_enumerator_declaration, lestes::lang::cplus::sem::ss_befriendable_declaration, lestes::lang::cplus::sem::ss_structure_declaration, lestes::lang::cplus::sem::ss_function_declaration, lestes::lang::cplus::sem::ss_method_declaration, lestes::lang::cplus::sem::ss_using_declaration, lestes::lang::cplus::sem::ss_dummy_declaration, lestes::lang::cplus::sem::ss_compound_stmt_declaration, and lestes::lang::cplus::sem::ss_builtin_operator_declaration.

virtual ulint lestes::lang::cplus::sem::ss_declaration::accept_ss_decl2ulint_base ( ptr< ss_decl2ulint_base v  )  [pure virtual]

Implemented in lestes::lang::cplus::sem::ss_namespace_definition, lestes::lang::cplus::sem::ss_declaration_with_access_specifier, lestes::lang::cplus::sem::ss_object_declaration, lestes::lang::cplus::sem::ss_bitfield_declaration, lestes::lang::cplus::sem::ss_parameter_declaration, lestes::lang::cplus::sem::ss_fake_declaration, lestes::lang::cplus::sem::ss_injected_class_declaration, lestes::lang::cplus::sem::ss_enum_definition, lestes::lang::cplus::sem::ss_typedef_definition, lestes::lang::cplus::sem::ss_enumerator_declaration, lestes::lang::cplus::sem::ss_befriendable_declaration, lestes::lang::cplus::sem::ss_structure_declaration, lestes::lang::cplus::sem::ss_function_declaration, lestes::lang::cplus::sem::ss_method_declaration, lestes::lang::cplus::sem::ss_using_declaration, lestes::lang::cplus::sem::ss_dummy_declaration, lestes::lang::cplus::sem::ss_compound_stmt_declaration, and lestes::lang::cplus::sem::ss_builtin_operator_declaration.

virtual lstring lestes::lang::cplus::sem::ss_declaration::accept_ss_decl2lstring_base ( ptr< ss_decl2lstring_base v  )  [pure virtual]

Implemented in lestes::lang::cplus::sem::ss_namespace_definition, lestes::lang::cplus::sem::ss_declaration_with_access_specifier, lestes::lang::cplus::sem::ss_object_declaration, lestes::lang::cplus::sem::ss_bitfield_declaration, lestes::lang::cplus::sem::ss_parameter_declaration, lestes::lang::cplus::sem::ss_fake_declaration, lestes::lang::cplus::sem::ss_injected_class_declaration, lestes::lang::cplus::sem::ss_enum_definition, lestes::lang::cplus::sem::ss_typedef_definition, lestes::lang::cplus::sem::ss_enumerator_declaration, lestes::lang::cplus::sem::ss_befriendable_declaration, lestes::lang::cplus::sem::ss_structure_declaration, lestes::lang::cplus::sem::ss_function_declaration, lestes::lang::cplus::sem::ss_method_declaration, lestes::lang::cplus::sem::ss_using_declaration, lestes::lang::cplus::sem::ss_dummy_declaration, lestes::lang::cplus::sem::ss_compound_stmt_declaration, and lestes::lang::cplus::sem::ss_builtin_operator_declaration.

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

for purposes of dumping

Reimplemented from lestes::intercode::ss_base_with_location.

Reimplemented in lestes::lang::cplus::sem::ss_namespace_definition, lestes::lang::cplus::sem::ss_declaration_with_access_specifier, lestes::lang::cplus::sem::ss_object_declaration, lestes::lang::cplus::sem::ss_bitfield_declaration, lestes::lang::cplus::sem::ss_parameter_declaration, lestes::lang::cplus::sem::ss_fake_declaration, lestes::lang::cplus::sem::ss_injected_class_declaration, lestes::lang::cplus::sem::ss_enum_definition, lestes::lang::cplus::sem::ss_typedef_definition, lestes::lang::cplus::sem::ss_enumerator_declaration, lestes::lang::cplus::sem::ss_befriendable_declaration, lestes::lang::cplus::sem::ss_structure_declaration, lestes::lang::cplus::sem::ss_function_declaration, lestes::lang::cplus::sem::ss_method_declaration, lestes::lang::cplus::sem::ss_using_declaration, lestes::lang::cplus::sem::ss_dummy_declaration, lestes::lang::cplus::sem::ss_compound_stmt_declaration, and lestes::lang::cplus::sem::ss_builtin_operator_declaration.

Definition at line 149 of file ss_declaration.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_dummy_declaration::reflection_get(), lestes::lang::cplus::sem::ss_declaration_with_access_specifier::reflection_get(), and lestes::lang::cplus::sem::ss_namespace_definition::reflection_get().

00150 {
00151         if (!reflection) {
00152                 typedef class_reflection::field_metadata md;
00153                 typedef class_reflection::field_metadata_list mdlist;
00154                 ptr<mdlist> mdl = mdlist::create();
00155                 mdl->push_back( md::create( "visible_since", "ss_declaration_time" ) );
00156                 mdl->push_back( md::create( "decl_time", "ss_declaration_time" ) );
00157                 mdl->push_back( md::create( "name", "ss_decl_name" ) );
00158                 mdl->push_back( md::create( "contained_in", "ss_decl_seq" ) );
00159                 mdl->push_back( md::create( "type", "ss_type" ) );
00160                 mdl->push_back( md::create( "linkage", "ss_linkage" ) );
00161                 reflection = reflection_list::create( ::lestes::intercode::ss_base_with_location::reflection_get() );
00162                 reflection->push_back( class_reflection::create( "ss_declaration", mdl ) );
00163         }
00164         return reflection;
00165 }

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

for purposes of dumping

Reimplemented from lestes::intercode::ss_base_with_location.

Reimplemented in lestes::lang::cplus::sem::ss_namespace_definition, lestes::lang::cplus::sem::ss_declaration_with_access_specifier, lestes::lang::cplus::sem::ss_object_declaration, lestes::lang::cplus::sem::ss_bitfield_declaration, lestes::lang::cplus::sem::ss_parameter_declaration, lestes::lang::cplus::sem::ss_fake_declaration, lestes::lang::cplus::sem::ss_injected_class_declaration, lestes::lang::cplus::sem::ss_enum_definition, lestes::lang::cplus::sem::ss_typedef_definition, lestes::lang::cplus::sem::ss_enumerator_declaration, lestes::lang::cplus::sem::ss_befriendable_declaration, lestes::lang::cplus::sem::ss_structure_declaration, lestes::lang::cplus::sem::ss_function_declaration, lestes::lang::cplus::sem::ss_method_declaration, lestes::lang::cplus::sem::ss_using_declaration, lestes::lang::cplus::sem::ss_dummy_declaration, lestes::lang::cplus::sem::ss_compound_stmt_declaration, and lestes::lang::cplus::sem::ss_builtin_operator_declaration.

Definition at line 167 of file ss_declaration.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_dummy_declaration::field_values_get(), lestes::lang::cplus::sem::ss_declaration_with_access_specifier::field_values_get(), and lestes::lang::cplus::sem::ss_namespace_definition::field_values_get().

00168 {
00169         ptr < field_list_list > result = ::lestes::intercode::ss_base_with_location::field_values_get();
00170         result->push_back( value_list::create() );
00171         result->back()->push_back( this->visible_since );
00172         result->push_back( value_list::create() );
00173         result->back()->push_back( this->decl_time );
00174         result->push_back( value_list::create() );
00175         result->back()->push_back( this->name );
00176         result->push_back( value_list::create() );
00177         result->back()->push_back( this->contained_in );
00178         result->push_back( value_list::create() );
00179         result->back()->push_back( this->type );
00180         result->push_back( value_list::create() );
00181         result->back()->push_back( this->linkage );
00182         return result;
00183 }

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

Marking routine for class ss_declaration.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::intercode::ss_base_with_location.

Reimplemented in lestes::lang::cplus::sem::ss_namespace_definition, lestes::lang::cplus::sem::ss_declaration_with_access_specifier, lestes::lang::cplus::sem::ss_object_declaration, lestes::lang::cplus::sem::ss_bitfield_declaration, lestes::lang::cplus::sem::ss_parameter_declaration, lestes::lang::cplus::sem::ss_fake_declaration, lestes::lang::cplus::sem::ss_injected_class_declaration, lestes::lang::cplus::sem::ss_enum_definition, lestes::lang::cplus::sem::ss_typedef_definition, lestes::lang::cplus::sem::ss_enumerator_declaration, lestes::lang::cplus::sem::ss_befriendable_declaration, lestes::lang::cplus::sem::ss_structure_declaration, lestes::lang::cplus::sem::ss_function_declaration, lestes::lang::cplus::sem::ss_method_declaration, lestes::lang::cplus::sem::ss_using_declaration, lestes::lang::cplus::sem::ss_dummy_declaration, lestes::lang::cplus::sem::ss_compound_stmt_declaration, and lestes::lang::cplus::sem::ss_builtin_operator_declaration.

Definition at line 190 of file ss_declaration.g.cc.

References lestes::intercode::ss_base_with_location::gc_mark().

Referenced by lestes::lang::cplus::sem::ss_dummy_declaration::gc_mark(), lestes::lang::cplus::sem::ss_declaration_with_access_specifier::gc_mark(), and lestes::lang::cplus::sem::ss_namespace_definition::gc_mark().


Member Data Documentation

srp< ss_declaration_time > lestes::lang::cplus::sem::ss_declaration::visible_since [private]

Invisible declarations are results of friend declarations.

Invisible declarations can be introduced into namespace scope using 'friend' declarations in classes:

class c { friend class a; friend int foo(); };

Both a and foo are introduced into :: namespace, yet they are invisible. However, when later defining a or foo, the invisible declarations have to be paired (marked as overridden by) the new, visible ones.

Visible is defined, so that the visible_since time is before the query time (in terms of declaration_time).

Definition at line 146 of file ss_declaration.g.hh.

Referenced by visible_since_get(), and visible_since_set().

srp< ss_declaration_time > lestes::lang::cplus::sem::ss_declaration::decl_time [private]

Definition at line 147 of file ss_declaration.g.hh.

Referenced by decl_time_get(), and decl_time_set().

srp< ss_decl_name > lestes::lang::cplus::sem::ss_declaration::name [private]

Definition at line 148 of file ss_declaration.g.hh.

Referenced by name_get(), and name_set().

srp< ss_decl_seq > lestes::lang::cplus::sem::ss_declaration::contained_in [private]

Definition at line 149 of file ss_declaration.g.hh.

Referenced by contained_in_get(), and contained_in_set().

srp< ss_type > lestes::lang::cplus::sem::ss_declaration::type [private]

Type of the declared thing.

Namespace declarations have 'void' type, for simplicity.

Definition at line 156 of file ss_declaration.g.hh.

Referenced by type_get(), and type_set().

srp< ss_linkage > lestes::lang::cplus::sem::ss_declaration::linkage [private]

external,internal,inline,no linkage

Definition at line 158 of file ss_declaration.g.hh.

Referenced by linkage_get(), and linkage_set().

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

Reimplemented from lestes::intercode::ss_base_with_location.

Reimplemented in lestes::lang::cplus::sem::ss_namespace_definition, lestes::lang::cplus::sem::ss_declaration_with_access_specifier, lestes::lang::cplus::sem::ss_object_declaration, lestes::lang::cplus::sem::ss_bitfield_declaration, lestes::lang::cplus::sem::ss_parameter_declaration, lestes::lang::cplus::sem::ss_fake_declaration, lestes::lang::cplus::sem::ss_injected_class_declaration, lestes::lang::cplus::sem::ss_enum_definition, lestes::lang::cplus::sem::ss_typedef_definition, lestes::lang::cplus::sem::ss_enumerator_declaration, lestes::lang::cplus::sem::ss_befriendable_declaration, lestes::lang::cplus::sem::ss_structure_declaration, lestes::lang::cplus::sem::ss_function_declaration, lestes::lang::cplus::sem::ss_method_declaration, lestes::lang::cplus::sem::ss_using_declaration, lestes::lang::cplus::sem::ss_dummy_declaration, lestes::lang::cplus::sem::ss_compound_stmt_declaration, and lestes::lang::cplus::sem::ss_builtin_operator_declaration.

Definition at line 159 of file ss_declaration.g.hh.

Referenced by reflection_get().


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