checkpoint on eval2

This commit is contained in:
Ryan Fleury
2026-06-16 17:56:48 -07:00
parent b8bad9a82e
commit 11b3f25842
3 changed files with 1218 additions and 1168 deletions
+1186 -1167
View File
File diff suppressed because it is too large Load Diff
+24 -1
View File
@@ -205,6 +205,20 @@ struct E2_Val
typedef U64 E2_SpaceID; typedef U64 E2_SpaceID;
typedef struct E2_DbgInfo E2_DbgInfo;
struct E2_DbgInfo
{
DI_Key dbgi_key;
RDI_Parsed *rdi;
};
typedef struct E2_Assets E2_Assets;
struct E2_Assets
{
U32 dbg_infos_count;
E2_DbgInfo *dbg_infos;
};
//////////////////////////////// ////////////////////////////////
//~ rjf: Evaluation Contexts //~ rjf: Evaluation Contexts
@@ -279,6 +293,13 @@ struct E2_Expr
E2_Val val; E2_Val val;
}; };
typedef struct E2_ExprNode E2_ExprNode;
struct E2_ExprNode
{
E2_ExprNode *next;
E2_Expr *v;
};
typedef struct E2_ExprMapNode E2_ExprMapNode; typedef struct E2_ExprMapNode E2_ExprMapNode;
struct E2_ExprMapNode struct E2_ExprMapNode
{ {
@@ -299,6 +320,8 @@ struct E2_ParseTask
{ {
E2_ParseTask *next; E2_ParseTask *next;
E2_Expr *parent; E2_Expr *parent;
E2_ExprNode *first_child;
E2_ExprNode *last_child;
U64 child_count; U64 child_count;
U64 child_count_target; U64 child_count_target;
S64 max_precedence; S64 max_precedence;
@@ -409,7 +432,7 @@ internal E2_Msg *e2_msg(Arena *arena, E2_MsgList *msgs, Rng1U64 src_range, Strin
internal E2_Msg *e2_msgf(Arena *arena, E2_MsgList *msgs, Rng1U64 src_range, char *fmt, ...); internal E2_Msg *e2_msgf(Arena *arena, E2_MsgList *msgs, Rng1U64 src_range, char *fmt, ...);
//////////////////////////////// ////////////////////////////////
//~ rjf: Types //~ rjf: Type Keys
internal E2_TypeKey e2_type_key_basic(E2_TypeKind kind); internal E2_TypeKey e2_type_key_basic(E2_TypeKind kind);
+8
View File
@@ -13,14 +13,22 @@
//- rjf: [h] //- rjf: [h]
#include "base/base_inc.h" #include "base/base_inc.h"
#include "x64/x64.h" #include "x64/x64.h"
#include "http/http_inc.h"
#include "artifact_cache/artifact_cache.h"
#include "symbol_server/symbol_server_inc.h"
#include "rdi/rdi_local.h" #include "rdi/rdi_local.h"
#include "dbg_info/dbg_info.h"
#include "arch/arch_inc.h" #include "arch/arch_inc.h"
#include "eval2/eval2.h" #include "eval2/eval2.h"
//- rjf: [c] //- rjf: [c]
#include "base/base_inc.c" #include "base/base_inc.c"
#include "x64/x64.c" #include "x64/x64.c"
#include "http/http_inc.c"
#include "artifact_cache/artifact_cache.c"
#include "symbol_server/symbol_server_inc.c"
#include "rdi/rdi_local.c" #include "rdi/rdi_local.c"
#include "dbg_info/dbg_info.c"
#include "arch/arch_inc.c" #include "arch/arch_inc.c"
#include "eval2/eval2.c" #include "eval2/eval2.c"