mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-09 19:22:50 -06:00
a patch from Bjørnar Luteberget for compatibility with MSVC
This commit is contained in:
@@ -56,7 +56,7 @@ typedef struct {
|
||||
PgfPatt patt;
|
||||
} PgfPattAs;
|
||||
|
||||
typedef void PgfPattWild;
|
||||
typedef char PgfPattWild;
|
||||
|
||||
typedef struct {
|
||||
PgfPatt patt;
|
||||
@@ -241,12 +241,15 @@ typedef struct PgfSymbolKP
|
||||
} PgfSymbolKP;
|
||||
|
||||
typedef struct {
|
||||
char nothing[0]; // Empty struct
|
||||
} PgfSymbolNE;
|
||||
|
||||
typedef struct {
|
||||
char nothing[0]; // Empty struct
|
||||
} PgfSymbolBIND;
|
||||
|
||||
typedef struct {
|
||||
char nothing[0]; // Empty struct
|
||||
} PgfSymbolCAPIT;
|
||||
|
||||
typedef GuBuf PgfProductionIdx;
|
||||
|
||||
@@ -437,7 +437,7 @@ pgf_evaluate_accum_init_flt(PgfReasoner* rs,
|
||||
rs->pool);
|
||||
lit_flt->val = val;
|
||||
accum->enter_stack_ptr = rs->enter_stack_ptr;
|
||||
rs->enter_stack_ptr = ((void*)accum)-sizeof(void*)*2;
|
||||
rs->enter_stack_ptr = ((char*)accum)-sizeof(char*)*2;
|
||||
accum->consts = NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <pgf/reasoner.h>
|
||||
#include <pgf/reader.h>
|
||||
#include "lightning.h"
|
||||
#ifdef __MINGW32__
|
||||
#if defined(__MINGW32__) || defined(_MSC_VER)
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
@@ -43,7 +43,7 @@ typedef struct {
|
||||
#define JIT_VSTATE JIT_V1
|
||||
#define JIT_VCLOS JIT_V2
|
||||
|
||||
#if defined(__MINGW32__)
|
||||
#if defined(__MINGW32__) || defined(_MSC_VER)
|
||||
#include <windows.h>
|
||||
|
||||
static int
|
||||
@@ -71,7 +71,7 @@ pgf_jit_alloc_page(PgfReader* rdr)
|
||||
|
||||
#if defined(ANDROID)
|
||||
if ((page = memalign(page_size, page_size)) == NULL) {
|
||||
#elif defined(__MINGW32__)
|
||||
#elif defined(__MINGW32__) || defined(_MSC_VER)
|
||||
if ((page = malloc(page_size)) == NULL) {
|
||||
#else
|
||||
if (posix_memalign(&page, page_size, page_size) != 0) {
|
||||
|
||||
@@ -29,6 +29,7 @@ PgfCncTreeEnum*
|
||||
pgf_lzr_concretize(PgfConcr* concr, PgfExpr expr, GuExn* err, GuPool* pool);
|
||||
|
||||
typedef struct {
|
||||
char nothing[0]; // Empty struct
|
||||
} PgfLinNonExist;
|
||||
|
||||
PgfCncTree
|
||||
|
||||
@@ -334,7 +334,7 @@ pgf_match_name_lit(PgfLiteralCallback* self, PgfConcr* concr,
|
||||
return ep;
|
||||
}
|
||||
|
||||
PgfLiteralCallback pgf_nerc_literal_callback =
|
||||
PGF_API_DATA PgfLiteralCallback pgf_nerc_literal_callback =
|
||||
{ pgf_match_name_lit, pgf_predict_empty } ;
|
||||
|
||||
static void
|
||||
@@ -419,7 +419,7 @@ pgf_match_unknown_lit(PgfLiteralCallback* self, PgfConcr* concr,
|
||||
return ep;
|
||||
}
|
||||
|
||||
PgfLiteralCallback pgf_unknown_literal_callback =
|
||||
PGF_API_DATA PgfLiteralCallback pgf_unknown_literal_callback =
|
||||
{ pgf_match_unknown_lit, pgf_predict_empty } ;
|
||||
|
||||
PgfCallbacksMap*
|
||||
|
||||
@@ -1,13 +1,33 @@
|
||||
#ifndef PGF_LITERALS_H_
|
||||
#define PGF_LITERALS_H_
|
||||
|
||||
// MSVC requires explicit export/import of
|
||||
// symbols in DLLs. CMake takes care of this
|
||||
// for functions, but not for data/variables.
|
||||
#if defined(_MSC_VER)
|
||||
#if defined(COMPILING_PGF)
|
||||
#define PGF_API_DATA_DECL __declspec(dllexport)
|
||||
#define PGF_API_DATA __declspec(dllexport)
|
||||
#else
|
||||
#define PGF_API_DATA_DECL __declspec(dllimport)
|
||||
#define PGF_API_DATA ERROR_NOT_COMPILING_LIBPGF
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#define PGF_API_DATA_DECL extern
|
||||
#define PGF_API_DATA
|
||||
#endif
|
||||
// end MSVC workaround
|
||||
|
||||
|
||||
#include <pgf/data.h>
|
||||
|
||||
// literal for named entities recognition
|
||||
extern PgfLiteralCallback pgf_nerc_literal_callback;
|
||||
PGF_API_DATA_DECL PgfLiteralCallback pgf_nerc_literal_callback;
|
||||
|
||||
// literal for finding unknown words
|
||||
extern PgfLiteralCallback pgf_unknown_literal_callback;
|
||||
PGF_API_DATA_DECL PgfLiteralCallback pgf_unknown_literal_callback;
|
||||
|
||||
PgfCCat*
|
||||
pgf_literal_cat(PgfConcr* concr, PgfLiteral lit);
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __MINGW32__
|
||||
#if defined(__MINGW32__) || defined(_MSC_VER)
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user