lestes::md::symbols::name_mangler Class Reference

Performs C++ symbol name magling (GNU GCC style). More...

#include <name_mangler.g.hh>

Inheritance diagram for lestes::md::symbols::name_mangler:

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

Public Member Functions

lstring mangle (ptr< ::lestes::lang::cplus::sem::ss_declaration > decl)
 Mangles declaration.
lstring wchar_escapes_replace (lstring name)
 Replaces wide character escapes after its uppercase form.
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< name_manglersingleton_instance_get ()
 The method singleton_instance_get returns the value of the field name_mangler::singleton_instance.
static void singleton_instance_set (const ptr< name_mangler > &)
 The method singleton_instance_set sets the field name_mangler::singleton_instance to the given value.
static ptr< name_manglerinstance ()
 Returns a singleton instance.
static ptr< name_manglercreate ()
 First generated factory method for class name_mangler.

Protected Member Functions

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

Static Private Attributes

static ptr< name_manglersingleton_instance = NULL
static ptr< reflection_listreflection = reflection

Detailed Description

Performs C++ symbol name magling (GNU GCC style).

Definition at line 31 of file name_mangler.g.hh.


Constructor & Destructor Documentation

lestes::md::symbols::name_mangler::name_mangler (  )  [protected]

Generated constructor for class name_mangler.

Generated constructor for class name_mangler.

Author:
lsg

Definition at line 54 of file name_mangler.g.cc.

Referenced by create().

00055         : ::lestes::std::object()
00056 {}


Member Function Documentation

ptr< name_mangler > lestes::md::symbols::name_mangler::singleton_instance_get (  )  [static]

The method singleton_instance_get returns the value of the field name_mangler::singleton_instance.

Returns:
The value of name_mangler::singleton_instance.
Author:
lsg

Definition at line 27 of file name_mangler.g.cc.

References singleton_instance.

Referenced by instance().

00028 {
00029         return singleton_instance;
00030 }

void lestes::md::symbols::name_mangler::singleton_instance_set ( const ptr< name_mangler > &  x  )  [static]

The method singleton_instance_set sets the field name_mangler::singleton_instance to the given value.

Parameters:
[in] x The new value to set name_mangler::singleton_instance to.
Author:
lsg

Definition at line 36 of file name_mangler.g.cc.

References singleton_instance.

Referenced by instance().

00037 {
00038         name_mangler::singleton_instance = x;
00039 }

ptr< name_mangler > lestes::md::symbols::name_mangler::instance (  )  [static]

Returns a singleton instance.

Definition at line 350 of file name_mangler.cc.

References create(), singleton_instance_get(), and singleton_instance_set().

Referenced by lestes::md::symbols::symbol_register::emit_global_declarations().

00350                                          {
00351         if ( !singleton_instance_get() ) {
00352                 singleton_instance_set(name_mangler::create());
00353         }
00354         return singleton_instance_get();
00355 }

lstring lestes::md::symbols::name_mangler::mangle ( ptr< ::lestes::lang::cplus::sem::ss_declaration decl  ) 

Mangles declaration.

lstring lestes::md::symbols::name_mangler::wchar_escapes_replace ( lstring  name  ) 

Replaces wide character escapes after its uppercase form.

Parameters:
name The string.
Returns:
String with repacements.

Definition at line 364 of file name_mangler.cc.

References lestes::md::string_replace().

00365 {
00366         return ::lestes::md::string_replace(::lestes::md::string_replace( name,"\\u",".u"),"\\U",".U");
00367 }

ptr< name_mangler > lestes::md::symbols::name_mangler::create ( void   )  [static]

First generated factory method for class name_mangler.

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

Author:
lsg

Definition at line 45 of file name_mangler.g.cc.

References name_mangler().

Referenced by instance().

00046 {
00047         return ptr< name_mangler > ( new name_mangler() );
00048 }

ptr< object::reflection_list > lestes::md::symbols::name_mangler::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

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

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

00059 {
00060         if (!reflection) {
00061                 typedef class_reflection::field_metadata md;
00062                 typedef class_reflection::field_metadata_list mdlist;
00063                 ptr<mdlist> mdl = mdlist::create();
00064                 mdl->push_back( md::create( "singleton_instance", "name_mangler" ) );
00065                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00066                 reflection->push_back( class_reflection::create( "name_mangler", mdl ) );
00067         }
00068         return reflection;
00069 }

ptr< object::field_list_list > lestes::md::symbols::name_mangler::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Definition at line 71 of file name_mangler.g.cc.

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

00072 {
00073         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00074         result->push_back( value_list::create() );
00075         result->back()->push_back( this->singleton_instance );
00076         return result;
00077 }

void lestes::md::symbols::name_mangler::gc_mark ( void   )  [protected, virtual]

Marking routine for class name_mangler.

Marking routine is used for garbage collection.

Author:
lsg

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

Definition at line 84 of file name_mangler.g.cc.

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

00085 {
00086 	::lestes::std::object::gc_mark();
00087 }


Member Data Documentation

ptr< name_mangler > lestes::md::symbols::name_mangler::singleton_instance = NULL [static, private]

Definition at line 68 of file name_mangler.g.hh.

Referenced by singleton_instance_get(), and singleton_instance_set().

ptr< object::reflection_list > lestes::md::symbols::name_mangler::reflection = reflection [static, private]

Reimplemented from lestes::std::object.

Definition at line 69 of file name_mangler.g.hh.

Referenced by reflection_get().


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