aboutsummaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/parse.c b/parse.c
index ebfc39f..e2ffccf 100644
--- a/parse.c
+++ b/parse.c
@@ -15,11 +15,17 @@ enum {
};
Op optab[NOp] = {
-#undef P
-#define P(cf, hi, id) .canfold = cf, .hasid = hi, .idval = id
-#define O(op, t, p) [O##op]={.name = #op, .argcls = t, p},
+#undef F
+#define F(cf, hi, id, co, as, im, ic, lg, cv, pn) \
+ .canfold = cf, \
+ .hasid = hi, .idval = id, \
+ .commutes = co, .assoc = as, \
+ .idemp = im, \
+ .cmpeqwl = ic, .cmplgtewl = lg, .eqval = cv, \
+ .ispinned = pn
+#define O(op, k, flags) [O##op]={.name = #op, .argcls = k, flags},
#include "ops.h"
-#undef P
+#undef F
};
typedef enum {