/* @TYPES@ */
-%type <bc> line exp instr instrbase
+%type <bc> line lineexp exp instr instrbase
%type <int_info> fpureg reg32 reg16 reg8 segreg
%type <ea> mem memaddr memexp memfar
;
line: '\n' { $$ = (bytecode *)NULL; }
- | exp '\n'
- | label { $$ = (bytecode *)NULL; }
- | label exp { $$ = $2; }
- | label_id EQU expr {
- symrec_define_equ($1, $3);
- $$ = (bytecode *)NULL;
- }
+ | lineexp '\n'
| directive '\n' { $$ = (bytecode *)NULL; }
| error '\n' {
Error(_("label or instruction expected at start of line"));
}
;
+lineexp: exp
+ | label { $$ = (bytecode *)NULL; }
+ | label exp { $$ = $2; }
+ | label_id EQU expr {
+ symrec_define_equ($1, $3);
+ $$ = (bytecode *)NULL;
+ }
+;
+
exp: instr
| DECLARE_DATA datavals { $$ = bytecode_new_data(&$2, $1); }
| RESERVE_SPACE expr { $$ = bytecode_new_reserve($2, $1); }
/* @TYPES@ */
-%type <bc> line exp instr instrbase
+%type <bc> line lineexp exp instr instrbase
%type <int_info> fpureg reg32 reg16 reg8 segreg
%type <ea> mem memaddr memexp memfar
;
line: '\n' { $$ = (bytecode *)NULL; }
- | exp '\n'
- | label { $$ = (bytecode *)NULL; }
- | label exp { $$ = $2; }
- | label_id EQU expr {
- symrec_define_equ($1, $3);
- $$ = (bytecode *)NULL;
- }
+ | lineexp '\n'
| directive '\n' { $$ = (bytecode *)NULL; }
| error '\n' {
Error(_("label or instruction expected at start of line"));
}
;
+lineexp: exp
+ | label { $$ = (bytecode *)NULL; }
+ | label exp { $$ = $2; }
+ | label_id EQU expr {
+ symrec_define_equ($1, $3);
+ $$ = (bytecode *)NULL;
+ }
+;
+
exp: instr
| DECLARE_DATA datavals { $$ = bytecode_new_data(&$2, $1); }
| RESERVE_SPACE expr { $$ = bytecode_new_reserve($2, $1); }
/* @TYPES@ */
-%type <bc> line exp instr instrbase
+%type <bc> line lineexp exp instr instrbase
%type <int_info> fpureg reg32 reg16 reg8 segreg
%type <ea> mem memaddr memexp memfar
;
line: '\n' { $$ = (bytecode *)NULL; }
- | exp '\n'
- | label { $$ = (bytecode *)NULL; }
- | label exp { $$ = $2; }
- | label_id EQU expr {
- symrec_define_equ($1, $3);
- $$ = (bytecode *)NULL;
- }
+ | lineexp '\n'
| directive '\n' { $$ = (bytecode *)NULL; }
| error '\n' {
Error(_("label or instruction expected at start of line"));
}
;
+lineexp: exp
+ | label { $$ = (bytecode *)NULL; }
+ | label exp { $$ = $2; }
+ | label_id EQU expr {
+ symrec_define_equ($1, $3);
+ $$ = (bytecode *)NULL;
+ }
+;
+
exp: instr
| DECLARE_DATA datavals { $$ = bytecode_new_data(&$2, $1); }
| RESERVE_SPACE expr { $$ = bytecode_new_reserve($2, $1); }
/* @TYPES@ */
-%type <bc> line exp instr instrbase
+%type <bc> line lineexp exp instr instrbase
%type <int_info> fpureg reg32 reg16 reg8 segreg
%type <ea> mem memaddr memexp memfar
;
line: '\n' { $$ = (bytecode *)NULL; }
- | exp '\n'
- | label { $$ = (bytecode *)NULL; }
- | label exp { $$ = $2; }
- | label_id EQU expr {
- symrec_define_equ($1, $3);
- $$ = (bytecode *)NULL;
- }
+ | lineexp '\n'
| directive '\n' { $$ = (bytecode *)NULL; }
| error '\n' {
Error(_("label or instruction expected at start of line"));
}
;
+lineexp: exp
+ | label { $$ = (bytecode *)NULL; }
+ | label exp { $$ = $2; }
+ | label_id EQU expr {
+ symrec_define_equ($1, $3);
+ $$ = (bytecode *)NULL;
+ }
+;
+
exp: instr
| DECLARE_DATA datavals { $$ = bytecode_new_data(&$2, $1); }
| RESERVE_SPACE expr { $$ = bytecode_new_reserve($2, $1); }