5,803 changes: 5,803 additions & 0 deletions src/clang/clang.h

Large diffs are not rendered by default.

60 changes: 60 additions & 0 deletions src/clang/cxstring.h
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
45 changes: 45 additions & 0 deletions src/clang/platform.h
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
51 changes: 51 additions & 0 deletions src/dstep.h
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 */
3 changes: 2 additions & 1 deletion src/idgen.c
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,8 @@ Msgtable msgtable[] =
{ "lib" },
{ "msg" },
{ "startaddress" },
{ "mangle" },
{ "mangle" },
{ "include" },

// For special functions
{ "tohash", "toHash" },
Expand Down
4 changes: 2 additions & 2 deletions src/posix.mak
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ ifneq (x,x$(MODEL))
endif

ifeq (OSX,$(OS))
export MACOSX_DEPLOYMENT_TARGET=10.3
export MACOSX_DEPLOYMENT_TARGET=10.5
endif
LDFLAGS=-lm -lstdc++ -lpthread
LDFLAGS=-L/Users/jacob/development/d/dstep/lib -L/Users/jacob/development/d/dstep -L/Users/jacob/.dvm/compilers/dmd-2.063.2/lib -lm -lstdc++ -lpthread -lclang -ltango -lphobos2 -ldstep -Xlinker -rpath -Xlinker /Users/jacob/development/d/dstep

HOST_CC=g++
CC=$(HOST_CC) $(MODEL_FLAG)
Expand Down