template class axl::lex::Lexer

#include <axl_lex_Lexer.h>

template <
    typename T,
    typename Token0
    >
class Lexer
{
public:
    // typedefs

    typedef Token0 Token;
    typedef Token::TokenKind TokenKind;
    typedef Token::Pos Pos;

    // fields

    uint_t m_channelMask;

    // construction

    Lexer();

    // methods

    void
    reset();

    const Token*
    getChannelToken(
        uint_t channelMask,
        size_t index = 0
        );

    void
    nextChannelToken(
        uint_t channelMask,
        size_t count = 1
        );

    const Token*
    getToken(size_t index = 0);

    void
    nextToken(size_t count = 1);
};