28 lines
454 B
C
28 lines
454 B
C
|
#ifndef SK_TOKEN_H
|
||
|
#define SK_TOKEN_H
|
||
|
|
||
|
#include "commons.h"
|
||
|
|
||
|
#define TOKEN_KIND(G) \
|
||
|
G(TOKEN_ROOT), \
|
||
|
G(TOKEN_INT)
|
||
|
|
||
|
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
|