diff --git a/tools/widl/parser.y b/tools/widl/parser.y index 4fc19fb521d..a5561080046 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -216,7 +216,7 @@ static type_t std_uhyper = { "MIDL_uhyper" }; %type libraryhdr %left ',' -%right COND +%right '?' ':' %left '|' %left '&' %left '-' '+' @@ -480,7 +480,7 @@ m_expr: { $$ = make_expr(EXPR_VOID); } expr: aNUM { $$ = make_exprl(EXPR_NUM, $1); } | aHEXNUM { $$ = make_exprl(EXPR_HEXNUM, $1); } | aIDENTIFIER { $$ = make_exprs(EXPR_IDENTIFIER, $1); } - | expr '?' expr ':' expr %prec COND { $$ = make_expr3(EXPR_COND, $1, $3, $5); } + | expr '?' expr ':' expr { $$ = make_expr3(EXPR_COND, $1, $3, $5); } | expr '|' expr { $$ = make_expr2(EXPR_OR , $1, $3); } | expr '&' expr { $$ = make_expr2(EXPR_AND, $1, $3); } | expr '+' expr { $$ = make_expr2(EXPR_ADD, $1, $3); }