eval/eval-viz: pull out rules for mapping exprs/irtrees -> lookup/expansion rules; use this path in the single-line value string generator; eliminate old non-view-rulified string generation paths

This commit is contained in:
Ryan Fleury
2025-02-04 13:20:25 -08:00
parent afd113adcc
commit 90c86dc812
7 changed files with 455 additions and 348 deletions
@@ -128,6 +128,16 @@ struct EV_ViewRuleInfoTable
U64 slots_count;
};
////////////////////////////////
//~ rjf: Expansion Rule Types
typedef struct EV_ExpandRuleTagPair EV_ExpandRuleTagPair;
struct EV_ExpandRuleTagPair
{
EV_ViewRuleInfo *rule;
E_Expr *tag;
};
////////////////////////////////
//~ rjf: Blocks
@@ -368,4 +378,9 @@ internal String8 ev_string_from_hresult_code(U32 code);
internal String8 ev_string_from_simple_typed_eval(Arena *arena, EV_StringFlags flags, U32 radix, U32 min_digits, E_Eval eval);
internal String8 ev_escaped_from_raw_string(Arena *arena, String8 raw);
////////////////////////////////
//~ rjf: Expression & IR-Tree => Expand Rule
internal EV_ExpandRuleTagPair ev_expand_rule_tag_pair_from_expr_irtree(E_Expr *expr, E_IRTreeAndType *irtree);
#endif // EVAL_VISUALIZATION_CORE_H