mirror of
https://github.com/Ed94/gencpp.git
synced 2025-06-14 18:51:47 -07:00
interface.untyped.cpp impl compiles in gnerated c library
This commit is contained in:
@ -1189,7 +1189,7 @@ R"(#define <interface_name>( code ) _Generic( (code), \
|
||||
|
||||
for ( CodeParam arr_param : fn->Params )
|
||||
if ( fn->Name.starts_with(txt("def_"))
|
||||
&& ( arr_param->ValueType->Name.starts_with(txt("Specifier"))
|
||||
&& ( (arr_param->ValueType->Name.starts_with(txt("Specifier")) && fn->Params->NumEntries > 1)
|
||||
|| arr_param->ValueType->Name.starts_with(txt("Code")) )
|
||||
)
|
||||
{
|
||||
@ -1508,9 +1508,9 @@ R"(#define <interface_name>( code ) _Generic( (code), \
|
||||
header.print( format_code_to_untyped(array_code_typename));
|
||||
header.print( fmt_newline);
|
||||
header.print( format_code_to_untyped(src_parser) );
|
||||
// header.print( parsing_interface );
|
||||
header.print( src_parsing_interface );
|
||||
header.print_fmt( "\n#pragma endregion Parsing\n" );
|
||||
// header.print( untyped );
|
||||
header.print( src_untyped );
|
||||
header.print_fmt( "\n#pragma endregion Interface\n\n");
|
||||
|
||||
// header.print_fmt( "#pragma region Builder\n" );
|
||||
|
@ -29,6 +29,11 @@ CodeBody gen_fixed_arenas()
|
||||
{
|
||||
return arena_size_remaining( & fixed_arena->arena, alignment);
|
||||
}
|
||||
|
||||
inline
|
||||
void fixed_arena_free_<Name>(FixedArena_<Name>* fixed_arena) {
|
||||
arena_free( & fixed_arena->arena);
|
||||
}
|
||||
);
|
||||
|
||||
CodeBody arena_struct_1kb = parse_global_body( token_fmt_impl( 3, "Name", txt("1KB"), "Size", txt("kilobytes(1)"), template_struct ));
|
||||
@ -105,6 +110,22 @@ CodeBody gen_fixed_arenas()
|
||||
default : gen_generic_selection_fail \
|
||||
) GEN_RESOLVED_FUNCTION_CALL(expr)
|
||||
|
||||
#define fixed_arena_free(expr) _Generic((expr), \
|
||||
FixedArena_1KB* : fixed_arena_free_1KB, \
|
||||
FixedArena_4KB* : fixed_arena_free_4KB, \
|
||||
FixedArena_8KB* : fixed_arena_free_8KB, \
|
||||
FixedArena_16KB* : fixed_arena_free_16KB, \
|
||||
FixedArena_32KB* : fixed_arena_free_32KB, \
|
||||
FixedArena_64KB* : fixed_arena_free_64KB, \
|
||||
FixedArena_128KB* : fixed_arena_free_128KB, \
|
||||
FixedArena_256KB* : fixed_arena_free_256KB, \
|
||||
FixedArena_512KB* : fixed_arena_free_512KB, \
|
||||
FixedArena_1MB* : fixed_arena_free_1MB, \
|
||||
FixedArena_2MB* : fixed_arena_free_2MB, \
|
||||
FixedArena_4MB* : fixed_arena_free_4MB, \
|
||||
default : gen_generic_selection_fail \
|
||||
) GEN_RESOLVED_FUNCTION_CALL(expr)
|
||||
|
||||
#define fixed_arena_size_remaining(expr, alignment) _Generic((expr), \
|
||||
FixedArena_1KB* : fixed_arena_size_remaining_1KB, \
|
||||
FixedArena_4KB* : fixed_arena_size_remaining_4KB, \
|
||||
|
Reference in New Issue
Block a user