antlr::TokenStreamSelector Class Reference

#include <TokenStreamSelector.hpp>

Inheritance diagram for antlr::TokenStreamSelector:
[legend]
Collaboration diagram for antlr::TokenStreamSelector:
[legend]

List of all members.

Public Member Functions

 TokenStreamSelector ()
 ~TokenStreamSelector ()
void addInputStream (TokenStream *stream, const std::string &key)
TokenStreamgetCurrentStream () const
 Return the stream from which tokens are being pulled at the moment.
TokenStreamgetStream (const std::string &sname) const
RefToken nextToken ()
TokenStreampop ()
void push (TokenStream *stream)
void push (const std::string &sname)
void retry ()
void select (TokenStream *stream)
void select (const std::string &sname)

Protected Types

typedef std::map< std::string,
TokenStream * > 
inputStreamNames_coll
typedef std::stack< TokenStream * > streamStack_coll

Protected Attributes

inputStreamNames_coll inputStreamNames
TokenStreaminput
streamStack_coll streamStack

Detailed Description

A token stream MUX (multiplexor) knows about n token streams and can multiplex them onto the same channel for use by token stream consumer like a parser. This is a way to have multiple lexers break up the same input stream for a single parser. Or, you can have multiple instances of the same lexer handle multiple input streams; this works great for includes.


Member Typedef Documentation

typedef std ::map< std ::string,TokenStream*> antlr::TokenStreamSelector::inputStreamNames_coll [protected]

The set of inputs to the MUX

typedef std ::stack<TokenStream*> antlr::TokenStreamSelector::streamStack_coll [protected]

Used to track stack of input streams


Constructor & Destructor Documentation

antlr::TokenStreamSelector::TokenStreamSelector (  ) 

A token stream MUX (multiplexor) knows about n token streams and can multiplex them onto the same channel for use by token stream consumer like a parser. This is a way to have multiple lexers break up the same input stream for a single parser. Or, you can have multiple instances of the same lexer handle multiple input streams; this works great for includes.

antlr::TokenStreamSelector::~TokenStreamSelector (  ) 

Member Function Documentation

void antlr::TokenStreamSelector::addInputStream ( TokenStream stream,
const std::string &  key 
)
TokenStream * antlr::TokenStreamSelector::getCurrentStream (  )  const

Return the stream from which tokens are being pulled at the moment.

TokenStream * antlr::TokenStreamSelector::getStream ( const std::string &  sname  )  const
RefToken antlr::TokenStreamSelector::nextToken ( void   )  [virtual]

Implements antlr::TokenStream.

TokenStream * antlr::TokenStreamSelector::pop (  ) 
void antlr::TokenStreamSelector::push ( const std::string &  sname  ) 
void antlr::TokenStreamSelector::push ( TokenStream stream  ) 
void antlr::TokenStreamSelector::retry (  ) 

Abort recognition of current Token and try again. A stream can push a new stream (for include files for example, and then retry(), which will cause the current stream to abort back to this.nextToken(). this.nextToken() then asks for a token from the current stream, which is the new "substream."

void antlr::TokenStreamSelector::select ( const std::string &  sname  ) 
void antlr::TokenStreamSelector::select ( TokenStream stream  ) 

Set the stream without pushing old stream


Member Data Documentation

The currently-selected token stream input


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines

Generated on 16 Nov 2015 for ANTLR Support Libraries 2.7.1+ by  doxygen 1.6.1