@@ -211,7 +211,7 @@ def visit_current(self, node, value):
211211
212212 def visit_root (self , * args , ** kwargs ):
213213 if 'scopes' in kwargs :
214- return kwargs ['scopes' ].getValue ( '$' )
214+ return kwargs ['scopes' ].getRoot ( )
215215 return None
216216
217217 def visit_expref (self , node , value ):
@@ -397,8 +397,9 @@ def _visit(self, node, current):
397397
398398@with_str_method
399399class Scopes :
400- def __init__ (self ):
400+ def __init__ (self , root ):
401401 self ._scopes = []
402+ self ._root = root
402403
403404 def pushScope (self , scope ):
404405 self ._scopes .append (scope )
@@ -413,17 +414,19 @@ def getValue(self, identifier):
413414 return scope [identifier ]
414415 return None
415416
417+ def getRoot (self ):
418+ return self ._root
419+
416420 def __str__ (self ):
417421 return '{}' .format (self ._scopes )
418422
419423
420424class ScopedInterpreter (TreeInterpreter ):
421425 def __init__ (self , options = None ):
422426 super ().__init__ (options )
423- self ._scopes = Scopes ()
424427
425428 def evaluate (self , ast , root_scope ):
426- self ._scopes . pushScope ({ '$' : root_scope } )
429+ self ._scopes = Scopes ( root_scope )
427430 return self .visit (ast , root_scope )
428431
429432 def visit (self , node , * args , ** kwargs ):
0 commit comments