api refactoring
[m6w6/ext-psi] / src / types / let_stmt.h
1 #ifndef _PSI_TYPES_LET_STMT_H
2 #define _PSI_TYPES_LET_STMT_H
3
4 typedef struct let_stmt {
5 decl_var *var;
6 let_val *val;
7 } let_stmt;
8
9 static inline let_stmt *init_let_stmt(decl_var *var, let_val *val) {
10 let_stmt *let = calloc(1, sizeof(*let));
11 let->var = var;
12 let->val = val;
13 return let;
14 }
15
16 static inline void free_let_stmt(let_stmt *stmt) {
17 if (stmt->val) {
18 if (stmt->val->kind == PSI_LET_TMP && stmt->var->arg) {
19 free_decl_arg(stmt->var->arg);
20 }
21 free_let_val(stmt->val);
22 }
23 free_decl_var(stmt->var);
24 free(stmt);
25 }
26
27 #endif