#ifndef FZL_READER_H #define FZL_READER_H #include #include #include #include #include // 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; fzl_linked_t *linked; char *source; size_t size; size_t position; } fzl_reader_t; // Allocate new reader fzl_reader_t *fzl_mkreader(fzl_linked_t *linked); // 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