This commit is contained in:
Edward R. Gonzalez 2025-05-06 09:29:21 -04:00
parent f87a098fe4
commit 62beed20a9

View File

@ -1074,7 +1074,7 @@ Str8 fmt_vtoken_slice(SliceMem buffer, SliceFmtTokEntry tokens, Str8 fmt_templat
// Sync cursor format to after the processed token // Sync cursor format to after the processed token
cursor_fmt = cursor_potential_token + potential_token_length + 1; cursor_fmt = cursor_potential_token + potential_token_length + 1;
curr_code = * cursor_fmt; curr_code = * cursor_fmt;
left_fmt -= potential_token_length + 2; // The 2 here ar ethe '<' & '>' delimiters being omitted. left_fmt -= potential_token_length + 2; // The 2 here are the '<' & '>' delimiters being omitted.
continue; continue;
} }
@ -1116,16 +1116,27 @@ Str8 fmt__vtoken(SliceMem backing, Str8 fmt_template, SliceStr8* tokens)
return result; return result;
} }
#define fmt_vtoken(backing, fmt_template, tokens) fmt__vtoken(backing, fmt_template, &(SliceStr8){.ptr = tokens, .len = size_of(tokens) / size_of(Str8) }) // Expected to take a Str8 array of entries formatted as a 2D array of key-value pairs (Str8[length][2])
// The array will be tracked using a SliceStr8 structure.
#define fmt_vtoken(backing, fmt_template, tokens) fmt__vtoken(backing, fmt_template, &(SliceStr8){.ptr = cast(Str8*, tokens), .len = size_of(tokens) / size_of(Str8) })
/*
Define a mapping array:
Str8 mappings [][2] = {
fmt_vtoken_entry("key", "value"),
^^ Add entries as above ^^
}
*/
#define fmt_vtoken_entry(key, value) { lit(key), lit(value) }
#ifdef DEMO__WATL_DUMP_V1 #ifdef DEMO__WATL_DUMP_V1
int main() int main()
{ {
SliceMem scratch = slicemem_alloc(MEGABYTES(64)); SliceMem scratch = slicemem_alloc(MEGABYTES(64));
Str8 mappings [] = { Str8 subst_table [][2] = {
lit("maybe_sub"), lit("IT SUBST!!!!"), fmt_vtoken_entry("maybe_sub", "IT SUBST!!!"),
}; };
Str8 test_str = fmt_vtoken(scratch, lit("Will this work? <maybe_sub>"), mappings); Str8 test_str = fmt_vtoken(scratch, lit("Will this work? <maybe_sub>"), subst_table);
return 0; return 0;
} }
#endif #endif