mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-17 15:54:07 +10:00
Fixed a post-fix increment issue, highlighted in the game engine
This commit is contained in:
@@ -693,7 +693,7 @@ static Toy_Opcode incrementPrefix(Toy_Parser* parser, Toy_ASTNode** nodeHandle)
|
||||
|
||||
Toy_freeASTNode(tmpNode);
|
||||
|
||||
return TOY_OP_EOF;
|
||||
return TOY_OP_PREFIX;
|
||||
}
|
||||
|
||||
static Toy_Opcode incrementInfix(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
|
||||
@@ -710,7 +710,7 @@ static Toy_Opcode incrementInfix(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
|
||||
|
||||
Toy_freeASTNode(tmpNode);
|
||||
|
||||
return TOY_OP_EOF;
|
||||
return TOY_OP_POSTFIX;
|
||||
}
|
||||
|
||||
static Toy_Opcode decrementPrefix(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
|
||||
@@ -727,7 +727,7 @@ static Toy_Opcode decrementPrefix(Toy_Parser* parser, Toy_ASTNode** nodeHandle)
|
||||
|
||||
Toy_freeASTNode(tmpNode);
|
||||
|
||||
return TOY_OP_EOF;
|
||||
return TOY_OP_PREFIX;
|
||||
}
|
||||
|
||||
static Toy_Opcode decrementInfix(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
|
||||
@@ -744,7 +744,7 @@ static Toy_Opcode decrementInfix(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
|
||||
|
||||
Toy_freeASTNode(tmpNode);
|
||||
|
||||
return TOY_OP_EOF;
|
||||
return TOY_OP_POSTFIX;
|
||||
}
|
||||
|
||||
static Toy_Opcode fnCall(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
|
||||
@@ -1287,6 +1287,13 @@ static void parsePrecedence(Toy_Parser* parser, Toy_ASTNode** nodeHandle, Preced
|
||||
continue;
|
||||
}
|
||||
|
||||
//BUGFIX: keep going, don't skip out on a postfix
|
||||
if (opcode == TOY_OP_PREFIX || opcode == TOY_OP_POSTFIX) {
|
||||
Toy_freeASTNode(*nodeHandle);
|
||||
*nodeHandle = rhsNode;
|
||||
continue;
|
||||
}
|
||||
|
||||
Toy_emitASTNodeBinary(nodeHandle, rhsNode, opcode);
|
||||
|
||||
//optimise away the constants
|
||||
|
||||
Reference in New Issue
Block a user