CVS Repository/ srcgnullvmlldbbindingspython/ python-extensions.sw

Annotated Revision  1.1.1.5  Back
1.1
 (patrick  03-Aug-20) 
1
: %extend lldb::SBBreakpoint {
1.1
 (patrick  03-Aug-20) 
2
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
3
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
4
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
5
:                 return False
1.1
 (patrick  03-Aug-20) 
6
: 
1.1
 (patrick  03-Aug-20) 
7
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
8
: 
1.1
 (patrick  03-Aug-20) 
9
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
10
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
11
:                 return True
1.1
 (patrick  03-Aug-20) 
12
: 
1.1
 (patrick  03-Aug-20) 
13
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
14
:     %}
1.1
 (patrick  03-Aug-20) 
15
: }
1.1
 (patrick  03-Aug-20) 
16
: 
1.1
 (patrick  03-Aug-20) 
17
: %extend lldb::SBBroadcaster {
1.1
 (patrick  03-Aug-20) 
18
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
19
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
20
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
21
:                 return False
1.1
 (patrick  03-Aug-20) 
22
: 
1.1
 (patrick  03-Aug-20) 
23
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
24
: 
1.1
 (patrick  03-Aug-20) 
25
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
26
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
27
:                 return True
1.1
 (patrick  03-Aug-20) 
28
: 
1.1
 (patrick  03-Aug-20) 
29
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
30
:     %}
1.1
 (patrick  03-Aug-20) 
31
: }
1.1
 (patrick  03-Aug-20) 
32
: 
1.1
 (patrick  03-Aug-20) 
33
: %extend lldb::SBCommandReturnObject {
1.1
 (patrick  03-Aug-20) 
34
:         /* the write() and flush() calls are not part of the SB API proper, and are solely for Python usage
1.1
 (patrick  03-Aug-20) 
35
:         they are meant to make an SBCommandReturnObject into a file-like object so that instructions of the sort
1.1
 (patrick  03-Aug-20) 
36
:         print >>sb_command_return_object, "something"
1.1
 (patrick  03-Aug-20) 
37
:         will work correctly */
1.1
 (patrick  03-Aug-20) 
38
: 
1.1
 (patrick  03-Aug-20) 
39
:         void lldb::SBCommandReturnObject::write (const char* str)
1.1
 (patrick  03-Aug-20) 
40
:         {
1.1
 (patrick  03-Aug-20) 
41
:             if (str)
1.1
 (patrick  03-Aug-20) 
42
:                 $self->Printf("%s",str);
1.1
 (patrick  03-Aug-20) 
43
:         }
1.1
 (patrick  03-Aug-20) 
44
:         void lldb::SBCommandReturnObject::flush ()
1.1
 (patrick  03-Aug-20) 
45
:         {}
1.1
 (patrick  03-Aug-20) 
46
: }
1.1
 (patrick  03-Aug-20) 
47
: 
1.1
 (patrick  03-Aug-20) 
48
: %extend lldb::SBCompileUnit {
1.1
 (patrick  03-Aug-20) 
49
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
50
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
51
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
52
:                 return False
1.1
 (patrick  03-Aug-20) 
53
: 
1.1
 (patrick  03-Aug-20) 
54
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
55
: 
1.1
 (patrick  03-Aug-20) 
56
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
57
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
58
:                 return True
1.1
 (patrick  03-Aug-20) 
59
: 
1.1
 (patrick  03-Aug-20) 
60
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
61
:     %}
1.1
 (patrick  03-Aug-20) 
62
: }
1.1
 (patrick  03-Aug-20) 
63
: 
1.1
 (patrick  03-Aug-20) 
64
: %extend lldb::SBDeclaration {
1.1
 (patrick  03-Aug-20) 
65
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
66
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
67
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
68
:                 return False
1.1
 (patrick  03-Aug-20) 
69
: 
1.1
 (patrick  03-Aug-20) 
70
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
71
: 
1.1
 (patrick  03-Aug-20) 
72
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
73
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
74
:                 return True
1.1
 (patrick  03-Aug-20) 
75
: 
1.1
 (patrick  03-Aug-20) 
76
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
77
:     %}
1.1
 (patrick  03-Aug-20) 
78
: }
1.1
 (patrick  03-Aug-20) 
79
: 
1.1
 (patrick  03-Aug-20) 
80
: %extend lldb::SBFunction {
1.1
 (patrick  03-Aug-20) 
81
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
82
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
83
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
84
:                 return False
1.1
 (patrick  03-Aug-20) 
85
: 
1.1
 (patrick  03-Aug-20) 
86
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
87
: 
1.1
 (patrick  03-Aug-20) 
88
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
89
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
90
:                 return True
1.1
 (patrick  03-Aug-20) 
91
: 
1.1
 (patrick  03-Aug-20) 
92
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
93
:     %}
1.1
 (patrick  03-Aug-20) 
94
: }
1.1
 (patrick  03-Aug-20) 
95
: 
1.1
 (patrick  03-Aug-20) 
96
: %extend lldb::SBLineEntry {
1.1
 (patrick  03-Aug-20) 
97
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
98
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
99
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
100
:                 return False
1.1
 (patrick  03-Aug-20) 
101
: 
1.1
 (patrick  03-Aug-20) 
102
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
103
: 
1.1
 (patrick  03-Aug-20) 
104
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
105
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
106
:                 return True
1.1
 (patrick  03-Aug-20) 
107
: 
1.1
 (patrick  03-Aug-20) 
108
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
109
:     %}
1.1
 (patrick  03-Aug-20) 
