1*1f6a57c1SMed Ismail Bennani //===-- SWIGPythonBridge.cpp ----------------------------------------------===// 2*1f6a57c1SMed Ismail Bennani // 3*1f6a57c1SMed Ismail Bennani // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*1f6a57c1SMed Ismail Bennani // See https://llvm.org/LICENSE.txt for license information. 5*1f6a57c1SMed Ismail Bennani // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*1f6a57c1SMed Ismail Bennani // 7*1f6a57c1SMed Ismail Bennani //===----------------------------------------------------------------------===// 8*1f6a57c1SMed Ismail Bennani 9*1f6a57c1SMed Ismail Bennani #include "lldb/Host/Config.h" 10*1f6a57c1SMed Ismail Bennani #include "lldb/lldb-enumerations.h" 11*1f6a57c1SMed Ismail Bennani 12*1f6a57c1SMed Ismail Bennani #if LLDB_ENABLE_PYTHON 13*1f6a57c1SMed Ismail Bennani 14*1f6a57c1SMed Ismail Bennani // LLDB Python header must be included first 15*1f6a57c1SMed Ismail Bennani #include "lldb-python.h" 16*1f6a57c1SMed Ismail Bennani 17*1f6a57c1SMed Ismail Bennani #include "SWIGPythonBridge.h" 18*1f6a57c1SMed Ismail Bennani 19*1f6a57c1SMed Ismail Bennani using namespace lldb; 20*1f6a57c1SMed Ismail Bennani 21*1f6a57c1SMed Ismail Bennani namespace lldb_private { 22*1f6a57c1SMed Ismail Bennani 23*1f6a57c1SMed Ismail Bennani template <typename T> const char *GetPythonValueFormatString(T t); GetPythonValueFormatString(char *)24*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(char *) { return "s"; } GetPythonValueFormatString(char)25*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(char) { return "b"; } GetPythonValueFormatString(unsigned char)26*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(unsigned char) { 27*1f6a57c1SMed Ismail Bennani return "B"; 28*1f6a57c1SMed Ismail Bennani } GetPythonValueFormatString(short)29*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(short) { return "h"; } GetPythonValueFormatString(unsigned short)30*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(unsigned short) { 31*1f6a57c1SMed Ismail Bennani return "H"; 32*1f6a57c1SMed Ismail Bennani } GetPythonValueFormatString(int)33*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(int) { return "i"; } GetPythonValueFormatString(unsigned int)34*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(unsigned int) { return "I"; } GetPythonValueFormatString(long)35*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(long) { return "l"; } GetPythonValueFormatString(unsigned long)36*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(unsigned long) { 37*1f6a57c1SMed Ismail Bennani return "k"; 38*1f6a57c1SMed Ismail Bennani } GetPythonValueFormatString(long long)39*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(long long) { return "L"; } GetPythonValueFormatString(unsigned long long)40*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(unsigned long long) { 41*1f6a57c1SMed Ismail Bennani return "K"; 42*1f6a57c1SMed Ismail Bennani } GetPythonValueFormatString(float)43*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(float) { return "f"; } GetPythonValueFormatString(double)44*1f6a57c1SMed Ismail Bennanitemplate <> const char *GetPythonValueFormatString(double) { return "d"; } 45*1f6a57c1SMed Ismail Bennani 46*1f6a57c1SMed Ismail Bennani } // namespace lldb_private 47*1f6a57c1SMed Ismail Bennani 48*1f6a57c1SMed Ismail Bennani #endif // LLDB_ENABLE_PYTHON 49