lestes::lang::cplus::sem::ss_fake_declaration Class Reference

Fake declaration is used to prohibit redeclaration of an object. More...

#include <ss_declaration.g.hh>

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

lestes::lang::cplus::sem::ss_declaration_with_access_specifier 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 List of all members.

Public Member Functions

ptr< ss_object_declarationreal_decl_get () const
 The method real_decl_get returns the value of the field ss_fake_declaration::real_decl.
void real_decl_set (const ptr< ss_object_declaration > &)
 The method real_decl_set sets the field ss_fake_declaration::real_decl to the given value.
virtual void accept_ss_declaration_visitor (ptr< ss_declaration_visitor > v)
virtual ulint accept_ss_decl2ulint_base (ptr< ss_decl2ulint_base > v)
virtual lstring accept_ss_decl2lstring_base (ptr< ss_decl2lstring_base > v)
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_fake_declarationcreate (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, ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier, ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class, ptr< ss_object_declaration > a__ss_fake_declaration__real_decl)
 First generated factory method for class ss_fake_declaration.
static ptr< ss_fake_declarationcreate (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, ptr< ss_object_declaration > a__ss_fake_declaration__real_decl)
 Second generated factory method for class ss_fake_declaration.

Protected Member Functions

 ss_fake_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, ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier, ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class, ptr< ss_object_declaration > a__ss_fake_declaration__real_decl)
 Generated constructor for class ss_fake_declaration.
virtual void gc_mark ()
 Marking routine for class ss_fake_declaration.

Private Attributes

srp< ss_object_declarationreal_decl
 Points to the real declaration of the object.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Fake declaration is used to prohibit redeclaration of an object.

ss_fake_declaration is placed into an ss_decl_seq to make it impossible to declare something with the same name in the ss_decl_seq. This is a requirement of the norm. For example, at function body's outermost compound statement, it is forbidden to introduce a name that is equal to a name of a parameter.

See [3.3.2/2], [6.4/3].

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


Constructor & Destructor Documentation

lestes::lang::cplus::sem::ss_fake_declaration::ss_fake_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,
ss_access_specifier::type  a__ss_declaration_with_access_specifier__access_specifier,
ss_storage_class::type  a__ss_declaration_with_access_specifier__storage_class,
ptr< ss_object_declaration a__ss_fake_declaration__real_decl 
) [protected]

Generated constructor for class ss_fake_declaration.

Generated constructor for class ss_fake_declaration.

Author:
lsg

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

Referenced by create().

00950         : ss_declaration_with_access_specifier(a__ss_base_with_location__location,
00951                 a__ss_declaration__visible_since,
00952                 a__ss_declaration__decl_time,
00953                 a__ss_declaration__name,
00954                 a__ss_declaration__contained_in,
00955                 a__ss_declaration__type,
00956                 a__ss_declaration__linkage,
00957                 a__ss_declaration_with_access_specifier__access_specifier,
00958                 a__ss_declaration_with_access_specifier__storage_class), real_decl(checked(a__ss_fake_declaration__real_decl))
00959 {}


Member Function Documentation

ptr< ss_object_declaration > lestes::lang::cplus::sem::ss_fake_declaration::real_decl_get (  )  const

The method real_decl_get returns the value of the field ss_fake_declaration::real_decl.

Returns:
The value of ss_fake_declaration::real_decl.
Author:
lsg

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

References real_decl.

00865 {
00866         return real_decl;
00867 }

void lestes::lang::cplus::sem::ss_fake_declaration::real_decl_set ( const ptr< ss_object_declaration > &  x  ) 

The method real_decl_set sets the field ss_fake_declaration::real_decl to the given value.

Parameters:
[in] x The new value to set ss_fake_declaration::real_decl to.
Author:
lsg

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

References real_decl.

00874 {
00875         ss_fake_declaration::real_decl = x;
00876 }

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

Implements lestes::lang::cplus::sem::ss_declaration_with_access_specifier.

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

00879 {
00880         return v->visit_ss_fake_declaration( this );
00881 }

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

