widl: lose a few shift/reduce conflicts

Huw D M Davies h.davies1 at physics.ox.ac.uk
Tue Jan 4 09:48:21 CST 2005


        Huw Davies <huw at codeweavers.com>
        Add the precedence of the conditional operator.
-- 
Huw Davies
huw at codeweavers.com
Index: tools/widl/parser.y
===================================================================
RCS file: /home/wine/wine/tools/widl/parser.y,v
retrieving revision 1.27
diff -u -p -r1.27 parser.y
--- tools/widl/parser.y	3 Jan 2005 14:26:17 -0000	1.27
+++ tools/widl/parser.y	4 Jan 2005 15:44:18 -0000
@@ -205,6 +205,7 @@ static type_t std_uhyper = { "MIDL_uhype
 %type <str> libraryhdr
 
 %left ','
+%right COND
 %left '|'
 %left '&'
 %left '-' '+'
@@ -460,7 +461,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		{ $$ = make_expr3(EXPR_COND, $1, $3, $5); }
+	| expr '?' expr ':' expr %prec COND	{ $$ = 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); }



More information about the wine-patches mailing list