From b989bece7383985ffa9ad3045342f0aa95311a1a Mon Sep 17 00:00:00 2001 From: Ed_ Date: Mon, 10 Feb 2025 17:07:11 -0500 Subject: [PATCH] starting to draft out gen_c11.c --- .vscode/settings.json | 3 +- code/base/memory.h | 2 +- gen_c11/gen_c11.c | 18 +- gen_c11/gen_common.h | 437 ++++++++++++++++++++++++++++ third_party/gencpp_c11/gencpp_c11.h | 26 +- 5 files changed, 464 insertions(+), 22 deletions(-) create mode 100644 gen_c11/gen_common.h diff --git a/.vscode/settings.json b/.vscode/settings.json index 6054e97..8a0a14d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -84,7 +84,8 @@ "mdesk.h": "c", "text.h": "c", "forward_list": "c", - "iomanip": "cpp" + "iomanip": "cpp", + "gen_common.h": "c" }, "workbench.colorCustomizations": { "activityBar.activeBackground": "#713fb8", diff --git a/code/base/memory.h b/code/base/memory.h index e7a937c..9b6005d 100644 --- a/code/base/memory.h +++ b/code/base/memory.h @@ -64,7 +64,7 @@ //////////////////////////////// //~ rjf: Member Offsets -#ifndef membeMD_DYN_LINKr +#ifndef member #define member(T, m) ( ((T*) 0)->m ) #endif #ifndef offset_of diff --git a/gen_c11/gen_c11.c b/gen_c11/gen_c11.c index d02e04f..34d35a8 100644 --- a/gen_c11/gen_c11.c +++ b/gen_c11/gen_c11.c @@ -1,21 +1,25 @@ #pragma once -#include "third_party/gencpp_c11/push_ignores.inline.h" +#include "gen_common.h" -#define GEN_DONT_ENFORCE_GEN_TIME -#define GEN_DEFINE_LIBRARY_CODE_CONSTANTS -#define GEN_ENFORCE_STRONG_CODE_TYPES -#define GEN_IMPLEMENTATION -#include "third_party/gencpp_c11/gencpp_c11.h" +#define path_refactor_script "./c11.refactor" -#include "third_party/gencpp_c11/misc.h" +gen_Code refactor( gen_Code code ) { + return code_refactor_and_format(code, scratch_file, path_refactor_script, nullptr ); +} +gen_Code refactor_and_format( gen_Code code ) { + return code_refactor_and_format(code, scratch_file, path_refactor_script, path_format_style ); +} int main() { gen_Context ctx = {0}; gen_init(& ctx); + register_library_macros(); + + // gen_deinit(& ctx); return 0; } diff --git a/gen_c11/gen_common.h b/gen_c11/gen_common.h new file mode 100644 index 0000000..4eaa19c --- /dev/null +++ b/gen_c11/gen_common.h @@ -0,0 +1,437 @@ +#if INTELLISENSE_DIRECTIVES +# pragma once +#endif + +#define GEN_DONT_ENFORCE_GEN_TIME +#define GEN_DEFINE_LIBRARY_CODE_CONSTANTS +#define GEN_ENFORCE_STRONG_CODE_TYPES +#define GEN_IMPLEMENTATION +#include "third_party/gencpp_c11/gencpp_c11.h" +#include "third_party/gencpp_c11/misc.h" + +#include "third_party/gencpp_c11/push_ignores.inline.h" + +#define path_format_style "../bin/.clang-format " +#define scratch_file "scratch.h" +#define path_code "../code/" +#define path_base path_code "base/" +#define path_mdesk path_code "mdesk/" +#define path_os path_code "os/" + +#define lit gen_txt +#define nullptr gen_nullptr +#define args gen_args + +void register_library_macros() +{ + // These in the same order as metadesk.h + + // base/context_cracking.h + gen_register_macros( args( + ((gen_Macro) { lit("BUILD_DEBUG"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_STATIC"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_DYNAMIC"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_API_EXPORT"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_ENTRY_DEFINING_UNIT"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_CONSOLE_INTERFACE"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_VERSION_MAJOR"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_VERSION_MINOR"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_VERSION_PATCH"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_VERSION_STRING_LITERAL"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_MODE_STRING_LITERAL_APPEND"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_GIT_HASH_STRING_LITERAL_APPEND"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_TITLE"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_RELEASE_PHASE_STRING_LITERAL"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_ISSUES_LINK_STRING_LITERAL"), MT_Expression, }), + ((gen_Macro) { lit("BUILD_TITLE_STRING_LITERAL"), MT_Expression, }), + ((gen_Macro) { lit("COMPILER_MSVC"), MT_Expression, }), + ((gen_Macro) { lit("COMPILER_CLANG"), MT_Expression, }), + ((gen_Macro) { lit("COMPILER_GCC"), MT_Expression, }), + ((gen_Macro) { lit("LANG_C"), MT_Expression, }), + ((gen_Macro) { lit("LANG_CPP"), MT_Expression, }), + ((gen_Macro) { lit("ARCH_X64"), MT_Expression, }), + ((gen_Macro) { lit("ARCH_X86"), MT_Expression, }), + ((gen_Macro) { lit("ARCH_ARM64"), MT_Expression, }), + ((gen_Macro) { lit("ARCH_ARM32"), MT_Expression, }), + ((gen_Macro) { lit("ARCH_LITTLE_ENDIAN"), MT_Expression, }), + ((gen_Macro) { lit("OS_WINDOWS"), MT_Expression, }), + ((gen_Macro) { lit("OS_OSX"), MT_Expression, }), + ((gen_Macro) { lit("OS_ANDROID"), MT_Expression, }), + ((gen_Macro) { lit("OS_LINUX"), MT_Expression, }), + ((gen_Macro) { lit("OS_FREEBSD"), MT_Expression, }), + ((gen_Macro) { lit("OS_OPENBSD"), MT_Expression, }), + ((gen_Macro) { lit("OS_EMSCRIPTEN"), MT_Expression, }), + ((gen_Macro) { lit("OS_CYGWIN"), MT_Expression, }), + ((gen_Macro) { lit("MD_API"), MT_Expression, MF_Allow_As_Attribute }), + ((gen_Macro) { lit("MD_API_C"), MT_Expression, MF_Allow_As_Attribute }), + ((gen_Macro) { lit("MD_API_C_BEGIN"), MT_Statement, }), + ((gen_Macro) { lit("MD_API_C_END"), MT_Statement, }) + )); + // base/macros.h + register_library_macros(args( + ((gen_Macro) { lit("expect"), MT_Expression, MF_Functional | MF_Allow_As_Attribute }), + ((gen_Macro) { lit("likely"), MT_Expression, MF_Functional | MF_Allow_As_Attribute }), + ((gen_Macro) { lit("unlikely"), MT_Expression, MF_Functional | MF_Allow_As_Attribute }), + ((gen_Macro) { lit("ccast"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("rcast"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("pcast"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("scast"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("typeof"), MT_Expression, }), + ((gen_Macro) { lit("nullptr"), MT_Expression, }), + ((gen_Macro) { lit("defer_loop"), MT_Statement, MF_Functional | MF_Expects_Body }), + ((gen_Macro) { lit("defer_loop_checked"), MT_Statement, MF_Functional | MF_Expects_Body }), + ((gen_Macro) { lit("each_enum_val"), MT_Statement, MF_Functional | MF_Expects_Body }), + ((gen_Macro) { lit("each_non_zero_enum_val"), MT_Statement, MF_Functional | MF_Expects_Body }), + ((gen_Macro) { lit("stringify"), MT_Expression, MF_Functional | MF_Expects_Body }), + ((gen_Macro) { lit("glue"), MT_Expression, MF_Functional | MF_Expects_Body }), + ((gen_Macro) { lit("src_line_str"), MT_Expression, }), + ((gen_Macro) { lit("do_once"), MT_Statement, MF_Functional | MF_Expects_Body }), + ((gen_Macro) { lit("do_once_start"), MT_Statement, }), + ((gen_Macro) { lit("do_once_end"), MT_Statement, }), + ((gen_Macro) { lit("do_once_end"), MT_Statement, }) + )); + // base/generic_macros.h + register_library_macros(args( + ((gen_Macro) { lit("COMMA_OPERATOR"), MT_Expression, }), + ((gen_Macro) { lit("select_arg_1"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("select_arg_2"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("select_arg_3"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("generic_sel_entry_type"), MT_Expression, }), + ((gen_Macro) { lit("generic_sel_entry_function"), MT_Expression, }), + ((gen_Macro) { lit("generic_sel_entry_comma_delimiter"), MT_Expression, }), + ((gen_Macro) { lit("resolved_function_call"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("if_generic_selector_defined_include_slot"), MT_Expression, }), + ((gen_Macro) { lit("function_generic_example"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("GENERIC_SLOT_1__example_hash"), MT_Expression, }), + ((gen_Macro) { lit("GENERIC_SLOT_2__example_hash"), MT_Expression, }), + ((gen_Macro) { lit("generic_example_hash"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("function_generic_example_varadic"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("function_generic_example_direct_type"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("type_to_expression"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("distinct_register_selector"), MT_Statement, MF_Functional }), + ((gen_Macro) { lit("distinct_lookup"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("generic_example_do_something_with"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("distinct"), MT_Typename, MF_Functional }) + )); + // base/profiling.h + register_library_macros(args( + ((gen_Macro) { lit("PROFILE_TELEMETRY"), MT_Expression, }), + ((gen_Macro) { lit("MARKUP_LAYER_COLOR"), MT_Expression, }), + ((gen_Macro) { lit("prof_begin"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_begin_dynamic"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_end"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_tick"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_is_capturing"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_begin_capture"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_end_capture"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_thread_name"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_msg"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_begin_lock_wait"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_end_lock_wait"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_lock_take"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_lock_drop"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_color"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_msg"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_begin_function"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_scope"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("prof_scope"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("size_of"), MT_Expression, MF_Functional }) + )); + // base/base_types.h + gen_register_macros(args( + ((gen_Macro) { lit("SIGN32"), MT_Expression, }), + ((gen_Macro) { lit("EXPONENT32"), MT_Expression, }), + ((gen_Macro) { lit("MANTISSA32"), MT_Expression, }), + ((gen_Macro) { lit("BIG_GOLDEN32"), MT_Expression, }), + ((gen_Macro) { lit("SMALL_GOLDEN32"), MT_Expression, }), + ((gen_Macro) { lit("PI32"), MT_Expression, }), + ((gen_Macro) { lit("MACHINE_EPSILON64"), MT_Expression, }), + ((gen_Macro) { lit("MIN_U8"), MT_Expression, }), + ((gen_Macro) { lit("MAX_U8"), MT_Expression, }), + ((gen_Macro) { lit("MIN_S8"), MT_Expression, }), + ((gen_Macro) { lit("MAX_S8"), MT_Expression, }), + ((gen_Macro) { lit("MIN_U16"), MT_Expression, }), + ((gen_Macro) { lit("MAX_U16"), MT_Expression, }), + ((gen_Macro) { lit("MIN_S16"), MT_Expression, }), + ((gen_Macro) { lit("MAX_S16"), MT_Expression, }), + ((gen_Macro) { lit("MIN_U32"), MT_Expression, }), + ((gen_Macro) { lit("MAX_U32"), MT_Expression, }), + ((gen_Macro) { lit("MIN_S32"), MT_Expression, }), + ((gen_Macro) { lit("MIN_U64"), MT_Expression, }), + ((gen_Macro) { lit("MAX_U64"), MT_Expression, }), + ((gen_Macro) { lit("MIN_S64"), MT_Expression, }), + ((gen_Macro) { lit("MAX_S64"), MT_Expression, }), + ((gen_Macro) { lit("MIN_USIZE"), MT_Expression, }), + ((gen_Macro) { lit("MAX_USIZE"), MT_Expression, }), + ((gen_Macro) { lit("MIN_SSIZE"), MT_Expression, }), + ((gen_Macro) { lit("MAX_SSIZE"), MT_Expression, }), + ((gen_Macro) { lit("MIN_F32"), MT_Expression, }), + ((gen_Macro) { lit("MAX_F32"), MT_Expression, }), + ((gen_Macro) { lit("MIN_F64"), MT_Expression, }), + ((gen_Macro) { lit("MAX_F64"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK1"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK2"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK3"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK4"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK5"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK6"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK7"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK8"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK9"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK10"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK11"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK12"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK13"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK14"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK15"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK16"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK17"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK18"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK19"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK20"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK21"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK22"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK23"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK24"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK25"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK26"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK27"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK28"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK29"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK30"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK31"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK32"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK33"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK34"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK35"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK36"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK37"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK38"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK39"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK40"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK41"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK42"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK43"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK44"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK45"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK46"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK47"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK48"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK49"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK50"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK51"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK52"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK53"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK54"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK55"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK56"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK57"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK58"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK59"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK60"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK61"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK62"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK63"), MT_Expression, }), + ((gen_Macro) { lit("BITMASK64"), MT_Expression, }) + )); + gen_register_macros(args( + ((gen_Macro) { lit("BIT1"), MT_Expression, }), + ((gen_Macro) { lit("BIT2"), MT_Expression, }), + ((gen_Macro) { lit("BIT3"), MT_Expression, }), + ((gen_Macro) { lit("BIT4"), MT_Expression, }), + ((gen_Macro) { lit("BIT5"), MT_Expression, }), + ((gen_Macro) { lit("BIT6"), MT_Expression, }), + ((gen_Macro) { lit("BIT7"), MT_Expression, }), + ((gen_Macro) { lit("BIT8"), MT_Expression, }), + ((gen_Macro) { lit("BIT9"), MT_Expression, }), + ((gen_Macro) { lit("BIT10"), MT_Expression, }), + ((gen_Macro) { lit("BIT11"), MT_Expression, }), + ((gen_Macro) { lit("BIT12"), MT_Expression, }), + ((gen_Macro) { lit("BIT13"), MT_Expression, }), + ((gen_Macro) { lit("BIT14"), MT_Expression, }), + ((gen_Macro) { lit("BIT15"), MT_Expression, }), + ((gen_Macro) { lit("BIT16"), MT_Expression, }), + ((gen_Macro) { lit("BIT17"), MT_Expression, }), + ((gen_Macro) { lit("BIT18"), MT_Expression, }), + ((gen_Macro) { lit("BIT19"), MT_Expression, }), + ((gen_Macro) { lit("BIT20"), MT_Expression, }), + ((gen_Macro) { lit("BIT21"), MT_Expression, }), + ((gen_Macro) { lit("BIT22"), MT_Expression, }), + ((gen_Macro) { lit("BIT23"), MT_Expression, }), + ((gen_Macro) { lit("BIT24"), MT_Expression, }), + ((gen_Macro) { lit("BIT25"), MT_Expression, }), + ((gen_Macro) { lit("BIT26"), MT_Expression, }), + ((gen_Macro) { lit("BIT27"), MT_Expression, }), + ((gen_Macro) { lit("BIT28"), MT_Expression, }), + ((gen_Macro) { lit("BIT29"), MT_Expression, }), + ((gen_Macro) { lit("BIT30"), MT_Expression, }), + ((gen_Macro) { lit("BIT31"), MT_Expression, }), + ((gen_Macro) { lit("BIT32"), MT_Expression, }), + ((gen_Macro) { lit("BIT33"), MT_Expression, }), + ((gen_Macro) { lit("BIT34"), MT_Expression, }), + ((gen_Macro) { lit("BIT35"), MT_Expression, }), + ((gen_Macro) { lit("BIT36"), MT_Expression, }), + ((gen_Macro) { lit("BIT37"), MT_Expression, }), + ((gen_Macro) { lit("BIT38"), MT_Expression, }), + ((gen_Macro) { lit("BIT39"), MT_Expression, }), + ((gen_Macro) { lit("BIT40"), MT_Expression, }), + ((gen_Macro) { lit("BIT41"), MT_Expression, }), + ((gen_Macro) { lit("BIT42"), MT_Expression, }), + ((gen_Macro) { lit("BIT43"), MT_Expression, }), + ((gen_Macro) { lit("BIT44"), MT_Expression, }), + ((gen_Macro) { lit("BIT45"), MT_Expression, }), + ((gen_Macro) { lit("BIT46"), MT_Expression, }), + ((gen_Macro) { lit("BIT47"), MT_Expression, }), + ((gen_Macro) { lit("BIT48"), MT_Expression, }), + ((gen_Macro) { lit("BIT49"), MT_Expression, }), + ((gen_Macro) { lit("BIT50"), MT_Expression, }), + ((gen_Macro) { lit("BIT51"), MT_Expression, }), + ((gen_Macro) { lit("BIT52"), MT_Expression, }), + ((gen_Macro) { lit("BIT53"), MT_Expression, }), + ((gen_Macro) { lit("BIT54"), MT_Expression, }), + ((gen_Macro) { lit("BIT55"), MT_Expression, }), + ((gen_Macro) { lit("BIT56"), MT_Expression, }), + ((gen_Macro) { lit("BIT57"), MT_Expression, }), + ((gen_Macro) { lit("BIT58"), MT_Expression, }), + ((gen_Macro) { lit("BIT59"), MT_Expression, }), + ((gen_Macro) { lit("BIT60"), MT_Expression, }), + ((gen_Macro) { lit("BIT61"), MT_Expression, }), + ((gen_Macro) { lit("BIT62"), MT_Expression, }), + ((gen_Macro) { lit("BIT63"), MT_Expression, }), + ((gen_Macro) { lit("BIT64"), MT_Expression, }) + )); + // base/ring.h + register_library_macros(args( + ((gen_Macro) { lit("ring_write_struct"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("ring_read_struct"), MT_Expression, MF_Functional }) + )); + // base/debug.h + register_library_macros(args( + ((gen_Macro) { lit("trap"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("assert_msg"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("assert_always"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("assert"), MT_Expression, MF_Functional }), + ((gen_Macro) { lit("invalid_path"), MT_Expression, }), + ((gen_Macro) { lit("not_implemented"), MT_Expression, }), + ((gen_Macro) { lit("no_op"), MT_Expression, }), + ((gen_Macro) { lit("md_static_assert"), MT_Expression, MF_Functional }) + )); + // base/memory.h + register_library_macros(args( + ((gen_Macro) { lit("KILOBYTES"), MT_Expression, }), + ((gen_Macro) { lit("MEGABYTES"), MT_Expression, }), + ((gen_Macro) { lit("GIGABYTES"), MT_Expression, }), + ((gen_Macro) { lit("TERABYTES"), MT_Expression, }), + ((gen_Macro) { lit("KB"), MT_Expression, }), + ((gen_Macro) { lit("MB"), MT_Expression, }), + ((gen_Macro) { lit("GB"), MT_Expression, }), + ((gen_Macro) { lit("TB"), MT_Expression, }), + ((gen_Macro) { lit("thousand"), MT_Expression, }), + ((gen_Macro) { lit("million"), MT_Expression, }), + ((gen_Macro) { lit("billion"), MT_Expression, }), + ((gen_Macro) { lit("align_of"), MT_Expression, }), + ((gen_Macro) { lit("member"), MT_Expression, }), + ((gen_Macro) { lit("offset_of"), MT_Expression, }), + ((gen_Macro) { lit("member_from_offset"), MT_Expression, }), + ((gen_Macro) { lit("cast_from_member"), MT_Expression, }), + ((gen_Macro) { lit("cast_from_member"), MT_Expression, }), + ((gen_Macro) { lit("memory_copy"), MT_Expression, }), + ((gen_Macro) { lit("memory_set"), MT_Expression, }), + ((gen_Macro) { lit("memory_compare"), MT_Expression, }), + ((gen_Macro) { lit("memory_str_len"), MT_Expression, }), + ((gen_Macro) { lit("memory_copy_struct"), MT_Expression, }), + ((gen_Macro) { lit("memory_copy_array"), MT_Expression, }), + ((gen_Macro) { lit("memory_copy_type"), MT_Expression, }), + ((gen_Macro) { lit("memory_zero"), MT_Expression, }), + ((gen_Macro) { lit("memory_zero_struct"), MT_Expression, }), + ((gen_Macro) { lit("memory_zero_array"), MT_Expression, }), + ((gen_Macro) { lit("memory_zero_type"), MT_Expression, }), + ((gen_Macro) { lit("memory_match"), MT_Expression, }), + ((gen_Macro) { lit("memory_match_struct"), MT_Expression, }), + ((gen_Macro) { lit("memory_match_array"), MT_Expression, }), + ((gen_Macro) { lit("memory_read"), MT_Expression, }), + ((gen_Macro) { lit("memory_consume"), MT_Expression, }), + ((gen_Macro) { lit("ins_atomic_u64_eval"), MT_Expression, }), + ((gen_Macro) { lit("ins_atomic_u64_inc_eval"), MT_Expression, }), + ((gen_Macro) { lit("ins_atomic_u64_dec_eval"), MT_Expression, }), + ((gen_Macro) { lit("ins_atomic_u64_eval_assign"), MT_Expression, }), + ((gen_Macro) { lit("ins_atomic_u64_add_eval"), MT_Expression, }), + ((gen_Macro) { lit("ins_atomic_u64_eval_cond_assign"), MT_Expression, }), + ((gen_Macro) { lit("ins_atomic_u32_eval"), MT_Expression, }), + ((gen_Macro) { lit("ins_atomic_u32_eval_assign"), MT_Expression, }), + ((gen_Macro) { lit("ins_atomic_u32_eval_cond_assign"), MT_Expression, }), + ((gen_Macro) { lit("check_nil"), MT_Expression, }), + ((gen_Macro) { lit("set_nil"), MT_Expression, }), + ((gen_Macro) { lit("MD_LINKED_LIST_PURE_MACRO"), MT_Expression, }), + ((gen_Macro) { lit("dll_insert_npz"), MT_Expression, }), + ((gen_Macro) { lit("dll_push_back_npz"), MT_Expression, }), + ((gen_Macro) { lit("dll_push_front_npz"), MT_Expression, }), + ((gen_Macro) { lit("dll_remove_npz"), MT_Expression, }), + ((gen_Macro) { lit("sll_queue_push_nz"), MT_Expression, }), + ((gen_Macro) { lit("sll_queue_push_front_nz"), MT_Expression, }), + ((gen_Macro) { lit("sll_queue_pop_nz"), MT_Expression, }), + ((gen_Macro) { lit("sll_stack_push_n"), MT_Expression, }), + ((gen_Macro) { lit("sll_stack_pop_n"), MT_Expression, }), + ((gen_Macro) { lit("dll_insert_np"), MT_Expression, }), + ((gen_Macro) { lit("dll_push_back_np"), MT_Expression, }), + ((gen_Macro) { lit("dll_push_front_np"), MT_Expression, }), + ((gen_Macro) { lit("dll_remove_np"), MT_Expression, }), + ((gen_Macro) { lit("dll_insert"), MT_Expression, }), + ((gen_Macro) { lit("dll_push_back"), MT_Expression, }), + ((gen_Macro) { lit("dll_push_front"), MT_Expression, }), + ((gen_Macro) { lit("dll_remove"), MT_Expression, }), + ((gen_Macro) { lit("sll_queue_push_n"), MT_Expression, }), + ((gen_Macro) { lit("sll_queue_push_front_n"), MT_Expression, }), + ((gen_Macro) { lit("sll_queue_pop_n"), MT_Expression, }), + ((gen_Macro) { lit("sll_queue_push"), MT_Expression, }), + ((gen_Macro) { lit("sll_queue_push_front"), MT_Expression, }), + ((gen_Macro) { lit("sll_queue_pop"), MT_Expression, }), + ((gen_Macro) { lit("sll_stack_push"), MT_Expression, }), + ((gen_Macro) { lit("sll_stack_pop"), MT_Expression, }), + ((gen_Macro) { lit("NO_ASAN"), MT_Expression, }), + ((gen_Macro) { lit("MD_ASAN_ENABLED"), MT_Expression, }), + ((gen_Macro) { lit("asan_poison_memory_region"), MT_Expression, }), + ((gen_Macro) { lit("asan_unpoison_memory_region"), MT_Expression, }), + ((gen_Macro) { lit("array_count"), MT_Expression, }), + ((gen_Macro) { lit("ceil_integer_div"), MT_Expression, }), + ((gen_Macro) { lit("swap"), MT_Expression, }), + ((gen_Macro) { lit("int_from_ptr"), MT_Expression, }), + ((gen_Macro) { lit("ptr_from_int"), MT_Expression, }), + ((gen_Macro) { lit("compose_64bit"), MT_Expression, }), + ((gen_Macro) { lit("align_pow2"), MT_Expression, }), + ((gen_Macro) { lit("align_down_pow2"), MT_Expression, }), + ((gen_Macro) { lit("align_pad_pow2"), MT_Expression, }), + ((gen_Macro) { lit("is_pow2"), MT_Expression, }), + ((gen_Macro) { lit("is_pow2_or_zero"), MT_Expression, }), + ((gen_Macro) { lit("extract_bit"), MT_Expression, }), + ((gen_Macro) { lit("zero_struct"), MT_Expression, }), + ((gen_Macro) { lit("this_function_name"), MT_Expression, }), + ((gen_Macro) { lit("read_only"), MT_Expression, }), + ((gen_Macro) { lit("local_persist"), MT_Expression, }), + ((gen_Macro) { lit("thread_static"), MT_Expression, }), + ((gen_Macro) { lit("thread_local"), MT_Expression, }), + ((gen_Macro) { lit("from_be_u16"), MT_Expression, }), + ((gen_Macro) { lit("from_be_u32"), MT_Expression, }), + ((gen_Macro) { lit("from_be_u64"), MT_Expression, }) + )); + register_library_macros(args( + ((gen_Macro) { lit("MD__ONES"), MT_Expression, }), + ((gen_Macro) { lit("MD__HIGHS"), MT_Expression, }), + ((gen_Macro) { lit("MD__HAS_ZERO"), MT_Expression, }), + ((gen_Macro) { lit("MD_DEFAULT_MEMORY_ALIGNMENT"), MT_Expression, }), + ((gen_Macro) { lit("MD_HEAP_ANALYSIS"), MT_Expression, }), + ((gen_Macro) { lit("heap"), MT_Expression, }), + ((gen_Macro) { lit("md_malloc"), MT_Expression, }), + ((gen_Macro) { lit("md_free"), MT_Expression, }), + ((gen_Macro) { lit("VARENA_DEFUALT_RESERVE"), MT_Expression, }), + ((gen_Macro) { lit("VARENA_DEFUALT_COMMIT"), MT_Expression, }), + ((gen_Macro) { lit("varena_alloc"), MT_Expression, }), + ((gen_Macro) { lit("varena_allocator"), MT_Expression, }), + ((gen_Macro) { lit("farena_from_byteslice"), MT_Expression, }), + ((gen_Macro) { lit("farena_from_memory"), MT_Expression, }), + ((gen_Macro) { lit("farena_allocator"), MT_Expression, }), + ((gen_Macro) { lit("farena_allocator"), MT_Expression, }), + ((gen_Macro) { lit("farena_allocator"), MT_Expression, }), + ((gen_Macro) { lit("farena_allocator"), MT_Expression, }), + )); +} diff --git a/third_party/gencpp_c11/gencpp_c11.h b/third_party/gencpp_c11/gencpp_c11.h index abae730..96dc9e5 100644 --- a/third_party/gencpp_c11/gencpp_c11.h +++ b/third_party/gencpp_c11/gencpp_c11.h @@ -5602,20 +5602,20 @@ inline gen_Str gen_spec_to_str(gen_Specifier type) { "constinit", sizeof("constinit") - 1 }, { "explicit", sizeof("explicit") - 1 }, { "extern", sizeof("extern") - 1 }, - { "gen_forceinline", sizeof("gen_forceinline") - 1 }, - { "gen_global", sizeof("gen_global") - 1 }, + { "force_inline", sizeof("force_inline") - 1 }, + { "global", sizeof("global") - 1 }, { "inline", sizeof("inline") - 1 }, - { "gen_internal", sizeof("gen_internal") - 1 }, - { "gen_local_persist", sizeof("gen_local_persist") - 1 }, + { "internal", sizeof("internal") - 1 }, + { "local_persist", sizeof("local_persist") - 1 }, { "mutable", sizeof("mutable") - 1 }, - { "gen_neverinline", sizeof("gen_neverinline") - 1 }, + { "never_inline", sizeof("never_inline") - 1 }, { "*", sizeof("*") - 1 }, { "&", sizeof("&") - 1 }, { "register", sizeof("register") - 1 }, { "restrict", sizeof("restrict") - 1 }, { "&&", sizeof("&&") - 1 }, { "static", sizeof("static") - 1 }, - { "gen_thread_local", sizeof("gen_thread_local") - 1 }, + { "thread_local", sizeof("thread_local") - 1 }, { "virtual", sizeof("virtual") - 1 }, { "const", sizeof("const") - 1 }, { "final", sizeof("final") - 1 }, @@ -5839,22 +5839,22 @@ inline gen_Str gen_toktype_to_str(gen_TokType type) { "explicit", sizeof("explicit") - 1 }, { "extern", sizeof("extern") - 1 }, { "final", sizeof("final") - 1 }, - { "gen_forceinline", sizeof("gen_forceinline") - 1 }, - { "gen_global", sizeof("gen_global") - 1 }, + { "force_inline", sizeof("force_inline") - 1 }, + { "global", sizeof("global") - 1 }, { "inline", sizeof("inline") - 1 }, - { "gen_internal", sizeof("gen_internal") - 1 }, - { "gen_local_persist", sizeof("gen_local_persist") - 1 }, + { "internal", sizeof("internal") - 1 }, + { "local_persist", sizeof("local_persist") - 1 }, { "mutable", sizeof("mutable") - 1 }, - { "gen_neverinline", sizeof("gen_neverinline") - 1 }, + { "never_inline", sizeof("never_inline") - 1 }, { "override", sizeof("override") - 1 }, { "restrict", sizeof("restrict") - 1 }, { "static", sizeof("static") - 1 }, - { "gen_thread_local", sizeof("gen_thread_local") - 1 }, + { "thread_local", sizeof("thread_local") - 1 }, { "volatile", sizeof("volatile") - 1 }, { "virtual", sizeof("virtual") - 1 }, { "*", sizeof("*") - 1 }, { ";", sizeof(";") - 1 }, - { "gen_static_assert", sizeof("gen_static_assert") - 1 }, + { "static_assert", sizeof("static_assert") - 1 }, { "__string__", sizeof("__string__") - 1 }, { "typename", sizeof("typename") - 1 }, { "unsigned", sizeof("unsigned") - 1 },