 __VERSION 1

// not       : Ignore
// include   : #includes
// word      : Alphanumeric or underscore
// namespace : Prefix search and replace (c-namspaces).
// regex     : Unavailable in __VERSION 1.

// Precedence (highest to lowest):
// word, namespace, regex

// Metadesk namespaces
// namespace MD_, new_namespace_
// namespace md_, new_namespace_

// base module

// base/context_cracking.h

word HAS_ATTRIBUTE,      MD_HAS_ATTRIBUTE

namespace ARCH_,         MD_ARCH_
namespace COMPILER_,     MD_COMPILER_
namespace GCC_,          MD_GCC_
namespace LANG_,         MD_LANG_
namespace OS_,           MD_OS_

// base/linkage.h

word global,   md_global
word internal, md_internal

// base/macros.h

word local_persist, md_local_persist
word thread_static, md_thread_static

word expect,        md_expect
word likely,        md_likely
word unlikely,      md_unlikely

word ccast, word md_ccast
word pcast, word md_pcast
word rcast, word md_rcast 
word scast, word md_scast

word typeof, word md_typeof

word enum_underlying, md_enum_underlying
word nullptr,         md_nullptr

// base/base_types.h

word U8,   MD_U8
word U16,  MD_U16
word U32,  MD_U32
word U64,  MD_U64
word S8,   MD_S8
word S16,  MD_S16
word S32,  MD_S32
word S64,  MD_S64
word S128, MD_S128

word USIZE, MD_USIZE
word SSIZE, MD_SSIZE

word SPTR, MD_SPTR
word UPTR, MD_UPTR

word F32, MD_F32
word F64, MD_F64

word B8,  MD_B8
word B16, MD_B16
word B32, MD_B32

// base/debug.h

word trap,          md_trap
word assert_always, md_assert_always
word assert,        md_asert

word invalid_path,    md_invalid_path
word not_implemented, md_not_implemented
word no_op,           md_no_op

// base/memory.h

word KILOBYTES, MD_KILOBYTES
word MEGABYTES, MD_MEGABYTES
word GIGABYTES, MD_GIGABYTES
word TERABYTES, MD_TERABYTES

word KB, MD_KB
word MB, MD_MB
word GB, MD_GB
word TB, MD_TB

word thosuand, md_thousand
word million,  md_million
word billion,  md_billion

word min, md_min
word max, md_max

word clamp_top, md_clamp_top
word clamp_bot, md_clamp_bot
word clamp,     md_clamp

word align_of,           md_align_of
word offset_of,          md_offset_of
word member_from_offset, md_member_from_offset
word cast_from_member,   md_cast_from_member

word defer_loop,         md_defer_loop
word defer_loop_checked, md_defer_loop_checked

word each_enum_val,          md_each_enum_val
word each_non_zero_enum_val, md_each_non_zero_enum_val

word memory_copy,    md_memory_copy
word memory_set,     md_memory_set
word memory_compare, md_memory_compare
word memory_str_len, md_memory_str_len

word memory_copy_struct, md_memory_copy_struct
word memory_copy_array,  md_memory_copy_array
word memory_copy_type,   md_memory_copy_type

word memory_zero,        md_memory_zero
word memory_zero_struct, md_memory_zero_struct
word memroy_zero_array,  md_memory_zero_array
word memory_zero_type,   md_memory_zero_type

word memory_match,        md_memory_match
word memory_match_struct, md_memory_match_struct
word memory_match_array,  md_memory_match_array
word memory_match_type,   md_memory_match_type

word memory_read,    md_memory_read
word memory_consume, md_memory_consume

word mem_move, md_mem_move
word mem_set,  md_mem_set

namespace ins_atomic_, md_ins_atomic_

word check_nil, md_check_nil
word set_nil,   md_set_nil

// word dll_insert_npz,     md_dll_insert_npz, 
// word dll_push_back_npz,  md_dll_push_back_npz, 
// word dll_push_front_npz, md_dll_push_front_npz, 
// word dll_remove_npz,     md_dll_remove_npz

// word sll_queue_push_nz,       md_sll_queue_push_nz
// word sll_queue_push_front_nz, md_sll_queue_push_front_nz
// word sll_queue_pop_nz,        md_sll_queue_pop_nz

// word sll_stack_push_n, md_sll_stack_push_n
// word sll_stack_pop_n,  md_sll_stack_pop_n

namespace dll_, md_dll_
namespace sll_, md_sll_

word NO_ASAN, MD_NO_ASAN

namespace asan_, md_asan_

word stringify,  md_stringify
word stringify_, md_stringify_

word glue,  md_glue
word glue_, md_glue_

word array_count, md_array_count

word ceil_integer_div, md_ceil_integer_div

word swap, md_swap

word int_from_ptr,     md_int_from_ptr
word ptr_from_int,     md_ptr_from_int
 
word compose_64bit,   md_compose_64bit
word align_pow2,      md_align_pow2
word align_down_pow2, md_align_down_pow2
word align_pad_pow2,  md_align_pad_pow2
word is_pow2,         md_is_pow2
word is_pow2_or_zero, md_is_pow2_or_zero

word extract_bit, md_extract_bit
word zero_struct, md_zero_struct

word this_function_name, md_this_function_name

word read_only, md_read_only

// base/memory_substrate.h

word AllocType,     MD_AllocType
word AllocatorProc, MD_AllocatorProc
word AllocatorInfo, MD_AllocatorInfo
word AllocFlag,     MD_AllocFlag

word alloc,        md_alloc
word alloc_align,  md_alloc_align
word free_mem,     md_free_mem
word free_all,     md_free_all
word resize,       md_resize
word resize_align, md_resize_align

word default_resize_align, md_default_resize_align

word alloc_item,  md_alloc_item
word alloc_array, md_alloc_array

word heap_stats_init,        md_heap_stats_init
word heap_stats_used_mem,    md_heap_stats_used_mem
word heap_stats_alloc_count, md_heap_stats_alloc_count
word heap_stats_check,       md_heap_stats_check
word heap_allocator_proc,    md_heap_allocator_proc
word heap,                   md_heap

word malloc, md_malloc
word mfree,  md_mfree

word      VMem, MD_VMem
namespace vm_,  md_vm_



// base/math.h

word Rng1U64, MD_Rng1U64

// base/strings.h

word String8, MD_String8


// metadesk module

// word MsgKind,            MD_MsgKind
// word MsgKind_Null,       MD_MsgKind_Null
// word MsgKind_Note,       MD_MsgKind_Note
// word MsgKind_Warning,    MD_MsgKind_Warning
// word MsgKind_Error,      MD_MsgKind_Error
// word MsgKind_FatalError, MD_MsgKind_FatalError
namespace MsgKind, MD_MsgKind

word Msg,     MD_Msg
word MsgList, MD_MsgList

word      TokenFlags,     MD_MsgFlags
namespace TokenFlag,      MD_TokenFlag
word      TokenGroups,    MD_TokenGroups
namespace TokenGroup,     MD_TokenGroup
word      Token,          MD_Token
word      TokenChunkNode, MD_TokenChunkNode
word      TokenChunkList, MD_TokenChunkList
word      TokenArray,     MD_TokenArray

namespace NodeKind, MD_NodeKind
word      Node,     MD_Node

// metagen module


