lestes::lang::cplus::lex::cpp_token Class Reference

C++ token. More...

#include <cpp_token.hh>

Inheritance diagram for lestes::lang::cplus::lex::cpp_token:

lestes::lang::cplus::lex::basic_token< int, ptr< source_location >, ptr< token_value > > lestes::std::object lestes::std::mem::keystone List of all members.

Public Types

typedef ptr< lex_literalliteral_type
 The type of literal properties.

Public Member Functions

bool equals (const ptr< cpp_token > &rhs) const
 Tests equality.
ptr< lex_literalliteral_get (void) const
 Returns lex literal properties.
lstring description_get (void) const
 Returns token description.
virtual ptr< reflection_listreflection_get (void) const
 Returns list of reflection info.
virtual ptr< field_list_listfield_values_get (void) const
 Returns list of field values.

Static Public Member Functions

static ptr< cpp_tokencreate (const location_type &a_location, const type_type &a_type)
 Returns new token, initializes with token type.
static ptr< cpp_tokencreate (const location_type &a_location, const type_type &a_type, const value_type &a_value)
 Returns new token, initializes with token type and value.
static ptr< cpp_tokencreate_literal (const location_type &a_location, const literal_type &a_literal, const value_type &a_value)
 Returns new literal token, initializes with literal properties and value.

Protected Member Functions

 cpp_token (const location_type &a_location, const type_type &a_type, const value_type &a_value, const literal_type &a_literal)
 Creates the object.
virtual void gc_mark (void)
 Marks the object.

Private Types

typedef map< type_type, lstring > descriptions_type
 Type of descriptions map.

Private Member Functions

 cpp_token (const cpp_token &)
 Hides copy constructor.
cpp_tokenoperator= (const cpp_token &)
 Hides assignment operator.

Private Attributes

srp< lex_literalliteral
 Literal information for semantic analysis.

Static Private Attributes

static ptr< descriptions_typedescriptions = descriptions
 Token descriptions.
static ptr< reflection_listreflection = reflection
 The reflection information.

Detailed Description

C++ token.

Represents C++ token, which is passed to syntactical analysis.

Definition at line 62 of file cpp_token.hh.


Member Typedef Documentation

typedef ptr<lex_literal> lestes::lang::cplus::lex::cpp_token::literal_type

The type of literal properties.

Definition at line 65 of file cpp_token.hh.

typedef map<type_type,lstring> lestes::lang::cplus::lex::cpp_token::descriptions_type [private]

Type of descriptions map.

Definition at line 94 of file cpp_token.hh.


Constructor & Destructor Documentation

lestes::lang::cplus::lex::cpp_token::cpp_token ( const location_type a_location,
const type_type a_type,
const value_type a_value,
const literal_type a_literal 
) [protected]

Creates the object.

Referenced by create().

lestes::lang::cplus::lex::cpp_token::cpp_token ( const cpp_token  )  [private]

Hides copy constructor.


Member Function Documentation

bool lestes::lang::cplus::lex::cpp_token::equals ( const ptr< cpp_token > &  other  )  const

Tests equality.

Tests equality to other token. Does not test literal, only token value.

Precondition:
other != NULL
Parameters:
other The token to compare to.
Returns:
true If both token represent the same entity.

Definition at line 77 of file cpp_token.cc.

References lestes::is_equal(), lassert, lestes::lang::cplus::lex::basic_token< int, ptr< source_location >, ptr< token_value > >::location_get(), lestes::lang::cplus::lex::basic_token< int, ptr< source_location >, ptr< token_value > >::type_get(), and lestes::lang::cplus::lex::basic_token< int, ptr< source_location >, ptr< token_value > >::value_get().

00078 {
00079         lassert(other);
00080         return is_equal(type_get(),other->type_get()) &&
00081                 is_equal(value_get(),other->value_get()) &&
00082                 is_equal(location_get(),other->location_get());
00083 }

ptr< lex_literal > lestes::lang::cplus::lex::cpp_token::literal_get ( void   )  const

Returns lex literal properties.

Returns literal properties.

Returns:
The information about literal token.

Definition at line 64 of file cpp_token.cc.

References lassert, literal, TOK_LITERAL, and lestes::lang::cplus::lex::basic_token< int, ptr< source_location >, ptr< token_value > >::type_get().

00065 {
00066         lassert(type_get() == TOK_LITERAL);
00067         return literal;
00068 }

lstring lestes::lang::cplus::lex::cpp_token::description_get ( void   )  const

Returns token description.

