add tuples
[ccc.git] / ast.h
diff --git a/ast.h b/ast.h
index 13d3c58..12263a7 100644 (file)
--- a/ast.h
+++ b/ast.h
@@ -14,7 +14,7 @@ enum unop {negate,inverse};
 enum ast_type {
        an_assign, an_binop, an_bool, an_char, an_cons, an_funcall, an_fundecl,
        an_ident, an_if, an_int, an_list, an_nil, an_return, an_stmt_expr,
-       an_unop, an_vardecl, an_while
+       an_tuple, an_unop, an_vardecl, an_while
 };
 struct ast {
        enum ast_type type;
@@ -66,6 +66,10 @@ struct ast {
                //struct { } an_nil;
                struct ast *an_return;
                struct ast *an_stmt_expr;
+               struct {
+                       struct ast *left;
+                       struct ast *right;
+               } an_tuple;
                struct {
                        enum unop op;
                        struct ast *l;
@@ -97,6 +101,7 @@ struct ast *ast_list(struct ast *llist);
 struct ast *ast_nil();
 struct ast *ast_return(struct ast *rtrn);
 struct ast *ast_stmt_expr(struct ast *expr);
+struct ast *ast_tuple(struct ast *left, struct ast *right);
 struct ast *ast_unop(enum unop op, struct ast *l);
 struct ast *ast_vardecl(struct ast *ident, struct ast *l);
 struct ast *ast_while(struct ast *pred, struct ast *body);