110
: }
1.1
 (patrick  03-Aug-20) 
111
: 
1.1
 (patrick  03-Aug-20) 
112
: %extend lldb::SBModule {
1.1
 (patrick  03-Aug-20) 
113
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
114
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
115
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
116
:                 return False
1.1
 (patrick  03-Aug-20) 
117
: 
1.1
 (patrick  03-Aug-20) 
118
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
119
: 
1.1
 (patrick  03-Aug-20) 
120
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
121
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
122
:                 return True
1.1
 (patrick  03-Aug-20) 
123
: 
1.1
 (patrick  03-Aug-20) 
124
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
125
:     %}
1.1
 (patrick  03-Aug-20) 
126
: }
1.1
 (patrick  03-Aug-20) 
127
: 
1.1
 (patrick  03-Aug-20) 
128
: %extend lldb::SBSection {
1.1
 (patrick  03-Aug-20) 
129
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
130
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
131
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
132
:                 return False
1.1
 (patrick  03-Aug-20) 
133
: 
1.1
 (patrick  03-Aug-20) 
134
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
135
: 
1.1
 (patrick  03-Aug-20) 
136
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
137
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
138
:                 return True
1.1
 (patrick  03-Aug-20) 
139
: 
1.1
 (patrick  03-Aug-20) 
140
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
141
:     %}
1.1
 (patrick  03-Aug-20) 
142
: }
1.1
 (patrick  03-Aug-20) 
143
: %extend lldb::SBStream {
1.1
 (patrick  03-Aug-20) 
144
:         /* the write() and flush() calls are not part of the SB API proper, and are solely for Python usage
1.1
 (patrick  03-Aug-20) 
145
:         they are meant to make an SBStream into a file-like object so that instructions of the sort
1.1
 (patrick  03-Aug-20) 
146
:         print >>sb_stream, "something"
1.1
 (patrick  03-Aug-20) 
147
:         will work correctly */
1.1
 (patrick  03-Aug-20) 
148
: 
1.1
 (patrick  03-Aug-20) 
149
:         void lldb::SBStream::write (const char* str)
1.1
 (patrick  03-Aug-20) 
150
:         {
1.1
 (patrick  03-Aug-20) 
151
:             if (str)
1.1
 (patrick  03-Aug-20) 
152
:                 $self->Printf("%s",str);
1.1
 (patrick  03-Aug-20) 
153
:         }
1.1
 (patrick  03-Aug-20) 
154
:         void lldb::SBStream::flush ()
1.1
 (patrick  03-Aug-20) 
155
:         {}
1.1
 (patrick  03-Aug-20) 
156
: }
1.1
 (patrick  03-Aug-20) 
157
: %extend lldb::SBSymbol {
1.1
 (patrick  03-Aug-20) 
158
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
159
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
160
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
161
:                 return False
1.1
 (patrick  03-Aug-20) 
162
: 
1.1
 (patrick  03-Aug-20) 
163
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
164
: 
1.1
 (patrick  03-Aug-20) 
165
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
166
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
167
:                 return True
1.1
 (patrick  03-Aug-20) 
168
: 
1.1
 (patrick  03-Aug-20) 
169
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
170
:     %}
1.1
 (patrick  03-Aug-20) 
171
: }
1.1
 (patrick  03-Aug-20) 
172
: 
1.1
 (patrick  03-Aug-20) 
173
: %extend lldb::SBTarget {
1.1
 (patrick  03-Aug-20) 
174
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
175
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
176
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
177
:                 return False
1.1
 (patrick  03-Aug-20) 
178
: 
1.1
 (patrick  03-Aug-20) 
179
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
180
: 
1.1
 (patrick  03-Aug-20) 
181
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
182
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
183
:                 return True
1.1
 (patrick  03-Aug-20) 
184
: 
1.1
 (patrick  03-Aug-20) 
185
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
186
:     %}
1.1
 (patrick  03-Aug-20) 
187
: }
1.1
 (patrick  03-Aug-20) 
188
: 
1.1
 (patrick  03-Aug-20) 
189
: %extend lldb::SBTypeFilter {
1.1
 (patrick  03-Aug-20) 
190
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
191
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
192
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
193
:                 return False
1.1
 (patrick  03-Aug-20) 
194
: 
1.1
 (patrick  03-Aug-20) 
195
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
196
: 
1.1
 (patrick  03-Aug-20) 
197
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
198
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
199
:                 return True
1.1
 (patrick  03-Aug-20) 
200
: 
1.1
 (patrick  03-Aug-20) 
201
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
202
:     %}
1.1
 (patrick  03-Aug-20) 
203
: }
1.1
 (patrick  03-Aug-20) 
204
: 
1.1
 (patrick  03-Aug-20) 
205
: %extend lldb::SBTypeNameSpecifier {
1.1
 (patrick  03-Aug-20) 
206
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
207
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
208
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
209
:                 return False
1.1
 (patrick  03-Aug-20) 
210
: 
1.1
 (patrick  03-Aug-20) 
211
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
212
: 
1.1
 (patrick  03-Aug-20) 
213
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
214
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
215
:                 return True
1.1
 (patrick  03-Aug-20) 
216
: 
1.1
 (patrick  03-Aug-20) 
217
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
218
:     %}
1.1
 (patrick  03-Aug-20) 
