1e112a8a4aa01b904a20132fc06b2b858b397edb
4 void lambda_free(struct lambda
*t
)
9 free(t
->data
.identifier
);
12 free(t
->data
.abstraction
.ident
);
13 lambda_free(t
->data
.abstraction
.expr
);
16 lambda_free(t
->data
.application
.expr1
);
17 lambda_free(t
->data
.application
.expr2
);
24 struct lambda
*copy(struct lambda
*t
)
26 struct lambda
*c
= malloc(sizeof (struct lambda
));
30 c
->data
.identifier
= strdup(t
->data
.identifier
);
33 c
->data
.abstraction
.ident
= strdup(t
->data
.abstraction
.ident
);
34 c
->data
.abstraction
.expr
= copy(t
->data
.abstraction
.expr
);
37 c
->data
.application
.expr1
= copy(t
->data
.application
.expr1
);
38 c
->data
.application
.expr2
= copy(t
->data
.application
.expr2
);