Implemented groupings

This commit is contained in:
2022-08-07 15:04:19 +01:00
parent d7fda480fd
commit 9a415738d9
9 changed files with 124 additions and 21 deletions

View File

@@ -5,6 +5,11 @@
#include <stdio.h>
void freeNode(Node* node) {
//don't free a NULL node
if (node == NULL) {
return;
}
switch(node->type) {
case NODE_LITERAL:
freeLiteral(node->atomic.literal);
@@ -18,6 +23,10 @@ void freeNode(Node* node) {
freeNode(node->binary.left);
freeNode(node->binary.right);
break;
case NODE_GROUPING:
freeNode(node->grouping.child);
break;
}
FREE(Node, node);
@@ -70,5 +79,11 @@ void printNode(Node* node) {
printNode(node->binary.right);
printf(";");
break;
case NODE_GROUPING:
printf("(");
printNode(node->grouping.child);
printf(")");
break;
}
}