mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-19 16:54:08 +10:00
Implemented groupings
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user