Files
Gravity/include/gravity/core.h

35 lines
996 B
C

#ifndef __GRAVITY__CORE_H
#define __GRAVITY__CORE_H
#include <stdint.h>
#include <stdbool.h>
// === TYPE DEFINITIONS === //
typedef struct GravityOpaqueModule* GravityModule;
typedef struct GravityOpaqueValue* GravityValue;
typedef struct GravityOpaqueBuilder* GravityBuilder;
typedef struct GravityOpaqueFunction* GravityFunction;
typedef struct GravityOpaqueType* GravityType;
typedef enum {
GravityIntTypeKind = 0,
GravityFloatTypeKind,
GravityPointerTypeKind,
GravityFunctionTypeKind,
} GravityTypeKind;
// ========================== //
// === FUNCTION DEFINITIONS === //
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);
// ============================ //
#endif