From 28c349726ec5c7f2a72307b8dd1feef99c1cc36a Mon Sep 17 00:00:00 2001 From: Curle Date: Sat, 21 Nov 2020 22:16:10 +0000 Subject: [PATCH] Fix array parsing properly. --- src/Assembler.c | 2 +- src/Parser.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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)