Returns the internal description of the token.

Returns:
The string representation of the token type.

Definition at line 129 of file cpp_token.cc.

References descriptions, lassert, TOK_AMP, TOK_AMP_AMP, TOK_AMP_EQ, TOK_ASM, TOK_AUTO, TOK_BOOL, TOK_BREAK, TOK_CASE, TOK_CATCH, TOK_CHAR, TOK_CLASS, TOK_COLON, TOK_COLON_COLON, TOK_COMMA, TOK_CONST, TOK_CONST_CAST, TOK_CONTINUE, TOK_DEFAULT, TOK_DELETE, TOK_DO, TOK_DOT_DOT_DOT, TOK_DOT_STAR, TOK_DOUBLE, TOK_DYNAMIC_CAST, TOK_ELSE, TOK_ENUM, TOK_EOF, TOK_EQ, TOK_EQ_EQ, TOK_EXCLAMATION, TOK_EXCLAMATION_EQ, TOK_EXPLICIT, TOK_EXPORT, TOK_EXTERN, TOK_FLOAT, TOK_FOR, TOK_FRIEND, TOK_GOTO, TOK_GT, TOK_GT_EQ, TOK_GT_GT, TOK_GT_GT_EQ, TOK_HAT, TOK_HAT_EQ, TOK_IDENT, TOK_IF, TOK_INLINE, TOK_INT, TOK_LEFT_BRACE, TOK_LEFT_BRACKET, TOK_LEFT_PAR, TOK_LITERAL, TOK_LONG, TOK_LT, TOK_LT_EQ, TOK_LT_LT, TOK_LT_LT_EQ, TOK_MINUS, TOK_MINUS_EQ, TOK_MINUS_GT, TOK_MINUS_GT_STAR, TOK_MINUS_MINUS, TOK_MUTABLE, TOK_NAMESPACE, TOK_NEW, TOK_OPERATOR, TOK_PERCENT, TOK_PERCENT_EQ, TOK_PLUS, TOK_PLUS_EQ, TOK_PLUS_PLUS, TOK_PRIVATE, TOK_PROTECTED, TOK_PUBLIC, TOK_QMARK, TOK_REGISTER, TOK_REINTERPRET_CAST, TOK_RETURN, TOK_RIGHT_BRACE, TOK_RIGHT_BRACKET, TOK_RIGHT_PAR, TOK_SEMICOLON, TOK_SHORT, TOK_SIGNED, TOK_SIZEOF, TOK_SLASH, TOK_SLASH_EQ, TOK_STAR, TOK_STAR_EQ, TOK_STATIC, TOK_STATIC_CAST, TOK_STRUCT, TOK_SWITCH, TOK_TEMPLATE, TOK_THIS, TOK_THROW, TOK_TILDE, TOK_TRY, TOK_TYPEDEF, TOK_TYPEID, TOK_TYPENAME, TOK_UNION, TOK_UNSIGNED, TOK_USING, TOK_VBAR, TOK_VBAR_EQ, TOK_VBAR_VBAR, TOK_VIRTUAL, TOK_VOID, TOK_VOLATILE, TOK_WCHAR_T, TOK_WHILE, and lestes::lang::cplus::lex::basic_token< int, ptr< source_location >, ptr< token_value > >::type_get().

Referenced by field_values_get().

