Program Listing for File lexerbase.h#

Return to documentation for file (sdv_idl_compiler\lexerbase.h)

#ifndef LEXERBASE_H
#define LEXERBASE_H

enum class ETokenType
{
    token_none,
    token_whitespace,
    token_comments,
    token_identifier,
    token_keyword,
    token_literal,
    token_separator,
    token_operator,
    token_meta,
};

enum class ETokenLiteralType
{
    token_undefined,
    token_literal_dec_integer,
    token_literal_oct_integer,
    token_literal_hex_integer,
    token_literal_bin_integer,
    token_literal_dec_floating_point,
    token_literal_hex_floating_point,
    token_literal_fixed_point,
    token_literal_string,
    token_literal_raw_string,
    token_literal_character,
    token_literal_character_sequence,
    token_literal_boolean,
    token_literal_nullptr,
};

enum class ETokenMetaType
{
    token_undefined,
    token_meta_include_local,
    token_meta_include_global,
    token_meta_define,
    token_meta_undef,
    token_meta_verbatim,
};

// Forward declarations
class CToken;
class CCodePos;

struct ILexerCallback
{
    virtual void InsertWhitespace(const CToken &rtoken) = 0;

    virtual void InsertComment(const CToken& rtoken) = 0;

    virtual void ProcessPreprocDirective(CCodePos& rCode) = 0;
};




#endif // !defined LEXERBASE_H