aboutsummaryrefslogtreecommitdiff
path: root/src/ast.c
diff options
context:
space:
mode:
authorFlavian Kaufmann <flavian@flaviankaufmann.ch>2025-05-20 14:18:30 +0200
committerFlavian Kaufmann <flavian@flaviankaufmann.ch>2025-05-20 14:18:30 +0200
commitfbbe2f207a26b410d485c9dea07a22256a02d50b (patch)
tree164e2d30f43bd25ecc7c3f6ca4d49d1c30f4f1a7 /src/ast.c
parent9cf524df8c94920d7c7058692f2f83a95a4006e0 (diff)
downloadimp-fbbe2f207a26b410d485c9dea07a22256a02d50b.tar.gz
imp-fbbe2f207a26b410d485c9dea07a22256a02d50b.zip
local variables
Diffstat (limited to 'src/ast.c')
-rw-r--r--src/ast.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ast.c b/src/ast.c
index 5460c87..83a55c6 100644
--- a/src/ast.c
+++ b/src/ast.c
@@ -88,6 +88,15 @@ ASTNode *ast_rop(ROp rop, ASTNode *aexp1, ASTNode *aexp2) {
return node;
}
+ASTNode *ast_let(ASTNode *var, ASTNode *aexp, ASTNode *stm) {
+ ASTNode *node = new_node(NT_LET);
+ node->u.d_let.var = var;
+ node->u.d_let.aexp = aexp;
+ node->u.d_let.stm = stm;
+ return node;
+}
+
+
void ast_free(ASTNode *node) {
if (!node) return;
switch (node->type) {