Exemple #1
0
Fichier : dis.py Projet : gvx/deja
	def __getitem__(self, item):
		while item >= len(self.cache):
			s = self.source[0]
			if s == '\x00':
				length = unsigned_int(self.source[1:5])
				b = ":" + self.source[5:5 + length]
				self.source = self.source[5 + length:]
			elif s == '\x01':
				length = unsigned_int(self.source[1:5]) #<-- length?
				b = '"' + quote(self.source[5:5 + length]) + '"'
				self.source = self.source[5 + length:]
			if s == '\x80':
				length = ord(self.source[1])
				b = ":" + self.source[2:2 + length]
				self.source = self.source[2 + length:]
			elif s == '\x81':
				length = ord(self.source[1]) #<-- length?
				b = '"' + quote(self.source[2:2 + length]) + '"'
				self.source = self.source[2 + length:]
			elif s == '\x02':
				b = d_double(self.source[1:9])
				self.source = self.source[9:]
			elif s == '\x82':
				b = d_signed_int(self.source[1:4])
				self.source = self.source[4:]
			elif s == '\x07':
				n = signed_long_int(self.source[1:9])
				d = signed_long_int(self.source[9:17])
				b = str(n) + '/' + str(d)
				self.source = self.source[17:]
			elif s == '\x87':
				n = signed_char(self.source[1])
				d = ord(self.source[2])
				b = str(n) + '/' + str(d)
				self.source = self.source[3:]
			self.cache.append(b)
		return self.cache[item]
Exemple #2
0
Fichier : v2a.py Projet : gvx/deja
def get_literals(code):
    i = 0
    while i < len(code):
        s = code[i]
        if s == '\x00':
            length = unsigned_int(code[i+1:i+5])
            yield "i" + code[i+5:i+5 + length]
            i += 5 + length
        elif s == '\x01':
            length = unsigned_int(code[i+1:i+5])
            yield "s" + quote(code[i+5:i+5 + length])
            i += 5 + length
        elif s == '\x80':
            length = ord(code[i+1])
            yield "i" + code[i+2:i+2 + length]
            i += 1 + length
        elif s == '\x81':
            length = ord(code[i+1])
            yield "s" + quote(code[i+2:i+2 + length])
            i += 1 + length
        elif s == '\x02':
            yield 'n' + d_double(code[i+1:i+9])
            i += 9
        elif s == '\x82':
            yield 'n' + d_signed_int(code[i+1:i+4])
            i += 4
        elif s == '\x07':
            n = signed_long_int(code[i+1:i+9])
            d = signed_long_int(code[i+9:i+17])
            yield 'f' + str(n) + '/' + str(d)
            i += 17
        elif s == '\x87':
            n = signed_char(code[i+1])
            d = ord(code[i+2])
            yield 'f' + str(n) + '/' + str(d)
            i += 3
        i += 1