diff options
author | Tobias Grosser <grosser@fim.uni-passau.de> | 2011-10-31 00:07:19 +0000 |
---|---|---|
committer | Tobias Grosser <grosser@fim.uni-passau.de> | 2011-10-31 00:07:19 +0000 |
commit | a9ea5df14abb807eb0173e2737c5a1d61e86975b (patch) | |
tree | 62701988e18bacf57dca147610376fb1731c2f5a /bindings | |
parent | 7993e8a2a26bf408c2a6d45f24fffa12db336b2b (diff) | |
download | clang-a9ea5df14abb807eb0173e2737c5a1d61e86975b.tar.gz |
cindex.py: Add File.create_from_name()
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143321 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'bindings')
-rw-r--r-- | bindings/python/clang/cindex.py | 15 | ||||
-rw-r--r-- | bindings/python/tests/cindex/test_file.py | 9 |
2 files changed, 24 insertions, 0 deletions
diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py index 1c4ab35e4a..c66e3563c9 100644 --- a/bindings/python/clang/cindex.py +++ b/bindings/python/clang/cindex.py @@ -1523,6 +1523,11 @@ class File(ClangObject): translation unit. """ + @staticmethod + def from_name(translation_unit, file_name): + """Retrieve a file handle within the given translation unit.""" + return File(File_getFile(translation_unit, file_name)) + @property def name(self): """Return the complete file and path name of the file.""" @@ -1533,6 +1538,12 @@ class File(ClangObject): """Return the last modification time of the file.""" return File_time(self) + def __str__(self): + return self.name + + def __repr__(self): + return "<File: %s>" % (self.name) + class FileInclusion(object): """ The FileInclusion class represents the inclusion of one source file by @@ -1759,6 +1770,10 @@ TranslationUnit_includes.argtypes = [TranslationUnit, py_object] # File Functions +File_getFile = lib.clang_getFile +File_getFile.argtypes = [TranslationUnit, c_char_p] +File_getFile.restype = c_object_p + File_name = lib.clang_getFileName File_name.argtypes = [File] File_name.restype = _CXString diff --git a/bindings/python/tests/cindex/test_file.py b/bindings/python/tests/cindex/test_file.py new file mode 100644 index 0000000000..146e8c5705 --- /dev/null +++ b/bindings/python/tests/cindex/test_file.py @@ -0,0 +1,9 @@ +from clang.cindex import Index, File + +def test_file(): + index = Index.create() + tu = index.parse('t.c', unsaved_files = [('t.c', "")]) + file = File.from_name(tu, "t.c") + assert str(file) == "t.c" + assert file.name == "t.c" + assert repr(file) == "<File: t.c>" |