def visit(self, node): for field, value in dka.iter_fields(node): if field.isSymbolField(): if value in self.symmapping: setattr(node, field.name, self.symmapping[value]) else: if self.strict: assert() self.generic_visit(node)
def generic_visit(self, node): scope = self.currentscope # Find the symbol fields. for fieldinfo, value in dka.iter_fields(node): if fieldinfo.isSymbolField(): kind = getKind(value) ### FIXME: ignore function symbols for now; ### use-before-declare semantics is troublesome. if kind is KIND_FSYM: self.lookupOrDefineAndSetSymbol(node, fieldinfo.name) continue # Make sure the variable is defined. if not self.isDefined(value): raise ScopeError('Variable \'{}\' used before defined'.format(value.name)) self.lookupAndSetSymbol(node, fieldinfo.name) # Descend into children as normal. return super().generic_visit(node)
def generic_visit(self, node): for fieldinfo, value in dka.iter_fields(node): if fieldinfo.isSymbolField(): self.syms.add(value) super().generic_visit(node)
def generic_visit(self, node): for fieldinfo, value in dka.iter_fields(node): if fieldinfo.isSymbolField(): if value in self.symmapping: assert() return super().generic_visit(node)
def visit(self, node): for field, value in dka.iter_fields(node): if field.isSymbolField() and value.hasflag(dha.FLAG_INV): if value not in self.syms: self.syms.append(value) self.generic_visit(node)
def visit(self, node): for field, value in dka.iter_fields(node): if field.isSymbolField(): if value not in self.syms: self.syms.append(value) self.generic_visit(node)