Python のソース内に記述した C++ のソースを渡す
Index.parse に C++ のソースを文字列として渡すことが出来ます。
[main.py]
import sys import clang.cindex source = """\ #include <string> int main(){ } """ index = clang.cindex.index.create() tree = index.parse("input.cpp", unsaved_files = [ ("input.cpp", source) ]) for value in tree.get_includes(): print value.source.name
[出力]
input.cpp c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\string c:/mingw/lib/gcc/mingw32/4.5.0/include/c++/mingw32\bits/c++config.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++/mingw32\bits/c++config.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\string c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\string c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/char_traits.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/functexcept.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_pair.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/move.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/move.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_iterator_base_types.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_algobase.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/char_traits.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/postypes.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\cwchar c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\cwchar c:/mingw/include\wchar.h c:/mingw/include\wchar.h c:/mingw/include\wchar.h c:/mingw/include\wchar.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/char_traits.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\cwchar c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\string c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/allocator.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++/mingw32\bits/c++allocator.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\ext/new_allocator.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\new c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\new c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\string c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/localefwd.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++/mingw32\bits/c++locale.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\clocale c:/mingw/lib/gcc/mingw32/4.5.0/include/c++/mingw32\bits/c++locale.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/localefwd.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/localefwd.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\cctype c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\string c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/ostream_insert.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\string c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/stl_function.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\string c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/basic_string.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\ext/atomicity.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++/mingw32\bits/gthr.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++/mingw32\bits/gthr-default.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\ext/atomicity.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\bits/basic_string.h c:/mingw/lib/gcc/mingw32/4.5.0/include/c++\string
[version]
- clang 3.0
- python 2.7.2