feat: implement extern block reading and parsing

This commit is contained in:
samsonium
2026-10-29 22:13:28 +03:00
parent 0448be0d38
commit f769313169
13 changed files with 719 additions and 3 deletions
+21
View File
@@ -1,3 +1,4 @@
#include "compiler/fzl_token.h"
#include <compiler/fzl_reader.h>
#include <compiler/internals/reader.h>
#include <stdio.h>
@@ -38,6 +39,26 @@ fzl_token_t *rd_name(fzl_reader_t *reader)
if (strcmp(value, "class") == 0)
tok =
fzl_mktoken(FZL_TOKTYPE_CLASS, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "import") == 0)
tok =
fzl_mktoken(FZL_TOKTYPE_IMPORT, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "extern") == 0)
tok =
fzl_mktoken(FZL_TOKTYPE_EXTERN, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "type") == 0)
tok = fzl_mktoken(FZL_TOKTYPE_TYPEDEF, l.line, l.col, value, size,
l.filename);
else if (strcmp(value, "handle") == 0)
tok =
fzl_mktoken(FZL_TOKTYPE_HANDLE, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "struct") == 0)
tok =
fzl_mktoken(FZL_TOKTYPE_STRUCT, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "ref") == 0)
tok = fzl_mktoken(FZL_TOKTYPE_REFERENCE, l.line, l.col, value, size,
l.filename);
else if (strcmp(value, "out") == 0)
tok = fzl_mktoken(FZL_TOKTYPE_OUT, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "for") == 0)
tok = fzl_mktoken(FZL_TOKTYPE_FOR, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "while") == 0)