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) {
|
||||
if (argc == 1) {
|
||||
printf("provide me an argument please\n");
|
||||
|
|
@ -196,6 +213,8 @@ int main(int argc, char **argv) {
|
|||
|
||||
const int64_t result = eval_expr(expr);
|
||||
|
||||
free_expr(expr);
|
||||
|
||||
printf("%ld\n", result);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue