| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| /*===-- clang-c/CXString.h - C Index strings --------------------*- C -*-===*\ | ||
| |* *| | ||
| |* The LLVM Compiler Infrastructure *| | ||
| |* *| | ||
| |* This file is distributed under the University of Illinois Open Source *| | ||
| |* License. See LICENSE.TXT for details. *| | ||
| |* *| | ||
| |*===----------------------------------------------------------------------===*| | ||
| |* *| | ||
| |* This header provides the interface to C Index strings. *| | ||
| |* *| | ||
| \*===----------------------------------------------------------------------===*/ | ||
|
|
||
| #ifndef CLANG_CXSTRING_H | ||
| #define CLANG_CXSTRING_H | ||
|
|
||
| #include "platform.h" | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /** | ||
| * \defgroup CINDEX_STRING String manipulation routines | ||
| * \ingroup CINDEX | ||
| * | ||
| * @{ | ||
| */ | ||
|
|
||
| /** | ||
| * \brief A character string. | ||
| * | ||
| * The \c CXString type is used to return strings from the interface when | ||
| * the ownership of that string might different from one call to the next. | ||
| * Use \c clang_getCString() to retrieve the string data and, once finished | ||
| * with the string data, call \c clang_disposeString() to free the string. | ||
| */ | ||
| typedef struct { | ||
| const void *data; | ||
| unsigned private_flags; | ||
| } CXString; | ||
|
|
||
| /** | ||
| * \brief Retrieve the character data associated with the given string. | ||
| */ | ||
| CINDEX_LINKAGE const char *clang_getCString(CXString string); | ||
|
|
||
| /** | ||
| * \brief Free the given string. | ||
| */ | ||
| CINDEX_LINKAGE void clang_disposeString(CXString string); | ||
|
|
||
| /** | ||
| * @} | ||
| */ | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| /*===-- clang-c/Platform.h - C Index platform decls -------------*- C -*-===*\ | ||
| |* *| | ||
| |* The LLVM Compiler Infrastructure *| | ||
| |* *| | ||
| |* This file is distributed under the University of Illinois Open Source *| | ||
| |* License. See LICENSE.TXT for details. *| | ||
| |* *| | ||
| |*===----------------------------------------------------------------------===*| | ||
| |* *| | ||
| |* This header provides platform specific macros (dllimport, deprecated, ...) *| | ||
| |* *| | ||
| \*===----------------------------------------------------------------------===*/ | ||
|
|
||
| #ifndef CLANG_C_PLATFORM_H | ||
| #define CLANG_C_PLATFORM_H | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /* MSVC DLL import/export. */ | ||
| #ifdef _MSC_VER | ||
| #ifdef _CINDEX_LIB_ | ||
| #define CINDEX_LINKAGE __declspec(dllexport) | ||
| #else | ||
| #define CINDEX_LINKAGE __declspec(dllimport) | ||
| #endif | ||
| #else | ||
| #define CINDEX_LINKAGE | ||
| #endif | ||
|
|
||
| #ifdef __GNUC__ | ||
| #define CINDEX_DEPRECATED __attribute__((deprecated)) | ||
| #else | ||
| #ifdef _MSC_VER | ||
| #define CINDEX_DEPRECATED __declspec(deprecated) | ||
| #else | ||
| #define CINDEX_DEPRECATED | ||
| #endif | ||
| #endif | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
| #endif |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| // Compiler implementation of the D programming language | ||
| // Copyright (c) 2013 by Digital Mars | ||
| // All Rights Reserved | ||
| // written by Jacob Carlborg | ||
| // http://www.digitalmars.com | ||
| // License for redistribution is by either the Artistic License | ||
| // in artistic.txt, or the GNU General Public License in gnu.txt. | ||
| // See the included readme.txt for details. | ||
|
|
||
| #ifndef DMD_DSTEP_H | ||
| #define DMD_DSTEP_H | ||
|
|
||
| #include "clang/clang.h" | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| bool rt_init (void*); | ||
| bool rt_term (void*); | ||
|
|
||
| enum Language | ||
| { | ||
| Language_C, | ||
| Language_ObjC | ||
| }; | ||
|
|
||
| struct TranslationArgs | ||
| { | ||
| const char* file; | ||
| const char* outputFile; | ||
| const char** args; | ||
| size_t argsLength; | ||
| Language language; | ||
| }; | ||
|
|
||
| struct Translator | ||
| { | ||
| CXIndex index; | ||
| CXTranslationUnit translationUnit; | ||
| }; | ||
|
|
||
| int dstep_translate (TranslationArgs args, Translator* translator); | ||
| void dstep_disposeTranslator (Translator translator); | ||
| bool dstep_shouldDisposeTranslator (Translator translator); | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
|
|
||
| #endif /* DMD_DSTEP_H */ |