more prep for parser.cpp for c-library gen

This commit is contained in:
2024-12-09 20:01:46 -05:00
parent e786d7c3b6
commit 79a1951861
7 changed files with 337 additions and 174 deletions

View File

@ -23,7 +23,22 @@ CodeBody gen_array_base()
Code get_header = untyped_str( txt( "#define array_get_header( self ) ( (ArrayHeader*)( self ) - 1)\n" ));
Code type_define = untyped_str( txt( "#define Array(Type) Array_##Type\n"));
return def_global_body( args( fmt_newline, td_header, header, type_define, grow_formula, get_header, fmt_newline ) );
Code array_begin = def_define(txt("array_begin(array)"), code( (array) ));
Code array_end = def_define(txt("array_end(array)"), code( (array + array_get_header(array)->Num ) ));
Code array_next = def_define(txt("array_next(array, entry)"), code( (entry + 1) ));
return def_global_body( args(
fmt_newline,
td_header,
header,
type_define,
grow_formula,
get_header,
array_begin,
array_end,
array_next,
fmt_newline
));
};
CodeBody gen_array( StrC type, StrC array_name )

View File

@ -9,12 +9,12 @@ CodeBody gen_fixed_arenas()
result.append(def_pragma(txt("region FixedArena")));
char const* template_struct = stringize(
struct FixedArena_<Name>_Def
struct FixedArena_<Name>
{
char memory[<Size>];
Arena arena;
};
typedef struct FixedArena_<Name>_Def FixedArena_<Name>;
typedef struct FixedArena_<Name> FixedArena_<Name>;
);
char const* template_interface = stringize(