00130 {
00131         if (!descriptions) {
00132                 descriptions = descriptions_type::create();
00133 
00134                 descriptions->insert(::std::make_pair(cpp_token::TOK_EOF,"TOK_EOF"));
00135                 descriptions->insert(::std::make_pair(cpp_token::TOK_LITERAL,"TOK_LITERAL"));
00136                 descriptions->insert(::std::make_pair(cpp_token::TOK_ASM,"TOK_ASM"));
00137                 descriptions->insert(::std::make_pair(cpp_token::TOK_AUTO,"TOK_AUTO"));
00138                 descriptions->insert(::std::make_pair(cpp_token::TOK_BOOL,"TOK_BOOL"));
00139                 descriptions->insert(::std::make_pair(cpp_token::TOK_BREAK,"TOK_BREAK"));
00140                 descriptions->insert(::std::make_pair(cpp_token::TOK_CASE,"TOK_CASE"));
00141                 descriptions->insert(::std::make_pair(cpp_token::TOK_CATCH,"TOK_CATCH"));
00142                 descriptions->insert(::std::make_pair(cpp_token::TOK_CHAR,"TOK_CHAR"));
00143                 descriptions->insert(::std::make_pair(cpp_token::TOK_CLASS,"TOK_CLASS"));
00144                 descriptions->insert(::std::make_pair(cpp_token::TOK_CONST,"TOK_CONST"));
00145                 descriptions->insert(::std::make_pair(cpp_token::TOK_CONST_CAST,"TOK_CONST_CAST"));
00146                 descriptions->insert(::std::make_pair(cpp_token::TOK_CONTINUE,"TOK_CONTINUE"));
00147                 descriptions->insert(::std::make_pair(cpp_token::TOK_DEFAULT,"TOK_DEFAULT"));
00148                 descriptions->insert(::std::make_pair(cpp_token::TOK_DELETE,"TOK_DELETE"));
00149                 descriptions->insert(::std::make_pair(cpp_token::TOK_DO,"TOK_DO"));
00150                 descriptions->insert(::std::make_pair(cpp_token::TOK_DOUBLE,"TOK_DOUBLE"));
00151                 descriptions->insert(::std::make_pair(cpp_token::TOK_DYNAMIC_CAST,"TOK_DYNAMIC_CAST"));
00152                 descriptions->insert(::std::make_pair(cpp_token::TOK_ELSE,"TOK_ELSE"));
00153                 descriptions->insert(::std::make_pair(cpp_token::TOK_ENUM,"TOK_ENUM"));
00154                 descriptions->insert(::std::make_pair(cpp_token::TOK_EXPLICIT,"TOK_EXPLICIT"));
00155                 descriptions->insert(::std::make_pair(cpp_token::TOK_EXPORT,"TOK_EXPORT"));
00156                 descriptions->insert(::std::make_pair(cpp_token::TOK_EXTERN,"TOK_EXTERN"));
00157                 descriptions->insert(::std::make_pair(cpp_token::TOK_FLOAT,"TOK_FLOAT"));
00158                 descriptions->insert(::std::make_pair(cpp_token::TOK_FOR,"TOK_FOR"));
00159                 descriptions->insert(::std::make_pair(cpp_token::TOK_FRIEND,"TOK_FRIEND"));
00160                 descriptions->insert(::std::make_pair(cpp_token::TOK_GOTO,"TOK_GOTO"));
00161                 descriptions->insert(::std::make_pair(cpp_token::TOK_IF,"TOK_IF"));
00162                 descriptions->insert(::std::make_pair(cpp_token::TOK_INLINE,"TOK_INLINE"));
00163                 descriptions->insert(::std::make_pair(cpp_token::TOK_INT,"TOK_INT"));
00164                 descriptions->insert(::std::make_pair(cpp_token::TOK_LONG,"TOK_LONG"));
00165                 descriptions->insert(::std::make_pair(cpp_token::TOK_MUTABLE,"TOK_MUTABLE"));
00166                 descriptions->insert(::std::make_pair(cpp_token::TOK_NAMESPACE,"TOK_NAMESPACE"));
00167                 descriptions->insert(::std::make_pair(cpp_token::TOK_NEW,"TOK_NEW"));
00168                 descriptions->insert(::std::make_pair(cpp_token::TOK_OPERATOR,"TOK_OPERATOR"));
00169                 descriptions->insert(::std::make_pair(cpp_token::TOK_PRIVATE,"TOK_PRIVATE"));
00170                 descriptions->insert(::std::make_pair(cpp_token::TOK_PROTECTED,"TOK_PROTECTED"));
00171                 descriptions->insert(::std::make_pair(cpp_token::TOK_PUBLIC,"TOK_PUBLIC"));
00172                 descriptions->insert(::std::make_pair(cpp_token::TOK_REGISTER,"TOK_REGISTER"));
00173                 descriptions->insert(::std::make_pair(cpp_token::TOK_REINTERPRET_CAST,"TOK_REINTERPRET_CAST"));
00174                 descriptions->insert(::std::make_pair(cpp_token::TOK_RETURN,"TOK_RETURN"));
00175                 descriptions->insert(::std::make_pair(cpp_token::TOK_SHORT,"TOK_SHORT"));
00176                 descriptions->insert(::std::make_pair(cpp_token::TOK_SIGNED,"TOK_SIGNED"));
00177                 descriptions->insert(::std::make_pair(cpp_token::TOK_SIZEOF,"TOK_SIZEOF"));
00178                 descriptions->insert(::std::make_pair(cpp_token::TOK_STATIC,"TOK_STATIC"));
00179                 descriptions->insert(::std::make_pair(cpp_token::TOK_STATIC_CAST,"TOK_STATIC_CAST"));
00180                 descriptions->insert(::std::make_pair(cpp_token::TOK_STRUCT,"TOK_STRUCT"));
00181                 descriptions->insert(::std::make_pair(cpp_token::TOK_SWITCH,"TOK_SWITCH"));
00182                 descriptions->insert(::std::make_pair(cpp_token::TOK_TEMPLATE,"TOK_TEMPLATE"));
00183                 descriptions->insert(::std::make_pair(cpp_token::TOK_THIS,"TOK_THIS"));
00184                 descriptions->insert(::std::make_pair(cpp_token::TOK_THROW,"TOK_THROW"));
00185                 descriptions->insert(::std::make_pair(cpp_token::TOK_TRY,"TOK_TRY"));
00186                 descriptions->insert(::std::make_pair(cpp_token::TOK_TYPEDEF,"TOK_TYPEDEF"));
00187                 descriptions->insert(::std::make_pair(cpp_token::TOK_TYPEID,"TOK_TYPEID"));
00188                 descriptions->insert(::std::make_pair(cpp_token::TOK_TYPENAME,"TOK_TYPENAME"));
00189                 descriptions->insert(::std::make_pair(cpp_token::TOK_UNION,"TOK_UNION"));
00190                 descriptions->insert(::std::make_pair(cpp_token::TOK_UNSIGNED,"TOK_UNSIGNED"));
00191                 descriptions->insert(::std::make_pair(cpp_token::TOK_USING,"TOK_USING"));
00192                 descriptions->insert(::std::make_pair(cpp_token::TOK_VIRTUAL,"TOK_VIRTUAL"));
00193                 descriptions->insert(::std::make_pair(cpp_token::TOK_VOID,"TOK_VOID"));
00194                 descriptions->insert(::std::make_pair(cpp_token::TOK_VOLATILE,"TOK_VOLATILE"));
00195                 descriptions->insert(::std::make_pair(cpp_token::TOK_WCHAR_T,"TOK_WCHAR_T"));
00196                 descriptions->insert(::std::make_pair(cpp_token::TOK_WHILE,"TOK_WHILE"));
00197                 descriptions->insert(::std::make_pair(cpp_token::TOK_IDENT,"TOK_IDENT"));
00198                 descriptions->insert(::std::make_pair(cpp_token::TOK_RIGHT_BRACKET,"TOK_RIGHT_BRACKET"));
00199                 descriptions->insert(::std::make_pair(cpp_token::TOK_LEFT_BRACKET,"TOK_LEFT_BRACKET"));
00200                 descriptions->insert(::std::make_pair(cpp_token::TOK_EXCLAMATION,"TOK_EXCLAMATION"));
00201                 descriptions->insert(::std::make_pair(cpp_token::TOK_TILDE,"TOK_TILDE"));
00202                 descriptions->insert(::std::make_pair(cpp_token::TOK_PERCENT,"TOK_PERCENT"));
00203                 descriptions->insert(::std::make_pair(cpp_token::TOK_SLASH,"TOK_SLASH"));
00204                 descriptions->insert(::std::make_pair(cpp_token::TOK_STAR,"TOK_STAR"));
00205                 descriptions->insert(::std::make_pair(cpp_token::TOK_MINUS,"TOK_MINUS"));
00206                 descriptions->insert(::std::make_pair(cpp_token::TOK_PLUS,"TOK_PLUS"));
00207                 descriptions->insert(::std::make_pair(cpp_token::TOK_GT,"TOK_GT"));
00208                 descriptions->insert(::std::make_pair(cpp_token::TOK_LT,"TOK_LT"));
00209                 descriptions->insert(::std::make_pair(cpp_token::TOK_AMP,"TOK_AMP"));
00210                 descriptions->insert(::std::make_pair(cpp_token::TOK_HAT,"TOK_HAT"));
00211                 descriptions->insert(::std::make_pair(cpp_token::TOK_VBAR,"TOK_VBAR"));
00212                 descriptions->insert(::std::make_pair(cpp_token::TOK_QMARK,"TOK_QMARK"));
00213                 descriptions->insert(::std::make_pair(cpp_token::TOK_COMMA,"TOK_COMMA"));
00214                 descriptions->insert(::std::make_pair(cpp_token::TOK_RIGHT_BRACE,"TOK_RIGHT_BRACE"));
00215                 descriptions->insert(::std::make_pair(cpp_token::TOK_LEFT_BRACE,"TOK_LEFT_BRACE"));
00216                 descriptions->insert(::std::make_pair(cpp_token::TOK_SEMICOLON,"TOK_SEMICOLON"));
00217                 descriptions->insert(::std::make_pair(cpp_token::TOK_RIGHT_PAR,"TOK_RIGHT_PAR"));
00218                 descriptions->insert(::std::make_pair(cpp_token::TOK_LEFT_PAR,"TOK_LEFT_PAR"));
00219                 descriptions->insert(::std::make_pair(cpp_token::TOK_EQ,"TOK_EQ"));
00220                 descriptions->insert(::std::make_pair(cpp_token::TOK_COLON,"TOK_COLON"));
00221                 descriptions->insert(::std::make_pair(cpp_token::TOK_DOT_DOT_DOT,"TOK_DOT_DOT_DOT"));
00222                 descriptions->insert(::std::make_pair(cpp_token::TOK_MINUS_GT,"TOK_MINUS_GT"));
00223                 descriptions->insert(::std::make_pair(cpp_token::TOK_MINUS_GT_STAR,"TOK_MINUS_GT_STAR"));
00224                 descriptions->insert(::std::make_pair(cpp_token::TOK_DOT_STAR,"TOK_DOT_STAR"));
00225                 descriptions->insert(::std::make_pair(cpp_token::TOK_GT_EQ,"TOK_GT_EQ"));
00226                 descriptions->insert(::std::make_pair(cpp_token::TOK_LT_EQ,"TOK_LT_EQ"));
00227                 descriptions->insert(::std::make_pair(cpp_token::TOK_EXCLAMATION_EQ,"TOK_EXCLAMATION_EQ"));
00228                 descriptions->insert(::std::make_pair(cpp_token::TOK_EQ_EQ,"TOK_EQ_EQ"));
00229                 descriptions->insert(::std::make_pair(cpp_token::TOK_AMP_AMP,"TOK_AMP_AMP"));
00230                 descriptions->insert(::std::make_pair(cpp_token::TOK_VBAR_VBAR,"TOK_VBAR_VBAR"));
00231                 descriptions->insert(::std::make_pair(cpp_token::TOK_GT_GT,"TOK_GT_GT"));
00232                 descriptions->insert(::std::make_pair(cpp_token::TOK_LT_LT,"TOK_LT_LT"));
00233                 descriptions->insert(::std::make_pair(cpp_token::TOK_MINUS_MINUS,"TOK_MINUS_MINUS"));
00234                 descriptions->insert(::std::make_pair(cpp_token::TOK_PLUS_PLUS,"TOK_PLUS_PLUS"));
00235                 descriptions->insert(::std::make_pair(cpp_token::TOK_LT_LT_EQ,"TOK_LT_LT_EQ"));
00236                 descriptions->insert(::std::make_pair(cpp_token::TOK_GT_GT_EQ,"TOK_GT_GT_EQ"));
00237                 descriptions->insert(::std::make_pair(cpp_token::TOK_VBAR_EQ,"TOK_VBAR_EQ"));
00238                 descriptions->insert(::std::make_pair(cpp_token::TOK_AMP_EQ,"TOK_AMP_EQ"));
00239                 descriptions->insert(::std::make_pair(cpp_token::TOK_HAT_EQ,"TOK_HAT_EQ"));
00240                 descriptions->insert(::std::make_pair(cpp_token::TOK_PERCENT_EQ,"TOK_PERCENT_EQ"));
00241                 descriptions->insert(::std::make_pair(cpp_token::TOK_SLASH_EQ,"TOK_SLASH_EQ"));
00242                 descriptions->insert(::std::make_pair(cpp_token::TOK_STAR_EQ,"TOK_STAR_EQ"));
00243                 descriptions->insert(::std::make_pair(cpp_token::TOK_MINUS_EQ,"TOK_MINUS_EQ"));
00244                 descriptions->insert(::std::make_pair(cpp_token::TOK_PLUS_EQ,"TOK_PLUS_EQ"));
00245                 descriptions->insert(::std::make_pair(cpp_token::TOK_COLON_COLON,"TOK_COLON_COLON"));
00246         }
00247 
00248         descriptions_type::iterator it = descriptions->find(type_get());
00249         lassert(it != descriptions->end());
00250         return it->second;
00251 }

