template class axl::lex::RagelLexer

#include <axl_lex_RagelLexer.h>

template <
    typename T,
    typename Token = StdRagelToken
    >
class RagelLexer:
    public axl::lex::Lexer,
    public axl::lex::Ragel
{
public:
    // enums

    enum GotoStateKind;

    // construction

    RagelLexer();

    // methods

    size_t
    getTokenizeLimit();

    void
    setTokenizeLimit(size_t tokenizeLimit);

    void
    create(
        int state,
        const sl::StringRef& filePath,
        const sl::StringRef& source,
        bool isBomNeeded = false
        );

    void
    create(
        const sl::StringRef& filePath,
        const sl::StringRef& source,
        bool isBomNeeded = false
        );

    const Token*
    expectToken(int tokenKind);

    void
    ensureSrcPosError();

    void
    gotoState(
        int state,
        const Token* token,
        GotoStateKind kind
        );

    void
    setLineCol(
        int line,
        int col
        );

    void
    setLineColOffset(
        int line,
        int col,
        size_t offset
        );

    void
    setLineCol(const LineCol& pos);

    void
    setLineColOffset(const LineColOffset& pos);
};

Inherited Members

public:
    // typedefs

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

    // fields

    uint_t m_channelMask;

    // 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);

    void
    setSource(
        const sl::StringRef& source,
        bool isBomNeeded = false
        );