ktId_declare

This commit is contained in:
2022-09-21 01:16:32 +06:00
parent cbcd48ae66
commit d5a60953c3
19 changed files with 147 additions and 148 deletions

View File

@@ -9,13 +9,13 @@ Example:
```c
//someStruct.h
typedef struct { } someStruct;
ktId_declare(ktId_someStruct);
ktId_declare(ktId_someStructPtr); // pointer to type is another type
ktId_declare(someStruct);
ktId_declare(someStructPtr); // pointer to type is another type
```
```c
//someStruct.c
ktId_define(ktId_someStruct);
ktId_define(ktId_someStructPtr);
ktId_define(someStruct);
ktId_define(someStructPtr);
```
## type descriptors

View File

@@ -7,10 +7,10 @@ extern "C" {
#include "../std.h"
typedef uint16 ktId;
#define ktId_declare(ID_VAR_NAME)\
extern ktId ID_VAR_NAME
#define ktId_define(ID_VAR_NAME)\
ktId ID_VAR_NAME=-1
#define ktId_declare(TYPE_NAME)\
extern ktId ktId_##TYPE_NAME
#define ktId_define(TYPE_NAME)\
ktId ktId_##TYPE_NAME=-1
#if __cplusplus
}

View File

@@ -3,36 +3,36 @@
Autoarr_declare(ktDescriptor)
Autoarr_define(ktDescriptor)
ktId_define(ktId_Null);
ktId_define(Null);
ktId_define(ktId_Char);
ktId_define(ktId_Bool);
ktId_define(ktId_Float32);
ktId_define(ktId_Float64);
ktId_define(ktId_Int8);
ktId_define(ktId_UInt8);
ktId_define(ktId_Int16);
ktId_define(ktId_UInt16);
ktId_define(ktId_Int32);
ktId_define(ktId_UInt32);
ktId_define(ktId_Int64);
ktId_define(ktId_UInt64);
ktId_define(Char);
ktId_define(Bool);
ktId_define(Float32);
ktId_define(Float64);
ktId_define(Int8);
ktId_define(UInt8);
ktId_define(Int16);
ktId_define(UInt16);
ktId_define(Int32);
ktId_define(UInt32);
ktId_define(Int64);
ktId_define(UInt64);
ktId_define(ktId_CharPtr);
ktId_define(ktId_BoolPtr);
ktId_define(ktId_Float32Ptr);
ktId_define(ktId_Float64Ptr);
ktId_define(ktId_Int8Ptr);
ktId_define(ktId_UInt8Ptr);
ktId_define(ktId_Int16Ptr);
ktId_define(ktId_UInt16Ptr);
ktId_define(ktId_Int32Ptr);
ktId_define(ktId_UInt32Ptr);
ktId_define(ktId_Int64Ptr);
ktId_define(ktId_UInt64Ptr);
ktId_define(CharPtr);
ktId_define(BoolPtr);
ktId_define(Float32Ptr);
ktId_define(Float64Ptr);
ktId_define(Int8Ptr);
ktId_define(UInt8Ptr);
ktId_define(Int16Ptr);
ktId_define(UInt16Ptr);
ktId_define(Int32Ptr);
ktId_define(UInt32Ptr);
ktId_define(Int64Ptr);
ktId_define(UInt64Ptr);
ktId_define(ktId_ktDescriptor);
ktId_define(ktId_ktDescriptorPtr);
ktId_define(ktDescriptor);
ktId_define(ktDescriptorPtr);
// type descriptors are stored here during initialization
Autoarr(ktDescriptor)* __ktDescriptors=NULL;

View File

@@ -23,36 +23,36 @@ void ktDescriptors_endInit();
Maybe ktDescriptor_get(ktId id);
ktId_declare(ktId_Null);
ktId_declare(Null);
ktId_declare(ktId_Char);
ktId_declare(ktId_Bool);
ktId_declare(ktId_Float32);
ktId_declare(ktId_Float64);
ktId_declare(ktId_Int8);
ktId_declare(ktId_UInt8);
ktId_declare(ktId_Int16);
ktId_declare(ktId_UInt16);
ktId_declare(ktId_Int32);
ktId_declare(ktId_UInt32);
ktId_declare(ktId_Int64);
ktId_declare(ktId_UInt64);
ktId_declare(Char);
ktId_declare(Bool);
ktId_declare(Float32);
ktId_declare(Float64);
ktId_declare(Int8);
ktId_declare(UInt8);
ktId_declare(Int16);
ktId_declare(UInt16);
ktId_declare(Int32);
ktId_declare(UInt32);
ktId_declare(Int64);
ktId_declare(UInt64);
ktId_declare(ktId_CharPtr);
ktId_declare(ktId_BoolPtr);
ktId_declare(ktId_Float32Ptr);
ktId_declare(ktId_Float64Ptr);
ktId_declare(ktId_Int8Ptr);
ktId_declare(ktId_UInt8Ptr);
ktId_declare(ktId_Int16Ptr);
ktId_declare(ktId_UInt16Ptr);
ktId_declare(ktId_Int32Ptr);
ktId_declare(ktId_UInt32Ptr);
ktId_declare(ktId_Int64Ptr);
ktId_declare(ktId_UInt64Ptr);
ktId_declare(CharPtr);
ktId_declare(BoolPtr);
ktId_declare(Float32Ptr);
ktId_declare(Float64Ptr);
ktId_declare(Int8Ptr);
ktId_declare(UInt8Ptr);
ktId_declare(Int16Ptr);
ktId_declare(UInt16Ptr);
ktId_declare(Int32Ptr);
ktId_declare(UInt32Ptr);
ktId_declare(Int64Ptr);
ktId_declare(UInt64Ptr);
ktId_declare(ktId_ktDescriptor);
ktId_declare(ktId_ktDescriptorPtr);
ktId_declare(ktDescriptor);
ktId_declare(ktDescriptorPtr);
#if __cplusplus
}

View File

@@ -1,6 +1,5 @@
#include "init.h"
#include "ktId.h"
#include "ktDescriptor.h"
#include "kt_functions.h"
#include "unitype.h"
#include "unitype.h"

View File

@@ -1,7 +1,7 @@
#include "../base.h"
ktId_define(ktId_Unitype);
ktId_define(ktId_UnitypePtr);
ktId_define(Unitype);
ktId_define(UnitypePtr);
void Unitype_free(Unitype u){
tryLast(ktDescriptor_get(u.typeId), mType);

View File

@@ -18,8 +18,8 @@ typedef struct Unitype{
ktId typeId;
bool allocatedInHeap; // should Unitype_free call free() to VoidPtr*
} Unitype;
ktId_declare(ktId_Unitype);
ktId_declare(ktId_UnitypePtr);
ktId_declare(Unitype);
ktId_declare(UnitypePtr);
#define __UniDef(TYPE, VAL) (Unitype){\