lestes::lang::cplus::sem::sa_scope_of_as_name Class Reference

Extracts information about a name's scope. More...

#include <sa_scope_of_as_name.g.hh>

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

lestes::std::object lestes::std::mem::keystone List of all members.

Public Member Functions

ptr< ::lestes::lang::cplus::sem::ss_decl_seqextract (ptr< ::lestes::lang::cplus::sem::as_name > n)
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< sa_scope_of_as_nameinstance ()
 Generated instance() method for singleton class sa_scope_of_as_name.

Protected Member Functions

 sa_scope_of_as_name ()
 Generated constructor for class sa_scope_of_as_name.
virtual void gc_mark ()
 Marking routine for class sa_scope_of_as_name.

Static Private Attributes

static ptr< reflection_listreflection = reflection
static ptr< sa_scope_of_as_namethe_instance = the_instance

Detailed Description

Extracts information about a name's scope.

Retrieve declaration sequence nominated by the qualification of an as_name class instance.

Definition at line 58 of file sa_scope_of_as_name.g.hh.


Constructor & Destructor Documentation

lestes::lang::cplus::sem::sa_scope_of_as_name::sa_scope_of_as_name (  )  [protected]

Generated constructor for class sa_scope_of_as_name.

Generated constructor for class sa_scope_of_as_name.

Author:
lsg

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

Referenced by instance().

00041         : object()
00042 {}


Member Function Documentation

ptr< ss_decl_seq > lestes::lang::cplus::sem::sa_scope_of_as_name::extract ( ptr< ::lestes::lang::cplus::sem::as_name n  ) 

Definition at line 63 of file sa_scope_of_as_name.cc.

References lestes::lang::cplus::sem::ss_declaration_to_ss_decl_seq::instance(), lestes::lang::cplus::sem::as_id_to_declaration_set::instance(), and lassert2.

00064 {
00065         //lassert(!syn::manager::in_disambiguation());
00066 
00067         lassert2(n->was_qualified_get(),"only qualified names qualify");
00068 
00069         ptr < ::lestes::std::set < srp < ss_declaration > > > qual_declarations =
00070                 as_id_to_declaration_set::instance()->process(
00071                         n->qualification_get()->identifier_get());
00072         lassert2(qual_declarations->size() == 1,
00073                 "Qualification should unambiguously name a single scope declaration");
00074         ptr < ss_decl_seq > seq =
00075                 ss_declaration_to_ss_decl_seq::instance()->process(*qual_declarations->begin());
00076 
00077         return seq;
00078 }

ptr< sa_scope_of_as_name > lestes::lang::cplus::sem::sa_scope_of_as_name::instance ( void   )  [static]

Generated instance() method for singleton class sa_scope_of_as_name.

Generated instance() method for singleton class sa_scope_of_as_name.

Author:
lsg

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

References sa_scope_of_as_name(), and the_instance.

Referenced by lestes::lang::cplus::sem::sa_usings::process_declaration().

00032 {
00033          return the_instance ? the_instance : the_instance = new sa_scope_of_as_name();
00034 }

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

for purposes of dumping

Reimplemented from lestes::std::object.

Definition at line 44 of file sa_scope_of_as_name.g.cc.

References lestes::std::list< T >::create(), reflection, and lestes::std::object::reflection_get().

00045 {
00046         if (!reflection) {
00047                 typedef class_reflection::field_metadata md;
00048                 typedef class_reflection::field_metadata_list mdlist;
00049                 ptr<mdlist> mdl = mdlist::create();
00050                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00051                 reflection->push_back( class_reflection::create( "sa_scope_of_as_name", mdl ) );
00052         }
00053         return reflection;
00054 }

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

for purposes of dumping

Reimplemented from lestes::std::object.

Definition at line 56 of file sa_scope_of_as_name.g.cc.

References lestes::std::object::field_values_get().

00057 {
00058         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00059         return result;
00060 }

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

Marking routine for class sa_scope_of_as_name.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::std::mem::keystone.

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

References lestes::std::mem::keystone::gc_mark().

00068 {
00069 	::lestes::std::object::gc_mark();
00070 }


Member Data Documentation

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

Reimplemented from lestes::std::object.

Definition at line 82 of file sa_scope_of_as_name.g.hh.

Referenced by reflection_get().

ptr< sa_scope_of_as_name > lestes::lang::cplus::sem::sa_scope_of_as_name::the_instance = the_instance [static, private]

Static field sa_scope_of_as_name::the_instance.

Author:
lsg

Definition at line 83 of file sa_scope_of_as_name.g.hh.

Referenced by instance().


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