1*99451b44SJordan Rupprechtimport lldb
2*99451b44SJordan Rupprecht
3*99451b44SJordan Rupprecht
4*99451b44SJordan Rupprechtclass fooSynthProvider:
5*99451b44SJordan Rupprecht
6*99451b44SJordan Rupprecht    def __init__(self, valobj, dict):
7*99451b44SJordan Rupprecht        self.valobj = valobj
8*99451b44SJordan Rupprecht        self.int_type = valobj.GetType().GetBasicType(lldb.eBasicTypeInt)
9*99451b44SJordan Rupprecht
10*99451b44SJordan Rupprecht    def num_children(self):
11*99451b44SJordan Rupprecht        return 3
12*99451b44SJordan Rupprecht
13*99451b44SJordan Rupprecht    def get_child_at_index(self, index):
14*99451b44SJordan Rupprecht        if index == 0:
15*99451b44SJordan Rupprecht            child = self.valobj.GetChildMemberWithName('a')
16*99451b44SJordan Rupprecht        if index == 1:
17*99451b44SJordan Rupprecht            child = self.valobj.CreateChildAtOffset('fake_a', 1, self.int_type)
18*99451b44SJordan Rupprecht        if index == 2:
19*99451b44SJordan Rupprecht            child = self.valobj.GetChildMemberWithName('r')
20*99451b44SJordan Rupprecht        return child
21*99451b44SJordan Rupprecht
22*99451b44SJordan Rupprecht    def get_child_index(self, name):
23*99451b44SJordan Rupprecht        if name == 'a':
24*99451b44SJordan Rupprecht            return 0
25*99451b44SJordan Rupprecht        if name == 'fake_a':
26*99451b44SJordan Rupprecht            return 1
27*99451b44SJordan Rupprecht        return 2
28