diff options
Diffstat (limited to 'src/parser/ast.h')
| -rw-r--r-- | src/parser/ast.h | 9 |
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; |
