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

View File

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

View File

@ -1,7 +1,7 @@
#include "Hashtable.h" #include "Hashtable.h"
ktId_define(ktId_Hashtable); ktId_define(Hashtable);
ktId_define(ktId_HashtablePtr); ktId_define(HashtablePtr);
// amount of rows // amount of rows
static const uint16 HT_HEIGHTS[]={17,61,257,1021,4099,16381,65521}; 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] uint8 hein; // height=HT_HEIGHTS[hein]
Autoarr(KVPair)** rows; // Autoarr[height] Autoarr(KVPair)** rows; // Autoarr[height]
} Hashtable; } Hashtable;
ktId_declare(ktId_Hashtable); ktId_declare(Hashtable);
ktId_declare(ktId_HashtablePtr); ktId_declare(HashtablePtr);
Hashtable* Hashtable_create(); Hashtable* Hashtable_create();
void Hashtable_free(Hashtable* ht); void Hashtable_free(Hashtable* ht);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,3 @@
#include "init.h" #include "init.h"
#include "ktId.h" #include "ktId.h"
#include "ktDescriptor.h" #include "ktDescriptor.h"

View File

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

View File

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