%type <ea> memaddr
%type <exp> dvexpr expr direxpr
%type <sym> explabel
-%type <str_val> label_id
+%type <str_val> label_id label_id_equ
%type <data> dataval
%type <datahead> datavals
%type <dir_valparams> directive_valparams
| 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;
| LOCAL_ID
;
+label_id_equ: ID
+ | SPECIAL_ID
+ | LOCAL_ID
+;
+
/* directives */
directive: DIRECTIVE_NAME directive_val {
xfree($1);
%type <ea> memaddr
%type <exp> dvexpr expr direxpr
%type <sym> explabel
-%type <str_val> label_id
+%type <str_val> label_id label_id_equ
%type <data> dataval
%type <datahead> datavals
%type <dir_valparams> directive_valparams
| 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;
| LOCAL_ID
;
+label_id_equ: ID
+ | SPECIAL_ID
+ | LOCAL_ID
+;
+
/* directives */
directive: DIRECTIVE_NAME directive_val {
xfree($1);