feat: implement conditions

This commit is contained in:
samsonium
2026-10-14 19:56:27 +03:00
parent 4a908f9fd8
commit 83ff0b5774
11 changed files with 731 additions and 25 deletions
+21
View File
@@ -12,6 +12,7 @@ typedef enum
FZL_NODETYPE_CALL,
FZL_NODETYPE_LITERAL,
FZL_NODETYPE_IDENTIFIER,
FZL_NODETYPE_CONDITIONAL,
FZL_NODETYPE_ADD,
FZL_NODETYPE_SUB,
@@ -23,6 +24,18 @@ typedef enum
FZL_NODETYPE_UNARY_PLUS,
FZL_NODETYPE_UNARY_MINUS,
FZL_NODETYPE_OR,
FZL_NODETYPE_AND,
FZL_NODETYPE_EQUAL,
FZL_NODETYPE_NEQUAL,
FZL_NODETYPE_LESS,
FZL_NODETYPE_LESS_EQUAL,
FZL_NODETYPE_GREATER,
FZL_NODETYPE_GREATER_EQUAL,
FZL_NODETYPE_NOT,
FZL_NODETYPE_DECLARATION,
FZL_NODETYPE_ASSIGN
} fzl_nodetype_t;
@@ -72,6 +85,14 @@ typedef struct fzl_node
fzl_token_t *type;
struct fzl_node *identifier;
} var;
// Conditional blocks
struct
{
struct fzl_node *condition;
struct fzl_node *true_block;
struct fzl_node *else_block;
} cond;
};
} fzl_node_t;