]> granicus.if.org Git - yasm/commitdiff
Fix parsing of WRT operator (it takes two operands, not one).
authorPeter Johnson <peter@tortall.net>
Sat, 2 Aug 2003 19:46:22 +0000 (19:46 -0000)
committerPeter Johnson <peter@tortall.net>
Sat, 2 Aug 2003 19:46:22 +0000 (19:46 -0000)
svn path=/trunk/yasm/; revision=1027

modules/parsers/nasm/nasm-bison.y

index 293f0c3e2d5e04aaf13121060060e5a75464fa39..6c8c120a5004b83b109e0c69131aac8753fac60d 100644 (file)
@@ -26,7 +26,7 @@
  */
 %{
 #include <util.h>
-RCSID("$IdPath: yasm/modules/parsers/nasm/nasm-bison.y,v 1.93 2003/05/04 22:15:09 peter Exp $");
+RCSID("$IdPath$");
 
 #define YASM_LIB_INTERNAL
 #define YASM_EXPR_INTERNAL
@@ -441,7 +441,7 @@ dvexpr: INTNUM                  { $$ = p_expr_new_ident(yasm_expr_int($1)); }
     /*| '!' dvexpr         { $$ = p_expr_new_branch(YASM_EXPR_LNOT, $2); }*/
     | '~' dvexpr %prec UNARYOP  { $$ = p_expr_new_branch(YASM_EXPR_NOT, $2); }
     | SEG dvexpr               { $$ = p_expr_new_branch(YASM_EXPR_SEG, $2); }
-    | WRT dvexpr               { $$ = p_expr_new_branch(YASM_EXPR_WRT, $2); }
+    | dvexpr WRT dvexpr            { $$ = p_expr_new_tree($1, YASM_EXPR_WRT, $3); }
     | '(' dvexpr ')'           { $$ = $2; }
 ;
 
@@ -483,7 +483,7 @@ expr: INTNUM                { $$ = p_expr_new_ident(yasm_expr_int($1)); }
     /*| '!' expr       { $$ = p_expr_new_branch(YASM_EXPR_LNOT, $2); }*/
     | '~' expr %prec UNARYOP   { $$ = p_expr_new_branch(YASM_EXPR_NOT, $2); }
     | SEG expr         { $$ = p_expr_new_branch(YASM_EXPR_SEG, $2); }
-    | WRT expr         { $$ = p_expr_new_branch(YASM_EXPR_WRT, $2); }
+    | expr WRT expr    { $$ = p_expr_new_tree($1, YASM_EXPR_WRT, $3); }
     | expr ':' expr    { $$ = p_expr_new_tree($1, YASM_EXPR_SEGOFF, $3); }
     | '(' expr ')'     { $$ = $2; }
 ;