cindex/Python: Move translation unit load functions to Index, there isn't a good reason to have separate static methods for this.
llvm-svn: 94419
This commit is contained in:
parent
dacede8349
commit
f91a8d64d4
@ -506,7 +506,8 @@ class Index(ClangObject):
|
||||
|
||||
def read(self, path):
|
||||
"""Load the translation unit from the given AST file."""
|
||||
return TranslationUnit.read(self, path)
|
||||
ptr = TranslationUnit_read(self, path)
|
||||
return TranslationUnit(ptr) if ptr else None
|
||||
|
||||
def parse(self, path, args = [], unsaved_files = []):
|
||||
"""
|
||||
@ -519,7 +520,26 @@ class Index(ClangObject):
|
||||
and the second should be the contents to be substituted for the
|
||||
file. The contents may be passed as strings or file objects.
|
||||
"""
|
||||
return TranslationUnit.parse(self, path, args, unsaved_files)
|
||||
arg_array = 0
|
||||
if len(args):
|
||||
arg_array = (c_char_p * len(args))(* args)
|
||||
unsaved_files_array = 0
|
||||
if len(unsaved_files):
|
||||
unsaved_files_array = (_CXUnsavedFile * len(unsaved_files))()
|
||||
for i,(name,value) in enumerate(unsaved_files):
|
||||
if not isinstance(value, str):
|
||||
# FIXME: It would be great to support an efficient version
|
||||
# of this, one day.
|
||||
value = value.read()
|
||||
print value
|
||||
if not isinstance(value, str):
|
||||
raise TypeError,'Unexpected unsaved file contents.'
|
||||
unsaved_files_array[i].name = name
|
||||
unsaved_files_array[i].contents = value
|
||||
unsaved_files_array[i].length = len(value)
|
||||
ptr = TranslationUnit_parse(self, path, len(args), arg_array,
|
||||
len(unsaved_files), unsaved_files_array)
|
||||
return TranslationUnit(ptr) if ptr else None
|
||||
|
||||
|
||||
class TranslationUnit(ClangObject):
|
||||
@ -541,39 +561,6 @@ class TranslationUnit(ClangObject):
|
||||
"""Get the original translation unit source file name."""
|
||||
return TranslationUnit_spelling(self)
|
||||
|
||||
@staticmethod
|
||||
def read(ix, path):
|
||||
"""Create a translation unit from the given AST file."""
|
||||
ptr = TranslationUnit_read(ix, path)
|
||||
return TranslationUnit(ptr) if ptr else None
|
||||
|
||||
@staticmethod
|
||||
def parse(ix, path, args = [], unsaved_files = []):
|
||||
"""
|
||||
Construct a translation unit from the given source file, using
|
||||
the given command line argument.
|
||||
"""
|
||||
arg_array = 0
|
||||
if len(args):
|
||||
arg_array = (c_char_p * len(args))(* args)
|
||||
unsaved_files_array = 0
|
||||
if len(unsaved_files):
|
||||
unsaved_files_array = (_CXUnsavedFile * len(unsaved_files))()
|
||||
for i,(name,value) in enumerate(unsaved_files):
|
||||
if not isinstance(value, str):
|
||||
# FIXME: It would be great to support an efficient version
|
||||
# of this, one day.
|
||||
value = value.read()
|
||||
print value
|
||||
if not isinstance(value, str):
|
||||
raise TypeError,'Unexpected unsaved file contents.'
|
||||
unsaved_files_array[i].name = name
|
||||
unsaved_files_array[i].contents = value
|
||||
unsaved_files_array[i].length = len(value)
|
||||
ptr = TranslationUnit_parse(ix, path, len(args), arg_array,
|
||||
len(unsaved_files), unsaved_files_array)
|
||||
return TranslationUnit(ptr) if ptr else None
|
||||
|
||||
class File(ClangObject):
|
||||
"""
|
||||
The File class represents a particular source file that is part of a
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user