# Name --- Each word representing a var, symbol or type gets an `NAME_IDENTIFIER` -> `kpl_name*` associated with it ## Object Definitions ```c #define KPL_LETTER_COUNT 26 #define KPL_NAME_COUNT 43 #define KPL_NAME_SIZE 44 typedef struct { kpl_ptr underscore, lowercase[KPL_LETTER_COUNT], uppercase[KPL_LETTER_COUNT]; char name[KPL_NAME_SIZE]; } kpl_name_node; typedef strcut { kpl_name_node array[UINT16_MAX]; } kpl_name_array; typedef strcut { uint16_t slab_index, array_index; kpl_mutex mutex; kpl_ptr root; kpl_name_array *slab[UINT16_MAX]; } kpl_name; ``` ## Usage The only operation into the trie is a findsert with a pointer to a string and its length, returning a pointer to the found or inserted node