ptr< cpp_token > lestes::lang::cplus::lex::cpp_token::create ( const location_type a_location,
const type_type a_type 
) [static]

Returns new token, initializes with token type.

Returns new token, initializes with token type.

Precondition:
a_type != TOK_LITERAL
Parameters:
a_location The location of the token.
a_type The type of token (syntactic class).
Returns:
New C++ token.

Definition at line 92 of file cpp_token.cc.

References cpp_token(), lassert, and TOK_LITERAL.

Referenced by lestes::lang::cplus::lex::preprocessor::read().

00093 {
00094         lassert(a_type != TOK_LITERAL);
00095         return new cpp_token(a_location,a_type,NULL,NULL);
00096 }

ptr< cpp_token > lestes::lang::cplus::lex::cpp_token::create ( const location_type a_location,
const type_type a_type,
const value_type a_value 
) [static]

Returns new token, initializes with token type and value.

Returns new token, initializes with token type and value.

Precondition:
a_type != TOK_LITERAL
Parameters:
a_type The type of token (syntactic class).
a_location The location of the token.
Returns:
New C++ token.

Definition at line 105 of file cpp_token.cc.

References cpp_token(), lassert, and TOK_LITERAL.

00107 {
00108         lassert(a_type != TOK_LITERAL);
00109         return new cpp_token(a_location,a_type,a_value,NULL);
00110 }

