diff --git a/Environment.py b/Environment.py index a798f8222b4cdc1e25e0781223091f7f9d660eb2..6972f456984cdb4261d6fc8e40feba90c3240569 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 0ce269b20198744f39d142d1db04c0a044c28a97..18fd00acfdc005255b1bcb9df747e1dad1b9bade 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