lestes::lang::cplus::syn::bison_id_token Class Reference

#include <token.hh>

Inheritance diagram for lestes::lang::cplus::syn::bison_id_token:

lestes::lang::cplus::syn::bison_token lestes::intercode::as_base lestes::intercode::intercode lestes::std::object lestes::std::mem::keystone List of all members.

Public Types

enum  hinted_by_type { BY_HINTER, BY_USER }

Public Member Functions

ptr< ::lestes::lang::cplus::sem::declaration_set_typefound_decls_get () const
virtual void print (::std::ostream &) const
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< bison_id_tokencreate (int a_type, const ptr< wrapped_token_type > &a_token_to_wrap, hinted_by_type a_hinted_by, const ptr< ::lestes::lang::cplus::sem::declaration_set_type > &a_found_decls)

Protected Member Functions

 bison_id_token (const ptr< source_location > &a_location, int a_value, const ptr< wrapped_token_type > &a_token_to_wrap, hinted_by_type a_hinted_by, const ptr< ::lestes::lang::cplus::sem::declaration_set_type > &a_found_decls)
void gc_mark ()
 Marking routine for class as_base.

Private Attributes

const hinted_by_type hinted_by
srp< ::lestes::lang::cplus::sem::declaration_set_typefound_decls

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Definition at line 158 of file token.hh.


Member Enumeration Documentation

enum lestes::lang::cplus::syn::bison_id_token::hinted_by_type

Enumerator:
BY_HINTER 
BY_USER 

Definition at line 160 of file token.hh.

00160                             {
00161                 BY_HINTER,
00162 //              BY_BOTH,
00163                 BY_USER,
00164         };


Constructor & Destructor Documentation

lestes::lang::cplus::syn::bison_id_token::bison_id_token ( const ptr< source_location > &  a_location,
int  a_value,
const ptr< wrapped_token_type > &  a_token_to_wrap,
hinted_by_type  a_hinted_by,
const ptr< ::lestes::lang::cplus::sem::declaration_set_type > &  a_found_decls 
) [inline, protected]

Definition at line 170 of file token.hh.

00174                 : bison_token( a_location, a_value, a_token_to_wrap ),
00175                 hinted_by(a_hinted_by), found_decls(a_found_decls)
00176         {}


Member Function Documentation

ptr<::lestes::lang::cplus::sem::declaration_set_type > lestes::lang::cplus::syn::bison_id_token::found_decls_get (  )  const

Definition at line 192 of file token.cc.

References found_decls.

00193 {
00194         return found_decls;
00195 }

void lestes::lang::cplus::syn::bison_id_token::gc_mark ( void   )  [protected, virtual]

Marking routine for class as_base.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::lang::cplus::syn::bison_token.

Definition at line 186 of file token.cc.

References found_decls, and lestes::lang::cplus::syn::bison_token::gc_mark().

00187 {
00188         found_decls.gc_mark();
00189         bison_token::gc_mark();
00190 }

static ptr<bison_id_token> lestes::lang::cplus::syn::bison_id_token::create ( int  a_type,
const ptr< wrapped_token_type > &  a_token_to_wrap,
hinted_by_type  a_hinted_by,
const ptr< ::lestes::lang::cplus::sem::declaration_set_type > &  a_found_decls 
) [inline, static]

Definition at line 179 of file token.hh.

00183         {
00184                 return new bison_id_token( a_token_to_wrap->location_get(),
00185                                 a_type, a_token_to_wrap, a_hinted_by,
00186                                 a_found_decls );
00187         }

void lestes::lang::cplus::syn::bison_id_token::print ( ::std::ostream &   )  const [virtual]

Reimplemented from lestes::lang::cplus::syn::bison_token.

Definition at line 221 of file token.cc.

References lestes::lang::cplus::syn::bison_token::HINT_NONE, hinted_by, lestes::lang::cplus::syn::hinted_by2str(), lassert2, lestes::lang::cplus::syn::parser::token_type2name(), lestes::lang::cplus::syn::bison_token::type_get(), lestes::lang::cplus::syn::bison_token::user_hint_get(), and lestes::lang::cplus::syn::bison_token::value_get().

00222 {
00223         os << "bison_id_token " << parser::token_type2name(type_get()) <<
00224                 " (\"" << value_get() << "\"),"
00225                 " hinted " << hinted_by2str(hinted_by);
00226         lassert2( user_hint_get() == HINT_NONE, "Id tokens must not have hints!" );
00227 }

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

for purposes of dumping

Reimplemented from lestes::lang::cplus::syn::bison_token.

Definition at line 199 of file token.cc.

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

00200 {
00201         if (!reflection) {
00202                 typedef class_reflection::field_metadata md;
00203                 typedef class_reflection::field_metadata_list mdlist;
00204                 ptr<mdlist> mdl = mdlist::create();
00205                 mdl->push_back( md::create( "hinted_by", "lstring" ) );
00206                 // append our one to a copy of the base class's list
00207                 reflection = reflection_list::create( bison_token::reflection_get() );
00208                 reflection->push_back( class_reflection::create( "bison_id_token", mdl ) );
00209         }
00210         return reflection;
00211 }

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

for purposes of dumping

Reimplemented from lestes::lang::cplus::syn::bison_token.

Definition at line 213 of file token.cc.

References lestes::std::list< T >::create(), lestes::lang::cplus::syn::bison_token::field_values_get(), hinted_by, and lestes::lang::cplus::syn::hinted_by2str().

00214 {
00215         ptr<field_list_list> result = bison_token::field_values_get();
00216         result->push_back( value_list::create() );
00217         result->back()->push_back( objectize<lstring>::create( hinted_by2str(hinted_by) ) );
00218         return result;
00219 }


Member Data Documentation

const hinted_by_type lestes::lang::cplus::syn::bison_id_token::hinted_by [private]

Definition at line 167 of file token.hh.

Referenced by field_values_get(), and print().

srp< ::lestes::lang::cplus::sem::declaration_set_type > lestes::lang::cplus::syn::bison_id_token::found_decls [private]

Definition at line 168 of file token.hh.

Referenced by found_decls_get(), and gc_mark().

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

Reimplemented from lestes::lang::cplus::syn::bison_token.

Definition at line 191 of file token.hh.

Referenced by reflection_get().


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