#ifndef SK_TOKEN_H #define SK_TOKEN_H #include "commons.h" #define TOKEN_KIND(G) \ G(TOKEN_ROOT), \ G(TOKEN_INT), \ G(TOKEN_ADD), G(TOKEN_SUB), \ G(TOKEN_MUL), G(TOKEN_DIV), G(TOKEN_MOD), \ G(TOKEN_POW), G(TOKEN_OPAR), G(TOKEN_CPAR) SK_ENUM_H(TokenKind, TOKEN_KIND); struct token { TokenKind kind; char* value; int line; }; void token_init(struct token* self, TokenKind kind, char const* value, int line); void token_free(struct token* self); void token_str(struct token* self, struct str* dest); #endif