lestes::lang::cplus::lex::line_join Class Reference

Line joining filter. More...

#include <line_join.hh>

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

Inheritance graph
[legend]
List of all members.

Public Member Functions

ptr< ucn_tokenread (void)
 Reads next token.

Static Public Member Functions

static ptr< line_joincreate (void)
 Returns new instance.

Protected Member Functions

 line_join (void)
 Creates the object.
virtual void gc_mark (void)
 Marks the object.

Private Types

enum  state_type { START = 0, BACKSLASH = 1, SAVED = 2, AFTER = 3 }
 States of the processor. More...

Private Member Functions

 line_join (const line_join &)
 Hides copy constructor.
line_joinoperator= (const line_join &)
 Hides assignment operator.

Private Attributes

state_type state
 Current state of the processor.
srp< ucn_tokensaved
 Buffered token.

Detailed Description

Line joining filter.

Performs joining of lines ending with backslash.


Member Enumeration Documentation

enum lestes::lang::cplus::lex::line_join::state_type [private]

States of the processor.

Enumerator:
START  No tokens in buffer.
BACKSLASH  Backslash in buffer.
SAVED  Ordinary character in buffer.
AFTER  After discarding the pair.


Constructor & Destructor Documentation

lestes::lang::cplus::lex::line_join::line_join ( void   )  [protected]

Creates the object.

Creates the object.

Postcondition:
state == START

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

Hides copy constructor.


Member Function Documentation

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

Reads next token.

Reads next token, discards backslash newline sequences. If backslash newline is encountered before EOF, the newline is returned to avoid reporting no newline at the end of file.

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

ptr< line_join > lestes::lang::cplus::lex::line_join::create ( void   )  [static]

Returns new instance.

Returns new instance.

Returns:
New instance of the class.

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

Marks the object.

Marks the object.

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

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

Hides assignment operator.


Member Data Documentation

state_type lestes::lang::cplus::lex::line_join::state [private]

Current state of the processor.

srp<ucn_token> lestes::lang::cplus::lex::line_join::saved [private]

Buffered token.


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