From 08b8cbbccd8c8d7dab75746ee9d134f67455de91 Mon Sep 17 00:00:00 2001 From: hachem Date: Sat, 19 Sep 2026 11:01:51 +0200 Subject: feat: start work on ast --- ast.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 ast.h (limited to 'ast.h') diff --git a/ast.h b/ast.h new file mode 100644 index 0000000..1a6f159 --- /dev/null +++ b/ast.h @@ -0,0 +1,27 @@ +#pragma once + +enum NodeKind +{ + NODE_CHAR, + TYPE_DECLTYPE, + VALUE_DIFFERENCE, + STMT_EMIT +}; + +struct Node +{ + enum NodeKind kind; + int line; + char character; + struct Node* first; + struct Node* second; + struct Node* next; +}; + +struct Node* node_leaf(enum NodeKind kind); +struct Node* node_char(char character); +struct Node* node_unary(enum NodeKind kind, struct Node* first); +struct Node* node_binary(enum NodeKind kind, struct Node* first, struct Node* second); + +struct Node* node_append(struct Node* list, struct Node* node); +void node_free(struct Node* node); -- cgit v1.3