lestes::lang::cplus::lex::space_remover Class Reference

Whitespace remover. More...

#include <space_remover.hh>

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

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

Public Member Functions

virtual ptr< pp_tokenread (void)
 Reads single token.

Static Public Member Functions

static ptr< space_removercreate (const ptr< pp_filter > &a_input)
 Returns new object.

Protected Member Functions

 space_remover (const ptr< pp_filter > &a_input)
 Creates new object.

Private Member Functions

 space_remover (const space_remover &copy)
 Hides copy constructor.
space_removeroperator= (const space_remover &rhs)
 Hides assignment operator.

Detailed Description

Whitespace remover.

Represents remover of whitespace preprocessing tokens.

Definition at line 49 of file space_remover.hh.


Constructor & Destructor Documentation

lestes::lang::cplus::lex::space_remover::space_remover ( const ptr< pp_filter > &  a_input  )  [protected]

Creates new object.

Creates new remover.

Precondition:
a_input != NULL
Parameters:
a_input The input for the filter.

Definition at line 47 of file space_remover.cc.

Referenced by create().

00047                                                          :
00048         pp_filter(checked(a_input))
00049 {
00050 }

lestes::lang::cplus::lex::space_remover::space_remover ( const space_remover copy  )  [private]

Hides copy constructor.


Member Function Documentation

ptr< pp_token > lestes::lang::cplus::lex::space_remover::read ( void   )  [virtual]

Reads single token.

Reads next token, skips whitespace, i.e. pp_token::TOK_LINE_END and pp_token::TOK_BLANK

Returns:
The next non-whitespace token in the stream.

Implements lestes::lang::cplus::lex::pp_filter.

Definition at line 56 of file space_remover.cc.

References lestes::lang::cplus::lex::pp_filter::input_read(), lestes::lang::cplus::lex::pp_token::TOK_BLANK, and lestes::lang::cplus::lex::pp_token::TOK_LINE_END.

00057 {
00058         ptr<pp_token> tok;
00059         pp_token_type ppt;
00060         
00061         do {
00062                 tok = input_read();
00063                 ppt = tok->type_get();
00064         } while (ppt == pp_token::TOK_LINE_END || ppt == pp_token::TOK_BLANK);
00065         return tok;
00066 }

ptr< space_remover > lestes::lang::cplus::lex::space_remover::create ( const ptr< pp_filter > &  a_input  )  [static]

Returns new object.

Returns new remover.

Precondition:
a_input != NULL
Parameters:
a_input The input for the filter.
Returns:
A new instance of remover.

Definition at line 74 of file space_remover.cc.

References space_remover().

00075 {
00076         return new space_remover(a_input);
00077 }

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

Hides assignment operator.


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