219
: }
1.1
 (patrick  03-Aug-20) 
220
: 
1.1
 (patrick  03-Aug-20) 
221
: %extend lldb::SBTypeSummary {
1.1
 (patrick  03-Aug-20) 
222
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
223
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
224
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
225
:                 return False
1.1
 (patrick  03-Aug-20) 
226
: 
1.1
 (patrick  03-Aug-20) 
227
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
228
: 
1.1
 (patrick  03-Aug-20) 
229
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
230
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
231
:                 return True
1.1
 (patrick  03-Aug-20) 
232
: 
1.1
 (patrick  03-Aug-20) 
233
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
234
:     %}
1.1
 (patrick  03-Aug-20) 
235
: }
1.1
 (patrick  03-Aug-20) 
236
: 
1.1
 (patrick  03-Aug-20) 
237
: %extend lldb::SBTypeSynthetic {
1.1
 (patrick  03-Aug-20) 
238
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
239
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
240
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
241
:                 return False
1.1
 (patrick  03-Aug-20) 
242
: 
1.1
 (patrick  03-Aug-20) 
243
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
244
: 
1.1
 (patrick  03-Aug-20) 
245
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
246
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
247
:                 return True
1.1
 (patrick  03-Aug-20) 
248
: 
1.1
 (patrick  03-Aug-20) 
249
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
250
:     %}
1.1
 (patrick  03-Aug-20) 
251
: }
1.1
 (patrick  03-Aug-20) 
252
: 
1.1
 (patrick  03-Aug-20) 
253
: %extend lldb::SBThread {
1.1
 (patrick  03-Aug-20) 
254
:     %pythoncode %{
1.1
 (patrick  03-Aug-20) 
255
:         def __eq__(self, rhs):
1.1
 (patrick  03-Aug-20) 
256
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
257
:                 return False
1.1
 (patrick  03-Aug-20) 
258
: 
1.1
 (patrick  03-Aug-20) 
259
:             return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
260
: 
1.1
 (patrick  03-Aug-20) 
261
:         def __ne__(self, rhs):
1.1
 (patrick  03-Aug-20) 
262
:             if not isinstance(rhs, type(self)):
1.1
 (patrick  03-Aug-20) 
263
:                 return True
1.1
 (patrick  03-Aug-20) 
264
: 
1.1
 (patrick  03-Aug-20) 
265
:             return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs)
1.1
 (patrick  03-Aug-20) 
266
:     %}
1.1
 (patrick  03-Aug-20) 
267
: }
1.1
 (patrick  03-Aug-20) 
268
: 
1.1
 (patrick  03-Aug-20) 
