template struct axl::lex::Token

#include <axl_lex_Token.h>

template <
    typename TokenKind0,
    typename Name0,
    typename Data0 = StdTokenData,
    typename Pos0 = LineCol
    >
struct Token
{
    // typedefs

    typedef TokenKind0 TokenKind;
    typedef Name0 Name;
    typedef Data0 Data;
    typedef Pos0 Pos;

    // fields

    union
    {
        int m_token;
        TokenKind m_tokenKind;
        char m_charToken;
        wchar_t m_WCharToken;
    };

    uint_t m_channelMask;
    uint_t m_flags;
    Data m_data;
    Pos m_pos;

    // construction

    Token();

    // methods

    const char*
    getName() const;

    static
    const char*
    getName(int token);
};