wip: working on classes

This commit is contained in:
samsonium
2026-10-15 21:41:45 +03:00
parent 69b2253c34
commit 683dd08181
6 changed files with 532 additions and 276 deletions
+12 -2
View File
@@ -70,7 +70,15 @@ fzl_token_t *parse_name(fzl_reader_t *reader)
return NULL;
}
if (strcmp(value, "return") == 0)
if (strcmp(value, "class") == 0)
tok =
fzl_mktoken(FZL_TOKTYPE_CLASS, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "new") == 0)
tok = fzl_mktoken(FZL_TOKTYPE_NEW, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "fn") == 0)
tok = fzl_mktoken(FZL_TOKTYPE_FUNCTION, l.line, l.col, value, size,
l.filename);
else if (strcmp(value, "return") == 0)
tok =
fzl_mktoken(FZL_TOKTYPE_RETURN, l.line, l.col, value, size, l.filename);
else if (strcmp(value, "if") == 0)
@@ -86,7 +94,7 @@ fzl_token_t *parse_name(fzl_reader_t *reader)
strcmp(value, "i16") == 0 || strcmp(value, "i32") == 0 ||
strcmp(value, "i64") == 0 || strcmp(value, "u8") == 0 ||
strcmp(value, "u16") == 0 || strcmp(value, "u32") == 0 ||
strcmp(value, "u64") == 0)
strcmp(value, "u64") == 0 || strcmp(value, "null") == 0)
tok = fzl_mktoken(FZL_TOKTYPE_TYPE, l.line, l.col, value, size, l.filename);
else
tok = fzl_mktoken(FZL_TOKTYPE_NAME, l.line, l.col, value, size, l.filename);
@@ -286,6 +294,8 @@ int fzl_read(fzl_reader_t *reader)
token = add_single(reader, FZL_TOKTYPE_RPAREN);
else if (curr == ',')
token = add_single(reader, FZL_TOKTYPE_COMMA);
else if (curr == '.')
token = add_single(reader, FZL_TOKTYPE_DOT);
else if (curr == '*')
token = add_single(reader, FZL_TOKTYPE_STAR);
else if (curr == '/')