- Add comments and test for it - Add semicolon as required end of some expressions - Add new arguments parser - Add multi-file compilation - Add colors in output
44 lines
776 B
C
44 lines
776 B
C
#ifndef FZL_READER_H
|
|
#define FZL_READER_H
|
|
|
|
#include <compiler/fzl_token.h>
|
|
#include <compiler/utils/fzl_linked.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;
|
|
|
|
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
|