class xr_intra_definition_iterator¶
Iterator over the definitions ( xr_tuple ) of a token.
Initialize with sfile.range_definition_iterator().
Use as you would any other Python iterator. For example:
# set up sfile sf, then...
for e in sf.range_definition_iterator(3,8):
print('xr_tuple: ', e)
xr_intra_definition_iterator Members¶
| Constructors | none |
| Methods | __eq__(), __iter__(), __ne__(), __next__(), __repr__(), __str__(), at_end() |
xr_intra_definition_iterator Details¶
-
class
cs.xr_intra_definition_iterator¶ Iterator over the definitions (
xr_tuple) of a token.-
__eq__(other)¶ Iterator equality.
Parameters: other ( xr_intra_definition_iterator) –Return type: bool Returns: Trueif and only ifselfandotherare at the same position. Behavior is undefined ifselfandotherare not iterating over the same collection.>>> sf = next(s for s in project.current().sfiles() ... if s.name().endswith('apitest.cpp')) >>> rdef_iterA = sf.range_definition_iterator(16,24) >>> rdef_iterB = sf.range_definition_iterator(16,24) >>> rdef_iterA == rdef_iterB True >>> for tup in rdef_iterA: ... if tup.get_kind_role() == xr_kind_role.VAR_PARAMETER_WRITE: ... break ... >>> rdef_iterA == rdef_iterB False
-
__iter__()¶ Get the iterator object.
Return type: xr_intra_definition_iteratorReturns: self.>>> sf = next(s for s in project.current().sfiles() ... if s.name().endswith('apitest.cpp')) >>> for tup in sf.range_definition_iterator(16,24): # iteration managed by xr_intra_definition_iterator.__iter__() ... # and xr_intra_definition_iterator.__next__() ... print(tup.get_name(), tup.get_line(), tup.get_kind_role()) ... i 16 var_parameter_read i 19 var_parameter_write i 21 var_parameter_write i 23 var_parameter_write
-
__ne__(other)¶ Iterator inequality.
Parameters: other ( xr_intra_definition_iterator) – The iterator to compare against.Return type: bool Returns: Falseif and only ifselfandotherare at the same position. Behavior is undefined ifselfandotherare not iterating over the same collection.>>> sf = next(s for s in project.current().sfiles() ... if s.name().endswith('apitest.cpp')) >>> rdef_iterA = sf.range_definition_iterator(16,24) >>> rdef_iterB = sf.range_definition_iterator(16,24) >>> rdef_iterA != rdef_iterB False >>> for tup in rdef_iterA: ... if tup.get_kind_role() == xr_kind_role.VAR_PARAMETER_WRITE: ... break ... >>> rdef_iterA != rdef_iterB True
-
__next__()¶ Iterator dereference operator.
Return type: Returns: The element at the current iterator position.
Raises: result.ERROR_INVALID_ARGUMENTif the iterator was initialized withsfile.range_definition_iterator()such that lb > ub.StopIteration
- Side effects: Modifies
self.
The typical use is implicit:
>>> for item in myiter: ... (do something to item)
>>> sf = next(s for s in project.current().sfiles() ... if s.name().endswith('apitest.cpp')) >>> for tup in sf.range_definition_iterator(16,24): # iteration managed by xr_intra_definition_iterator.__iter__() ... # and xr_intra_definition_iterator.__next__() ... print(tup.get_name(), tup.get_line(), tup.get_kind_role()) ... i 16 var_parameter_read i 19 var_parameter_write i 21 var_parameter_write i 23 var_parameter_write
-
__repr__()¶ Get a representation of the iterator that includes information useful for debugging.
Return type: str Returns: The string representation. >>> sf = next(s for s in project.current().sfiles() ... if s.name().endswith('apitest.cpp')) >>> xidi = sf.range_definition_iterator(10,30) >>> repr(xidi) '<cs.xr_intra_definition_iterator begin>'
-
__str__()¶ Get a simple string representation of the iterator.
Return type: str Returns: The string representation. >>> sf = next(s for s in project.current().sfiles() ... if s.name().endswith('apitest.cpp')) >>> xidi = sf.range_definition_iterator(10,30) >>> str(xidi) '<cs.xr_intra_definition_iterator begin>'
-
at_end()¶ Check: is the iterator at the end of the structure?
Return type: bool Returns: Trueif the iterator is at the end of the structure (there are no more elements to iterate over),Falseotherwise.>>> sf = next(s for s in project.current().sfiles() ... if s.name().endswith('apitest.cpp')) >>> xidi = sf.range_definition_iterator(10,30) >>> xidi.at_end() False
-