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

40 lines
703 B
C

#ifndef FZL_READER_H
#define FZL_READER_H
#include <compiler/fzl_token.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
// Tokens linked list descriptor
typedef struct fzl_reader_ll
{
fzl_token_t *token;
struct fzl_reader_ll *next;
} fzl_reader_ll_t;
// Source reader description
typedef struct
{
fzl_reader_ll_t *first;
fzl_reader_ll_t *last;
char *source;
size_t position;
bool at_end;
} fzl_reader_t;
// Allocate new reader
fzl_reader_t *fzl_mkreader(char *source);
// Read source file
int fzl_read(fzl_reader_t *reader);
// Get last error from reader
char *fzl_reader_geterror();
// Free reader
void fzl_freereader(fzl_reader_t *reader);
#endif // FZL_READER_H