// This undefines the macros used by the gen library
#undef GEN_TIME

#undef GEN_ARCH_64_BIT
#undef GEN_ARCH_32_BIT

#undef GEN_SYSTEM_ANDROID
#undef GEN_SYSTEM_CYGWIN
#undef GEN_SYSTEM_EMSCRIPTEN
#undef GEN_SYSTEM_FREEBSD
#undef GEN_SYSTEM_IOS
#undef GEN_SYSTEM_LINUX
#undef GEN_SYSTEM_MACOS
#undef GEN_SYSTEM_OPENBSD
#undef GEN_SYSTEM_OSX
#undef GEN_SYSTEM_UNIX
#undef GEN_SYSTEM_WINDOWS

#undef GEN_COMPILER_CLANG
#undef GEN_COMPILER_GCC
#undef GEN_COMPILER_MSVC

#undef GEN_HAS_ATTRIBUTE

#undef GEN_COMPILER_C
#undef GEN_COMPILER_CPP

#undef GEN_DONT_USE_NAMESPACE
#undef GEN_NS_PARSER_BEGIN
#undef GEN_NS_PARSER_END
#undef GEN_USING_NS_PARSER
#undef GEN_NS_PARSER
#undef GEN_NS
#undef GEN_NS_BEGIN
#undef GEN_NS_END

#undef GEN_C_LIKE_CPP

#undef global
#undef internal
#undef local_persist

#undef bit
#undef bitfield_is_set

#undef cast

#undef ccast
#undef scast
#undef rcast
#undef pcast

#undef stringize
#undef do_once
#undef do_once_start
#undef do_once_end
#undef labeled_scope_start
#undef labeled_scope_end
#undef compiler_decorated_func_name
#undef num_args_impl
#undef num_args
#undef clamp
#undef count_of
#undef is_between
#undef size_of
#undef max
#undef min
#undef offset_of
#undef forceinline
#undef neverinline
#undef static_assert
#undef thread_local
#undef typeof

#undef GEN_API_C_BEGIN
#undef GEN_API_C_END

#undef enum_underlying
#undef nullptr
#undef GEN_PARAM_DEFAULT
#undef struct_init

#undef GEN_OPTIMIZE_MAPPINGS_BEGIN
#undef GEN_OPITMIZE_MAPPINGS_END

#undef GEN_U8_MIN
#undef GEN_U8_MAX
#undef GEN_I8_MIN
#undef GEN_I8_MAX
#undef GEN_U16_MIN
#undef GEN_U16_MAX
#undef GEN_I16_MIN
#undef GEN_I16_MAX
#undef GEN_U32_MIN
#undef GEN_U32_MAX
#undef GEN_I32_MIN
#undef GEN_I32_MAX
#undef GEN_U64_MIN
#undef GEN_U64_MAX
#undef GEN_I64_MIN
#undef GEN_I64_MAX
#undef GEN_USIZE_MIN
#undef GEN_USIZE_MAX
#undef GEN_ISIZE_MIN
#undef GEN_ISIZE_MAX
#undef GEN_USIZE_MIN
#undef GEN_USIZE_MAX
#undef GEN_ISIZE_MIN
#undef GEN_ISIZE_MAX
#undef GEN_F32_MIN
#undef GEN_F32_MAX
#undef GEN_F64_MIN
#undef GEN_F64_MAX

#undef to_uptr
#undef to_sptr
#undef to_mem_ptr
#undef to_mem_ptr_const

#undef kilobytes
#undef megabytes
#undef gigabytes
#undef terabytes

#undef GEN__ONES
#undef GEN__HIGHS
#undef GEN__HAS_ZERO
#undef GEN_DEFAULT_MEMORY_ALIGNMENT
#undef GEN_DEFAULT_ALLOCATOR_FLAGS

#undef zero_item
#undef zero_array

#undef alloc_item
#undef alloc_array

#undef malloc
#undef mfree

#undef GEN_DEBUG_TRAP
#undef GEN_ASSERT
#undef GEN_ASSERT_MSG
#undef GEN_ASSERT_NOT_NULL
#undef GEN_PANIC
#undef GEN_FATAL

#undef GEN_FILE_OPEN_PROC
#undef GEN_FILE_READ_AT_PROC
#undef GEN_FILE_WRITE_AT_PROC
#undef GEN_FILE_SEEK_PROC
#undef GEN_FILE_CLOSE_PROC

#undef GEN_PRINTF_MAXLEN

#undef _strlen
#undef _printf_err
#undef _printf_err_va
#undef _strlen
#undef _printf_err
#undef _printf_err_va

#undef Array
#undef get_array_underlying_type
#undef HashTable
#undef get_hashtable_underlying_type

#undef txt

#undef NOMINMAX
#undef VC_EXTRALEAN
#undef WIN32_LEAN_AND_MEAN
#undef WIN32_MEAN_AND_LEAN

#undef GEN_DEFINE_ATTRIBUTE_TOKENS

#undef GEN_AST_BODY_CLASS_UNALLOWED_TYPES_CASES
#undef GEN_AST_BODY_FUNCTION_UNALLOWED_TYPES_CASES
#undef GEN_AST_BODY_GLOBAL_UNALLOWED_TYPES_CASES
#undef GEN_AST_BODY_EXPORT_UNALLOWED_TYPES_CASES
#undef GEN_AST_BODY_EXTERN_LINKAGE_UNALLOWED_TYPES_CASES
#undef GEN_AST_BODY_NAMESPACE_UNALLOWED_TYPES_CASES

#undef GEN_GLOBAL_BUCKET_SIZE
#undef GEN_CODEPOOL_NUM_BLOCKS
#undef GEN_SIZE_PER_STRING_ARENA
#undef GEN_MAX_COMMENT_LINE_LENGTH
#undef GEN_MAX_NAME_LENGTH
#undef GEN_MAX_UNTYPED_STR_LENGTH
#undef TokenMap_FixedArena
#undef GEN_LEX_ALLOCATOR_SIZE
#undef GEN_BUILDER_STR_BUFFER_RESERVE

#undef log_failure

#undef gen_main
#undef name
#undef code
#undef args
#undef code_str
#undef code_fmt
#undef token_fmt
#undef parse_fmt
#undef token_fmt
