Exemplo n.º 1
0
Arquivo: scope.py Projeto: pyzh/orz
    def _found(self, name, symbol):
        self.table[name] = symbol
        return symbol


class ForLoopBlockSymbolTable(BlockSymbolTable):
    def get_loopvar(self, n=0):
        return self.parent.get_loopvar(n + 1)


class Environment(BaseEnvironment):
    FIELDS = ('filename', 'symtable')


visit = Visitor()


def nop(env, node):
    pass


def default(env, node):
    for field in node._node_fields:
        if isinstance(getattr(node.__class__, field), NodeListField):
            for subnode in getattr(node, field):
                visit(env, subnode)
        else:
            visit(env, getattr(node, field))