Built in docs running

This commit is contained in:
Allen Webster 2019-12-12 16:03:21 -08:00
parent 74adc4782f
commit 18dc4cb8fd
18 changed files with 1864 additions and 367 deletions

View File

@ -17,8 +17,7 @@ begin_api(Arena *arena, char *name){
} }
function API_Call* function API_Call*
api_call_with_location(Arena *arena, API_Definition *api, String_Const_u8 name, String_Const_u8 type, api_call_with_location(Arena *arena, API_Definition *api, String_Const_u8 name, String_Const_u8 type, String_Const_u8 location){
String_Const_u8 location){
API_Call *call = push_array_zero(arena, API_Call, 1); API_Call *call = push_array_zero(arena, API_Call, 1);
sll_queue_push(api->first, api->last, call); sll_queue_push(api->first, api->last, call);
api->count += 1; api->count += 1;
@ -301,6 +300,45 @@ generate_cpp(Arena *scratch, API_Definition *api, API_Generation_Flag flags, FIL
fprintf(out, "#endif\n"); fprintf(out, "#endif\n");
} }
function void
generate_constructor(Arena *scratch, API_Definition *api, API_Generation_Flag flags, FILE *out){
fprintf(out, "function API_Definition*\n");
fprintf(out, "%.*s_api_construct(Arena *arena){\n",
string_expand(api->name));
fprintf(out, "API_Definition *result = begin_api(arena, \"%.*s\");\n",
string_expand(api->name));
for (API_Call *call = api->first;
call != 0;
call = call->next){
fprintf(out, "{\n");
fprintf(out, "API_Call *call = api_call_with_location(arena, result, "
"string_u8_litexpr(\"%.*s\"), "
"string_u8_litexpr(\"%.*s\"), "
"string_u8_litexpr(\"\"));\n",
string_expand(call->name),
string_expand(call->return_type));
if (call->params.count == 0){
fprintf(out, "(void)call;\n");
}
else{
for (API_Param *param = call->params.first;
param != 0;
param = param->next){
fprintf(out, "api_param(arena, call, \"%.*s\", \"%.*s\");\n",
string_expand(param->type_name),
string_expand(param->name));
}
}
fprintf(out, "}\n");
}
fprintf(out, "return(result);\n");
fprintf(out, "}\n");
}
//////////////////////////////// ////////////////////////////////
function b32 function b32
@ -313,6 +351,7 @@ api_definition_generate_api_includes(Arena *arena, API_Definition *api, Generate
String_Const_u8 fname_ml = {}; String_Const_u8 fname_ml = {};
String_Const_u8 fname_h = {}; String_Const_u8 fname_h = {};
String_Const_u8 fname_cpp = {}; String_Const_u8 fname_cpp = {};
String_Const_u8 fname_con = {};
String_Const_u8 root = {}; String_Const_u8 root = {};
switch (group){ switch (group){
@ -341,6 +380,11 @@ api_definition_generate_api_includes(Arena *arena, API_Definition *api, Generate
string_expand(root), string_expand(root),
string_expand(api->name)); string_expand(api->name));
fname_con = push_u8_stringf(arena, "%.*s%.*s%.*s_api_constructor.cpp",
string_expand(path_to_self),
string_expand(root),
string_expand(api->name));
FILE *out_file_ml = fopen((char*)fname_ml.str, "wb"); FILE *out_file_ml = fopen((char*)fname_ml.str, "wb");
if (out_file_ml == 0){ if (out_file_ml == 0){
printf("could not open output file: '%s'\n", fname_ml.str); printf("could not open output file: '%s'\n", fname_ml.str);
@ -359,9 +403,16 @@ api_definition_generate_api_includes(Arena *arena, API_Definition *api, Generate
return(false); return(false);
} }
FILE *out_file_con = fopen((char*)fname_con.str, "wb");
if (out_file_cpp == 0){
printf("could not open output file: '%s'\n", fname_con.str);
return(false);
}
printf("%s:1:\n", fname_ml.str); printf("%s:1:\n", fname_ml.str);
printf("%s:1:\n", fname_h.str); printf("%s:1:\n", fname_h.str);
printf("%s:1:\n", fname_cpp.str); printf("%s:1:\n", fname_cpp.str);
printf("%s:1:\n", fname_con.str);
//////////////////////////////// ////////////////////////////////
@ -370,6 +421,7 @@ api_definition_generate_api_includes(Arena *arena, API_Definition *api, Generate
generate_api_master_list(arena, api, flags, out_file_ml); generate_api_master_list(arena, api, flags, out_file_ml);
generate_header(arena, api, flags, out_file_h); generate_header(arena, api, flags, out_file_h);
generate_cpp(arena, api, flags, out_file_cpp); generate_cpp(arena, api, flags, out_file_cpp);
generate_constructor(arena, api, flags, out_file_con);
//////////////////////////////// ////////////////////////////////

View File

@ -3071,9 +3071,7 @@ get_core_profile_list(Application_Links *app){
api(custom) function Doc_Cluster* api(custom) function Doc_Cluster*
get_custom_layer_boundary_docs(Application_Links *app, Arena *arena){ get_custom_layer_boundary_docs(Application_Links *app, Arena *arena){
// TODO(allen): Need to be able to get the API_Definition of the custom API_Definition *api_def = custom_api_construct(arena);
// layer boundary here.
API_Definition *api_def = 0;
return(doc_custom_api(arena, api_def)); return(doc_custom_api(arena, api_def));
} }

View File

@ -16,6 +16,7 @@
#include "4coder_table.h" #include "4coder_table.h"
#include "4coder_events.h" #include "4coder_events.h"
#include "4coder_types.h" #include "4coder_types.h"
#include "4coder_doc_content_types.h"
#include "4coder_default_colors.h" #include "4coder_default_colors.h"
#define STATIC_LINK_API #define STATIC_LINK_API
#include "generated/custom_api.h" #include "generated/custom_api.h"
@ -60,7 +61,6 @@
#include "generated/lexer_cpp.h" #include "generated/lexer_cpp.h"
#include "4ed_api_definition.h" #include "4ed_api_definition.h"
#include "4coder_doc_content_types.h"
#include "docs/4ed_doc_helper.h" #include "docs/4ed_doc_helper.h"
//////////////////////////////// ////////////////////////////////
@ -94,6 +94,7 @@
#include "generated/lexer_cpp.cpp" #include "generated/lexer_cpp.cpp"
#include "4ed_api_definition.cpp" #include "4ed_api_definition.cpp"
#include "generated/custom_api_constructor.cpp"
#include "4ed_api_parser.cpp" #include "4ed_api_parser.cpp"
#include "docs/4ed_doc_content_types.cpp" #include "docs/4ed_doc_content_types.cpp"
#include "docs/4ed_doc_custom_api.cpp" #include "docs/4ed_doc_custom_api.cpp"

View File

@ -89,11 +89,11 @@ define_api(Arena *arena){
} }
{ {
API_Call *call = api_call(arena, api, "now_time", "u64"); api_call(arena, api, "now_time", "u64");
} }
{ {
API_Call *call = api_call(arena, api, "wake_up_timer_create", "Plat_Handle"); api_call(arena, api, "wake_up_timer_create", "Plat_Handle");
} }
{ {
@ -154,7 +154,7 @@ define_api(Arena *arena){
} }
{ {
API_Call *call = api_call(arena, api, "get_screen_scale_factor", "f32"); api_call(arena, api, "get_screen_scale_factor", "f32");
} }
{ {
@ -174,7 +174,7 @@ define_api(Arena *arena){
} }
{ {
API_Call *call = api_call(arena, api, "thread_get_id", "i32"); api_call(arena, api, "thread_get_id", "i32");
} }
{ {
@ -188,7 +188,7 @@ define_api(Arena *arena){
} }
{ {
API_Call *call = api_call(arena, api, "mutex_make", "System_Mutex"); api_call(arena, api, "mutex_make", "System_Mutex");
} }
{ {
@ -207,7 +207,7 @@ define_api(Arena *arena){
} }
{ {
API_Call *call = api_call(arena, api, "condition_variable_make", api_call(arena, api, "condition_variable_make",
"System_Condition_Variable"); "System_Condition_Variable");
} }
@ -262,7 +262,7 @@ define_api(Arena *arena){
} }
{ {
API_Call *call = api_call(arena, api, "is_fullscreen", "b32"); api_call(arena, api, "is_fullscreen", "b32");
} }
{ {

View File

@ -234,7 +234,7 @@ get_snippet_from_user(Application_Links *app, Snippet *snippets, i32 snippet_cou
return(get_snippet_from_user(app, snippets, snippet_count, SCu8(query))); return(get_snippet_from_user(app, snippets, snippet_count, SCu8(query)));
} }
CUSTOM_COMMAND_SIG(snippet_lister) CUSTOM_UI_COMMAND_SIG(snippet_lister)
CUSTOM_DOC("Opens a snippet lister for inserting whole pre-written snippets of text.") CUSTOM_DOC("Opens a snippet lister for inserting whole pre-written snippets of text.")
{ {
View_ID view = get_this_ctx_view(app, Access_ReadWrite); View_ID view = get_this_ctx_view(app, Access_ReadWrite);

View File

@ -12,6 +12,7 @@
#include "4coder_table.h" #include "4coder_table.h"
#include "4coder_events.h" #include "4coder_events.h"
#include "4coder_types.h" #include "4coder_types.h"
#include "4coder_doc_content_types.h"
#include "4coder_default_colors.h" #include "4coder_default_colors.h"
#define DYNAMIC_LINK_API #define DYNAMIC_LINK_API
#include "generated/custom_api.h" #include "generated/custom_api.h"
@ -109,6 +110,7 @@
#include "4coder_miblo_numbers.cpp" #include "4coder_miblo_numbers.cpp"
#include "4coder_profile_inspect.cpp" #include "4coder_profile_inspect.cpp"
#include "4coder_tutorial.cpp" #include "4coder_tutorial.cpp"
#include "4coder_docs.cpp"
#include "4coder_default_hooks.cpp" #include "4coder_default_hooks.cpp"

View File

@ -4,7 +4,188 @@
// TOP // TOP
function Doc_Page*
get_doc_page_from_user(Application_Links *app, Doc_Cluster *doc, String_Const_u8 query){
Scratch_Block scratch(app, Scratch_Share);
Lister *lister = begin_lister(app, scratch);
lister_set_query(lister, query);
lister->handlers = lister_get_default_handlers();
for (Doc_Page *page = doc->first_page;
page != 0;
page = page->next){
lister_add_item(lister, page->name, SCu8(""), page, 0);
}
Lister_Result l_result = run_lister(app, lister);
Doc_Page *result = 0;
if (!l_result.canceled){
result = (Doc_Page*)l_result.user_data;
}
return(result);
}
function Doc_Page*
get_doc_page_from_user(Application_Links *app, Doc_Cluster *doc, char *query){
return(get_doc_page_from_user(app, doc, SCu8(query)));
}
function void
render_doc_page__content(Application_Links *app, Buffer_Insertion *insert, Doc_Content_List *list){
for (Doc_Content *content = list->first;
content != 0;
content = content->next){
// TODO(allen): actually implement links
if (content->emphasis == DocContentEmphasis_SmallHeader){
insertf(insert, "\n");
}
if (content->emphasis == DocContentEmphasis_Heavy){
insertf(insert, "_");
}
if (content->emphasis == DocContentEmphasis_Stylish){
insertf(insert, "*");
}
insertf(insert, "%.*s", string_expand(content->text));
if (content->page_link.size > 0){
insertf(insert, " (link page %.*s)", string_expand(content->page_link));
}
else if (content->block_link.size > 0){
insertf(insert, " (link block %.*s)", string_expand(content->block_link));
}
if (content->emphasis == DocContentEmphasis_Heavy){
insertf(insert, "_");
}
if (content->emphasis == DocContentEmphasis_Stylish){
insertf(insert, "*");
}
if (content->emphasis == DocContentEmphasis_SmallHeader){
insertf(insert, "\n");
}
else{
if (content->next != 0){
insertf(insert, " ");
}
}
}
}
function void
render_doc_page__code(Application_Links *app, Buffer_Insertion *insert, Doc_Code_Sample_List *code){
for (Doc_Code_Sample *sample = code->first;
sample != 0;
sample = sample->next){
insertf(insert, "language: ");
switch (sample->language){
case DocCodeLanguage_Cpp:
{
insertf(insert, "C++\n");
}break;
case DocCodeLanguage_Bat:
{
insertf(insert, "Batch\n\n");
}break;
}
insertf(insert, "\n%.*s\n", string_expand(sample->contents));
}
}
function void
render_doc_page__table(Application_Links *app, Buffer_Insertion *insert, Vec2_i32 dim, Doc_Content_List *vals){
// TODO(allen): align better or something
Doc_Content_List *val = vals;
for (i32 y = 0; y < dim.y; y += 1){
for (i32 x = 0; x < dim.x; x += 1){
render_doc_page__content(app, insert, val);
insertf(insert, "; ");
val += 1;
}
insertf(insert, "\n");
}
}
function Buffer_ID
render_doc_page(Application_Links *app, Doc_Page *page){
Scratch_Block scratch(app);
String_Const_u8 doc_buffer_name = push_u8_stringf(scratch, "*doc: %.*s*",
string_expand(page->name));
Buffer_Create_Flag flags = BufferCreate_NeverAttachToFile;
Buffer_ID buffer = create_buffer(app, doc_buffer_name, flags);
if (buffer != 0){
buffer_set_setting(app, buffer, BufferSetting_RecordsHistory, false);
buffer_set_setting(app, buffer, BufferSetting_ReadOnly, true);
buffer_set_setting(app, buffer, BufferSetting_Unimportant, true);
i64 size = buffer_get_size(app, buffer);
if (size != 0){
buffer_replace_range(app, buffer, Ii64(0, size), SCu8(""));
}
Buffer_Insertion insert = begin_buffer_insertion_at_buffered(app, buffer, 0, scratch, KB(16));
char dashes[] =
"----------------------------------------------------------------"
"----------------------------------------------------------------"
"----------------------------------------------------------------"
"----------------------------------------------------------------";
insertf(&insert, "%.*s\n%.*s\n",
string_expand(page->title),
page->title.size, dashes);
for (Doc_Block *block = page->first_block;
block != 0;
block = block->next){
insertf(&insert, "%.*s\n\n", string_expand(block->name));
for (Doc_Paragraph *par = block->first_par;
par != 0;
par = par->next){
switch (par->kind){
case DocParagraphKind_Text:
{
render_doc_page__content(app, &insert, &par->text);
}break;
case DocParagraphKind_Code:
{
render_doc_page__code(app, &insert, &par->code);
}break;
case DocParagraphKind_Table:
{
render_doc_page__table(app, &insert, par->table.dim, par->table.vals);
}break;
}
insert_string(&insert, string_u8_litexpr("\n"));
}
insertf(&insert, "%.*s\n", page->title.size, dashes);
}
end_buffer_insertion(&insert);
}
return(buffer);
}
CUSTOM_UI_COMMAND_SIG(open_documentation)
CUSTOM_DOC("Prompts the user to select an API item then loads a doc buffer for that item")
{
View_ID view = get_this_ctx_view(app, Access_ReadWrite);
if (view != 0){
Scratch_Block scratch(app);
Doc_Cluster *docs = get_custom_layer_boundary_docs(app, scratch);
Doc_Page *page = get_doc_page_from_user(app, docs, "Doc Page:");
String_Const_u8 string = push_u8_stringf(scratch, "selected page: %.*s\n",
string_expand(page->title));
Buffer_ID buffer = render_doc_page(app, page);
view_set_buffer(app, view, buffer, 0);
}
}
// BOTTOM // BOTTOM

View File

@ -4,7 +4,7 @@
// TOP // TOP
static Buffer_Insertion function Buffer_Insertion
begin_buffer_insertion_at(Application_Links *app, Buffer_ID buffer_id, i64 at){ begin_buffer_insertion_at(Application_Links *app, Buffer_ID buffer_id, i64 at){
Buffer_Insertion result = {}; Buffer_Insertion result = {};
result.app = app; result.app = app;
@ -13,7 +13,7 @@ begin_buffer_insertion_at(Application_Links *app, Buffer_ID buffer_id, i64 at){
return(result); return(result);
} }
static Buffer_Insertion function Buffer_Insertion
begin_buffer_insertion_at_buffered(Application_Links *app, Buffer_ID buffer_id, i64 at, Cursor *cursor){ begin_buffer_insertion_at_buffered(Application_Links *app, Buffer_ID buffer_id, i64 at, Cursor *cursor){
Buffer_Insertion result = begin_buffer_insertion_at(app, buffer_id, at); Buffer_Insertion result = begin_buffer_insertion_at(app, buffer_id, at);
result.buffering = true; result.buffering = true;
@ -22,14 +22,14 @@ begin_buffer_insertion_at_buffered(Application_Links *app, Buffer_ID buffer_id,
return(result); return(result);
} }
internal Buffer_Insertion function Buffer_Insertion
begin_buffer_insertion_at_buffered(Application_Links *app, Buffer_ID buffer_id, i64 at, Arena *buffer_memory, umem buffer_memory_size){ begin_buffer_insertion_at_buffered(Application_Links *app, Buffer_ID buffer_id, i64 at, Arena *buffer_memory, umem buffer_memory_size){
Cursor *cursor = push_array(buffer_memory, Cursor, 1); Cursor *cursor = push_array(buffer_memory, Cursor, 1);
*cursor = make_cursor(push_array(buffer_memory, u8, buffer_memory_size), buffer_memory_size); *cursor = make_cursor(push_array(buffer_memory, u8, buffer_memory_size), buffer_memory_size);
return(begin_buffer_insertion_at_buffered(app, buffer_id, at, cursor)); return(begin_buffer_insertion_at_buffered(app, buffer_id, at, cursor));
} }
static Buffer_Insertion function Buffer_Insertion
begin_buffer_insertion(Application_Links *app){ begin_buffer_insertion(Application_Links *app){
View_ID view = get_active_view(app, Access_Always); View_ID view = get_active_view(app, Access_Always);
Buffer_ID buffer = view_get_buffer(app, view, Access_Always); Buffer_ID buffer = view_get_buffer(app, view, Access_Always);
@ -38,7 +38,7 @@ begin_buffer_insertion(Application_Links *app){
return(result); return(result);
} }
static void function void
insert_string__no_buffering(Buffer_Insertion *insertion, String_Const_u8 string){ insert_string__no_buffering(Buffer_Insertion *insertion, String_Const_u8 string){
buffer_replace_range(insertion->app, insertion->buffer, Ii64(insertion->at), string); buffer_replace_range(insertion->app, insertion->buffer, Ii64(insertion->at), string);
insertion->at += string.size; insertion->at += string.size;

View File

@ -2,7 +2,7 @@
#define command_id(c) (fcoder_metacmd_ID_##c) #define command_id(c) (fcoder_metacmd_ID_##c)
#define command_metadata(c) (&fcoder_metacmd_table[command_id(c)]) #define command_metadata(c) (&fcoder_metacmd_table[command_id(c)])
#define command_metadata_by_id(id) (&fcoder_metacmd_table[id]) #define command_metadata_by_id(id) (&fcoder_metacmd_table[id])
#define command_one_past_last_id 226 #define command_one_past_last_id 227
#if defined(CUSTOM_COMMAND_SIG) #if defined(CUSTOM_COMMAND_SIG)
#define PROC_LINKS(x,y) x #define PROC_LINKS(x,y) x
#else #else
@ -233,6 +233,7 @@ CUSTOM_COMMAND_SIG(kill_tutorial);
CUSTOM_COMMAND_SIG(tutorial_maximize); CUSTOM_COMMAND_SIG(tutorial_maximize);
CUSTOM_COMMAND_SIG(tutorial_minimize); CUSTOM_COMMAND_SIG(tutorial_minimize);
CUSTOM_COMMAND_SIG(hms_demo_tutorial); CUSTOM_COMMAND_SIG(hms_demo_tutorial);
CUSTOM_COMMAND_SIG(open_documentation);
CUSTOM_COMMAND_SIG(default_startup); CUSTOM_COMMAND_SIG(default_startup);
CUSTOM_COMMAND_SIG(default_try_exit); CUSTOM_COMMAND_SIG(default_try_exit);
#endif #endif
@ -247,7 +248,7 @@ char *source_name;
i32 source_name_len; i32 source_name_len;
i32 line_number; i32 line_number;
}; };
static Command_Metadata fcoder_metacmd_table[226] = { static Command_Metadata fcoder_metacmd_table[227] = {
{ PROC_LINKS(default_view_input_handler, 0), false, "default_view_input_handler", 26, "Input consumption loop for default view behavior", 48, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 56 }, { PROC_LINKS(default_view_input_handler, 0), false, "default_view_input_handler", 26, "Input consumption loop for default view behavior", 48, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 56 },
{ PROC_LINKS(profile_enable, 0), false, "profile_enable", 14, "Allow 4coder's self profiler to gather new profiling information.", 65, "w:\\4ed\\code\\custom\\4coder_profile.cpp", 37, 212 }, { PROC_LINKS(profile_enable, 0), false, "profile_enable", 14, "Allow 4coder's self profiler to gather new profiling information.", 65, "w:\\4ed\\code\\custom\\4coder_profile.cpp", 37, 212 },
{ PROC_LINKS(profile_disable, 0), false, "profile_disable", 15, "Prevent 4coder's self profiler from gathering new profiling information.", 72, "w:\\4ed\\code\\custom\\4coder_profile.cpp", 37, 219 }, { PROC_LINKS(profile_disable, 0), false, "profile_disable", 15, "Prevent 4coder's self profiler from gathering new profiling information.", 72, "w:\\4ed\\code\\custom\\4coder_profile.cpp", 37, 219 },
@ -460,7 +461,7 @@ static Command_Metadata fcoder_metacmd_table[226] = {
{ PROC_LINKS(comment_line, 0), false, "comment_line", 12, "Insert '//' at the beginning of the line after leading whitespace.", 66, "w:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 125 }, { PROC_LINKS(comment_line, 0), false, "comment_line", 12, "Insert '//' at the beginning of the line after leading whitespace.", 66, "w:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 125 },
{ PROC_LINKS(uncomment_line, 0), false, "uncomment_line", 14, "If present, delete '//' at the beginning of the line after leading whitespace.", 78, "w:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 137 }, { PROC_LINKS(uncomment_line, 0), false, "uncomment_line", 14, "If present, delete '//' at the beginning of the line after leading whitespace.", 78, "w:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 137 },
{ PROC_LINKS(comment_line_toggle, 0), false, "comment_line_toggle", 19, "Turns uncommented lines into commented lines and vice versa for comments starting with '//'.", 92, "w:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 149 }, { PROC_LINKS(comment_line_toggle, 0), false, "comment_line_toggle", 19, "Turns uncommented lines into commented lines and vice versa for comments starting with '//'.", 92, "w:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 149 },
{ PROC_LINKS(snippet_lister, 0), false, "snippet_lister", 14, "Opens a snippet lister for inserting whole pre-written snippets of text.", 72, "w:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 237 }, { PROC_LINKS(snippet_lister, 0), true, "snippet_lister", 14, "Opens a snippet lister for inserting whole pre-written snippets of text.", 72, "w:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 237 },
{ PROC_LINKS(miblo_increment_basic, 0), false, "miblo_increment_basic", 21, "Increment an integer under the cursor by one.", 45, "w:\\4ed\\code\\custom\\4coder_miblo_numbers.cpp", 43, 29 }, { PROC_LINKS(miblo_increment_basic, 0), false, "miblo_increment_basic", 21, "Increment an integer under the cursor by one.", 45, "w:\\4ed\\code\\custom\\4coder_miblo_numbers.cpp", 43, 29 },
{ PROC_LINKS(miblo_decrement_basic, 0), false, "miblo_decrement_basic", 21, "Decrement an integer under the cursor by one.", 45, "w:\\4ed\\code\\custom\\4coder_miblo_numbers.cpp", 43, 44 }, { PROC_LINKS(miblo_decrement_basic, 0), false, "miblo_decrement_basic", 21, "Decrement an integer under the cursor by one.", 45, "w:\\4ed\\code\\custom\\4coder_miblo_numbers.cpp", 43, 44 },
{ PROC_LINKS(miblo_increment_time_stamp, 0), false, "miblo_increment_time_stamp", 26, "Increment a time stamp under the cursor by one second. (format [m]m:ss or h:mm:ss", 81, "w:\\4ed\\code\\custom\\4coder_miblo_numbers.cpp", 43, 231 }, { PROC_LINKS(miblo_increment_time_stamp, 0), false, "miblo_increment_time_stamp", 26, "Increment a time stamp under the cursor by one second. (format [m]m:ss or h:mm:ss", 81, "w:\\4ed\\code\\custom\\4coder_miblo_numbers.cpp", 43, 231 },
@ -472,6 +473,7 @@ static Command_Metadata fcoder_metacmd_table[226] = {
{ PROC_LINKS(tutorial_maximize, 0), false, "tutorial_maximize", 17, "Expand the tutorial window", 26, "w:\\4ed\\code\\custom\\4coder_tutorial.cpp", 38, 20 }, { PROC_LINKS(tutorial_maximize, 0), false, "tutorial_maximize", 17, "Expand the tutorial window", 26, "w:\\4ed\\code\\custom\\4coder_tutorial.cpp", 38, 20 },
{ PROC_LINKS(tutorial_minimize, 0), false, "tutorial_minimize", 17, "Shrink the tutorial window", 26, "w:\\4ed\\code\\custom\\4coder_tutorial.cpp", 38, 34 }, { PROC_LINKS(tutorial_minimize, 0), false, "tutorial_minimize", 17, "Shrink the tutorial window", 26, "w:\\4ed\\code\\custom\\4coder_tutorial.cpp", 38, 34 },
{ PROC_LINKS(hms_demo_tutorial, 0), false, "hms_demo_tutorial", 17, "Tutorial for built in 4coder bindings and features.", 51, "w:\\4ed\\code\\custom\\4coder_tutorial.cpp", 38, 869 }, { PROC_LINKS(hms_demo_tutorial, 0), false, "hms_demo_tutorial", 17, "Tutorial for built in 4coder bindings and features.", 51, "w:\\4ed\\code\\custom\\4coder_tutorial.cpp", 38, 869 },
{ PROC_LINKS(open_documentation, 0), true, "open_documentation", 18, "Prompts the user to select an API item then loads a doc buffer for that item", 76, "w:\\4ed\\code\\custom\\4coder_docs.cpp", 34, 175 },
{ PROC_LINKS(default_startup, 0), false, "default_startup", 15, "Default command for responding to a startup event", 49, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 7 }, { PROC_LINKS(default_startup, 0), false, "default_startup", 15, "Default command for responding to a startup event", 49, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 7 },
{ PROC_LINKS(default_try_exit, 0), false, "default_try_exit", 16, "Default command for responding to a try-exit event", 50, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 22 }, { PROC_LINKS(default_try_exit, 0), false, "default_try_exit", 16, "Default command for responding to a try-exit event", 50, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 22 },
}; };
@ -699,6 +701,7 @@ static i32 fcoder_metacmd_ID_kill_tutorial = 220;
static i32 fcoder_metacmd_ID_tutorial_maximize = 221; static i32 fcoder_metacmd_ID_tutorial_maximize = 221;
static i32 fcoder_metacmd_ID_tutorial_minimize = 222; static i32 fcoder_metacmd_ID_tutorial_minimize = 222;
static i32 fcoder_metacmd_ID_hms_demo_tutorial = 223; static i32 fcoder_metacmd_ID_hms_demo_tutorial = 223;
static i32 fcoder_metacmd_ID_default_startup = 224; static i32 fcoder_metacmd_ID_open_documentation = 224;
static i32 fcoder_metacmd_ID_default_try_exit = 225; static i32 fcoder_metacmd_ID_default_startup = 225;
static i32 fcoder_metacmd_ID_default_try_exit = 226;
#endif #endif

View File

@ -173,6 +173,7 @@ vtable->open_color_picker = open_color_picker;
vtable->animate_in_n_milliseconds = animate_in_n_milliseconds; vtable->animate_in_n_milliseconds = animate_in_n_milliseconds;
vtable->buffer_find_all_matches = buffer_find_all_matches; vtable->buffer_find_all_matches = buffer_find_all_matches;
vtable->get_core_profile_list = get_core_profile_list; vtable->get_core_profile_list = get_core_profile_list;
vtable->get_custom_layer_boundary_docs = get_custom_layer_boundary_docs;
} }
#if defined(DYNAMIC_LINK_API) #if defined(DYNAMIC_LINK_API)
function void function void
@ -350,6 +351,7 @@ open_color_picker = vtable->open_color_picker;
animate_in_n_milliseconds = vtable->animate_in_n_milliseconds; animate_in_n_milliseconds = vtable->animate_in_n_milliseconds;
buffer_find_all_matches = vtable->buffer_find_all_matches; buffer_find_all_matches = vtable->buffer_find_all_matches;
get_core_profile_list = vtable->get_core_profile_list; get_core_profile_list = vtable->get_core_profile_list;
get_custom_layer_boundary_docs = vtable->get_custom_layer_boundary_docs;
} }
#undef DYNAMIC_LINK_API #undef DYNAMIC_LINK_API
#endif #endif

View File

@ -171,6 +171,7 @@
#define custom_animate_in_n_milliseconds_sig() void custom_animate_in_n_milliseconds(Application_Links* app, u32 n) #define custom_animate_in_n_milliseconds_sig() void custom_animate_in_n_milliseconds(Application_Links* app, u32 n)
#define custom_buffer_find_all_matches_sig() String_Match_List custom_buffer_find_all_matches(Application_Links* app, Arena* arena, Buffer_ID buffer, i32 string_id, Range_i64 range, String_Const_u8 needle, Character_Predicate* predicate, Scan_Direction direction) #define custom_buffer_find_all_matches_sig() String_Match_List custom_buffer_find_all_matches(Application_Links* app, Arena* arena, Buffer_ID buffer, i32 string_id, Range_i64 range, String_Const_u8 needle, Character_Predicate* predicate, Scan_Direction direction)
#define custom_get_core_profile_list_sig() Profile_Global_List* custom_get_core_profile_list(Application_Links* app) #define custom_get_core_profile_list_sig() Profile_Global_List* custom_get_core_profile_list(Application_Links* app)
#define custom_get_custom_layer_boundary_docs_sig() Doc_Cluster* custom_get_custom_layer_boundary_docs(Application_Links* app, Arena* arena)
typedef b32 custom_global_set_setting_type(Application_Links* app, Global_Setting_ID setting, i64 value); typedef b32 custom_global_set_setting_type(Application_Links* app, Global_Setting_ID setting, i64 value);
typedef Rect_f32 custom_global_get_screen_rectangle_type(Application_Links* app); typedef Rect_f32 custom_global_get_screen_rectangle_type(Application_Links* app);
typedef Thread_Context* custom_get_thread_context_type(Application_Links* app); typedef Thread_Context* custom_get_thread_context_type(Application_Links* app);
@ -344,6 +345,7 @@ typedef void custom_open_color_picker_type(Application_Links* app, Color_Picker*
typedef void custom_animate_in_n_milliseconds_type(Application_Links* app, u32 n); typedef void custom_animate_in_n_milliseconds_type(Application_Links* app, u32 n);
typedef String_Match_List custom_buffer_find_all_matches_type(Application_Links* app, Arena* arena, Buffer_ID buffer, i32 string_id, Range_i64 range, String_Const_u8 needle, Character_Predicate* predicate, Scan_Direction direction); typedef String_Match_List custom_buffer_find_all_matches_type(Application_Links* app, Arena* arena, Buffer_ID buffer, i32 string_id, Range_i64 range, String_Const_u8 needle, Character_Predicate* predicate, Scan_Direction direction);
typedef Profile_Global_List* custom_get_core_profile_list_type(Application_Links* app); typedef Profile_Global_List* custom_get_core_profile_list_type(Application_Links* app);
typedef Doc_Cluster* custom_get_custom_layer_boundary_docs_type(Application_Links* app, Arena* arena);
struct API_VTable_custom{ struct API_VTable_custom{
custom_global_set_setting_type *global_set_setting; custom_global_set_setting_type *global_set_setting;
custom_global_get_screen_rectangle_type *global_get_screen_rectangle; custom_global_get_screen_rectangle_type *global_get_screen_rectangle;
@ -518,6 +520,7 @@ custom_open_color_picker_type *open_color_picker;
custom_animate_in_n_milliseconds_type *animate_in_n_milliseconds; custom_animate_in_n_milliseconds_type *animate_in_n_milliseconds;
custom_buffer_find_all_matches_type *buffer_find_all_matches; custom_buffer_find_all_matches_type *buffer_find_all_matches;
custom_get_core_profile_list_type *get_core_profile_list; custom_get_core_profile_list_type *get_core_profile_list;
custom_get_custom_layer_boundary_docs_type *get_custom_layer_boundary_docs;
}; };
#if defined(STATIC_LINK_API) #if defined(STATIC_LINK_API)
internal b32 global_set_setting(Application_Links* app, Global_Setting_ID setting, i64 value); internal b32 global_set_setting(Application_Links* app, Global_Setting_ID setting, i64 value);
@ -693,6 +696,7 @@ internal void open_color_picker(Application_Links* app, Color_Picker* picker);
internal void animate_in_n_milliseconds(Application_Links* app, u32 n); internal void animate_in_n_milliseconds(Application_Links* app, u32 n);
internal String_Match_List buffer_find_all_matches(Application_Links* app, Arena* arena, Buffer_ID buffer, i32 string_id, Range_i64 range, String_Const_u8 needle, Character_Predicate* predicate, Scan_Direction direction); internal String_Match_List buffer_find_all_matches(Application_Links* app, Arena* arena, Buffer_ID buffer, i32 string_id, Range_i64 range, String_Const_u8 needle, Character_Predicate* predicate, Scan_Direction direction);
internal Profile_Global_List* get_core_profile_list(Application_Links* app); internal Profile_Global_List* get_core_profile_list(Application_Links* app);
internal Doc_Cluster* get_custom_layer_boundary_docs(Application_Links* app, Arena* arena);
#undef STATIC_LINK_API #undef STATIC_LINK_API
#elif defined(DYNAMIC_LINK_API) #elif defined(DYNAMIC_LINK_API)
global custom_global_set_setting_type *global_set_setting = 0; global custom_global_set_setting_type *global_set_setting = 0;
@ -868,5 +872,6 @@ global custom_open_color_picker_type *open_color_picker = 0;
global custom_animate_in_n_milliseconds_type *animate_in_n_milliseconds = 0; global custom_animate_in_n_milliseconds_type *animate_in_n_milliseconds = 0;
global custom_buffer_find_all_matches_type *buffer_find_all_matches = 0; global custom_buffer_find_all_matches_type *buffer_find_all_matches = 0;
global custom_get_core_profile_list_type *get_core_profile_list = 0; global custom_get_core_profile_list_type *get_core_profile_list = 0;
global custom_get_custom_layer_boundary_docs_type *get_custom_layer_boundary_docs = 0;
#undef DYNAMIC_LINK_API #undef DYNAMIC_LINK_API
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -152,7 +152,7 @@ api(custom) function b32 try_release_face(Application_Links* app, Face_ID id, Fa
api(custom) function String_Const_u8 push_hot_directory(Application_Links* app, Arena* arena); api(custom) function String_Const_u8 push_hot_directory(Application_Links* app, Arena* arena);
api(custom) function void set_hot_directory(Application_Links* app, String_Const_u8 string); api(custom) function void set_hot_directory(Application_Links* app, String_Const_u8 string);
api(custom) function void send_exit_signal(Application_Links* app); api(custom) function void send_exit_signal(Application_Links* app);
api(custom) function b32 set_window_title(Application_Links* app, String_Const_u8 title); api(custom) function void set_window_title(Application_Links* app, String_Const_u8 title);
api(custom) function Vec2_f32 draw_string_oriented(Application_Links* app, Face_ID font_id, ARGB_Color color, String_Const_u8 str, Vec2_f32 point, u32 flags, Vec2_f32 delta); api(custom) function Vec2_f32 draw_string_oriented(Application_Links* app, Face_ID font_id, ARGB_Color color, String_Const_u8 str, Vec2_f32 point, u32 flags, Vec2_f32 delta);
api(custom) function f32 get_string_advance(Application_Links* app, Face_ID font_id, String_Const_u8 str); api(custom) function f32 get_string_advance(Application_Links* app, Face_ID font_id, String_Const_u8 str);
api(custom) function void draw_rectangle(Application_Links* app, Rect_f32 rect, f32 roundness, ARGB_Color color); api(custom) function void draw_rectangle(Application_Links* app, Rect_f32 rect, f32 roundness, ARGB_Color color);
@ -171,3 +171,4 @@ api(custom) function void open_color_picker(Application_Links* app, Color_Picker
api(custom) function void animate_in_n_milliseconds(Application_Links* app, u32 n); api(custom) function void animate_in_n_milliseconds(Application_Links* app, u32 n);
api(custom) function String_Match_List buffer_find_all_matches(Application_Links* app, Arena* arena, Buffer_ID buffer, i32 string_id, Range_i64 range, String_Const_u8 needle, Character_Predicate* predicate, Scan_Direction direction); api(custom) function String_Match_List buffer_find_all_matches(Application_Links* app, Arena* arena, Buffer_ID buffer, i32 string_id, Range_i64 range, String_Const_u8 needle, Character_Predicate* predicate, Scan_Direction direction);
api(custom) function Profile_Global_List* get_core_profile_list(Application_Links* app); api(custom) function Profile_Global_List* get_core_profile_list(Application_Links* app);
api(custom) function Doc_Cluster* get_custom_layer_boundary_docs(Application_Links* app, Arena* arena);

View File

@ -43,449 +43,447 @@ lexeme_table_lookup(u64 *hash_array, String_Const_u8 *key_array,
} }
#endif #endif
u64 main_keys_hash_array[122] = { u64 main_keys_hash_array[121] = {
0xcd6c76d1d6016aeb,0x0000000000000000,0xbe9032d742e0309b,0x0000000000000000, 0x3165da52e461ac3f,0x0000000000000000,0x3165da52f92661bd,0x0000000000000000,
0x5c749ba575e954f1,0x94b802ccb961eba5,0x0000000000000000,0xbe9032d742f66603, 0x0000000000000000,0x0000000000000000,0x3165da52f9fa6ddb,0xbfc3c777d05a650b,
0xf7d7d7daa162a915,0x0000000000000000,0xf6dd841a741b54b1,0x0000000000000000, 0x3165da52ea1d2cb3,0x0000000000000000,0x0000000000000000,0x0000000000000000,
0x0000000000000000,0x5c748f9bac5fae01,0x0000000000000000,0x5c74d05e78e41f93, 0x0000000000000000,0xa47e4b3347ca768b,0xa47e4b0d60643265,0xf9ddaa09147bac4d,
0x0000000000000000,0x5c74c48af66ee5ff,0x0000000000000000,0x0000000000000000, 0x95351611c4501ef3,0x0000000000000000,0x0000000000000000,0xa47e4b33693ada65,
0x0000000000000000,0xbe9032d9625648d7,0xb9a8aa62a1b8b979,0xb9a8aac2760d77bb, 0x0000000000000000,0xdb05013ca08bb8f1,0xf9ddaa091485019b,0xbfc3dfcbf5462bb3,
0xf6dd841a74186629,0x0000000000000000,0x0000000000000000,0xbe9032d7b5d01513, 0x0000000000000000,0x3165da52f85e6961,0x0000000000000000,0xdb0563922ce5394d,
0x0000000000000000,0xbe9032d7994fac15,0xbe9032dad379e361,0x0000000000000000, 0x0000000000000000,0xa47e4b334bfc993f,0xdb02e2748a4d7e43,0x0000000000000000,
0x0000000000000000,0xf7d7d7daa19301fb,0x0000000000000000,0x0000000000000000, 0xb4c81ca554c806f3,0x0000000000000000,0x3165da52e0f88b5b,0x501eeeb814fbf821,
0x0000000000000000,0x0000000000000000,0x0000000000000000,0xcd6c76d1f3bd9ae3, 0x0000000000000000,0xdb0503951fae6cc1,0x0000000000000000,0x0000000000000000,
0xcd6c76d1d180352d,0xbe9032d559a465a3,0x0000000000000000,0xb9a8a8cc655e5207, 0xbfc3de349dfab331,0x0000000000000000,0x0000000000000000,0x3165da52f092830f,
0xf6dd841a741824f1,0x422915073da91143,0xb9a8ab8998c6af61,0xbe9032d4fc7896d5, 0xa47e4b300b3f05d3,0xbfc3dfcbf546362d,0xdb05125809d1c12f,0x0000000000000000,
0x0000000000000000,0x0000000000000000,0xcd6c76d1e7ffc9ab,0x0000000000000000, 0xed66c2eeb45a9c73,0x0000000000000000,0xf9ddaa0914eaa03f,0x77f5a2bcd06af3a3,
0xcd6c76d1f3b17747,0xb9e062526751e543,0x0000000000000000,0xbe9032d4220956e5, 0xa47e4b0cab3b440f,0x0000000000000000,0x0000000000000000,0x3165da52ebde8871,
0x0000000000000000,0x0000000000000000,0xf7d7d7daa19973f1,0xf5a7dce18eced143, 0xa47e4b0cab0869b5,0x3165da52e5b576b7,0x0000000000000000,0x0000000000000000,
0xf7d7d7daa16530ef,0x0000000000000000,0x0000000000000000,0x5c74e336036c8913, 0xa47e4b336935d383,0x0000000000000000,0x0000000000000000,0xa47e4b30efc0220b,
0xff53749663265edf,0x0000000000000000,0x5c73600f210c2c91,0x0000000000000000, 0x0000000000000000,0x0000000000000000,0x501eeeb814fabe67,0xbfc3dfefa2fc3a77,
0x0000000000000000,0xbe9032d62353c3df,0x0000000000000000,0x0000000000000000, 0x0000000000000000,0x0000000000000000,0x0000000000000000,0xf9ddaa0914bb0bf9,
0xf7d7d7daa1638d21,0xbe9032d781b9009b,0xbe9032d745cd712f,0xcd6c76d1e41b7721, 0x0000000000000000,0xf9ddaa09148a58bb,0x0000000000000000,0xdb02e323971f6e8d,
0xcd6c76d1d07552f1,0x0000000000000000,0x0000000000000000,0xbe9032d623487ce5, 0x501eeeb814fa0161,0xa9cef01e4d45a29b,0x501eeeb814fb939f,0x0000000000000000,
0x0000000000000000,0x0000000000000000,0x0000000000000000,0xf6dd841a741beb17, 0xdb0517ba16b3ab83,0xbfc3dfb0ab021849,0xdb0541265bb691e9,0xbfc3df66cacb41a5,
0xbe9032dadc64ca01,0xf7d7d7daa22757a3,0x3691063dc0b0a271,0x0000000000000000, 0xa47e4b325526bb31,0x0000000000000000,0xeca54fbddbbe35d5,0xa47e4b3347a263d3,
0x0000000000000000,0x0000000000000000,0xf7d7d7daa24ae2ab,0x0000000000000000, 0x0000000000000000,0x77e3dcb62d4753c1,0xdb05aa39286523b1,0x0000000000000000,
0x94b802ccb961ea8f,0x0000000000000000,0x0000000000000000,0x0000000000000000, 0xf9ddaa0914b809a1,0x0000000000000000,0xc6f60bbdf7c8c073,0x3165da52e44f8393,
0x5c736223c944691d,0x5c74bb3811f1a27d,0x0000000000000000,0x0000000000000000, 0x0000000000000000,0x0000000000000000,0xa47e4b32f4f66927,0x0000000000000000,
0x5c74bad2b2e27981,0xf6dd841a741badaf,0xb9a8aa06e5695175,0x0000000000000000, 0xf9ddaa0914dd4631,0x0000000000000000,0xa47e4b322642ad51,0x0000000000000000,
0x0000000000000000,0xf7d7d7daa19d2249,0xf063459c89573543,0xf7d7d7daa22e63fd, 0x0000000000000000,0x0000000000000000,0x0000000000000000,0x0000000000000000,
0x3691575ed8e83d73,0x0000000000000000,0x0000000000000000,0xcd6c76d1e71a3ee3, 0xa47e4b335ea331b5,0x0000000000000000,0x0000000000000000,0x0000000000000000,
0xb9a8a8f46f69395d,0xcd6c76d1f3dfe5ef,0x0000000000000000,0xcd6c76d1ded93fdf, 0xdb0545d45d35a161,0xeca54fbddbbe34ff,0x44a0daa872c59baf,0x0000000000000000,
0xb9a8a8f46f690403,0xf7d7d7daa237416b,0x5c74965a58cc8459,0x0000000000000000, 0xf9ddaa0914c5876b,0x0000000000000000,0x501eeeb814fa0b79,0xf9ddaa0914df8d85,
0x0000000000000000,0x9e39509b39961eeb, 0xf9ddaa0914b167f3,
}; };
u8 main_keys_key_array_0[] = {0x75,0x73,0x69,0x6e,0x67,}; u8 main_keys_key_array_0[] = {0x63,0x61,0x74,0x63,0x68,};
u8 main_keys_key_array_2[] = {0x73,0x74,0x61,0x74,0x69,0x63,}; u8 main_keys_key_array_2[] = {0x75,0x6e,0x69,0x6f,0x6e,};
u8 main_keys_key_array_4[] = {0x76,0x6f,0x6c,0x61,0x74,0x69,0x6c,0x65,}; u8 main_keys_key_array_6[] = {0x75,0x73,0x69,0x6e,0x67,};
u8 main_keys_key_array_5[] = {0x69,0x66,}; u8 main_keys_key_array_7[] = {0x76,0x69,0x72,0x74,0x75,0x61,0x6c,};
u8 main_keys_key_array_7[] = {0x73,0x74,0x72,0x75,0x63,0x74,}; u8 main_keys_key_array_8[] = {0x66,0x6c,0x6f,0x61,0x74,};
u8 main_keys_key_array_8[] = {0x65,0x6e,0x75,0x6d,}; u8 main_keys_key_array_13[] = {0x73,0x74,0x61,0x74,0x69,0x63,};
u8 main_keys_key_array_10[] = {0x74,0x72,0x79,}; u8 main_keys_key_array_14[] = {0x69,0x6e,0x6c,0x69,0x6e,0x65,};
u8 main_keys_key_array_13[] = {0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,}; u8 main_keys_key_array_15[] = {0x74,0x72,0x75,0x65,};
u8 main_keys_key_array_15[] = {0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,}; u8 main_keys_key_array_16[] = {0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x5f,0x63,0x61,0x73,0x74,};
u8 main_keys_key_array_17[] = {0x6e,0x6f,0x65,0x78,0x63,0x65,0x70,0x74,}; u8 main_keys_key_array_19[] = {0x73,0x69,0x7a,0x65,0x6f,0x66,};
u8 main_keys_key_array_21[] = {0x66,0x72,0x69,0x65,0x6e,0x64,}; u8 main_keys_key_array_21[] = {0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,};
u8 main_keys_key_array_22[] = {0x6e,0x75,0x6c,0x6c,0x70,0x74,0x72,}; u8 main_keys_key_array_22[] = {0x74,0x68,0x69,0x73,};
u8 main_keys_key_array_23[] = {0x76,0x69,0x72,0x74,0x75,0x61,0x6c,}; u8 main_keys_key_array_23[] = {0x61,0x6c,0x69,0x67,0x6e,0x61,0x73,};
u8 main_keys_key_array_24[] = {0x61,0x73,0x6d,}; u8 main_keys_key_array_25[] = {0x77,0x68,0x69,0x6c,0x65,};
u8 main_keys_key_array_27[] = {0x73,0x69,0x67,0x6e,0x65,0x64,}; u8 main_keys_key_array_27[] = {0x74,0x79,0x70,0x65,0x6e,0x61,0x6d,0x65,};
u8 main_keys_key_array_29[] = {0x73,0x69,0x7a,0x65,0x6f,0x66,}; u8 main_keys_key_array_29[] = {0x73,0x77,0x69,0x74,0x63,0x68,};
u8 main_keys_key_array_30[] = {0x64,0x65,0x6c,0x65,0x74,0x65,}; u8 main_keys_key_array_30[] = {0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,};
u8 main_keys_key_array_33[] = {0x62,0x6f,0x6f,0x6c,}; u8 main_keys_key_array_32[] = {0x73,0x74,0x61,0x74,0x69,0x63,0x5f,0x63,0x61,0x73,0x74,};
u8 main_keys_key_array_39[] = {0x63,0x6f,0x6e,0x73,0x74,}; u8 main_keys_key_array_34[] = {0x62,0x72,0x65,0x61,0x6b,};
u8 main_keys_key_array_40[] = {0x75,0x6e,0x69,0x6f,0x6e,}; u8 main_keys_key_array_35[] = {0x74,0x72,0x79,};
u8 main_keys_key_array_41[] = {0x74,0x79,0x70,0x65,0x69,0x64,}; u8 main_keys_key_array_37[] = {0x64,0x65,0x63,0x6c,0x74,0x79,0x70,0x65,};
u8 main_keys_key_array_43[] = {0x64,0x65,0x66,0x61,0x75,0x6c,0x74,}; u8 main_keys_key_array_40[] = {0x70,0x72,0x69,0x76,0x61,0x74,0x65,};
u8 main_keys_key_array_44[] = {0x66,0x6f,0x72,}; u8 main_keys_key_array_43[] = {0x73,0x68,0x6f,0x72,0x74,};
u8 main_keys_key_array_45[] = {0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x5f,0x63,0x61,0x73,0x74,}; u8 main_keys_key_array_44[] = {0x74,0x79,0x70,0x65,0x69,0x64,};
u8 main_keys_key_array_46[] = {0x70,0x72,0x69,0x76,0x61,0x74,0x65,}; u8 main_keys_key_array_45[] = {0x61,0x6c,0x69,0x67,0x6e,0x6f,0x66,};
u8 main_keys_key_array_47[] = {0x69,0x6e,0x6c,0x69,0x6e,0x65,}; u8 main_keys_key_array_46[] = {0x6e,0x6f,0x65,0x78,0x63,0x65,0x70,0x74,};
u8 main_keys_key_array_50[] = {0x62,0x72,0x65,0x61,0x6b,}; u8 main_keys_key_array_48[] = {0x72,0x65,0x69,0x6e,0x74,0x65,0x72,0x70,0x72,0x65,0x74,0x5f,0x63,0x61,0x73,0x74,};
u8 main_keys_key_array_52[] = {0x63,0x6c,0x61,0x73,0x73,}; u8 main_keys_key_array_50[] = {0x67,0x6f,0x74,0x6f,};
u8 main_keys_key_array_53[] = {0x72,0x65,0x69,0x6e,0x74,0x65,0x72,0x70,0x72,0x65,0x74,0x5f,0x63,0x61,0x73,0x74,}; u8 main_keys_key_array_51[] = {0x70,0x72,0x6f,0x74,0x65,0x63,0x74,0x65,0x64,};
u8 main_keys_key_array_55[] = {0x72,0x65,0x74,0x75,0x72,0x6e,}; u8 main_keys_key_array_52[] = {0x65,0x78,0x70,0x6f,0x72,0x74,};
u8 main_keys_key_array_58[] = {0x63,0x61,0x73,0x65,}; u8 main_keys_key_array_55[] = {0x66,0x61,0x6c,0x73,0x65,};
u8 main_keys_key_array_59[] = {0x63,0x6f,0x6e,0x73,0x74,0x5f,0x63,0x61,0x73,0x74,}; u8 main_keys_key_array_56[] = {0x65,0x78,0x74,0x65,0x72,0x6e,};
u8 main_keys_key_array_60[] = {0x67,0x6f,0x74,0x6f,}; u8 main_keys_key_array_57[] = {0x63,0x6c,0x61,0x73,0x73,};
u8 main_keys_key_array_63[] = {0x75,0x6e,0x73,0x69,0x67,0x6e,0x65,0x64,}; u8 main_keys_key_array_60[] = {0x73,0x69,0x67,0x6e,0x65,0x64,};
u8 main_keys_key_array_64[] = {0x73,0x74,0x61,0x74,0x69,0x63,0x5f,0x61,0x73,0x73,0x65,0x72,0x74,}; u8 main_keys_key_array_63[] = {0x70,0x75,0x62,0x6c,0x69,0x63,};
u8 main_keys_key_array_66[] = {0x64,0x65,0x63,0x6c,0x74,0x79,0x70,0x65,}; u8 main_keys_key_array_66[] = {0x69,0x6e,0x74,};
u8 main_keys_key_array_69[] = {0x65,0x78,0x70,0x6f,0x72,0x74,}; u8 main_keys_key_array_67[] = {0x64,0x65,0x66,0x61,0x75,0x6c,0x74,};
u8 main_keys_key_array_72[] = {0x65,0x6c,0x73,0x65,}; u8 main_keys_key_array_71[] = {0x63,0x68,0x61,0x72,};
u8 main_keys_key_array_73[] = {0x70,0x75,0x62,0x6c,0x69,0x63,}; u8 main_keys_key_array_73[] = {0x6c,0x6f,0x6e,0x67,};
u8 main_keys_key_array_74[] = {0x73,0x77,0x69,0x74,0x63,0x68,}; u8 main_keys_key_array_75[] = {0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,};
u8 main_keys_key_array_75[] = {0x66,0x61,0x6c,0x73,0x65,}; u8 main_keys_key_array_76[] = {0x66,0x6f,0x72,};
u8 main_keys_key_array_76[] = {0x77,0x68,0x69,0x6c,0x65,}; u8 main_keys_key_array_77[] = {0x74,0x68,0x72,0x65,0x61,0x64,0x5f,0x6c,0x6f,0x63,0x61,0x6c,};
u8 main_keys_key_array_79[] = {0x65,0x78,0x74,0x65,0x72,0x6e,}; u8 main_keys_key_array_78[] = {0x6e,0x65,0x77,};
u8 main_keys_key_array_83[] = {0x69,0x6e,0x74,}; u8 main_keys_key_array_80[] = {0x75,0x6e,0x73,0x69,0x67,0x6e,0x65,0x64,};
u8 main_keys_key_array_84[] = {0x64,0x6f,0x75,0x62,0x6c,0x65,}; u8 main_keys_key_array_81[] = {0x6e,0x75,0x6c,0x6c,0x70,0x74,0x72,};
u8 main_keys_key_array_85[] = {0x76,0x6f,0x69,0x64,}; u8 main_keys_key_array_82[] = {0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,};
u8 main_keys_key_array_86[] = {0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,}; u8 main_keys_key_array_83[] = {0x74,0x79,0x70,0x65,0x64,0x65,0x66,};
u8 main_keys_key_array_90[] = {0x6c,0x6f,0x6e,0x67,}; u8 main_keys_key_array_84[] = {0x64,0x65,0x6c,0x65,0x74,0x65,};
u8 main_keys_key_array_92[] = {0x64,0x6f,}; u8 main_keys_key_array_86[] = {0x69,0x66,};
u8 main_keys_key_array_96[] = {0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,}; u8 main_keys_key_array_87[] = {0x73,0x74,0x72,0x75,0x63,0x74,};
u8 main_keys_key_array_97[] = {0x74,0x79,0x70,0x65,0x6e,0x61,0x6d,0x65,}; u8 main_keys_key_array_89[] = {0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,};
u8 main_keys_key_array_100[] = {0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,}; u8 main_keys_key_array_90[] = {0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,};
u8 main_keys_key_array_101[] = {0x6e,0x65,0x77,}; u8 main_keys_key_array_92[] = {0x63,0x61,0x73,0x65,};
u8 main_keys_key_array_102[] = {0x74,0x79,0x70,0x65,0x64,0x65,0x66,}; u8 main_keys_key_array_94[] = {0x63,0x6f,0x6e,0x73,0x74,0x5f,0x63,0x61,0x73,0x74,};
u8 main_keys_key_array_105[] = {0x63,0x68,0x61,0x72,}; u8 main_keys_key_array_95[] = {0x63,0x6f,0x6e,0x73,0x74,};
u8 main_keys_key_array_106[] = {0x73,0x74,0x61,0x74,0x69,0x63,0x5f,0x63,0x61,0x73,0x74,}; u8 main_keys_key_array_98[] = {0x66,0x72,0x69,0x65,0x6e,0x64,};
u8 main_keys_key_array_107[] = {0x74,0x72,0x75,0x65,}; u8 main_keys_key_array_100[] = {0x65,0x6c,0x73,0x65,};
u8 main_keys_key_array_108[] = {0x70,0x72,0x6f,0x74,0x65,0x63,0x74,0x65,0x64,}; u8 main_keys_key_array_102[] = {0x64,0x6f,0x75,0x62,0x6c,0x65,};
u8 main_keys_key_array_111[] = {0x66,0x6c,0x6f,0x61,0x74,}; u8 main_keys_key_array_108[] = {0x72,0x65,0x74,0x75,0x72,0x6e,};
u8 main_keys_key_array_112[] = {0x61,0x6c,0x69,0x67,0x6e,0x6f,0x66,}; u8 main_keys_key_array_112[] = {0x76,0x6f,0x6c,0x61,0x74,0x69,0x6c,0x65,};
u8 main_keys_key_array_113[] = {0x63,0x61,0x74,0x63,0x68,}; u8 main_keys_key_array_113[] = {0x64,0x6f,};
u8 main_keys_key_array_115[] = {0x73,0x68,0x6f,0x72,0x74,}; u8 main_keys_key_array_114[] = {0x73,0x74,0x61,0x74,0x69,0x63,0x5f,0x61,0x73,0x73,0x65,0x72,0x74,};
u8 main_keys_key_array_116[] = {0x61,0x6c,0x69,0x67,0x6e,0x61,0x73,}; u8 main_keys_key_array_116[] = {0x62,0x6f,0x6f,0x6c,};
u8 main_keys_key_array_117[] = {0x74,0x68,0x69,0x73,}; u8 main_keys_key_array_118[] = {0x61,0x73,0x6d,};
u8 main_keys_key_array_118[] = {0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,}; u8 main_keys_key_array_119[] = {0x65,0x6e,0x75,0x6d,};
u8 main_keys_key_array_121[] = {0x74,0x68,0x72,0x65,0x61,0x64,0x5f,0x6c,0x6f,0x63,0x61,0x6c,}; u8 main_keys_key_array_120[] = {0x76,0x6f,0x69,0x64,};
String_Const_u8 main_keys_key_array[122] = { String_Const_u8 main_keys_key_array[121] = {
{main_keys_key_array_0, 5}, {main_keys_key_array_0, 5},
{0, 0}, {0, 0},
{main_keys_key_array_2, 6}, {main_keys_key_array_2, 5},
{0, 0},
{main_keys_key_array_4, 8},
{main_keys_key_array_5, 2},
{0, 0},
{main_keys_key_array_7, 6},
{main_keys_key_array_8, 4},
{0, 0},
{main_keys_key_array_10, 3},
{0, 0},
{0, 0},
{main_keys_key_array_13, 8},
{0, 0},
{main_keys_key_array_15, 8},
{0, 0},
{main_keys_key_array_17, 8},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{main_keys_key_array_21, 6}, {main_keys_key_array_6, 5},
{main_keys_key_array_22, 7}, {main_keys_key_array_7, 7},
{main_keys_key_array_8, 5},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{main_keys_key_array_13, 6},
{main_keys_key_array_14, 6},
{main_keys_key_array_15, 4},
{main_keys_key_array_16, 12},
{0, 0},
{0, 0},
{main_keys_key_array_19, 6},
{0, 0},
{main_keys_key_array_21, 8},
{main_keys_key_array_22, 4},
{main_keys_key_array_23, 7}, {main_keys_key_array_23, 7},
{main_keys_key_array_24, 3},
{0, 0}, {0, 0},
{main_keys_key_array_25, 5},
{0, 0}, {0, 0},
{main_keys_key_array_27, 6}, {main_keys_key_array_27, 8},
{0, 0}, {0, 0},
{main_keys_key_array_29, 6}, {main_keys_key_array_29, 6},
{main_keys_key_array_30, 6}, {main_keys_key_array_30, 8},
{0, 0},
{main_keys_key_array_32, 11},
{0, 0},
{main_keys_key_array_34, 5},
{main_keys_key_array_35, 3},
{0, 0},
{main_keys_key_array_37, 8},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{main_keys_key_array_33, 4}, {main_keys_key_array_40, 7},
{0, 0},
{0, 0},
{main_keys_key_array_43, 5},
{main_keys_key_array_44, 6},
{main_keys_key_array_45, 7},
{main_keys_key_array_46, 8},
{0, 0},
{main_keys_key_array_48, 16},
{0, 0},
{main_keys_key_array_50, 4},
{main_keys_key_array_51, 9},
{main_keys_key_array_52, 6},
{0, 0},
{0, 0},
{main_keys_key_array_55, 5},
{main_keys_key_array_56, 6},
{main_keys_key_array_57, 5},
{0, 0},
{0, 0},
{main_keys_key_array_60, 6},
{0, 0},
{0, 0},
{main_keys_key_array_63, 6},
{0, 0},
{0, 0},
{main_keys_key_array_66, 3},
{main_keys_key_array_67, 7},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{main_keys_key_array_71, 4},
{0, 0}, {0, 0},
{main_keys_key_array_73, 4},
{0, 0}, {0, 0},
{main_keys_key_array_39, 5}, {main_keys_key_array_75, 8},
{main_keys_key_array_40, 5}, {main_keys_key_array_76, 3},
{main_keys_key_array_41, 6}, {main_keys_key_array_77, 12},
{main_keys_key_array_78, 3},
{0, 0}, {0, 0},
{main_keys_key_array_43, 7}, {main_keys_key_array_80, 8},
{main_keys_key_array_44, 3}, {main_keys_key_array_81, 7},
{main_keys_key_array_45, 12}, {main_keys_key_array_82, 8},
{main_keys_key_array_46, 7}, {main_keys_key_array_83, 7},
{main_keys_key_array_47, 6},
{0, 0},
{0, 0},
{main_keys_key_array_50, 5},
{0, 0},
{main_keys_key_array_52, 5},
{main_keys_key_array_53, 16},
{0, 0},
{main_keys_key_array_55, 6},
{0, 0},
{0, 0},
{main_keys_key_array_58, 4},
{main_keys_key_array_59, 10},
{main_keys_key_array_60, 4},
{0, 0},
{0, 0},
{main_keys_key_array_63, 8},
{main_keys_key_array_64, 13},
{0, 0},
{main_keys_key_array_66, 8},
{0, 0},
{0, 0},
{main_keys_key_array_69, 6},
{0, 0},
{0, 0},
{main_keys_key_array_72, 4},
{main_keys_key_array_73, 6},
{main_keys_key_array_74, 6},
{main_keys_key_array_75, 5},
{main_keys_key_array_76, 5},
{0, 0},
{0, 0},
{main_keys_key_array_79, 6},
{0, 0},
{0, 0},
{0, 0},
{main_keys_key_array_83, 3},
{main_keys_key_array_84, 6}, {main_keys_key_array_84, 6},
{main_keys_key_array_85, 4}, {0, 0},
{main_keys_key_array_86, 9}, {main_keys_key_array_86, 2},
{main_keys_key_array_87, 6},
{0, 0},
{main_keys_key_array_89, 9},
{main_keys_key_array_90, 8},
{0, 0},
{main_keys_key_array_92, 4},
{0, 0},
{main_keys_key_array_94, 10},
{main_keys_key_array_95, 5},
{0, 0},
{0, 0},
{main_keys_key_array_98, 6},
{0, 0},
{main_keys_key_array_100, 4},
{0, 0},
{main_keys_key_array_102, 6},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{main_keys_key_array_90, 4},
{0, 0}, {0, 0},
{main_keys_key_array_92, 2}, {0, 0},
{main_keys_key_array_108, 6},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{main_keys_key_array_96, 8}, {main_keys_key_array_112, 8},
{main_keys_key_array_97, 8}, {main_keys_key_array_113, 2},
{main_keys_key_array_114, 13},
{0, 0}, {0, 0},
{main_keys_key_array_116, 4},
{0, 0}, {0, 0},
{main_keys_key_array_100, 8}, {main_keys_key_array_118, 3},
{main_keys_key_array_101, 3}, {main_keys_key_array_119, 4},
{main_keys_key_array_102, 7}, {main_keys_key_array_120, 4},
{0, 0},
{0, 0},
{main_keys_key_array_105, 4},
{main_keys_key_array_106, 11},
{main_keys_key_array_107, 4},
{main_keys_key_array_108, 9},
{0, 0},
{0, 0},
{main_keys_key_array_111, 5},
{main_keys_key_array_112, 7},
{main_keys_key_array_113, 5},
{0, 0},
{main_keys_key_array_115, 5},
{main_keys_key_array_116, 7},
{main_keys_key_array_117, 4},
{main_keys_key_array_118, 8},
{0, 0},
{0, 0},
{main_keys_key_array_121, 12},
}; };
Lexeme_Table_Value main_keys_value_array[122] = { Lexeme_Table_Value main_keys_value_array[121] = {
{4, TokenCppKind_Catch},
{0, 0},
{4, TokenCppKind_Union},
{0, 0},
{0, 0},
{0, 0},
{4, TokenCppKind_Using}, {4, TokenCppKind_Using},
{4, TokenCppKind_Virtual},
{4, TokenCppKind_Float},
{0, 0},
{0, 0},
{0, 0},
{0, 0}, {0, 0},
{4, TokenCppKind_Static}, {4, TokenCppKind_Static},
{4, TokenCppKind_Inline},
{8, TokenCppKind_LiteralTrue},
{4, TokenCppKind_DynamicCast},
{0, 0}, {0, 0},
{4, TokenCppKind_Volatile},
{4, TokenCppKind_If},
{0, 0},
{4, TokenCppKind_Struct},
{4, TokenCppKind_Enum},
{0, 0},
{4, TokenCppKind_Try},
{0, 0},
{0, 0},
{4, TokenCppKind_Register},
{0, 0},
{4, TokenCppKind_Explicit},
{0, 0},
{4, TokenCppKind_NoExcept},
{0, 0},
{0, 0},
{0, 0},
{4, TokenCppKind_Friend},
{4, TokenCppKind_NullPtr},
{4, TokenCppKind_Virtual},
{4, TokenCppKind_Asm},
{0, 0},
{0, 0},
{4, TokenCppKind_Signed},
{0, 0}, {0, 0},
{4, TokenCppKind_SizeOf}, {4, TokenCppKind_SizeOf},
{4, TokenCppKind_Delete},
{0, 0}, {0, 0},
{4, TokenCppKind_Template},
{4, TokenCppKind_This},
{4, TokenCppKind_AlignAs},
{0, 0}, {0, 0},
{4, TokenCppKind_Bool}, {4, TokenCppKind_While},
{0, 0}, {0, 0},
{4, TokenCppKind_Typename},
{0, 0}, {0, 0},
{4, TokenCppKind_Switch},
{4, TokenCppKind_Explicit},
{0, 0}, {0, 0},
{0, 0}, {4, TokenCppKind_StaticCast},
{0, 0},
{4, TokenCppKind_Const},
{4, TokenCppKind_Union},
{4, TokenCppKind_TypeID},
{0, 0},
{4, TokenCppKind_Default},
{4, TokenCppKind_For},
{4, TokenCppKind_DynamicCast},
{4, TokenCppKind_Private},
{4, TokenCppKind_Inline},
{0, 0},
{0, 0}, {0, 0},
{4, TokenCppKind_Break}, {4, TokenCppKind_Break},
{0, 0}, {4, TokenCppKind_Try},
{4, TokenCppKind_Class},
{4, TokenCppKind_ReinterpretCast},
{0, 0},
{4, TokenCppKind_Return},
{0, 0},
{0, 0},
{4, TokenCppKind_Case},
{4, TokenCppKind_ConstCast},
{4, TokenCppKind_Goto},
{0, 0},
{0, 0},
{4, TokenCppKind_Unsigned},
{4, TokenCppKind_StaticAssert},
{0, 0}, {0, 0},
{4, TokenCppKind_DeclType}, {4, TokenCppKind_DeclType},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{4, TokenCppKind_Private},
{0, 0},
{0, 0},
{4, TokenCppKind_Short},
{4, TokenCppKind_TypeID},
{4, TokenCppKind_AlignOf},
{4, TokenCppKind_NoExcept},
{0, 0},
{4, TokenCppKind_ReinterpretCast},
{0, 0},
{4, TokenCppKind_Goto},
{4, TokenCppKind_Protected},
{4, TokenCppKind_Export}, {4, TokenCppKind_Export},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{4, TokenCppKind_Else},
{4, TokenCppKind_Public},
{4, TokenCppKind_Switch},
{8, TokenCppKind_LiteralFalse}, {8, TokenCppKind_LiteralFalse},
{4, TokenCppKind_While},
{0, 0},
{0, 0},
{4, TokenCppKind_Extern}, {4, TokenCppKind_Extern},
{4, TokenCppKind_Class},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{4, TokenCppKind_Signed},
{0, 0},
{0, 0},
{4, TokenCppKind_Public},
{0, 0},
{0, 0}, {0, 0},
{4, TokenCppKind_Int}, {4, TokenCppKind_Int},
{4, TokenCppKind_Double}, {4, TokenCppKind_Default},
{4, TokenCppKind_Void},
{4, TokenCppKind_Namespace},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{4, TokenCppKind_Long},
{0, 0},
{4, TokenCppKind_Do},
{0, 0},
{0, 0},
{0, 0},
{4, TokenCppKind_Continue},
{4, TokenCppKind_Typename},
{0, 0},
{0, 0},
{4, TokenCppKind_Template},
{4, TokenCppKind_New},
{4, TokenCppKind_Typedef},
{0, 0},
{0, 0},
{4, TokenCppKind_Char}, {4, TokenCppKind_Char},
{4, TokenCppKind_StaticCast},
{8, TokenCppKind_LiteralTrue},
{4, TokenCppKind_Protected},
{0, 0},
{0, 0},
{4, TokenCppKind_Float},
{4, TokenCppKind_AlignOf},
{4, TokenCppKind_Catch},
{0, 0},
{4, TokenCppKind_Short},
{4, TokenCppKind_AlignAs},
{4, TokenCppKind_This},
{4, TokenCppKind_Operator},
{0, 0}, {0, 0},
{4, TokenCppKind_Long},
{0, 0}, {0, 0},
{4, TokenCppKind_Continue},
{4, TokenCppKind_For},
{4, TokenCppKind_ThreadLocal}, {4, TokenCppKind_ThreadLocal},
{4, TokenCppKind_New},
{0, 0},
{4, TokenCppKind_Unsigned},
{4, TokenCppKind_NullPtr},
{4, TokenCppKind_Operator},
{4, TokenCppKind_Typedef},
{4, TokenCppKind_Delete},
{0, 0},
{4, TokenCppKind_If},
{4, TokenCppKind_Struct},
{0, 0},
{4, TokenCppKind_Namespace},
{4, TokenCppKind_Register},
{0, 0},
{4, TokenCppKind_Case},
{0, 0},
{4, TokenCppKind_ConstCast},
{4, TokenCppKind_Const},
{0, 0},
{0, 0},
{4, TokenCppKind_Friend},
{0, 0},
{4, TokenCppKind_Else},
{0, 0},
{4, TokenCppKind_Double},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{4, TokenCppKind_Return},
{0, 0},
{0, 0},
{0, 0},
{4, TokenCppKind_Volatile},
{4, TokenCppKind_Do},
{4, TokenCppKind_StaticAssert},
{0, 0},
{4, TokenCppKind_Bool},
{0, 0},
{4, TokenCppKind_Asm},
{4, TokenCppKind_Enum},
{4, TokenCppKind_Void},
}; };
i32 main_keys_slot_count = 122; i32 main_keys_slot_count = 121;
u64 main_keys_seed = 0x1bfce1a813e8b00f; u64 main_keys_seed = 0x32a240442a6e221f;
u64 pp_directives_hash_array[25] = { u64 pp_directives_hash_array[25] = {
0x1e66dcff10289be9,0xb0e642e7a9534e09,0x0000000000000000,0xb0e642e7a222e343, 0xa8f3b0d79807b793,0x808ba552d670368f,0x0000000000000000,0x808ba54dc047d94b,
0x0000000000000000,0xa40d90e358e04d03,0xa40d90e358e04809,0x0000000000000000, 0x3b97f7088cbf95df,0x7fd91d3d238e04c9,0x0000000000000000,0x7fd91d3dac09e067,
0x8b77c0a3db8104fd,0xba3a9be1fff4f771,0x0000000000000000,0x8b77c1833fc2e761, 0x0000000000000000,0x0000000000000000,0xa8f3beab5b880ad3,0x0000000000000000,
0x0000000000000000,0x0000000000000000,0x0000000000000000,0xba3a9be4d613ba69, 0x3b97f7088cbffd3b,0x3b97f7088cdab44b,0x79521904bb682f3f,0x0000000000000000,
0xa40d90e358e46771,0xb0e642e7aa0a539d,0xb0e642e7a3cf3909,0x0000000000000000, 0x0000000000000000,0x7fd91d3d978c615f,0x808ba553ad911e19,0x0000000000000000,
0xb0e642e7ac0c3669,0xba3a9be414c29411,0xba3a9be665e90fdf,0x0000000000000000, 0x808ba54ef8496067,0x7fd91d3d2fe85067,0x7fd91d3d97a21607,0x0000000000000000,
0x0000000000000000, 0x0000000000000000,
}; };
u8 pp_directives_key_array_0[] = {0x69,0x66,}; u8 pp_directives_key_array_0[] = {0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,};
u8 pp_directives_key_array_1[] = {0x69,0x66,0x64,0x65,0x66,}; u8 pp_directives_key_array_1[] = {0x70,0x72,0x61,0x67,0x6d,0x61,};
u8 pp_directives_key_array_3[] = {0x75,0x73,0x69,0x6e,0x67,}; u8 pp_directives_key_array_3[] = {0x64,0x65,0x66,0x69,0x6e,0x65,};
u8 pp_directives_key_array_5[] = {0x65,0x6c,0x73,0x65,}; u8 pp_directives_key_array_4[] = {0x65,0x6c,0x69,0x66,};
u8 pp_directives_key_array_6[] = {0x65,0x6c,0x69,0x66,}; u8 pp_directives_key_array_5[] = {0x75,0x73,0x69,0x6e,0x67,};
u8 pp_directives_key_array_8[] = {0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,}; u8 pp_directives_key_array_7[] = {0x69,0x66,0x64,0x65,0x66,};
u8 pp_directives_key_array_9[] = {0x64,0x65,0x66,0x69,0x6e,0x65,}; u8 pp_directives_key_array_10[] = {0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,};
u8 pp_directives_key_array_11[] = {0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,}; u8 pp_directives_key_array_12[] = {0x65,0x6c,0x73,0x65,};
u8 pp_directives_key_array_15[] = {0x69,0x66,0x6e,0x64,0x65,0x66,}; u8 pp_directives_key_array_13[] = {0x6c,0x69,0x6e,0x65,};
u8 pp_directives_key_array_16[] = {0x6c,0x69,0x6e,0x65,}; u8 pp_directives_key_array_14[] = {0x69,0x66,};
u8 pp_directives_key_array_17[] = {0x65,0x72,0x72,0x6f,0x72,}; u8 pp_directives_key_array_17[] = {0x65,0x6e,0x64,0x69,0x66,};
u8 pp_directives_key_array_18[] = {0x75,0x6e,0x64,0x65,0x66,}; u8 pp_directives_key_array_18[] = {0x69,0x6d,0x70,0x6f,0x72,0x74,};
u8 pp_directives_key_array_20[] = {0x65,0x6e,0x64,0x69,0x66,}; u8 pp_directives_key_array_20[] = {0x69,0x66,0x6e,0x64,0x65,0x66,};
u8 pp_directives_key_array_21[] = {0x69,0x6d,0x70,0x6f,0x72,0x74,}; u8 pp_directives_key_array_21[] = {0x75,0x6e,0x64,0x65,0x66,};
u8 pp_directives_key_array_22[] = {0x70,0x72,0x61,0x67,0x6d,0x61,}; u8 pp_directives_key_array_22[] = {0x65,0x72,0x72,0x6f,0x72,};
String_Const_u8 pp_directives_key_array[25] = { String_Const_u8 pp_directives_key_array[25] = {
{pp_directives_key_array_0, 2}, {pp_directives_key_array_0, 7},
{pp_directives_key_array_1, 5}, {pp_directives_key_array_1, 6},
{0, 0}, {0, 0},
{pp_directives_key_array_3, 5}, {pp_directives_key_array_3, 6},
{pp_directives_key_array_4, 4},
{pp_directives_key_array_5, 5},
{0, 0}, {0, 0},
{pp_directives_key_array_5, 4}, {pp_directives_key_array_7, 5},
{pp_directives_key_array_6, 4},
{0, 0},
{pp_directives_key_array_8, 7},
{pp_directives_key_array_9, 6},
{0, 0},
{pp_directives_key_array_11, 7},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
{pp_directives_key_array_10, 7},
{0, 0},
{pp_directives_key_array_12, 4},
{pp_directives_key_array_13, 4},
{pp_directives_key_array_14, 2},
{0, 0},
{0, 0}, {0, 0},
{pp_directives_key_array_15, 6},
{pp_directives_key_array_16, 4},
{pp_directives_key_array_17, 5}, {pp_directives_key_array_17, 5},
{pp_directives_key_array_18, 5}, {pp_directives_key_array_18, 6},
{0, 0}, {0, 0},
{pp_directives_key_array_20, 5}, {pp_directives_key_array_20, 6},
{pp_directives_key_array_21, 6}, {pp_directives_key_array_21, 5},
{pp_directives_key_array_22, 6}, {pp_directives_key_array_22, 5},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
}; };
Lexeme_Table_Value pp_directives_value_array[25] = { Lexeme_Table_Value pp_directives_value_array[25] = {
{5, TokenCppKind_PPIf}, {5, TokenCppKind_PPInclude},
{5, TokenCppKind_PPIfDef}, {5, TokenCppKind_PPPragma},
{0, 0}, {0, 0},
{5, TokenCppKind_PPDefine},
{5, TokenCppKind_PPElIf},
{5, TokenCppKind_PPUsing}, {5, TokenCppKind_PPUsing},
{0, 0}, {0, 0},
{5, TokenCppKind_PPElse}, {5, TokenCppKind_PPIfDef},
{5, TokenCppKind_PPElIf},
{0, 0}, {0, 0},
{5, TokenCppKind_PPInclude},
{5, TokenCppKind_PPDefine},
{0, 0}, {0, 0},
{5, TokenCppKind_PPVersion}, {5, TokenCppKind_PPVersion},
{0, 0}, {0, 0},
{0, 0}, {5, TokenCppKind_PPElse},
{0, 0},
{5, TokenCppKind_PPIfNDef},
{5, TokenCppKind_PPLine}, {5, TokenCppKind_PPLine},
{5, TokenCppKind_PPError}, {5, TokenCppKind_PPIf},
{5, TokenCppKind_PPUndef}, {0, 0},
{0, 0}, {0, 0},
{5, TokenCppKind_PPEndIf}, {5, TokenCppKind_PPEndIf},
{5, TokenCppKind_PPImport}, {5, TokenCppKind_PPImport},
{5, TokenCppKind_PPPragma}, {0, 0},
{5, TokenCppKind_PPIfNDef},
{5, TokenCppKind_PPUndef},
{5, TokenCppKind_PPError},
{0, 0}, {0, 0},
{0, 0}, {0, 0},
}; };
i32 pp_directives_slot_count = 25; i32 pp_directives_slot_count = 25;
u64 pp_directives_seed = 0x45cb6d9f7937fd0c; u64 pp_directives_seed = 0x8848fb3caaf5d4d5;
u64 pp_keys_hash_array[2] = { u64 pp_keys_hash_array[2] = {
0x129729b49ae65733,0x0000000000000000, 0x0000000000000000,0x72743f437c9f847d,
}; };
u8 pp_keys_key_array_0[] = {0x64,0x65,0x66,0x69,0x6e,0x65,0x64,}; u8 pp_keys_key_array_1[] = {0x64,0x65,0x66,0x69,0x6e,0x65,0x64,};
String_Const_u8 pp_keys_key_array[2] = { String_Const_u8 pp_keys_key_array[2] = {
{pp_keys_key_array_0, 7},
{0, 0}, {0, 0},
{pp_keys_key_array_1, 7},
}; };
Lexeme_Table_Value pp_keys_value_array[2] = { Lexeme_Table_Value pp_keys_value_array[2] = {
{4, TokenCppKind_PPDefined},
{0, 0}, {0, 0},
{4, TokenCppKind_PPDefined},
}; };
i32 pp_keys_slot_count = 2; i32 pp_keys_slot_count = 2;
u64 pp_keys_seed = 0x53c240fe1a473604; u64 pp_keys_seed = 0x71428d58f01a7eed;
struct Lex_State_Cpp{ struct Lex_State_Cpp{
u32 flags_ZF0; u32 flags_ZF0;
u32 flags_KF0; u32 flags_KF0;

View File

@ -0,0 +1,219 @@
function API_Definition*
system_api_construct(Arena *arena){
API_Definition *result = begin_api(arena, "system");
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("get_path"), string_u8_litexpr("String_Const_u8"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "arena");
api_param(arena, call, "System_Path_Code", "path_code");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("get_canonical"), string_u8_litexpr("String_Const_u8"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "arena");
api_param(arena, call, "String_Const_u8", "name");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("get_file_list"), string_u8_litexpr("File_List"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "arena");
api_param(arena, call, "String_Const_u8", "directory");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("quick_file_attributes"), string_u8_litexpr("File_Attributes"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "scratch");
api_param(arena, call, "String_Const_u8", "file_name");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("load_handle"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "scratch");
api_param(arena, call, "char*", "file_name");
api_param(arena, call, "Plat_Handle*", "out");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("load_attributes"), string_u8_litexpr("File_Attributes"), string_u8_litexpr(""));
api_param(arena, call, "Plat_Handle", "handle");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("load_file"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "Plat_Handle", "handle");
api_param(arena, call, "char*", "buffer");
api_param(arena, call, "u32", "size");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("load_close"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "Plat_Handle", "handle");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("save_file"), string_u8_litexpr("File_Attributes"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "scratch");
api_param(arena, call, "char*", "file_name");
api_param(arena, call, "String_Const_u8", "data");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("load_library"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "scratch");
api_param(arena, call, "String_Const_u8", "file_name");
api_param(arena, call, "System_Library*", "out");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("release_library"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "System_Library", "handle");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("get_proc"), string_u8_litexpr("Void_Func*"), string_u8_litexpr(""));
api_param(arena, call, "System_Library", "handle");
api_param(arena, call, "char*", "proc_name");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("now_time"), string_u8_litexpr("u64"), string_u8_litexpr(""));
(void)call;
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("wake_up_timer_create"), string_u8_litexpr("Plat_Handle"), string_u8_litexpr(""));
(void)call;
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("wake_up_timer_release"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "Plat_Handle", "handle");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("wake_up_timer_set"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "Plat_Handle", "handle");
api_param(arena, call, "u32", "time_milliseconds");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("signal_step"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "u32", "code");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("sleep"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "u64", "microseconds");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("post_clipboard"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "String_Const_u8", "str");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("cli_call"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "scratch");
api_param(arena, call, "char*", "path");
api_param(arena, call, "char*", "script");
api_param(arena, call, "CLI_Handles*", "cli_out");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("cli_begin_update"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "CLI_Handles*", "cli");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("cli_update_step"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "CLI_Handles*", "cli");
api_param(arena, call, "char*", "dest");
api_param(arena, call, "u32", "max");
api_param(arena, call, "u32*", "amount");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("cli_end_update"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "CLI_Handles*", "cli");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("open_color_picker"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "Color_Picker*", "picker");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("get_screen_scale_factor"), string_u8_litexpr("f32"), string_u8_litexpr(""));
(void)call;
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("thread_launch"), string_u8_litexpr("System_Thread"), string_u8_litexpr(""));
api_param(arena, call, "Thread_Function*", "proc");
api_param(arena, call, "void*", "ptr");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("thread_join"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "System_Thread", "thread");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("thread_free"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "System_Thread", "thread");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("thread_get_id"), string_u8_litexpr("i32"), string_u8_litexpr(""));
(void)call;
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("acquire_global_frame_mutex"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "Thread_Context*", "tctx");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("release_global_frame_mutex"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "Thread_Context*", "tctx");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("mutex_make"), string_u8_litexpr("System_Mutex"), string_u8_litexpr(""));
(void)call;
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("mutex_acquire"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "System_Mutex", "mutex");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("mutex_release"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "System_Mutex", "mutex");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("mutex_free"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "System_Mutex", "mutex");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("condition_variable_make"), string_u8_litexpr("System_Condition_Variable"), string_u8_litexpr(""));
(void)call;
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("condition_variable_wait"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "System_Condition_Variable", "cv");
api_param(arena, call, "System_Mutex", "mutex");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("condition_variable_signal"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "System_Condition_Variable", "cv");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("condition_variable_free"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "System_Condition_Variable", "cv");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("memory_allocate"), string_u8_litexpr("void*"), string_u8_litexpr(""));
api_param(arena, call, "umem", "size");
api_param(arena, call, "String_Const_u8", "location");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("memory_set_protection"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "void*", "ptr");
api_param(arena, call, "umem", "size");
api_param(arena, call, "u32", "flags");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("memory_free"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "void*", "ptr");
api_param(arena, call, "umem", "size");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("memory_annotation"), string_u8_litexpr("Memory_Annotation"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "arena");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("show_mouse_cursor"), string_u8_litexpr("void"), string_u8_litexpr(""));
api_param(arena, call, "i32", "show");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("set_fullscreen"), string_u8_litexpr("b32"), string_u8_litexpr(""));
api_param(arena, call, "b32", "full_screen");
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("is_fullscreen"), string_u8_litexpr("b32"), string_u8_litexpr(""));
(void)call;
}
{
API_Call *call = api_call_with_location(arena, result, string_u8_litexpr("get_keyboard_modifiers"), string_u8_litexpr("Input_Modifier_Set"), string_u8_litexpr(""));
api_param(arena, call, "Arena*", "arena");
}
return(result);
}

View File

@ -88,8 +88,7 @@ new_doc_page_normal_title(Arena *arena, Doc_Cluster *cluster, char *title, char
function Doc_Page* function Doc_Page*
new_doc_page_function(Arena *arena, Doc_Cluster *cluster, char *name){ new_doc_page_function(Arena *arena, Doc_Cluster *cluster, char *name){
String_Const_u8 full_name = push_u8_stringf(arena, "%s function", name); return(new_doc_page_normal_title(arena, cluster, name, name));
return(new_doc_page_normal_title(arena, cluster, name, (char*)full_name.str));
} }
function Doc_Page* function Doc_Page*

View File

@ -1213,6 +1213,24 @@ doc_custom_api__global(Arena *arena, API_Definition *api_def, Doc_Cluster *clust
if (begin_doc_call(arena, cluster, api_def, "get_core_profile_list", &func)){ if (begin_doc_call(arena, cluster, api_def, "get_core_profile_list", &func)){
doc_function_brief(arena, &func, "Potentially going to be deprecated - do not rely on this call!"); doc_function_brief(arena, &func, "Potentially going to be deprecated - do not rely on this call!");
} }
////////////////////////////////
if (begin_doc_call(arena, cluster, api_def, "get_custom_layer_boundary_docs", &func)){
doc_function_brief(arena, &func, "Construct the documentation content for the custom layer boundary API");
// params
Doc_Block *params = doc_function_begin_params(arena, &func);
doc_custom_app_ptr(arena, &func);
doc_function_param(arena, &func, "arena");
doc_text(arena, params, "the arena on which the documentation content will be allocated");
// return
Doc_Block *ret = doc_function_return(arena, &func);
doc_text(arena, ret, "a pointer to the newly constructed documentation content");
}
} }
// BOTTOM // BOTTOM

View File

@ -529,6 +529,7 @@ doc_custom_api__view(Arena *arena, API_Definition *api_def, Doc_Cluster *cluster
Doc_Block *ret = doc_function_return(arena, &func); Doc_Block *ret = doc_function_return(arena, &func);
doc_text(arena, ret, "non-zero if the panel exists and is a split panel, zero otherwise"); doc_text(arena, ret, "non-zero if the panel exists and is a split panel, zero otherwise");
// TODO(allen): write this allen!
// details // details
Doc_Block *det = doc_function_details(arena, &func); Doc_Block *det = doc_function_details(arena, &func);
doc_text(arena, det, ""); doc_text(arena, det, "");