[NFC][Coroutines] Use structured binding with llvm::enumerate in CoroSplit (#116879)
[llvm-project.git] / lldb / bindings / interface / SBSymbolContextListExtensions.i
blobaf3d286c2ca9a7ae698451fbf19e7016888dce96
1 STRING_EXTENSION_OUTSIDE(SBSymbolContextList)
3 %extend lldb::SBSymbolContextList {
4 #ifdef SWIGPYTHON
5 %pythoncode %{
6 def __iter__(self):
7 '''Iterate over all symbol contexts in a lldb.SBSymbolContextList
8 object.'''
9 return lldb_iter(self, 'GetSize', 'GetContextAtIndex')
11 def __len__(self):
12 return int(self.GetSize())
14 def __getitem__(self, key):
15 count = len(self)
16 if isinstance(key, int):
17 if -count <= key < count:
18 key %= count
19 return self.GetContextAtIndex(key)
20 else:
21 raise IndexError
22 raise TypeError
24 def get_module_array(self):
25 a = []
26 for i in range(len(self)):
27 obj = self.GetContextAtIndex(i).module
28 if obj:
29 a.append(obj)
30 return a
32 def get_compile_unit_array(self):
33 a = []
34 for i in range(len(self)):
35 obj = self.GetContextAtIndex(i).compile_unit
36 if obj:
37 a.append(obj)
38 return a
39 def get_function_array(self):
40 a = []
41 for i in range(len(self)):
42 obj = self.GetContextAtIndex(i).function
43 if obj:
44 a.append(obj)
45 return a
46 def get_block_array(self):
47 a = []
48 for i in range(len(self)):
49 obj = self.GetContextAtIndex(i).block
50 if obj:
51 a.append(obj)
52 return a
53 def get_symbol_array(self):
54 a = []
55 for i in range(len(self)):
56 obj = self.GetContextAtIndex(i).symbol
57 if obj:
58 a.append(obj)
59 return a
60 def get_line_entry_array(self):
61 a = []
62 for i in range(len(self)):
63 obj = self.GetContextAtIndex(i).line_entry
64 if obj:
65 a.append(obj)
66 return a
68 modules = property(get_module_array, None, doc='''Returns a list() of lldb.SBModule objects, one for each module in each SBSymbolContext object in this list.''')
69 compile_units = property(get_compile_unit_array, None, doc='''Returns a list() of lldb.SBCompileUnit objects, one for each compile unit in each SBSymbolContext object in this list.''')
70 functions = property(get_function_array, None, doc='''Returns a list() of lldb.SBFunction objects, one for each function in each SBSymbolContext object in this list.''')
71 blocks = property(get_block_array, None, doc='''Returns a list() of lldb.SBBlock objects, one for each block in each SBSymbolContext object in this list.''')
72 line_entries = property(get_line_entry_array, None, doc='''Returns a list() of lldb.SBLineEntry objects, one for each line entry in each SBSymbolContext object in this list.''')
73 symbols = property(get_symbol_array, None, doc='''Returns a list() of lldb.SBSymbol objects, one for each symbol in each SBSymbolContext object in this list.''')
75 #endif