Files
fz-lang/include/compiler/fzl_token.h
T
2026-10-09 23:01:19 +03:00

37 lines
672 B
C

#ifndef FZL_TOKEN_H
#define FZL_TOKEN_H
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
// Token type
typedef enum
{
FZL_TOKTYPE_NAME,
FZL_TOKTYPE_LPAIR,
FZL_TOKTYPE_RPAIR,
FZL_TOKTYPE_COMMA,
FZL_TOKTYPE_STR_LITERAL
} fzl_toktype_t;
// Token descriptor
typedef struct
{
fzl_toktype_t type;
uint16_t i0;
uint16_t i1;
bool store_value;
void *value;
uint16_t value_sz;
} fzl_token_t;
// Allocate new token
fzl_token_t *fzl_mktoken(const fzl_toktype_t type, uint16_t from, uint16_t to,
void *value, size_t value_sz);
// Free token and its contents
void fzl_freetoken(fzl_token_t *token);
#endif // FZL_TOKEN_H