Lines Matching refs:self
16 def __init__(self, type, field_type, field_name, visible, wire, auto, enum=None, isfd=False):
17 self.type = type
18 self.field_type = field_type
19 self.field_name = field_name
20 self.enum = enum
21 self.visible = visible
22 self.wire = wire
23 self.auto = auto
24 self.isfd = isfd
25 self.parent = None
27 def __str__(self):
29 if self.field_name is None:
30 if self.field_type is not None:
31 field_string += " with type " + str(self.type)
33 field_string += " \"" + self.field_name + "\""
34 if self.parent is not None:
35 field_string += " in " + str(self.parent)
51 def __init__(self, elt, parent):
52 self.parent = parent
54 self.nmemb = None
56 self.lenfield_name = None
57 self.lenfield_type = None
58 self.lenfield_parent = None
59 self.lenfield = None
60 self.lenwire = False
61 self.bitfield = False
63 self.op = None
64 self.lhs = None
65 self.rhs = None
67 self.contains_listelement_ref = False
71 self.lenfield_name = elt.get('name') + '_len'
72 self.lenfield_type = 'CARD32'
76 self.lenfield_name = elt.text
79 self.lenfield_name = elt.text
80 self.lenfield_type = elt.get('type')
84 self.op = elt.get('op')
85 self.lhs = Expression(list(elt)[0], parent)
86 self.rhs = Expression(list(elt)[1], parent)
89 self.lenfield_name = self.lhs.lenfield_name
90 if self.lenfield_name == None:
91 self.lenfield_name = self.rhs.lenfield_name
95 self.op = elt.get('op')
96 self.rhs = Expression(list(elt)[0], parent)
98 self.lenfield_name = self.rhs.lenfield_name
102 self.nmemb = int(elt.text, 0)
105 self.op = 'popcount'
106 self.rhs = Expression(list(elt)[0], parent)
107 self.lenfield_name = self.rhs.lenfield_name
111 self.op = 'enumref'
112 self.lenfield_name = (elt.get('ref'), elt.text)
115 self.op = 'sumof'
116 self.lenfield_name = elt.get('ref')
122 self.rhs = Expression(subexpressions[0], parent)
126 self.op = 'listelement-ref'
127 self.contains_listelement_ref = True
133 def fixed_size(self):
134 return self.nmemb != None
136 def get_value(self):
137 return self.nmemb
141 def get_multiple(self):
143 if self.op == '*':
144 if self.lhs.fixed_size():
145 multiple *= self.lhs.get_value()
146 if self.rhs.fixed_size():
147 multiple *= self.rhs.get_value()
151 def recursive_resolve_tasks(self, module, parents):
152 for subexpr in (self.lhs, self.rhs):
155 self.contains_listelement_ref |= subexpr.contains_listelement_ref
157 def resolve(self, module, parents):
158 if self.op == 'enumref':
159 self.lenfield_type = module.get_type(self.lenfield_name[0])
160 self.lenfield_name = self.lenfield_name[1]
161 elif self.op == 'sumof':
165 if self.lenfield_name in fields.keys():
168 self.lenfield_parent = p.parents[-1]
170 self.lenfield_parent = p
171 self.lenfield_type = fields[self.lenfield_name].field_type
172 self.lenfield = fields[self.lenfield_name]
175 self.recursive_resolve_tasks(module, parents)