meta-expr type operators, for meta-evaluations, to annotate source expression strings of evaluations

This commit is contained in:
Ryan Fleury
2025-04-14 15:21:46 -07:00
parent 8e13f8162a
commit db381db85d
8 changed files with 85 additions and 8 deletions
@@ -1657,6 +1657,38 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string)
}
}break;
//////////////////////////
//- rjf: meta-expression tags
//
case E_TypeKind_MetaExpr:
{
if(params->flags & EV_StringFlag_ReadOnlyDisplayRules)
{
switch(task_idx)
{
default:{}break;
case 0:
{
need_pop = 0;
need_new_task = 1;
new_task.params = *params;
new_task.eval = eval;
new_task.eval.irtree.type_key = e_type_direct_from_key(eval.irtree.type_key);
}break;
case 1:
{
E_Type *type = e_type_from_key__cached(type_key);
*out_string = push_str8f(arena, " (%S)", type->name);
}break;
}
}
else
{
E_Type *type = e_type_from_key__cached(type_key);
*out_string = type->name;
}
}break;
//////////////////////////
//- rjf: modifiers
//