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]