From 53aed3fadf1f7ad66dea9a8a0b46bf42eda921be Mon Sep 17 00:00:00 2001 From: hachem Date: Mon, 31 Aug 2026 16:56:40 +0200 Subject: feat: add memory loads via ^reg --- src/parser/ast.h | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src/parser/ast.h') diff --git a/src/parser/ast.h b/src/parser/ast.h index a98f43b..fc7af2b 100644 --- a/src/parser/ast.h +++ b/src/parser/ast.h @@ -24,11 +24,21 @@ struct Param struct Token reg; }; +enum StoreSize +{ + STORE_SIZE_NONE, + STORE_SIZE_BYTE, + STORE_SIZE_WORD, + STORE_SIZE_DWORD, + STORE_SIZE_QWORD, +}; + enum ExprKind { EXPR_PRIMARY, EXPR_BINARY, EXPR_MEMBER, + EXPR_DEREF, }; struct PrimaryExpr @@ -49,6 +59,12 @@ struct MemberExpr struct Token member; }; +struct DerefExpr +{ + enum StoreSize size; + struct Expr* address; +}; + struct Expr { enum ExprKind kind; @@ -57,18 +73,10 @@ struct Expr struct PrimaryExpr primary; struct BinaryExpr binary; struct MemberExpr member; + struct DerefExpr deref; }; }; -enum StoreSize -{ - STORE_SIZE_NONE, - STORE_SIZE_BYTE, - STORE_SIZE_WORD, - STORE_SIZE_DWORD, - STORE_SIZE_QWORD, -}; - enum StatementKind { STATEMENT_ASSIGN, -- cgit v1.3