mirror of
https://github.com/Ed94/gencpp.git
synced 2025-07-12 00:25:43 -07:00
Alot (see description)
- Made a better global allocator for the process. - Some small fixes to gen.hpp, removed clear_code_memory as I'm designing this library to for now never free any memory. - Fixes to memory usage for cached strings - Added missing verification for attributes in some upfront constructors. Added attribute param for def_type procedure. - Started to use internal and global keywords in gen.cpp for associated definitions - Progress toward getting the parsing constructors to support operator definitions. - There was an *attempt* to get parse_type to support parsing function types. Its not tested yet.... - Its not an nice setup, there is no validation of parameters, problably will add that in the future.
This commit is contained in:
@ -548,8 +548,8 @@ namespace gen
|
||||
- sizeof(ModuleFlag) // ModuleFlags
|
||||
- sizeof(AccessSpec) // ParentAccess
|
||||
- sizeof(u32) // StaticIndex
|
||||
- sizeof(bool) * 1 // DynamicEntries
|
||||
- sizeof(u8) * 2 ) // _Align_Pad
|
||||
- sizeof(bool) // DynamicEntries
|
||||
- sizeof(u8) * 3 ) // _Align_Pad
|
||||
/ sizeof(AST*);
|
||||
|
||||
constexpr static
|
||||
@ -713,13 +713,6 @@ namespace gen
|
||||
// However on Windows at least, it doesn't need to occur as the OS will clean up after the process.
|
||||
void deinit();
|
||||
|
||||
/*
|
||||
Use this only if you know you generated the code you needed to a file.
|
||||
And rather get rid of current code asts instead of growing the pool memory.
|
||||
TODO: Need to put permanent ASTs into a separate set of memory. (I might just remove this tbh as it might be useless)
|
||||
*/
|
||||
void clear_code_memory();
|
||||
|
||||
// Used internally to retrive or make string allocations.
|
||||
// Strings are stored in a series of string arenas of fixed size (SizePer_StringArena)
|
||||
StringCached get_cached_string( StrC str );
|
||||
@ -787,7 +780,7 @@ namespace gen
|
||||
, Code attributes = NoCode
|
||||
, ModuleFlag mflags = ModuleFlag::None );
|
||||
|
||||
Code def_type ( StrC name, Code arrayexpr = NoCode, Code specifiers = NoCode );
|
||||
Code def_type ( StrC name, Code arrayexpr = NoCode, Code specifiers = NoCode, Code attributes = NoCode );
|
||||
Code def_typedef( StrC name, Code type, Code attributes = NoCode, ModuleFlag mflags = ModuleFlag::None );
|
||||
|
||||
Code def_union( StrC name, Code body, Code attributes = NoCode, ModuleFlag mflags = ModuleFlag::None );
|
||||
@ -830,6 +823,7 @@ namespace gen
|
||||
# ifdef GEN_FEATURE_PARSING
|
||||
Code parse_class ( StrC class_def );
|
||||
Code parse_enum ( StrC enum_def );
|
||||
Code parse_export_body ( StrC export_def );
|
||||
Code parse_extern_link ( StrC exten_link_def);
|
||||
Code parse_friend ( StrC friend_def );
|
||||
Code parse_function ( StrC fn_def );
|
||||
@ -1030,7 +1024,7 @@ namespace gen
|
||||
|
||||
namespace gen
|
||||
{
|
||||
// These constexprs are used for allocation heavior of data structurs
|
||||
// These constexprs are used for allocation behavior of data structures
|
||||
// or string handling while constructing or serializing.
|
||||
// Change them to suit your needs.
|
||||
|
||||
|
Reference in New Issue
Block a user