aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/expression.h
diff options
Diffstat (limited to 'expression.h')
-rw-r--r--expression.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/expression.h b/expression.h
index 3b79e0f1..64aa1fc2 100644
--- a/expression.h
+++ b/expression.h
@@ -64,6 +64,7 @@ enum expression_type {
EXPR_FVALUE,
EXPR_SLICE,
EXPR_OFFSETOF,
+ EXPR_GENERIC,
};
@@ -147,6 +148,14 @@ struct asm_operand {
unsigned int is_memory:1;
};
+struct type_expression {
+ struct symbol *type;
+ struct expression *expr;
+ struct type_expression *next;
+};
+
+DECLARE_ALLOCATOR(type_expression);
+
struct expression {
enum expression_type type:8;
unsigned flags:8;
@@ -246,6 +255,13 @@ struct expression {
struct expression *index;
};
};
+ // EXPR_GENERIC
+ struct {
+ struct expression *control;
+ struct expression *def;
+ struct type_expression *map;
+ struct expression *result;
+ };
};
};