Python synthetic children:
 - you can now define a Python class as a synthetic children producer for a type
   the class must adhere to this "interface":
        def __init__(self, valobj, dict):
     	def get_child_at_index(self, index):
     	def get_child_index(self, name):
   then using type synth add -l className typeName
   (e.g. type synth add -l fooSynthProvider foo)
   (This is still WIP with lots to be added)
   A small test case is available also as reference

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135865 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/API/SBCommandInterpreter.cpp b/source/API/SBCommandInterpreter.cpp
index 97b9314..1124d56 100644
--- a/source/API/SBCommandInterpreter.cpp
+++ b/source/API/SBCommandInterpreter.cpp
@@ -322,6 +322,19 @@
     const lldb::ValueObjectSP& valobj_sp
 );
 
+extern "C" void*
+LLDBSwigPythonCreateSyntheticProvider 
+(
+    const std::string python_class_name,
+    const char *session_dictionary_name,
+    const lldb::ValueObjectSP& valobj_sp
+);
+
+
+extern "C" uint32_t       LLDBSwigPython_CalculateNumChildren    (void *implementor);
+extern "C" void*          LLDBSwigPython_GetChildAtIndex         (void *implementor, uint32_t idx);
+extern "C" int            LLDBSwigPython_GetIndexOfChildWithName (void *implementor, const char* child_name);
+extern "C" lldb::SBValue* LLDBSWIGPython_CastPyObjectToSBValue   (void* data);
 
 extern "C" void init_lldb(void);
 
@@ -334,6 +347,11 @@
         g_initialized = true;
         ScriptInterpreter::InitializeInterpreter (init_lldb, 
                                                   LLDBSwigPythonBreakpointCallbackFunction,
-                                                  LLDBSwigPythonCallTypeScript);
+                                                  LLDBSwigPythonCallTypeScript,
+                                                  LLDBSwigPythonCreateSyntheticProvider,
+                                                  LLDBSwigPython_CalculateNumChildren,
+                                                  LLDBSwigPython_GetChildAtIndex,
+                                                  LLDBSwigPython_GetIndexOfChildWithName,
+                                                  LLDBSWIGPython_CastPyObjectToSBValue);
     }
 }