Initial commit
[lambda.git] / mem.c
1 #include <stdlib.h>
2 #include "lambda.h"
3
4 void lambda_free(struct lambda *t)
5 {
6 if(t != NULL){
7 switch(t->which){
8 case lambda_ident:
9 free(t->data.identifier);
10 break;
11 case lambda_abs:
12 free(t->data.abstraction.ident);
13 lambda_free(t->data.abstraction.expr);
14 break;
15 case lambda_app:
16 lambda_free(t->data.application.expr1);
17 lambda_free(t->data.application.expr2);
18 break;
19 }
20 }
21 free(t);
22 }