diff --git a/src/macro/MacroBison.yy b/src/macro/MacroBison.yy
index 14f62226fb56c84f3f92eea908e0eb51263a4a5a..c91cfc29eb7e05ef2660d64b6f6f28129aff6b7e 100644
--- a/src/macro/MacroBison.yy
+++ b/src/macro/MacroBison.yy
@@ -74,12 +74,16 @@ class MacroDriver;
 
 %left LOGICAL_OR
 %left LOGICAL_AND
-%left LESS GREATER LESS_EQUAL GREATER_EQUAL EQUAL_EQUAL EXCLAMATION_EQUAL
+%left EQUAL_EQUAL EXCLAMATION_EQUAL
+%left LESS GREATER LESS_EQUAL GREATER_EQUAL
 %nonassoc IN
 %nonassoc COLON
+%left UNION
+%left INTERSECTION
 %left PLUS MINUS
-%left TIMES DIVIDE UNION INTERSECTION POWER
+%left TIMES DIVIDE
 %precedence UMINUS UPLUS EXCLAMATION
+%nonassoc POWER
 %precedence LBRACKET
 
 %type <vector<string>> comma_name