static ptr<cpp_token> lestes::lang::cplus::lex::cpp_token::create_literal ( const location_type a_location,
const literal_type a_literal,
const value_type a_value 
) [static]

Returns new literal token, initializes with literal properties and value.

Referenced by lestes::lang::cplus::lex::preprocessor::read().

ptr< object::reflection_list > lestes::lang::cplus::lex::cpp_token::reflection_get ( void   )  const [virtual]

Returns list of reflection info.

Returns reflection list for cpp_token.

Returns:
The reflection list.

Reimplemented from lestes::std::object.

Definition at line 266 of file cpp_token.cc.

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

00267 {
00268         if (!reflection) {
00269                 typedef class_reflection::field_metadata md;
00270                 typedef class_reflection::field_metadata_list mdlist;
00271                 ptr<mdlist> mdl = mdlist::create();
00272                 mdl->push_back(md::create("type","lstring"));
00273                 mdl->push_back(md::create("value","ucn_string"));
00274                 reflection = reflection_list::create(object::reflection_get());
00275                 reflection->push_back(class_reflection::create("cpp_token",mdl));
00276         }
00277         return reflection;
00278 }

ptr< object::field_list_list > lestes::lang::cplus::lex::cpp_token::field_values_get ( void   )  const [virtual]

Returns list of field values.