269
: %pythoncode %{
1.1
 (patrick  03-Aug-20) 
270
: 
1.1
 (patrick  03-Aug-20) 
271
: def command(command_name=None, doc=None):
1.1
 (patrick  03-Aug-20) 
272
:     import lldb
1.1
 (patrick  03-Aug-20) 
273
:     """A decorator function that registers an LLDB command line
1.1
 (patrick  03-Aug-20) 
274
:         command that is bound to the function it is attached to."""
1.1
 (patrick  03-Aug-20) 
275
:     def callable(function):
1.1
 (patrick  03-Aug-20) 
276
:         """Registers an lldb command for the decorated function."""
1.1
 (patrick  03-Aug-20) 
277
:         command = "command script add -f %s.%s %s" % (function.__module__, function.__name__, command_name or function.__name__)
1.1
 (patrick  03-Aug-20) 
278
:         lldb.debugger.HandleCommand(command)
1.1
 (patrick  03-Aug-20) 
279
:         if doc:
1.1
 (patrick  03-Aug-20) 
280
:             function.__doc__ = doc
1.1
 (patrick  03-Aug-20) 
281
:         return function
1.1
 (patrick  03-Aug-20) 
282
: 
1.1
 (patrick  03-Aug-20) 
283
:     return callable
1.1
 (patrick  03-Aug-20) 
284
: 
1.1
 (patrick  03-Aug-20) 
285
: class declaration(object):
1.1
 (patrick  03-Aug-20) 
286
:     '''A class that represents a source declaration location with file, line and column.'''
1.1
 (patrick  03-Aug-20) 
287
:     def __init__(self, file, line, col):
1.1
 (patrick  03-Aug-20) 
288
:         self.file = file
1.1
 (patrick  03-Aug-20) 
289
:         self.line = line
1.1
 (patrick  03-Aug-20) 
290
:         self.col = col
1.1
 (patrick  03-Aug-20) 
291
: 
1.1
 (patrick  03-Aug-20) 
292
: class value_iter(object):
1.1.1.2
 (patrick  17-Dec-21) 
293
:     '''Allows iterating over the children of an :py:class:`SBValue`.'''
1.1
 (patrick  03-Aug-20) 
294
:     def __iter__(self):
1.1
 (patrick  03-Aug-20) 
295
:         return self
1.1
 (patrick  03-Aug-20) 
296
: 
1.1
 (patrick  03-Aug-20) 
297
:     def __next__(self):
1.1
 (patrick  03-Aug-20) 
298
:         if self.index >= self.length:
1.1
 (patrick  03-Aug-20) 
299
:             raise StopIteration()
1.1
 (patrick  03-Aug-20) 
300
:         child_sbvalue = self.sbvalue.GetChildAtIndex(self.index)
1.1
 (patrick  03-Aug-20) 
301
:         self.index += 1
1.1
 (patrick  03-Aug-20) 
302
:         return value(child_sbvalue)
1.1
 (patrick  03-Aug-20) 
303
: 
1.1
 (patrick  03-Aug-20) 
304
:     def next(self):
1.1
 (patrick  03-Aug-20) 
305
:         return self.__next__()
1.1
 (patrick  03-Aug-20) 
306
: 
1.1.1.4
 (robert   11-Jun-25) 
307
:     def __eq__(self, other):
1.1.1.4
 (robert   11-Jun-25) 
308
:         return not self.__ne__(other)
1.1.1.4
 (robert   11-Jun-25) 
309
: 
1.1.1.4
 (robert   11-Jun-25) 
310
:     def __len__(self):
1.1.1.4
 (robert   11-Jun-25) 
311
:         return self.length
1.1.1.4
 (robert   11-Jun-25) 
312
: 
1.1
 (patrick  03-Aug-20) 
313
:     def __init__(self,value):
1.1
 (patrick  03-Aug-20) 
314
:         self.index = 0
1.1.1.4
 (robert   11-Jun-25) 
315
:         self.length = 0
1.1
 (patrick  03-Aug-20) 
316
:         self.sbvalue = value
1.1
 (patrick  03-Aug-20) 
317
:         if type(self.sbvalue) is value:
1.1
 (patrick  03-Aug-20) 
318
:             self.sbvalue = self.sbvalue.sbvalue
1.1
 (patrick  03-Aug-20) 
319
:         self.length = self.sbvalue.GetNumChildren()
1.1
 (patrick  03-Aug-20) 
320
: 
1.1
 (patrick  03-Aug-20) 
321
: class value(object):
1.1.1.2
 (patrick  17-Dec-21) 
322
:     '''Wraps :py:class:`SBValue` objects so the resulting object can be used as a variable would be in code.
1.1.1.2
 (patrick  17-Dec-21) 
323
: 
1.1.1.2
 (patrick  17-Dec-21) 
324
:     So if you have a Point structure variable in your code in the current frame named "pt",
1.1.1.2
 (patrick  17-Dec-21) 
325
:     you can initialize an instance of this class with it: ::
1.1.1.2
 (patrick  17-Dec-21) 
326
: 
1.1.1.2
 (patrick  17-Dec-21) 
327
:         pt = lldb.value(lldb.frame.FindVariable("pt"))
1.1.1.2
 (patrick  17-Dec-21) 
328
:         print pt
1.1.1.2
 (patrick  17-Dec-21) 
329
:         print pt.x
1.1.1.2
 (patrick  17-Dec-21) 
330
:         print pt.y
1.1.1.2
 (patrick  17-Dec-21) 
331
: 
1.1.1.2
 (patrick  17-Dec-21) 
332
:         pt = lldb.value(lldb.frame.FindVariable("rectangle_array"))
1.1.1.2
 (patrick  17-Dec-21) 
333
:         print rectangle_array[12]
1.1.1.2
 (patrick  17-Dec-21) 
334
:         print rectangle_array[5].origin.x'''
1.1
 (patrick  03-Aug-20) 
335
:     def __init__(self, sbvalue):
1.1
 (patrick  03-Aug-20) 
336
:         self.sbvalue = sbvalue
1.1
 (patrick  03-Aug-20) 
337
: 
1.1
 (patrick  03-Aug-20) 
338
:     def __nonzero__(self):
1.1
 (patrick  03-Aug-20) 
339
:         return self.sbvalue.__nonzero__()
1.1
 (patrick  03-Aug-20) 
340
: 
1.1
 (patrick  03-Aug-20) 
341
:     def __bool__(self):
1.1
 (patrick  03-Aug-20) 
342
:         return self.sbvalue.__bool__()
1.1
 (patrick  03-Aug-20) 
343
: 
1.1
 (patrick  03-Aug-20) 
344
:     def __str__(self):
1.1
 (patrick  03-Aug-20) 
345
:         return self.sbvalue.__str__()
1.1
 (patrick  03-Aug-20) 
346
: 
1.1
 (patrick  03-Aug-20) 
347
:     def __getitem__(self, key):
1.1
 (patrick  03-Aug-20) 
348
:         # Allow array access if this value has children...
1.1
 (patrick  03-Aug-20) 
349
:         if type(key) is value:
1.1
 (patrick  03-Aug-20) 
350
:             key = int(key)
1.1
 (patrick  03-Aug-20) 
351
:         if type(key) is int:
1.1
 (patrick  03-Aug-20) 
352
:             child_sbvalue = (self.sbvalue.GetValueForExpressionPath("[%i]" % key))
1.1
 (patrick  03-Aug-20) 
353
:             if child_sbvalue and child_sbvalue.IsValid():
1.1
 (patrick  03-Aug-20) 
354
:                 return value(child_sbvalue)
1.1
 (patrick  03-Aug-20) 
355
:             raise IndexError("Index '%d' is out of range" % key)
1.1
 (patrick  03-Aug-20) 
356
:         raise TypeError("No array item of type %s" % str(type(key)))
1.1
 (patrick  03-Aug-20) 
357
: 
1.1
 (patrick  03-Aug-20) 
358
:     def __iter__(self):
1.1
 (patrick  03-Aug-20) 
359
:         return value_iter(self.sbvalue)
1.1
 (patrick  03-Aug-20) 
360
: 
1.1
 (patrick  03-Aug-20) 
361
:     def __getattr__(self, name):
1.1
 (patrick  03-Aug-20) 
362
:         child_sbvalue = self.sbvalue.GetChildMemberWithName (name)
1.1
 (patrick  03-Aug-20) 
363
:         if child_sbvalue and child_sbvalue.IsValid():
1.1
 (patrick  03-Aug-20) 
364
:             return value(child_sbvalue)
1.1
 (patrick  03-Aug-20) 
365
:         raise AttributeError("Attribute '%s' is not defined" % name)
1.1
 (patrick  03-Aug-20) 
366
: 
1.1
 (patrick  03-Aug-20) 
367
:     def __add__(self, other):
1.1
 (patrick  03-Aug-20) 
368
:         return int(self) + int(other)
1.1
 (patrick  03-Aug-20) 
369
: 
1.1
 (patrick  03-Aug-20) 
370
:     def __sub__(self, other):
1.1
 (patrick  03-Aug-20) 
371
:         return int(self) - int(other)
1.1
 (patrick  03-Aug-20) 
372
: 
1.1
 (patrick  03-Aug-20) 
373
:     def __mul__(self, other):
1.1
 (patrick  03-Aug-20) 
374
:         return int(self) * int(other)
1.1
 (patrick  03-Aug-20) 
375
: 
1.1
 (patrick  03-Aug-20) 
376
:     def __floordiv__(self, other):
1.1
 (patrick  03-Aug-20) 
377
:         return int(self) // int(other)
1.1
 (patrick  03-Aug-20) 
378
: 
1.1
 (patrick  03-Aug-20) 
379
:     def __mod__(self, other):
1.1
 (patrick  03-Aug-20) 
380
:         return int(self) % int(other)
1.1
 (patrick  03-Aug-20) 
381
: 
1.1
 (patrick  03-Aug-20) 
382
:     def __divmod__(self, other):
1.1
 (patrick  03-Aug-20) 
383
:         return int(self) % int(other)
1.1
 (patrick  03-Aug-20) 
384
: 
1.1
 (patrick  03-Aug-20) 
385
:     def __pow__(self, other):
1.1
 (patrick  03-Aug-20) 
386
:         return int(self) ** int(other)
1.1
 (patrick  03-Aug-20) 
387
: 
1.1
 (patrick  03-Aug-20) 
388
:     def __lshift__(self, other):
1.1
 (patrick  03-Aug-20) 
389
:         return int(self) << int(other)
1.1
 (patrick  03-Aug-20) 
390
: 
1.1
 (patrick  03-Aug-20) 
391
:     def __rshift__(self, other):
1.1
 (patrick  03-Aug-20) 
392
:         return int(self) >> int(other)
1.1
 (patrick  03-Aug-20) 
393
: 
1.1
 (patrick  03-Aug-20) 
394
:     def __and__(self, other):
1.1
 (patrick  03-Aug-20) 
395
:         return int(self) & int(other)
1.1
 (patrick  03-Aug-20) 
396
: 
1.1
 (patrick  03-Aug-20) 
397
:     def __xor__(self, other):
1.1
 (patrick  03-Aug-20) 
398
:         return int(self) ^ int(other)
1.1
 (patrick  03-Aug-20) 
399
: 
1.1
 (patrick  03-Aug-20) 
400
:     def __or__(self, other):
1.1
 (patrick  03-Aug-20) 
401
:         return int(self) | int(other)
1.1
 (patrick  03-Aug-20) 
402
: 
1.1
 (patrick  03-Aug-20) 
403
:     def __div__(self, other):
1.1
 (patrick  03-Aug-20) 
404
:         return int(self) / int(other)
1.1
 (patrick  03-Aug-20) 
405
: 
1.1
 (patrick  03-Aug-20) 
406
:     def __truediv__(self, other):
1.1
 (patrick  03-Aug-20) 
407
:         return int(self) / int(other)
1.1
 (patrick  03-Aug-20) 
408
: 
1.1
 (patrick  03-Aug-20) 
409
:     def __iadd__(self, other):
1.1
 (patrick  03-Aug-20) 
410
:         result = self.__add__(other)
1.1
 (patrick  03-Aug-20) 
411
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
412
:         return result
1.1
 (patrick  03-Aug-20) 
413
: 
1.1
 (patrick  03-Aug-20) 
414
:     def __isub__(self, other):
1.1
 (patrick  03-Aug-20) 
415
:         result = self.__sub__(other)
1.1
 (patrick  03-Aug-20) 
416
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
417
:         return result
1.1
 (patrick  03-Aug-20) 
418
: 
1.1
 (patrick  03-Aug-20) 
419
:     def __imul__(self, other):
1.1
 (patrick  03-Aug-20) 
420
:         result = self.__mul__(other)
1.1
 (patrick  03-Aug-20) 
421
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
422
:         return result
1.1
 (patrick  03-Aug-20) 
423
: 
1.1
 (patrick  03-Aug-20) 
424
:     def __idiv__(self, other):
1.1
 (patrick  03-Aug-20) 
425
:         result = self.__div__(other)
1.1
 (patrick  03-Aug-20) 
426
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
427
:         return result
1.1
 (patrick  03-Aug-20) 
428
: 
1.1
 (patrick  03-Aug-20) 
429
:     def __itruediv__(self, other):
1.1
 (patrick  03-Aug-20) 
430
:         result = self.__truediv__(other)
1.1
 (patrick  03-Aug-20) 
431
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
432
:         return result
1.1
 (patrick  03-Aug-20) 
433
: 
1.1
 (patrick  03-Aug-20) 
434
:     def __ifloordiv__(self, other):
1.1
 (patrick  03-Aug-20) 
435
:         result =  self.__floordiv__(self, other)
1.1
 (patrick  03-Aug-20) 
436
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
437
:         return result
1.1
 (patrick  03-Aug-20) 
438
: 
1.1
 (patrick  03-Aug-20) 
439
:     def __imod__(self, other):
1.1
 (patrick  03-Aug-20) 
440
:         result =  self.__and__(self, other)
1.1
 (patrick  03-Aug-20) 
441
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
442
:         return result
1.1
 (patrick  03-Aug-20) 
443
: 
1.1
 (patrick  03-Aug-20) 
444
:     def __ipow__(self, other):
1.1
 (patrick  03-Aug-20) 
445
:         result = self.__pow__(self, other)
1.1
 (patrick  03-Aug-20) 
446
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
447
:         return result
1.1
 (patrick  03-Aug-20) 
448
: 
1.1
 (patrick  03-Aug-20) 
449
:     def __ipow__(self, other, modulo):
1.1
 (patrick  03-Aug-20) 
450
:         result = self.__pow__(self, other, modulo)
1.1
 (patrick  03-Aug-20) 
451
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
452
:         return result
1.1
 (patrick  03-Aug-20) 
453
: 
1.1
 (patrick  03-Aug-20) 
454
:     def __ilshift__(self, other):
1.1
 (patrick  03-Aug-20) 
455
:         result = self.__lshift__(other)
1.1
 (patrick  03-Aug-20) 
456
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
457
:         return result
1.1
 (patrick  03-Aug-20) 
458
: 
1.1
 (patrick  03-Aug-20) 
459
:     def __irshift__(self, other):
1.1
 (patrick  03-Aug-20) 
460
:         result =  self.__rshift__(other)
1.1
 (patrick  03-Aug-20) 
461
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
462
:         return result
1.1
 (patrick  03-Aug-20) 
463
: 
1.1
 (patrick  03-Aug-20) 
464
:     def __iand__(self, other):
1.1
 (patrick  03-Aug-20) 
465
:         result =  self.__and__(self, other)
1.1
 (patrick  03-Aug-20) 
466
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
467
:         return result
1.1
 (patrick  03-Aug-20) 
468
: 
1.1
 (patrick  03-Aug-20) 
469
:     def __ixor__(self, other):
1.1
 (patrick  03-Aug-20) 
470
:         result =  self.__xor__(self, other)
1.1
 (patrick  03-Aug-20) 
471
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
472
:         return result
1.1
 (patrick  03-Aug-20) 
473
: 
1.1
 (patrick  03-Aug-20) 
474
:     def __ior__(self, other):
1.1
 (patrick  03-Aug-20) 
475
:         result =  self.__ior__(self, other)
1.1
 (patrick  03-Aug-20) 
476
:         self.sbvalue.SetValueFromCString (str(result))
1.1
 (patrick  03-Aug-20) 
477
:         return result
1.1
 (patrick  03-Aug-20) 
478
: 
1.1
 (patrick  03-Aug-20) 
479
:     def __neg__(self):
1.1
 (patrick  03-Aug-20) 
480
:         return -int(self)
1.1
 (patrick  03-Aug-20) 
481
: 
1.1
 (patrick  03-Aug-20) 
482
:     def __pos__(self):
1.1
 (patrick  03-Aug-20) 
483
:         return +int(self)
1.1
 (patrick  03-Aug-20) 
484
: 
1.1
 (patrick  03-Aug-20) 
485
:     def __abs__(self):
1.1
 (patrick  03-Aug-20) 
486
:         return abs(int(self))
1.1
 (patrick  03-Aug-20) 
487
: 
1.1
 (patrick  03-Aug-20) 
488
:     def __invert__(self):
1.1
 (patrick  03-Aug-20) 
489
:         return ~int(self)
1.1
 (patrick  03-Aug-20) 
490
: 
1.1
 (patrick  03-Aug-20) 
491
:     def __complex__(self):
1.1
 (patrick  03-Aug-20) 
492
:         return complex (int(self))
1.1
 (patrick  03-Aug-20) 
493
: 
1.1
 (patrick  03-Aug-20) 
494
:     def __int__(self):
1.1
 (patrick  03-Aug-20) 
495
:         is_num,is_sign = is_numeric_type(self.sbvalue.GetType().GetCanonicalType().GetBasicType())
1.1
 (patrick  03-Aug-20) 
496
:         if is_num and not is_sign: return self.sbvalue.GetValueAsUnsigned()
1.1
 (patrick  03-Aug-20) 
497
:         return self.sbvalue.GetValueAsSigned()
1.1
 (patrick  03-Aug-20) 
498
: 
1.1
 (patrick  03-Aug-20) 
499
:     def __long__(self):
1.1
 (patrick  03-Aug-20) 
500
:         return self.__int__()
1.1
 (patrick  03-Aug-20) 
501
: 
1.1
 (patrick  03-Aug-20) 
502
:     def __float__(self):
1.1
 (patrick  03-Aug-20) 
503
:         return float (self.sbvalue.GetValueAsSigned())
1.1
 (patrick  03-Aug-20) 
504
: 
1.1
 (patrick  03-Aug-20) 
505
:     def __oct__(self):
1.1
 (patrick  03-Aug-20) 
506
:         return '0%o' % self.sbvalue.GetValueAsUnsigned()
1.1
 (patrick  03-Aug-20) 
507
: 
1.1
 (patrick  03-Aug-20) 
508
:     def __hex__(self):
1.1
 (patrick  03-Aug-20) 
509
:         return '0x%x' % self.sbvalue.GetValueAsUnsigned()
1.1
 (patrick  03-Aug-20) 
510
: 
1.1
 (patrick  03-Aug-20) 
511
:     def __len__(self):
1.1
 (patrick  03-Aug-20) 
512
:         return self.sbvalue.GetNumChildren()
1.1
 (patrick  03-Aug-20) 
513
: 
1.1
 (patrick  03-Aug-20) 
514
:     def __eq__(self, other):
1.1
 (patrick  03-Aug-20) 
515
:         if type(other) is int:
1.1
 (patrick  03-Aug-20) 
516
:                 return int(self) == other
1.1
 (patrick  03-Aug-20) 
517
:         elif type(other) is str:
1.1
 (patrick  03-Aug-20) 
518
:                 return str(self) == other
1.1
 (patrick  03-Aug-20) 
519
:         elif type(other) is value:
1.1
 (patrick  03-Aug-20) 
520
:                 self_err = SBError()
1.1
 (patrick  03-Aug-20) 
521
:                 other_err = SBError()
1.1
 (patrick  03-Aug-20) 
522
:                 self_val = self.sbvalue.GetValueAsUnsigned(self_err)
1.1
 (patrick  03-Aug-20) 
523
:                 if self_err.fail:
1.1
 (patrick  03-Aug-20) 
524
:                         raise ValueError("unable to extract value of self")
1.1
 (patrick  03-Aug-20) 
525
:                 other_val = other.sbvalue.GetValueAsUnsigned(other_err)
1.1
 (patrick  03-Aug-20) 
526
:                 if other_err.fail:
1.1
 (patrick  03-Aug-20) 
527
:                         raise ValueError("unable to extract value of other")
1.1
 (patrick  03-Aug-20) 
528
:                 return self_val == other_val
1.1
 (patrick  03-Aug-20) 
529
:         raise TypeError("Unknown type %s, No equality operation defined." % str(type(other)))
1.1
 (patrick  03-Aug-20) 
530
: 
1.1
 (patrick  03-Aug-20) 
531
:     def __ne__(self, other):
1.1
 (patrick  03-Aug-20) 
532
:         return not self.__eq__(other)
1.1
 (patrick  03-Aug-20) 
533
: %}
1.1
 (patrick  03-Aug-20) 
