more macros
This commit is contained in:
13
tokenizer.h
13
tokenizer.h
@@ -4,7 +4,7 @@
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define FOREACH_TOKENIZER_TAG_ENUM(TAG) \
|
||||
#define TOKENIZER_FOREACH_TAG_ENUM(TAG) \
|
||||
TAG(TOKENIZER_TAG_INVALID) \
|
||||
TAG(TOKENIZER_TAG_INVALID_PERIODASTERISKS) \
|
||||
TAG(TOKENIZER_TAG_IDENTIFIER) \
|
||||
@@ -128,16 +128,15 @@
|
||||
TAG(TOKENIZER_TAG_KEYWORD_VOLATILE) \
|
||||
TAG(TOKENIZER_TAG_KEYWORD_WHILE)
|
||||
|
||||
#define GENERATE_ENUM(ENUM) ENUM,
|
||||
#define GENERATE_STRING(STRING) #STRING,
|
||||
#define TOKENIZER_GENERATE_ENUM(ENUM) ENUM,
|
||||
#define TOKENIZER_GENERATE_CASE(ENUM) case ENUM: return #ENUM;
|
||||
|
||||
// First define the enum
|
||||
typedef enum {
|
||||
FOREACH_TOKENIZER_TAG_ENUM(GENERATE_ENUM)
|
||||
TOKENIZER_FOREACH_TAG_ENUM(TOKENIZER_GENERATE_ENUM)
|
||||
} TokenizerTag;
|
||||
|
||||
static const char* tokenizerTagString[] = {
|
||||
FOREACH_TOKENIZER_TAG_ENUM(GENERATE_STRING)
|
||||
};
|
||||
const char* tokenizerGetTagString(TokenizerTag tag);
|
||||
|
||||
typedef enum {
|
||||
TOKENIZER_STATE_START,
|
||||
|
||||
Reference in New Issue
Block a user