def visit_List(self, node): expr = self.generic_visit(node) #print dir(expr) #lst = [l.n for l in expr.elts] #List(elts=[Num(n=1), Num(n=2), Num(n=3), Num(n=4)] return List(elts=expr.elts) return NesArray(expr.elts)
def visit_Assign(self, node): global game if (len(node.targets) == 1): if isinstance(node.value, ast.Call): self.generic_visit(node) varname = node.targets[0].id call = node.value if call.func.id: if (len(self.stack.last()) == 1 and isinstance(self.stack.last()[0], NesType)): rs = self.stack.resolve()[0] self.stack.wipe() game.set_var(varname, rs) elif isinstance(node.value, ast.List): self.generic_visit(node) #TODO: just umpile varname = node.targets[0].id assert isinstance(self.stack.last()[0], NesArray) assert varname == self.stack.current()[0] lst = [l.n for l in node.value.elts] game.set_var(varname, NesArray(lst)) elif isinstance(node.value, ast.Str): self.generic_visit(node) varname = node.targets[0].id assert isinstance(self.stack.last()[0], NesString) assert varname == self.stack.current()[0] value = self.stack.resolve()[0] self.stack.wipe() game.set_var(varname, value) elif 'ctx' in dir(node.targets[0]): #TODO fix this please self.generic_visit(node) #TODO: upthis if len(self.stack.last()) == 1 and isinstance( self.stack.last()[0], int): game += ' LDA #%02d\n' % self.stack.resolve()[0] if len(self.stack.current()) == 2: address = getattr(self.stack.current()[0], self.stack.current()[1]) game += ' STA $%04x\n' % address elif (len(self.stack.current()) == 1 and isinstance(self.stack.current()[0], NesRs)): rs = self.stack.current()[0] self.stack.wipe() name = rs.instance_name game += ' STA %s\n' % name
def visit_List(self, node): self.stack(NesArray(node.elts))
def visit_List(self, node): lst = [l.n for l in node.elts] self.stack(NesArray(lst))