534
: 
1.1
 (patrick  03-Aug-20) 
535
: %pythoncode %{
1.1
 (patrick  03-Aug-20) 
536
: 
1.1
 (patrick  03-Aug-20) 
537
: class SBSyntheticValueProvider(object):
1.1
 (patrick  03-Aug-20) 
538
:     def __init__(self,valobj):
1.1
 (patrick  03-Aug-20) 
539
:         pass
1.1
 (patrick  03-Aug-20) 
540
: 
1.1
 (patrick  03-Aug-20) 
541
:     def num_children(self):
1.1
 (patrick  03-Aug-20) 
542
:         return 0
1.1
 (patrick  03-Aug-20) 
543
: 
1.1
 (patrick  03-Aug-20) 
544
:     def get_child_index(self,name):
1.1
 (patrick  03-Aug-20) 
545
:         return None
1.1
 (patrick  03-Aug-20) 
546
: 
1.1
 (patrick  03-Aug-20) 
547
:     def get_child_at_index(self,idx):
1.1
 (patrick  03-Aug-20) 
548
:         return None
1.1
 (patrick  03-Aug-20) 
549
: 
1.1
 (patrick  03-Aug-20) 
550
:     def update(self):
1.1
 (patrick  03-Aug-20) 
551
:         pass
1.1
 (patrick  03-Aug-20) 
552
: 
1.1
 (patrick  03-Aug-20) 
553
:     def has_children(self):
1.1
 (patrick  03-Aug-20) 
554
:         return False
1.1
 (patrick  03-Aug-20) 
555
: 
1.1.1.4
 (robert   11-Jun-25) 
556
:     def __len__(self):
1.1.1.4
 (robert   11-Jun-25) 
557
:       return self.num_children()
1.1.1.4
 (robert   11-Jun-25) 
558
: 
1.1.1.4
 (robert   11-Jun-25) 
559
:     def __iter__(self):
1.1.1.4
 (robert   11-Jun-25) 
560
:       '''Iterate over all children in a lldb.SBSyntheticValueProvider object.'''
1.1.1.4
 (robert   11-Jun-25) 
561
:       return lldb_iter(self, 'num_children', 'get_child_at_index')
1.1
 (patrick  03-Aug-20) 
562
: 
1.1
 (patrick  03-Aug-20) 
563
: %}
1.1
 (patrick  03-Aug-20) 
