boilerplate hopefully down

This commit is contained in:
2026-08-03 17:02:20 +10:00
parent 87208566fc
commit b4cb3aa56e
15 changed files with 286 additions and 21 deletions

41
src/type.h Normal file
View File

@@ -0,0 +1,41 @@
#ifndef __GRAVITY__TYPE_H
#define __GRAVITY__TYPE_H
#include "list.h"
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
typedef struct GravityOpaqueType* GravityType;
typedef enum {
GravityIntTypeKind = 0,
GravityFloatTypeKind,
GravityPointerTypeKind,
GravityFunctionTypeKind,
} GravityTypeKind;
typedef struct {
GravityType* argTypes;
size_t numArgs;
GravityType returnType;
} GravityFunctionType;
typedef struct {
uint8_t width;
bool isSigned;
} GravityIntType;
struct GravityOpaqueType {
GravityTypeKind typeKind;
union {
GravityFunctionType function;
GravityIntType integer;
};
};
GravityType gravityCreateFunctionType(int numArgs, GravityType* argTypes, GravityType returnType);
GravityType gravityCreateIntegerType(uint8_t width, bool isSigned);
GravityType gravityCreateType(void);
#endif