Files
Gravity/include/gravity/core.h

35 lines
996 B
C
Raw Normal View History

2026-08-03 17:02:20 +10:00
#ifndef __GRAVITY__CORE_H
#define __GRAVITY__CORE_H
2026-08-02 15:52:44 +10:00
2026-08-03 17:02:20 +10:00
#include <stdint.h>
#include <stdbool.h>
// === TYPE DEFINITIONS === //
2026-08-02 15:52:44 +10:00
typedef struct GravityOpaqueModule* GravityModule;
2026-08-03 17:02:20 +10:00
typedef struct GravityOpaqueValue* GravityValue;
typedef struct GravityOpaqueBuilder* GravityBuilder;
typedef struct GravityOpaqueFunction* GravityFunction;
typedef struct GravityOpaqueType* GravityType;
typedef enum {
GravityIntTypeKind = 0,
GravityFloatTypeKind,
GravityPointerTypeKind,
GravityFunctionTypeKind,
} GravityTypeKind;
2026-08-02 15:52:44 +10:00
// ========================== //
// === FUNCTION DEFINITIONS === //
2026-08-03 17:02:20 +10:00
GravityModule gravityCreateModule(void);
GravityBuilder gravityCreateBuilder(void);
GravityFunction gravityNewFunction(GravityModule module, const char* name, GravityType functionType);
GravityType gravityCreateFunctionType(int numArgs, GravityType* argTypes, GravityType returnType);
GravityType gravityCreateIntegerType(uint8_t width, bool isSigned);
2026-08-02 15:52:44 +10:00
// ============================ //
#endif