further work on convergence, dead code elimination, and lens (view rule) calls

This commit is contained in:
Ryan Fleury
2025-04-09 16:44:02 -07:00
parent cde079a14d
commit fbe747a8b4
13 changed files with 476 additions and 601 deletions
@@ -147,12 +147,12 @@ struct EV_Block
U64 split_relative_idx;
// rjf: evaluation info
String8 string;
E_Eval eval;
E_TypeExpandInfo type_expand_info;
E_TypeExpandRule *type_expand_rule;
EV_ExpandInfo viz_expand_info;
EV_ExpandRule *viz_expand_rule;
String8 string;
E_Eval eval;
E_TypeExpandInfo type_expand_info;
E_TypeExpandRule *type_expand_rule;
EV_ExpandInfo viz_expand_info;
EV_ExpandRule *viz_expand_rule;
// rjf: expansion info
U64 row_count;
@@ -199,8 +199,8 @@ struct EV_Row
EV_Block *block;
EV_Key key;
U64 visual_size;
String8 string;
E_Eval eval;
String8 string;
E_Eval eval;
};
typedef struct EV_WindowedRowNode EV_WindowedRowNode;
@@ -246,6 +246,7 @@ struct EV_StringParams
U32 radix;
U32 min_digits;
U8 digit_group_separator;
String8 filter;
};
typedef struct EV_StringIterTask EV_StringIterTask;
@@ -256,6 +257,7 @@ struct EV_StringIterTask
E_Eval eval;
U64 idx;
S32 depth;
B32 redirect_array_to_sets_and_structs;
void *user_data;
};
@@ -343,8 +345,8 @@ internal U64 ev_depth_from_block(EV_Block *block);
////////////////////////////////
//~ rjf: Block Coordinate Spaces
internal U64 ev_block_id_from_num(EV_Block *block, U64 num);
internal U64 ev_block_id_from_num(EV_Block *block, U64 num);
internal U64 ev_block_num_from_id(EV_Block *block, U64 id);
internal EV_BlockRangeList ev_block_range_list_from_tree(Arena *arena, EV_BlockTree *block_tree);
internal EV_BlockRange ev_block_range_from_num(EV_BlockRangeList *block_ranges, U64 num);
@@ -376,11 +378,4 @@ internal String8 ev_escaped_from_raw_string(Arena *arena, String8 raw);
internal EV_StringIter *ev_string_iter_begin(Arena *arena, E_Eval eval, EV_StringParams *params);
internal B32 ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string);
////////////////////////////////
//~ rjf: Expression & IR-Tree => Expand Rule
#if 0 // TODO(rjf): @eval
internal EV_ExpandRuleTagPair ev_expand_rule_tag_pair_from_expr_irtree(E_Expr *expr, E_IRTreeAndType *irtree);
#endif
#endif // EVAL_VISUALIZATION_CORE_H