From b5db74dc077bc88bb92e380a4e31c14446f04a7b Mon Sep 17 00:00:00 2001
From: pycsham <shampuiyanchloe@gmail.com>
Date: Fri, 6 Mar 2020 16:25:03 -0500
Subject: [PATCH] Implemented type checking on assignNodes. fails a bunch of
 tests due to arrayAccess

---
 ExprPrimaryNodes.py | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/ExprPrimaryNodes.py b/ExprPrimaryNodes.py
index ad49d89..1369ffd 100644
--- a/ExprPrimaryNodes.py
+++ b/ExprPrimaryNodes.py
@@ -126,7 +126,7 @@ class ArrayAccessNode(ASTNode):
         if (parseTree.children[0].name == 'primaryNoArrayAccess'):
             self.array = makeNodeFromAllPrimary(parseTree.children[0], typeName)
         else:
-            self.array = NameNode(parseTree.children[0].children[0], False, typeName)
+            self.array = NameNode(parseTree.children[0], False, typeName)
         self.index = makeNodeFromExpr(parseTree.children[2], typeName)
 
         self.children.append(self.array)
@@ -210,6 +210,19 @@ class AssignNode(ASTNode):
         self.right.disambigName()
         # helperDisambigName(self.right)
         # helperDisambigName(self.left)
+    
+    def checkType(self):
+        self.left.checkType()
+        self.right.checkType()
+        
+        if self.left.myType.assignable(self.right.myType):
+            self.myType = self.left.myType
+            return
+        print(self.left.myType.isArray)
+        print(self.right.myType.isArray)
+        print(self.left.name)
+        print(self.right)
+        raise Exception("ERROR: assignment operation failed. Cannot assign type {0} to type {1} at class {2}".format(self.left.myType.name, self.right.myType.name, self.typeName))  
 
 
 ##################################################################################
-- 
GitLab