[clang.py] Implement SourceLocation.from_offset
llvm-svn: 158307
This commit is contained in:
parent
96682025c7
commit
1162fa0a97
|
@ -169,6 +169,16 @@ class SourceLocation(Structure):
|
|||
"""
|
||||
return SourceLocation_getLocation(tu, file, line, column)
|
||||
|
||||
@staticmethod
|
||||
def from_offset(tu, file, offset):
|
||||
"""Retrieve a SourceLocation from a given character offset.
|
||||
|
||||
tu -- TranslationUnit file belongs to
|
||||
file -- File instance to obtain offset from
|
||||
offset -- Integer character offset within file
|
||||
"""
|
||||
return SourceLocation_getLocationForOffset(tu, file, offset)
|
||||
|
||||
@property
|
||||
def file(self):
|
||||
"""Get the file represented by this source location."""
|
||||
|
@ -2110,6 +2120,10 @@ SourceLocation_equalLocations = lib.clang_equalLocations
|
|||
SourceLocation_equalLocations.argtypes = [SourceLocation, SourceLocation]
|
||||
SourceLocation_equalLocations.restype = bool
|
||||
|
||||
SourceLocation_getLocationForOffset = lib.clang_getLocationForOffset
|
||||
SourceLocation_getLocationForOffset.argtypes = [TranslationUnit, File, c_uint]
|
||||
SourceLocation_getLocationForOffset.restype = SourceLocation
|
||||
|
||||
# Source Range Functions
|
||||
SourceRange_getRange = lib.clang_getRange
|
||||
SourceRange_getRange.argtypes = [SourceLocation, SourceLocation]
|
||||
|
|
|
@ -60,6 +60,15 @@ def test_location():
|
|||
location3 = SourceLocation.from_position(tu, file, 1, 4)
|
||||
assert location2 != location3
|
||||
|
||||
offset_location = SourceLocation.from_offset(tu, file, 5)
|
||||
cursor = Cursor.from_location(tu, offset_location)
|
||||
verified = False
|
||||
for n in [n for n in tu.cursor.get_children() if n.spelling == 'one']:
|
||||
assert n == cursor
|
||||
verified = True
|
||||
|
||||
assert verified
|
||||
|
||||
def test_extent():
|
||||
tu = get_tu(baseInput)
|
||||
one = get_cursor(tu, 'one')
|
||||
|
|
Loading…
Reference in New Issue