mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-19 23:16:48 +00:00
new expr resolution eval visualization stage; use to implement array & slice view rules
This commit is contained in:
@@ -662,6 +662,15 @@ e_expr_ref(Arena *arena, E_Expr *ref)
|
||||
return expr;
|
||||
}
|
||||
|
||||
internal E_Expr *
|
||||
e_expr_ref_addr(Arena *arena, E_Expr *rhs)
|
||||
{
|
||||
E_Expr *expr = e_push_expr(arena, E_ExprKind_Address, 0);
|
||||
E_Expr *rhs_ref = e_expr_ref(arena, rhs);
|
||||
e_expr_push_child(expr, rhs_ref);
|
||||
return expr;
|
||||
}
|
||||
|
||||
internal E_Expr *
|
||||
e_expr_ref_member_access(Arena *arena, E_Expr *lhs, String8 member_name)
|
||||
{
|
||||
@@ -695,6 +704,18 @@ e_expr_ref_deref(Arena *arena, E_Expr *rhs)
|
||||
return root;
|
||||
}
|
||||
|
||||
internal E_Expr *
|
||||
e_expr_ref_cast(Arena *arena, E_TypeKey type_key, E_Expr *rhs)
|
||||
{
|
||||
E_Expr *root = e_push_expr(arena, E_ExprKind_Cast, 0);
|
||||
E_Expr *lhs = e_push_expr(arena, E_ExprKind_TypeIdent, 0);
|
||||
lhs->type_key = type_key;
|
||||
E_Expr *rhs_ref = e_expr_ref(arena, rhs);
|
||||
e_expr_push_child(root, lhs);
|
||||
e_expr_push_child(root, rhs_ref);
|
||||
return root;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Expression Tree -> String Conversions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user