From a41f5afb8c10d1294a9bb0e4dc6d0eadd73c7dd1 Mon Sep 17 00:00:00 2001 From: pycsham <shampuiyanchloe@gmail.com> Date: Fri, 28 Feb 2020 14:29:51 -0500 Subject: [PATCH] fixed a small bug for checking double local var declaration --- Environment.py | 26 +++++++++++++++++--------- Test.py | 2 ++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Environment.py b/Environment.py index a798f82..6972f45 100644 --- a/Environment.py +++ b/Environment.py @@ -51,14 +51,15 @@ class Env: return self.parentEnv.getNode(name, namespace) raise Exception("ERROR: Can't find definition of {} in the Environment".format(name)) - # A wrapper around getNode to find if node exists in environment already + # A wrapper around getNode to find if node exists in environment already. Terminates before reaching the global Env (see compEnv implementation) def findNode(self, name, namespace): - try: - self.getNode(name, namespace) - except: - return False # node is not found in environment - - return True + key = (name, namespace) + if key in self.map: + return True + elif self.parentEnv: + return self.parentEnv.findNode(name, namespace) + return False + ################################### @@ -124,7 +125,7 @@ class GlobalEnv(Env): return self.map.get(name) elif (i+name) in self.map: return self.map.get(i+name) - + raise Exception("ERROR: Can't find definition of {} in the Environment".format(key)) # method for getting all the nodes under a package (import All) @@ -149,4 +150,11 @@ class CompEnv(Env): return self.map.get(key) elif self.parentEnv: # globalEnv return self.parentEnv.getNode(key, self.imported, self.packageName) - raise Exception("ERROR: Can't find definition of {} in the Environment".format(name)) \ No newline at end of file + raise Exception("ERROR: Can't find definition of {} in the Environment".format(name)) + + def findNode(self, name, namespace): + key = (name, namespace) + if key in self.map: + return True + else: + return False \ No newline at end of file diff --git a/Test.py b/Test.py index 0ce269b..18fd00a 100644 --- a/Test.py +++ b/Test.py @@ -69,6 +69,8 @@ def run(testFiles): for f in testFiles: # print(f) + if f.split("/")[-1] == ".DS_Store": + continue content = open(f, "r").read() # Scanning -- GitLab