Implements lestes::lang::cplus::sem::ss_declaration_with_access_specifier.

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

00884 {
00885         return v->visit_ss_fake_declaration( this );
00886 }

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

Implements lestes::lang::cplus::sem::ss_declaration_with_access_specifier.

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

00889 {
00890         return v->visit_ss_fake_declaration( this );
00891 }

ptr< ss_fake_declaration > lestes::lang::cplus::sem::ss_fake_declaration::create ( 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,
ss_access_specifier::type  a__ss_declaration_with_access_specifier__access_specifier,
ss_storage_class::type  a__ss_declaration_with_access_specifier__storage_class,
ptr< ss_object_declaration a__ss_fake_declaration__real_decl 
) [static]

First generated factory method for class ss_fake_declaration.

This factory method for class ss_fake_declaration takes values of all fields as arguments.

Author:
lsg

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

References ss_fake_declaration().

00907 {
00908         return ptr< ss_fake_declaration > ( new ss_fake_declaration(a__ss_base_with_location__location,
00909                 a__ss_declaration__visible_since,
00910                 a__ss_declaration__decl_time,
00911                 a__ss_declaration__name,
00912                 a__ss_declaration__contained_in,
00913                 a__ss_declaration__type,
00914                 a__ss_declaration__linkage,
00915                 a__ss_declaration_with_access_specifier__access_specifier,
00916                 a__ss_declaration_with_access_specifier__storage_class,
00917                 a__ss_fake_declaration__real_decl) );
00918 }

ptr< ss_fake_declaration > lestes::lang::cplus::sem::ss_fake_declaration::create ( 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,
ptr< ss_object_declaration a__ss_fake_declaration__real_decl 
) [static]

Second generated factory method for class ss_fake_declaration.

This factory method for class ss_fake_declaration uses initializers.

Author:
lsg

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

References lestes::lang::cplus::sem::ss_access_specifier::ACCESS_PUBLIC, ss_fake_declaration(), and lestes::lang::cplus::sem::ss_storage_class::ST_NONE.

00932 {
00933         return ptr< ss_fake_declaration > ( new ss_fake_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, a__ss_fake_declaration__real_decl) );
00934 }

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

for purposes of dumping

Reimplemented from lestes::lang::cplus::sem::ss_declaration_with_access_specifier.

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

References lestes::std::list< T >::create(), reflection, and lestes::lang::cplus::sem::ss_declaration_with_access_specifier::reflection_get().

00962 {
00963         if (!reflection) {
00964                 typedef class_reflection::field_metadata md;
00965                 typedef class_reflection::field_metadata_list mdlist;
00966                 ptr<mdlist> mdl = mdlist::create();
00967                 mdl->push_back( md::create( "real_decl", "ss_object_declaration" ) );
00968                 reflection = reflection_list::create( ss_declaration_with_access_specifier::reflection_get() );
00969                 reflection->push_back( class_reflection::create( "ss_fake_declaration", mdl ) );
00970         }
00971         return reflection;
00972 }

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

for purposes of dumping

Reimplemented from lestes::lang::cplus::sem::ss_declaration_with_access_specifier.

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

References lestes::std::list< T >::create(), and lestes::lang::cplus::sem::ss_declaration_with_access_specifier::field_values_get().

00975 {
00976         ptr < field_list_list > result = ss_declaration_with_access_specifier::field_values_get();
00977         result->push_back( value_list::create() );
00978         result->back()->push_back( this->real_decl );
00979         return result;
00980 }

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

Marking routine for class ss_fake_declaration.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::lang::cplus::sem::ss_declaration_with_access_specifier.

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

References lestes::lang::cplus::sem::ss_declaration_with_access_specifier::gc_mark().


Member Data Documentation

srp< ss_object_declaration > lestes::lang::cplus::sem::ss_fake_declaration::real_decl [private]

Points to the real declaration of the object.

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

Referenced by real_decl_get(), and real_decl_set().

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

Reimplemented from lestes::lang::cplus::sem::ss_declaration_with_access_specifier.

Definition at line 592 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:12 2007 for lestes by doxygen 1.5.1-20070107