From 5652421bc5204bd147efe92046b17b6345459fc6 Mon Sep 17 00:00:00 2001 From: Fredrik Robertsen Date: Mon, 23 Feb 2026 17:54:05 +0100 Subject: [PATCH] ps3: task 2 --- ps3/src/tree.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/ps3/src/tree.c b/ps3/src/tree.c index d2cb2b0..ae33280 100644 --- a/ps3/src/tree.c +++ b/ps3/src/tree.c @@ -130,7 +130,23 @@ static void node_print(node_t* node, int nesting) static node_t* convert_operator(node_t* node) { assert(node->type == OPERATOR); - // TODO: Task 2: Implement this function + switch (node->data.operator) { + case "or": + node->data.operator = "?:"; + node_t *new = node_create(NUMBER_LITERAL, 0); + new->data.number_literal = 0; + append_to_list_node(node, new); + break; + case "and": + node->data.operator = "?:"; + node_t *new = node_create(NUMBER_LITERAL, 0); + new->data.number_literal = 1; + append_to_list_node(node, new); + node_t *tmp = node->children[1]; + node->children[1] = node->children[2]; + node->children[2] = tmp; + break; + } return node; }