mirror of
https://github.com/Noratrieb/calculator.git
synced 2026-01-14 13:45:03 +01:00
free lol
This commit is contained in:
parent
033db1664d
commit
4ccafebc02
1 changed files with 19 additions and 0 deletions
19
calc.c
19
calc.c
|
|
@ -182,6 +182,23 @@ int64_t eval_expr(const Expr expr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void free_expr(Expr expr) {
|
||||||
|
switch (expr.tag) {
|
||||||
|
case ADD:
|
||||||
|
case SUB:
|
||||||
|
case MUL:
|
||||||
|
case DIV:
|
||||||
|
free_expr(*expr.value.op.lhs);
|
||||||
|
free_expr(*expr.value.op.rhs);
|
||||||
|
free(expr.value.op.lhs);
|
||||||
|
free(expr.value.op.rhs);
|
||||||
|
break;
|
||||||
|
case LITERAL:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
printf("provide me an argument please\n");
|
printf("provide me an argument please\n");
|
||||||
|
|
@ -196,6 +213,8 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
const int64_t result = eval_expr(expr);
|
const int64_t result = eval_expr(expr);
|
||||||
|
|
||||||
|
free_expr(expr);
|
||||||
|
|
||||||
printf("%ld\n", result);
|
printf("%ld\n", result);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue