lestes::lang::cplus::lex::string_source Class Reference

String data source. More...

#include <string_source.hh>

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

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

Public Types

typedef lstring string_type
 Type of string.
typedef string_type::size_type index_type
 Type of index into the string.

Public Member Functions

ptr< ucn_tokenread (void)
 Reads one token from string.

Static Public Member Functions

static ptr< string_sourcecreate (const string_type &a_str)
 Returns new instance, initializes with string.

Protected Member Functions

 string_source (const string_type &a_str)
 Creates the object, initializes with string.

Private Member Functions

 string_source (const string_source &)
 Hides copy constructor.
string_sourceoperator= (const string_source &)
 Hides assignment operator.

Private Attributes

string_type str
 String to read from.
index_type idx
 Position in string.

Detailed Description

String data source.

Represents data source reading from host character string.

Definition at line 51 of file string_source.hh.


Member Typedef Documentation

typedef lstring lestes::lang::cplus::lex::string_source::string_type

Type of string.

Definition at line 54 of file string_source.hh.

typedef string_type::size_type lestes::lang::cplus::lex::string_source::index_type

Type of index into the string.

Definition at line 56 of file string_source.hh.


Constructor & Destructor Documentation

lestes::lang::cplus::lex::string_source::string_source ( const string_type a_str  )  [protected]

Creates the object, initializes with string.

Creates the object, initializes with string.

Postcondition:
offset == 0

idx = = 0

Parameters:
a_str The string with data.

Definition at line 49 of file string_source.cc.

Referenced by create().

00049                                                     :
00050         str(a_str),
00051         idx(0)
00052 {
00053 }

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

Hides copy constructor.


Member Function Documentation

ptr< ucn_token > lestes::lang::cplus::lex::string_source::read ( void   )  [virtual]

Reads one token from string.

Reads next token from string.

Returns:
The next character.

Implements lestes::lang::cplus::lex::ucn_filter.

Definition at line 59 of file string_source.cc.

References lestes::lang::cplus::lex::ucn_token::create(), idx, str, lestes::lang::cplus::lex::ucn_token::TOK_EOF, and lestes::lang::cplus::lex::ucn_token::TOK_NOT_EOF.

00060 {
00061         ptr<ucn_token> t;
00062 
00063         if (idx >= str.length()) {
00064                 t = ucn_token::create(ucn_token::TOK_EOF,character::create_external(0));
00065         } else {
00066                 // note that the meaning of real types is not clear at this stage
00067                 hchar c = str.at(idx);
00068                 idx++;
00069                 // do not interpret the encoding yet
00070                 t = ucn_token::create(ucn_token::TOK_NOT_EOF,character::create_external(static_cast<unsigned char>(c)));
00071         }
00072   
00073         return t;
00074 }

ptr< string_source > lestes::lang::cplus::lex::string_source::create ( const string_type a_str  )  [static]

Returns new instance, initializes with string.

Returns new instance, initializes with string.

Parameters:
a_str The source string.
Returns:
The new instance.

Definition at line 81 of file string_source.cc.

References string_source().

00082 {
00083         return new string_source(a_str);
00084 }

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

Hides assignment operator.


Member Data Documentation

string_type lestes::lang::cplus::lex::string_source::str [private]

String to read from.

Definition at line 70 of file string_source.hh.

Referenced by read().

index_type lestes::lang::cplus::lex::string_source::idx [private]

Position in string.

Definition at line 72 of file string_source.hh.

Referenced by read().


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