Inflection
Morphology Inflection
Loading...
Searching...
No Matches
api.h
1/*
2 * Copyright 2018-2024 Apple Inc. All rights reserved.
3 */
4#pragma once
5
9#include <inflection/version.h>
10
11#if !INFLECTION_STATIC
12#if defined(_WIN32)
13#ifndef INFLECTION_EXPORT_API
14#define INFLECTION_EXPORT_API __declspec(dllimport)
15#endif
16#else
17#define INFLECTION_EXPORT_API __attribute__((visibility("default")))
18#endif
19#else
20#define INFLECTION_EXPORT_API
21#endif
22
26#define INFLECTION_CLASS_API INFLECTION_EXPORT_API
30#define INFLECTION_INTERNAL_API INFLECTION_EXPORT_API
34#define INFLECTION_ENUM(_type, _name) enum _name : _type; typedef enum _name _name; enum _name : _type
35
39#ifdef __cplusplus
40#define INFLECTION_CAPI extern "C" INFLECTION_EXPORT_API
41#define INFLECTION_CTYPE(name) extern "C" {typedef struct name name;}
42#define INFLECTION_CBEGIN extern "C" {
43#define INFLECTION_CEND }
44#else
45#define INFLECTION_CAPI extern INFLECTION_EXPORT_API
46#define INFLECTION_CTYPE(name) typedef struct name name;
47#define INFLECTION_CBEGIN
48#define INFLECTION_CEND
49#include <stdint.h>
50
51#if (defined(__clang__) && defined(__CHAR16_TYPE__) && !defined(char16_t))
52typedef __CHAR16_TYPE__ char16_t;
53#else
54// This is typically gcc
55#include <uchar.h>
56#endif
57
58#endif