0792a970632cbab1d621b8428649592f22b12ad7
4 void lambda_free(struct lambda
*t
)
9 free(t
->data
.identifier
.ident
);
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
.ident
= strdup(t
->data
.identifier
.ident
);
31 c
->data
.identifier
.revision
= t
->data
.identifier
.revision
;
34 c
->data
.abstraction
.ident
= strdup(t
->data
.abstraction
.ident
);
35 c
->data
.abstraction
.expr
= copy(t
->data
.abstraction
.expr
);
36 c
->data
.abstraction
.revision
= t
->data
.abstraction
.revision
;
39 c
->data
.application
.expr1
= copy(t
->data
.application
.expr1
);
40 c
->data
.application
.expr2
= copy(t
->data
.application
.expr2
);