ktId_declare

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

View File

@ -13,35 +13,35 @@ Autoarr_define(int32)
Autoarr_define(uint64)
Autoarr_define(int64)
ktId_define(ktId_AutoarrChar);
ktId_define(ktId_AutoarrBool);
ktId_define(ktId_AutoarrFloat32);
ktId_define(ktId_AutoarrFloat64);
ktId_define(ktId_AutoarrInt8);
ktId_define(ktId_AutoarrUInt8);
ktId_define(ktId_AutoarrInt16);
ktId_define(ktId_AutoarrUInt16);
ktId_define(ktId_AutoarrInt32);
ktId_define(ktId_AutoarrUInt32);
ktId_define(ktId_AutoarrInt64);
ktId_define(ktId_AutoarrUInt64);
ktId_define(AutoarrChar);
ktId_define(AutoarrBool);
ktId_define(AutoarrFloat32);
ktId_define(AutoarrFloat64);
ktId_define(AutoarrInt8);
ktId_define(AutoarrUInt8);
ktId_define(AutoarrInt16);
ktId_define(AutoarrUInt16);
ktId_define(AutoarrInt32);
ktId_define(AutoarrUInt32);
ktId_define(AutoarrInt64);
ktId_define(AutoarrUInt64);
ktId_define(ktId_AutoarrCharPtr);
ktId_define(ktId_AutoarrBoolPtr);
ktId_define(ktId_AutoarrFloat32Ptr);
ktId_define(ktId_AutoarrFloat64Ptr);
ktId_define(ktId_AutoarrInt8Ptr);
ktId_define(ktId_AutoarrUInt8Ptr);
ktId_define(ktId_AutoarrInt16Ptr);
ktId_define(ktId_AutoarrUInt16Ptr);
ktId_define(ktId_AutoarrInt32Ptr);
ktId_define(ktId_AutoarrUInt32Ptr);
ktId_define(ktId_AutoarrInt64Ptr);
ktId_define(ktId_AutoarrUInt64Ptr);
ktId_define(AutoarrCharPtr);
ktId_define(AutoarrBoolPtr);
ktId_define(AutoarrFloat32Ptr);
ktId_define(AutoarrFloat64Ptr);
ktId_define(AutoarrInt8Ptr);
ktId_define(AutoarrUInt8Ptr);
ktId_define(AutoarrInt16Ptr);
ktId_define(AutoarrUInt16Ptr);
ktId_define(AutoarrInt32Ptr);
ktId_define(AutoarrUInt32Ptr);
ktId_define(AutoarrInt64Ptr);
ktId_define(AutoarrUInt64Ptr);
Autoarr_define(Unitype)
ktId_define(ktId_AutoarrUnitype);
ktId_define(ktId_AutoarrUnitypePtr);
ktId_define(AutoarrUnitype);
ktId_define(AutoarrUnitypePtr);
// right func to clear array of unitype values
void __Autoarr_free_Unitype_(Autoarr(Unitype)* ar, bool freePtr){

View File

@ -20,35 +20,35 @@ Autoarr_declare(uint32)
Autoarr_declare(int64)
Autoarr_declare(uint64)
ktId_declare(ktId_AutoarrChar);
ktId_declare(ktId_AutoarrBool);
ktId_declare(ktId_AutoarrFloat32);
ktId_declare(ktId_AutoarrFloat64);
ktId_declare(ktId_AutoarrInt8);
ktId_declare(ktId_AutoarrUInt8);
ktId_declare(ktId_AutoarrInt16);
ktId_declare(ktId_AutoarrUInt16);
ktId_declare(ktId_AutoarrInt32);
ktId_declare(ktId_AutoarrUInt32);
ktId_declare(ktId_AutoarrInt64);
ktId_declare(ktId_AutoarrUInt64);
ktId_declare(AutoarrChar);
ktId_declare(AutoarrBool);
ktId_declare(AutoarrFloat32);
ktId_declare(AutoarrFloat64);
ktId_declare(AutoarrInt8);
ktId_declare(AutoarrUInt8);
ktId_declare(AutoarrInt16);
ktId_declare(AutoarrUInt16);
ktId_declare(AutoarrInt32);
ktId_declare(AutoarrUInt32);
ktId_declare(AutoarrInt64);
ktId_declare(AutoarrUInt64);
ktId_declare(ktId_AutoarrCharPtr);
ktId_declare(ktId_AutoarrBoolPtr);
ktId_declare(ktId_AutoarrFloat32Ptr);
ktId_declare(ktId_AutoarrFloat64Ptr);
ktId_declare(ktId_AutoarrInt8Ptr);
ktId_declare(ktId_AutoarrUInt8Ptr);
ktId_declare(ktId_AutoarrInt16Ptr);
ktId_declare(ktId_AutoarrUInt16Ptr);
ktId_declare(ktId_AutoarrInt32Ptr);
ktId_declare(ktId_AutoarrUInt32Ptr);
ktId_declare(ktId_AutoarrInt64Ptr);
ktId_declare(ktId_AutoarrUInt64Ptr);
ktId_declare(AutoarrCharPtr);
ktId_declare(AutoarrBoolPtr);
ktId_declare(AutoarrFloat32Ptr);
ktId_declare(AutoarrFloat64Ptr);
ktId_declare(AutoarrInt8Ptr);
ktId_declare(AutoarrUInt8Ptr);
ktId_declare(AutoarrInt16Ptr);
ktId_declare(AutoarrUInt16Ptr);
ktId_declare(AutoarrInt32Ptr);
ktId_declare(AutoarrUInt32Ptr);
ktId_declare(AutoarrInt64Ptr);
ktId_declare(AutoarrUInt64Ptr);
Autoarr_declare(Unitype)
ktId_declare(ktId_AutoarrUnitype);
ktId_declare(ktId_AutoarrUnitypePtr);
ktId_declare(AutoarrUnitype);
ktId_declare(AutoarrUnitypePtr);
// this function is injected in kerep_init()
void __Autoarr_free_Unitype_(Autoarr(Unitype)* ar, bool freePtr);

View File

@ -1,7 +1,7 @@
#include "Hashtable.h"
ktId_define(ktId_Hashtable);
ktId_define(ktId_HashtablePtr);
ktId_define(Hashtable);
ktId_define(HashtablePtr);
// amount of rows
static const uint16 HT_HEIGHTS[]={17,61,257,1021,4099,16381,65521};

View File

@ -11,8 +11,8 @@ typedef struct Hashtable{
uint8 hein; // height=HT_HEIGHTS[hein]
Autoarr(KVPair)** rows; // Autoarr[height]
} Hashtable;
ktId_declare(ktId_Hashtable);
ktId_declare(ktId_HashtablePtr);
ktId_declare(Hashtable);
ktId_declare(HashtablePtr);
Hashtable* Hashtable_create();
void Hashtable_free(Hashtable* ht);

View File

@ -1,11 +1,11 @@
#include "KeyValuePair.h"
ktId_define(ktId_KVPair);
ktId_define(ktId_KVPairPtr);
ktId_define(KVPair);
ktId_define(KVPairPtr);
Autoarr_define(KVPair)
ktId_define(ktId_AutoarrKVPair);
ktId_define(ktId_AutoarrKVPairPtr);
ktId_define(AutoarrKVPair);
ktId_define(AutoarrKVPairPtr);
// proper way to clear a KVP
void KVPair_free(KVPair p){

View File

@ -11,12 +11,12 @@ typedef struct KVPair{
char* key;
Unitype value;
} KVPair;
ktId_declare(ktId_KVPair);
ktId_declare(ktId_KVPairPtr);
ktId_declare(KVPair);
ktId_declare(KVPairPtr);
Autoarr_declare(KVPair)
ktId_declare(ktId_AutoarrKVPair);
ktId_declare(ktId_AutoarrKVPairPtr);
ktId_declare(AutoarrKVPair);
ktId_declare(AutoarrKVPairPtr);
// proper way to clear a KVP
void KVPair_free(KVPair p);

View File

@ -1,7 +1,7 @@
#include "SearchTree.h"
ktId_define(ktId_STNode);
ktId_define(ktId_STNodePtr);
ktId_define(STNode);
ktId_define(STNodePtr);
STNode* STNode_create(){
STNode* node=malloc(sizeof(STNode));

View File

@ -11,8 +11,8 @@ typedef struct SearchTreeNode{
struct SearchTreeNode**** branches; // *STNode[8][8][4]
Unitype value;
} STNode;
ktId_declare(ktId_STNode);
ktId_declare(ktId_STNodePtr);
ktId_declare(STNode);
ktId_declare(STNodePtr);
STNode* STNode_create();
void STNode_free(STNode* node);

View File

@ -1,11 +1,11 @@
#include "StringBuilder.h"
Autoarr_define(string)
ktId_define(ktId_AutoarrString);
ktId_define(ktId_AutoarrStringPtr);
ktId_define(AutoarrString);
ktId_define(AutoarrStringPtr);
ktId_define(ktId_StringBuilder);
ktId_define(ktId_StringBuilderPtr);
ktId_define(StringBuilder);
ktId_define(StringBuilderPtr);
#define BL_C 32
#define BL_L 1024

View File

@ -8,15 +8,15 @@ extern "C" {
#include "string.h"
Autoarr_declare(string)
ktId_declare(ktId_AutoarrString);
ktId_declare(ktId_AutoarrStringPtr);
ktId_declare(AutoarrString);
ktId_declare(AutoarrStringPtr);
typedef struct StringBuilder{
Autoarr(string)* compl_bufs;
Autoarr(int8)* curr_buf;
} StringBuilder;
ktId_declare(ktId_StringBuilder);
ktId_declare(ktId_StringBuilderPtr);
ktId_declare(StringBuilder);
ktId_declare(StringBuilderPtr);
StringBuilder* StringBuilder_create(void);
void StringBuilder_free(StringBuilder* b);

View File

@ -1,7 +1,7 @@
#include "string.h"
ktId_define(ktId_string);
ktId_define(ktId_stringPtr);
ktId_define(string);
ktId_define(stringPtr);
// copies str content to new char pointer value (adding '\0' at the end)
char* string_extract(string str){

View File

@ -12,8 +12,8 @@ typedef struct string{
char* ptr; // char pointer
uint32 length; // amount of chars in ptr value
} string;
ktId_declare(ktId_string);
ktId_declare(ktId_stringPtr);
ktId_declare(string);
ktId_declare(stringPtr);
static const string stringNull={NULL,0};

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){\