Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / src / nas,5.n2.os.2 / pfe / Pfe_Slicer.py
CommitLineData
86530b38
AT
1
2
3class Slicer:
4 """
5 Slicer(list) takes a list as argument. When a Slicer
6 object is subscribted it returns a sublist of the list.
7 For example:
8
9 s = Slicer(range(0,64))
10 s[0] => [0]
11 s[0,2] => [0,2]
12 s[0:2] => [0,1]
13 s[0:2,4] => [0,1,4]
14 s[0:4:2] => [0,2,4]
15 s[0:2,4:6] => [0,1,4,5]
16
17 """
18 def __init__(self,list):
19 self.list = list
20
21 def __getitem__(self,index):
22 if type(index) == tuple:
23 l = []
24 for i in index:
25 if type(i) == slice:
26 l.extend(self.list[i])
27 else:
28 l.append(self.list[i])
29 return l
30 elif type(index) == slice:
31 return self.list[index]
32 else:
33 return [self.list[index]]
34
35
36if __name__ == '__main__':
37 s=Slicer(range(0,64))
38
39 print s[0]
40 print s[0:32]
41 print s[0,8,16,56,64]
42 print s[0:32:8]
43 print s[0:8,8:16]
44 print s[0:8,8:16,32,56:64]
45
46
47
48