X-Git-Url: https://git.harvie.cz/?a=blobdiff_plain;f=cll1.h;h=14abb4e144ef3adf7043896c760be3ec9157345a;hb=14e7e05a2fb08966aa8039c31519caa5d4b08a93;hp=711b951a3213b901ed44c0bb43f13cf950e4ab26;hpb=ce26b4aaa58839a9781c4e250d605ba220ef9f07;p=svn%2FCll1h%2F.git diff --git a/cll1.h b/cll1.h index 711b951..14abb4e 100644 --- a/cll1.h +++ b/cll1.h @@ -97,10 +97,12 @@ extern unsigned RANDOM_SEED; #define init_mem(...) _init_##_ARG1(__VA_ARGS__,)( _ARG2(__VA_ARGS__,,) - 0 ) #define create_mem(ID,...) _ARG1(__VA_ARGS__,) ID=_GET_MEM(__VA_ARGS__,NULL) #define new_mem(ID,...) _ARG1(__VA_ARGS__,) ID=init_mem(__VA_ARGS__) +#define mem_len(TYPE) sizeof(struct _##TYPE##_t) +//#define mem_copy #define list(TYPE) TYPE __next #define tree(TYPE) TYPE __next; TYPE __seek -#define dictionary(TYPE) TYPE __next; TYPE __seek; str __key -#define array(TYPE) TYPE __next; TYPE __seek; int __key +#define dict(TYPE) tree(TYPE); str __key +#define array(TYPE) tree(TYPE); int __key #define interface(TYPE) TYPE __interface #define this_must_be(TYPE) TYPE this /* .----------------------------------------------------------------------. @@ -162,7 +164,7 @@ extern unsigned RANDOM_SEED; #define skip_next _I++ #define if_exists(NODE,HEAD,EXPR) for_search(NODE,HEAD,EXPR) break; if(NODE) #define if_args if(argc>1) -#define switch_for_args for_args switch_str(this_arg) +#define switch_for_args for_args switch_str(this_arg) #define switch_str(STR) _NEW(S,STR) #define if_case(VAL) if(eq(argv[_I],VAL)) #define for_fields(FIELD,STR) for_valid_split(FIELD,STR,*OFS)