aboutsummaryrefslogtreecommitdiff
path: root/src/parser/ast.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/ast.h')
-rw-r--r--src/parser/ast.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/parser/ast.h b/src/parser/ast.h
index 75d0bdd..288bddf 100644
--- a/src/parser/ast.h
+++ b/src/parser/ast.h
@@ -58,6 +58,7 @@ struct Param
enum ExprKind
{
EXPR_PRIMARY,
+ EXPR_UNARY,
EXPR_BINARY,
EXPR_MEMBER,
EXPR_DEREF,
@@ -68,6 +69,12 @@ struct PrimaryExpr
struct Token token;
};
+struct UnaryExpr
+{
+ struct Token op;
+ struct Expr* operand;
+};
+
struct BinaryExpr
{
struct Expr* left;
@@ -83,6 +90,7 @@ struct MemberExpr
struct DerefExpr
{
+ bool is_signed;
enum StoreSize size;
struct Expr* address;
};
@@ -93,6 +101,7 @@ struct Expr
union
{
struct PrimaryExpr primary;
+ struct UnaryExpr unary;
struct BinaryExpr binary;
struct MemberExpr member;
struct DerefExpr deref;