feat: implement lexer+parser for example program

This commit is contained in:
samsonium
2026-10-09 15:30:50 +03:00
parent a46f79d538
commit 45206e3d07
12 changed files with 776 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
#ifndef FZL_READER_H
#define FZL_READER_H
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <compiler/fzl_token.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