diff --git a/src/Assembler.c b/src/Assembler.c index 9a5bd7c..0b82bf4 100644 --- a/src/Assembler.c +++ b/src/Assembler.c @@ -104,7 +104,7 @@ int AssembleTree(struct ASTNode* Node, int Register, int ParentOp) { return AsAddr(Node->Value.ID); case OP_DEREF: - return AsDeref(LeftVal, Node->Left->ExprType); + return Node->RVal ? AsDeref(LeftVal, Node->Left->ExprType) : LeftVal; case OP_ASSIGN: printf("Calculating for assignment..\r\n"); diff --git a/src/Parser.c b/src/Parser.c index ae0cfc2..b145e73 100644 --- a/src/Parser.c +++ b/src/Parser.c @@ -192,6 +192,7 @@ struct ASTNode* ParsePrecedenceASTNode(int PreviousTokenPrecedence) { if(OpType == OP_ASSIGN) { printf("\tParsePrecedenceASTNode: Assignment statement\r\n"); RightNode->RVal = 1; + LeftNode->RVal = 0; RightNode = MutateType(RightNode, LeftNode->ExprType, 0); if(LeftNode == NULL)