diff --git a/object.c b/object.c index ad4c1d5..85e3dff 100644 --- a/object.c +++ b/object.c @@ -78,8 +78,6 @@ typedef enum { } type_t; #define NTYPES (Map + 1) -#define TYPESIG(L, R) L*NTYPES+R -#define CASE(L, R) case TYPESIG(L, R) union object; typedef union object *oop; diff --git a/parse.leg b/parse.leg index c4f7061..78b0412 100644 --- a/parse.leg +++ b/parse.leg @@ -989,6 +989,9 @@ void runtimeError(char *msg) exit(1); } +#define TYPESIG(L, R) L*NTYPES+R +#define CASE(L, R) case TYPESIG(L, R) + oop addOperation(oop ast, oop lhs, oop rhs) { switch (TYPESIG(getType(lhs), getType(rhs))) { @@ -1020,6 +1023,9 @@ oop mulOperation(oop ast, oop lhs, oop rhs) assert(0); } +#undef TYPESIG +#undef CASE + oop expandUnquotes(oop scope, oop obj) { obj = clone(obj);