lestes::lang::cplus::lex::lex_integral_literal Class Reference

Integral literal. More...

#include <lex_literal.g.hh>

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

lestes::lang::cplus::lex::lex_literal lestes::std::object lestes::std::mem::keystone List of all members.

Public Types

enum  base_type { DECIMAL, OCTAL, HEXADECIMAL }
 Base type. More...
enum  suffix_type { NONE, UNSIGNED, LONG, UNSIGNED_LONG }
 Suffix type. More...

Public Member Functions

base_type base_get () const
 The method base_get returns the value of the field lex_integral_literal::base.
void base_set (base_type)
 The method base_set sets the field lex_integral_literal::base to the given value.
suffix_type suffix_get () const
 The method suffix_get returns the value of the field lex_integral_literal::suffix.
void suffix_set (suffix_type)
 The method suffix_set sets the field lex_integral_literal::suffix to the given value.
ulint start_get () const
 The method start_get returns the value of the field lex_integral_literal::start.
void start_set (ulint)
 The method start_set sets the field lex_integral_literal::start to the given value.
ulint end_get () const
 The method end_get returns the value of the field lex_integral_literal::end.
void end_set (ulint)
 The method end_set sets the field lex_integral_literal::end to the given value.
virtual void accept_lex_literal_visitor (ptr< lex_literal_visitor > 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< lex_integral_literalcreate (base_type a__lex_integral_literal__base, suffix_type a__lex_integral_literal__suffix, ulint a__lex_integral_literal__start, ulint a__lex_integral_literal__end)
 First generated factory method for class lex_integral_literal.

Protected Member Functions

 lex_integral_literal (base_type a__lex_integral_literal__base, suffix_type a__lex_integral_literal__suffix, ulint a__lex_integral_literal__start, ulint a__lex_integral_literal__end)
 Generated constructor for class lex_integral_literal.
virtual void gc_mark ()
 Marking routine for class lex_integral_literal.

Private Attributes

base_type base
 Base.
suffix_type suffix
 Suffix.
ulint start
 Start of value.
ulint end
 End of value.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Integral literal.

Represents integral literal properties necessary to determine the data type and numeric value. The associated value is the original number in the specified base with suffixes.

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


Member Enumeration Documentation

enum lestes::lang::cplus::lex::lex_integral_literal::base_type

Base type.

Enumerator:
DECIMAL 
OCTAL 
HEXADECIMAL 

Definition at line 85 of file lex_literal.g.hh.

00085                        {
00086                 DECIMAL,
00087                 OCTAL,
00088                 HEXADECIMAL
00089         };

enum lestes::lang::cplus::lex::lex_integral_literal::suffix_type

Suffix type.

Types of literal suffix.

Enumerator:
NONE 
UNSIGNED 
LONG 
UNSIGNED_LONG 

Definition at line 94 of file lex_literal.g.hh.

00094                          {
00095                 NONE,
00096                 UNSIGNED,
00097                 LONG,
00098                 UNSIGNED_LONG
00099         };


Constructor & Destructor Documentation

lestes::lang::cplus::lex::lex_integral_literal::lex_integral_literal ( base_type  a__lex_integral_literal__base,
suffix_type  a__lex_integral_literal__suffix,
ulint  a__lex_integral_literal__start,
ulint  a__lex_integral_literal__end 
) [protected]

Generated constructor for class lex_integral_literal.

Generated constructor for class lex_integral_literal.

Author:
lsg

Definition at line 164 of file lex_literal.g.cc.

Referenced by create().

00168         : lex_literal(), base(a__lex_integral_literal__base), suffix(a__lex_integral_literal__suffix), start(a__lex_integral_literal__start), end(a__lex_integral_literal__end)
00169 {}


Member Function Documentation

lex_integral_literal::base_type lestes::lang::cplus::lex::lex_integral_literal::base_get (  )  const

The method base_get returns the value of the field lex_integral_literal::base.

Returns:
The value of lex_integral_literal::base.
Author:
lsg

Definition at line 72 of file lex_literal.g.cc.

References base.

00073 {
00074         return base;
00075 }

void lestes::lang::cplus::lex::lex_integral_literal::base_set ( base_type  x  ) 

The method base_set sets the field lex_integral_literal::base to the given value.

Parameters:
[in] x The new value to set lex_integral_literal::base to.
Author:
lsg

Definition at line 81 of file lex_literal.g.cc.

References base.

00082 {
00083         lex_integral_literal::base = x;
00084 }

lex_integral_literal::suffix_type lestes::lang::cplus::lex::lex_integral_literal::suffix_get (  )  const

The method suffix_get returns the value of the field lex_integral_literal::suffix.

Returns:
The value of lex_integral_literal::suffix.
Author:
lsg

Definition at line 90 of file lex_literal.g.cc.

References suffix.

00091 {
00092         return suffix;
00093 }

void lestes::lang::cplus::lex::lex_integral_literal::suffix_set ( suffix_type  x  ) 

The method suffix_set sets the field lex_integral_literal::suffix to the given value.

Parameters:
[in] x The new value to set lex_integral_literal::suffix to.
Author:
lsg

Definition at line 99 of file lex_literal.g.cc.

References suffix.

00100 {
00101         lex_integral_literal::suffix = x;
00102 }

ulint lestes::lang::cplus::lex::lex_integral_literal::start_get (  )  const

The method start_get returns the value of the field lex_integral_literal::start.

Returns:
The value of lex_integral_literal::start.
Author:
lsg

Definition at line 108 of file lex_literal.g.cc.

References start.

00109 {
00110         return start;
00111 }

void lestes::lang::cplus::lex::lex_integral_literal::start_set ( ulint  x  ) 

The method start_set sets the field lex_integral_literal::start to the given value.

Parameters:
[in] x The new value to set lex_integral_literal::start to.
Author:
lsg

Definition at line 117 of file lex_literal.g.cc.

References start.

00118 {
00119         lex_integral_literal::start = x;
00120 }

ulint lestes::lang::cplus::lex::lex_integral_literal::end_get (  )  const

The method end_get returns the value of the field lex_integral_literal::end.

Returns:
The value of lex_integral_literal::end.
Author:
lsg

Definition at line 126 of file lex_literal.g.cc.

References end.

00127 {
00128         return end;
00129 }

void lestes::lang::cplus::lex::lex_integral_literal::end_set ( ulint  x  ) 

The method end_set sets the field lex_integral_literal::end to the given value.

Parameters:
[in] x The new value to set lex_integral_literal::end to.
Author:
lsg

Definition at line 135 of file lex_literal.g.cc.

References end.

00136 {
00137         lex_integral_literal::end = x;
00138 }

void lestes::lang::cplus::lex::lex_integral_literal::accept_lex_literal_visitor ( ptr< lex_literal_visitor v  )  [virtual]

Implements lestes::lang::cplus::lex::lex_literal.

Definition at line 140 of file lex_literal.g.cc.

00141 {
00142         return v->visit_lex_integral_literal( this );
00143 }

ptr< lex_integral_literal > lestes::lang::cplus::lex::lex_integral_literal::create ( base_type  a__lex_integral_literal__base,
suffix_type  a__lex_integral_literal__suffix,
ulint  a__lex_integral_literal__start,
ulint  a__lex_integral_literal__end 
) [static]

First generated factory method for class lex_integral_literal.

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

Author:
lsg

Definition at line 149 of file lex_literal.g.cc.

References lex_integral_literal().

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

00153 {
00154         return ptr< lex_integral_literal > ( new lex_integral_literal(a__lex_integral_literal__base,
00155                 a__lex_integral_literal__suffix,
00156                 a__lex_integral_literal__start,
00157                 a__lex_integral_literal__end) );
00158 }

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

for purposes of dumping

Reimplemented from lestes::lang::cplus::lex::lex_literal.

Definition at line 171 of file lex_literal.g.cc.

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

00172 {
00173         if (!reflection) {
00174                 typedef class_reflection::field_metadata md;
00175                 typedef class_reflection::field_metadata_list mdlist;
00176                 ptr<mdlist> mdl = mdlist::create();
00177                 mdl->push_back( md::create( "base", "base_type" ) );
00178                 mdl->push_back( md::create( "suffix", "suffix_type" ) );
00179                 mdl->push_back( md::create( "start", "ulint" ) );
00180                 mdl->push_back( md::create( "end", "ulint" ) );
00181                 reflection = reflection_list::create( lex_literal::reflection_get() );
00182                 reflection->push_back( class_reflection::create( "lex_integral_literal", mdl ) );
00183         }
00184         return reflection;
00185 }

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

for purposes of dumping

Reimplemented from lestes::lang::cplus::lex::lex_literal.

Definition at line 187 of file lex_literal.g.cc.

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

00188 {
00189         ptr < field_list_list > result = lex_literal::field_values_get();
00190         result->push_back( value_list::create() );
00191         result->back()->push_back( objectize< base_type > ::create( this->base ) );
00192         result->push_back( value_list::create() );
00193         result->back()->push_back( objectize< suffix_type > ::create( this->suffix ) );
00194         result->push_back( value_list::create() );
00195         result->back()->push_back( objectize< ulint > ::create( this->start ) );
00196         result->push_back( value_list::create() );
00197         result->back()->push_back( objectize< ulint > ::create( this->end ) );
00198         return result;
00199 }

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

Marking routine for class lex_integral_literal.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::lang::cplus::lex::lex_literal.

Definition at line 206 of file lex_literal.g.cc.

References lestes::lang::cplus::lex::lex_literal::gc_mark().

00207 {
00208         lex_literal::gc_mark();
00209 }


Member Data Documentation

base_type lestes::lang::cplus::lex::lex_integral_literal::base [private]

Base.

The numerical base of the literal.

Definition at line 157 of file lex_literal.g.hh.

Referenced by base_get(), and base_set().

suffix_type lestes::lang::cplus::lex::lex_integral_literal::suffix [private]

Suffix.

Suffix of the literal.

Definition at line 162 of file lex_literal.g.hh.

Referenced by suffix_get(), and suffix_set().

ulint lestes::lang::cplus::lex::lex_integral_literal::start [private]

Start of value.

Index pointing at the first digit of the value.

Definition at line 167 of file lex_literal.g.hh.

Referenced by start_get(), and start_set().

ulint lestes::lang::cplus::lex::lex_integral_literal::end [private]

End of value.

Definition at line 169 of file lex_literal.g.hh.

Referenced by end_get(), and end_set().

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

Reimplemented from lestes::lang::cplus::lex::lex_literal.

Definition at line 170 of file lex_literal.g.hh.

Referenced by reflection_get().


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