more macros

This commit is contained in:
2024-12-23 21:52:35 +02:00
parent dcf7e86ba7
commit ef3ef64abd
7 changed files with 61 additions and 20 deletions

View File

@@ -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,