skopy/lib/include/token.h

33 lines
614 B
C

#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), \
G(TOKEN_ASSERT), G(TOKEN_ASSERT_EQ)
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