From: Peter Johnson Date: Thu, 3 Oct 2002 07:48:12 +0000 (-0000) Subject: EQU's should not affect local label mechanism. X-Git-Tag: v0.2.0~126 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79326b3d2943bec2bf3ca853651b6903bf49865d;p=yasm EQU's should not affect local label mechanism. svn path=/trunk/yasm/; revision=726 --- diff --git a/modules/parsers/nasm/nasm-bison.y b/modules/parsers/nasm/nasm-bison.y index d29a611a..d2cfd55d 100644 --- a/modules/parsers/nasm/nasm-bison.y +++ b/modules/parsers/nasm/nasm-bison.y @@ -107,7 +107,7 @@ static bytecode *nasm_parser_temp_bc; %type memaddr %type dvexpr expr direxpr %type explabel -%type label_id +%type label_id label_id_equ %type dataval %type datavals %type directive_valparams @@ -164,7 +164,7 @@ lineexp: exp | label { $$ = (bytecode *)NULL; } | label exp { $$ = $2; } | label TIMES expr exp { $$ = $4; bc_set_multiple($$, $3); } - | label_id EQU expr { + | label_id_equ EQU expr { symrec_define_equ($1, $3); xfree($1); $$ = (bytecode *)NULL; @@ -240,6 +240,11 @@ label_id: ID { | LOCAL_ID ; +label_id_equ: ID + | SPECIAL_ID + | LOCAL_ID +; + /* directives */ directive: DIRECTIVE_NAME directive_val { xfree($1); diff --git a/src/parsers/nasm/nasm-bison.y b/src/parsers/nasm/nasm-bison.y index d29a611a..d2cfd55d 100644 --- a/src/parsers/nasm/nasm-bison.y +++ b/src/parsers/nasm/nasm-bison.y @@ -107,7 +107,7 @@ static bytecode *nasm_parser_temp_bc; %type memaddr %type dvexpr expr direxpr %type explabel -%type label_id +%type label_id label_id_equ %type dataval %type datavals %type directive_valparams @@ -164,7 +164,7 @@ lineexp: exp | label { $$ = (bytecode *)NULL; } | label exp { $$ = $2; } | label TIMES expr exp { $$ = $4; bc_set_multiple($$, $3); } - | label_id EQU expr { + | label_id_equ EQU expr { symrec_define_equ($1, $3); xfree($1); $$ = (bytecode *)NULL; @@ -240,6 +240,11 @@ label_id: ID { | LOCAL_ID ; +label_id_equ: ID + | SPECIAL_ID + | LOCAL_ID +; + /* directives */ directive: DIRECTIVE_NAME directive_val { xfree($1);