564
: 
1.1
 (patrick  03-Aug-20) 
565
: %pythoncode %{
1.1
 (patrick  03-Aug-20) 
566
: 
1.1
 (patrick  03-Aug-20) 
567
: # given an lldb.SBBasicType it returns a tuple
1.1
 (patrick  03-Aug-20) 
568
: # (is_numeric, is_signed)
1.1
 (patrick  03-Aug-20) 
569
: # the value of is_signed is undefined if is_numeric == false
1.1
 (patrick  03-Aug-20) 
570
: def is_numeric_type(basic_type):
1.1
 (patrick  03-Aug-20) 
571
:     if basic_type == eBasicTypeInvalid: return (False,False)
1.1
 (patrick  03-Aug-20) 
572
:     if basic_type == eBasicTypeVoid: return (False,False)
1.1
 (patrick  03-Aug-20) 
573
:     if basic_type == eBasicTypeChar: return (True,False)
1.1
 (patrick  03-Aug-20) 
574
:     if basic_type == eBasicTypeSignedChar: return (True,True)
1.1
 (patrick  03-Aug-20) 
575
:     if basic_type == eBasicTypeUnsignedChar: return (True,False)
1.1
 (patrick  03-Aug-20) 
576
:     if basic_type == eBasicTypeWChar: return (True,False)
1.1
 (patrick  03-Aug-20) 
577
:     if basic_type == eBasicTypeSignedWChar: return (True,True)
1.1
 (patrick  03-Aug-20) 
578
:     if basic_type == eBasicTypeUnsignedWChar: return (True,False)
1.1
 (patrick  03-Aug-20) 
579
:     if basic_type == eBasicTypeChar16: return (True,False)
1.1
 (patrick  03-Aug-20) 
580
:     if basic_type == eBasicTypeChar32: return (True,False)
1.1.1.3
 (robert   11-Nov-23) 
581
:     if basic_type == eBasicTypeChar8: return (True,False)
1.1
 (patrick  03-Aug-20) 
582
:     if basic_type == eBasicTypeShort: return (True,True)
1.1
 (patrick  03-Aug-20) 
583
:     if basic_type == eBasicTypeUnsignedShort: return (True,False)
1.1
 (patrick  03-Aug-20) 
584
:     if basic_type == eBasicTypeInt: return (True,True)
1.1
 (patrick  03-Aug-20) 
585
:     if basic_type == eBasicTypeUnsignedInt: return (True,False)
1.1
 (patrick  03-Aug-20) 
586
:     if basic_type == eBasicTypeLong: return (True,True)
1.1
 (patrick  03-Aug-20) 
587
:     if basic_type == eBasicTypeUnsignedLong: return (True,False)
1.1
 (patrick  03-Aug-20) 
588
:     if basic_type == eBasicTypeLongLong: return (True,True)
1.1
 (patrick  03-Aug-20) 
589
:     if basic_type == eBasicTypeUnsignedLongLong: return (True,False)
1.1
 (patrick  03-Aug-20) 
590
:     if basic_type == eBasicTypeInt128: return (True,True)
1.1
 (patrick  03-Aug-20) 
591
:     if basic_type == eBasicTypeUnsignedInt128: return (True,False)
1.1
 (patrick  03-Aug-20) 
592
:     if basic_type == eBasicTypeBool: return (False,False)
1.1
 (patrick  03-Aug-20) 
593
:     if basic_type == eBasicTypeHalf: return (True,True)
1.1
 (patrick  03-Aug-20) 
594
:     if basic_type == eBasicTypeFloat: return (True,True)
1.1
 (patrick  03-Aug-20) 
595
:     if basic_type == eBasicTypeDouble: return (True,True)
1.1
 (patrick  03-Aug-20) 
596
:     if basic_type == eBasicTypeLongDouble: return (True,True)
1.1.1.5
 (robert   29-May-26) 
597
:     if basic_type == eBasicTypeFloat128: return (True,True)
1.1
 (patrick  03-Aug-20) 
598
:     if basic_type == eBasicTypeFloatComplex: return (True,True)
1.1
 (patrick  03-Aug-20) 
599
:     if basic_type == eBasicTypeDoubleComplex: return (True,True)
1.1
 (patrick  03-Aug-20) 
600
:     if basic_type == eBasicTypeLongDoubleComplex: return (True,True)
1.1
 (patrick  03-Aug-20) 
601
:     if basic_type == eBasicTypeObjCID: return (False,False)
1.1
 (patrick  03-Aug-20) 
602
:     if basic_type == eBasicTypeObjCClass: return (False,False)
1.1
 (patrick  03-Aug-20) 
603
:     if basic_type == eBasicTypeObjCSel: return (False,False)
1.1
 (patrick  03-Aug-20) 
604
:     if basic_type == eBasicTypeNullPtr: return (False,False)
1.1
 (patrick  03-Aug-20) 
605
:     #if basic_type == eBasicTypeOther:
1.1
 (patrick  03-Aug-20) 
606
:     return (False,False)
1.1
 (patrick  03-Aug-20) 
607
: 
1.1
 (patrick  03-Aug-20) 
608
: %}