summaryrefslogtreecommitdiff
path: root/ast.h
diff options
context:
space:
mode:
Diffstat (limited to 'ast.h')
-rw-r--r--ast.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/ast.h b/ast.h
index 4b8f0ee..a2d576b 100644
--- a/ast.h
+++ b/ast.h
@@ -136,6 +136,12 @@ struct return_node {
struct expr_node* ret_val; /* null to return void */
};
+struct if_node {
+ struct expr_node* cond;
+ struct stmt_node* true_branch;
+ struct stmt_node* false_branch;
+};
+
struct stmt_node {
enum {
STMT_EMPTY,
@@ -143,12 +149,14 @@ struct stmt_node {
STMT_VAR_DECL,
STMT_RETURN,
STMT_GROUP,
+ STMT_IF,
} type;
union {
struct expr_node expr;
struct var_decl_node var_decl;
struct return_node return_;
struct group_node group;
+ struct if_node if_;
} inner;
struct stmt_node* next;