Returns values of the fields.

Returns:
List of field values.

Reimplemented from lestes::std::object.

Definition at line 284 of file cpp_token.cc.

References lestes::std::list< T >::create(), description_get(), and lestes::lang::cplus::lex::basic_token< int, ptr< source_location >, ptr< token_value > >::value_get().

00285 {
00286         ptr<field_list_list> result = object::field_values_get();
00287         result->push_back(value_list::create());
00288         result->back()->push_back(objectize<lstring>::create(description_get()));
00289         result->push_back(value_list::create());
00290         ptr<token_value> tv = value_get();
00291         if (tv) {
00292                 result->back()->push_back(objectize<ucn_string>::create(tv->content_get()));
00293         } else {
00294                 result->back()->push_back(NULL);
00295         }
00296         return result;
00297 }

void lestes::lang::cplus::lex::cpp_token::gc_mark ( void   )  [protected, virtual]

Marks the object.

Marks the object.

Reimplemented from lestes::lang::cplus::lex::basic_token< int, ptr< source_location >, ptr< token_value > >.

Definition at line 256 of file cpp_token.cc.

References lestes::lang::cplus::lex::basic_token< int, ptr< source_location >, ptr< token_value > >::gc_mark(), and literal.

00257 {
00258         literal.gc_mark();
00259         basic_cpp_token::gc_mark();
00260 }

cpp_token& lestes::lang::cplus::lex::cpp_token::operator= ( const cpp_token  )  [private]

Hides assignment operator.


Member Data Documentation

srp<lex_literal> lestes::lang::cplus::lex::cpp_token::literal [private]

Literal information for semantic analysis.

Definition at line 96 of file cpp_token.hh.

Referenced by gc_mark(), and literal_get().

ptr< cpp_token::descriptions_type > lestes::lang::cplus::lex::cpp_token::descriptions = descriptions [static, private]

Token descriptions.

Descriptions of tokens.

Definition at line 98 of file cpp_token.hh.

Referenced by description_get().

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

The reflection information.

Reflection list for token.

Reimplemented from lestes::std::object.

Definition at line 100 of file cpp_token.hh.

Referenced by reflection_get().


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