diff options
Diffstat (limited to '')
-rw-r--r-- | src/front/scope.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/front/scope.py b/src/front/scope.py new file mode 100644 index 0000000..2cc3018 --- /dev/null +++ b/src/front/scope.py @@ -0,0 +1,20 @@ +class Scope(object, DictMixin): + def __init__(self, parent): + self.parent = parent + self.__symbols = {} + + def __getitem__(self, key): + try: + return self.__symbols[key] + except KeyError: + return self.parent[key] + + def __setitem__(self, key, item): + self.__symbols[key] = item + + def keys(self): + keys = self.__symbols.keys() + for key in self.parent.keys(): + if key not in keys: + keys.append(key) + return keys |