diff --git a/src/parse/climbing_parse.c b/src/parse/climbing_parse.c index 09af8be..4d75db5 100644 --- a/src/parse/climbing_parse.c +++ b/src/parse/climbing_parse.c @@ -17,9 +17,12 @@ static const struct { const enum { ASSOC_LEFT, ASSOC_RIGHT, ASSOC_NONE } assoc; const enum { OP_INFIX, OP_PREFIX, OP_POSTFIX } fix; } ops[] = { -# define BINOP(Op, Kind, Prio, Assoc, Fix) { #Op, Kind, Prio, Assoc, Fix }, -# define PREOP(Op, Kind, Prio, Assoc, Fix) { #Op, Kind, Prio, Assoc, Fix }, -# define POSTOP(Op, Kind, Prio, Assoc, Fix) { #Op, Kind, Prio, Assoc, Fix }, +# define BINOP(Op, Kind, Prio, Assoc, Fix) \ + [Kind] = { #Op, Kind, Prio, Assoc, Fix }, +# define PREOP(Op, Kind, Prio, Assoc, Fix) \ + [Kind] = { #Op, Kind, Prio, Assoc, Fix }, +# define POSTOP(Op, Kind, Prio, Assoc, Fix) \ + [Kind] = { #Op, Kind, Prio, Assoc, Fix }, #include "operators.inc" };