mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 23:04:08 +10:00
Increment and decrement operators work
This commit is contained in:
@@ -73,6 +73,11 @@ void freeNode(Node* node) {
|
||||
freeNode(node->path.thenPath);
|
||||
freeNode(node->path.elsePath);
|
||||
break;
|
||||
|
||||
case NODE_INCREMENT_PREFIX:
|
||||
case NODE_INCREMENT_POSTFIX:
|
||||
freeLiteral(node->increment.identifier);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,6 +184,26 @@ void emitNodePath(Node** nodeHandle, NodeType type, Node* preClause, Node* postC
|
||||
*nodeHandle = tmp;
|
||||
}
|
||||
|
||||
void emiteNodePrefixIncrement(Node** nodeHandle, Literal identifier, int increment) {
|
||||
Node* tmp = ALLOCATE(Node, 1);
|
||||
|
||||
tmp->type = NODE_INCREMENT_PREFIX;
|
||||
tmp->increment.identifier = identifier;
|
||||
tmp->increment.increment = increment;
|
||||
|
||||
*nodeHandle = tmp;
|
||||
}
|
||||
|
||||
void emiteNodePostfixIncrement(Node** nodeHandle, Literal identifier, int increment) {
|
||||
Node* tmp = ALLOCATE(Node, 1);
|
||||
|
||||
tmp->type = NODE_INCREMENT_POSTFIX;
|
||||
tmp->increment.identifier = identifier;
|
||||
tmp->increment.increment = increment;
|
||||
|
||||
*nodeHandle = tmp;
|
||||
}
|
||||
|
||||
void printNode(Node* node) {
|
||||
if (node == NULL) {
|
||||
return;
|
||||
@@ -271,6 +296,11 @@ void printNode(Node* node) {
|
||||
printf(")");
|
||||
break;
|
||||
|
||||
// case NODE_INCREMENT_PREFIX:
|
||||
// case NODE_INCREMENT_POSTFIX:
|
||||
// //TODO
|
||||
// break;
|
||||
|
||||
default:
|
||||
printf("[internal] unkown node type in printNode: %d\n", node->type);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user