def __init__(self, elt, member, *parent): Type.__init__(self, member.name) self.is_list = True self.member = member self.parents = list(parent) if elt.tag == 'list': elts = list(elt) self.expr = Expression(elts[0] if len(elts) else elt, self) elif elt.tag == 'valueparam': self.expr = Expression(elt, self) self.size = member.size if member.fixed_size() else None self.nmemb = self.expr.nmemb if self.expr.fixed_size() else None
def __init__(self, elt, member, *parents): PrimitiveType.__init__(self, member.name, member.size) self.is_expr = True self.member = member self.parents = parents self.expr = Expression(list(elt)[0], self)
def __init__(self, index, name, elt, *parent): elts = list(elt) self.expr = Expression(elts[0] if len(elts) else elt, self) ComplexType.__init__(self, name, elts[1:]) self.has_name = True self.index = 1 self.lenfield_parent = list(parent) + [self] self.parents = list(parent) self.is_bitcase = True
def __init__(self, elt, member, *parent): Type.__init__(self, member.name) self.is_expr = True self.member = member self.parent = parent self.expr = Expression(list(elt)[0], self) self.size = member.size self.nmemb = 1
def __init__(self, name, elt, *parents): ComplexType.__init__(self, name, elt) self.parents = parents # FIXME: switch cannot store lenfields, so it should just delegate the parents self.lenfield_parent = list(parents) + [self] # self.fields contains all possible fields collected from the Bitcase objects, # whereas self.items contains the Bitcase objects themselves self.bitcases = [] self.is_switch = True elts = list(elt) self.expr = Expression(elts[0] if len(elts) else elt, self)
def __init__(self, elt, member, *parent): Type.__init__(self, member.name) self.is_list = True self.member = member self.parents = list(parent) lenfield_name = False if elt.tag == 'list': elts = list(elt) self.expr = Expression(elts[0] if len(elts) else elt, self) is_list_in_parent = self.parents[0].elt.tag in ('request', 'event', 'reply', 'error') if not len(elts) and is_list_in_parent: self.expr = Expression(elt, self) self.expr.op = 'calculate_len' else: self.expr = Expression(elts[0] if len(elts) else elt, self) self.size = member.size if member.fixed_size() else None self.nmemb = self.expr.nmemb if self.expr.fixed_size() else None self.required_start_align = self.member.required_start_align
def __init__(self, index, name, elt, *parent): elts = list(elt) self.expr = [] for sub_elt in elts: if sub_elt.tag == 'enumref': self.expr.append(Expression(sub_elt, self)) elt.remove(sub_elt) ComplexType.__init__(self, name, elt) self.has_name = True self.index = 1 self.lenfield_parent = list(parent) + [self] self.parents = list(parent) self.is_case_or_bitcase = True
def __init__(self, index, name, elt, *parent): elts = list(elt) self.expr = [] fields = [] for elt in elts: if elt.tag == 'enumref': self.expr.append(Expression(elt, self)) else: fields.append(elt) ComplexType.__init__(self, name, fields) self.has_name = True self.index = 1 self.lenfield_parent = list(parent) + [self] self.parents = list(parent) self.is_bitcase = True