diff --git a/ps3/src/tree.c b/ps3/src/tree.c index efdd004..d2cb2b0 100644 --- a/ps3/src/tree.c +++ b/ps3/src/tree.c @@ -173,7 +173,23 @@ static node_t* simplify_subtree(node_t* node) if (node == NULL) return node; - // TODO: Task 1: Implement this function by calling the above functions when applicable + for (int i = 0; i < node->n_children; i++) { + node_t *child = node->children[i]; + simplify_subtree(child); + } + + switch (node->type) { + case OPERATOR: + convert_operator(node); + break; + case PRINTLN_STATEMENT: + simplify_println_statement(node); + break; + case BLOCK: + flatten_variable_declarations(node); + break; + } + return node; }