ref: caddd61f178307b746ee6cb4ed47834ddca68dc3
parent: 29629245a4f764aae6f6f7559c72f943d688e4f5
author: ISSOtm <[email protected]>
date: Thu Mar 26 18:36:40 EDT 2020
Remove "column 1" restriction for local labels Because a local symbol is necessarily a label, the disambiguation is not necessary. This is a first step towards fixing #457.
--- a/src/asm/asmy.y
+++ b/src/asm/asmy.y
@@ -555,7 +555,6 @@
%left NEG /* negation -- unary minus */
%token <tzSym> T_LABEL
-%token <tzSym> T_LOCAL_LABEL
%type <tzSym> scoped_label
%type <tzSym> scoped_label_bare
%token <tzSym> T_ID
@@ -671,12 +670,12 @@
scoped_label_bare : T_LABEL {
warning(WARNING_OBSOLETE, "Non-local labels without a colon are deprecated");
}
- | T_LOCAL_LABEL
+ | T_LOCAL_ID
;
scoped_label : T_LABEL ':' {
strcpy($$, $1);
}
- | T_LOCAL_LABEL ':' {
+ | T_LOCAL_ID ':' {
strcpy($$, $1);
}
;
--- a/src/asm/lexer.c
+++ b/src/asm/lexer.c
@@ -905,12 +905,8 @@
if (type == T_ID && strchr(yylval.tzSym, '.'))
type = T_LOCAL_ID;
- if (linestart) {
- if (type == T_ID)
- return T_LABEL;
- if (type == T_LOCAL_ID)
- return T_LOCAL_LABEL;
- }
+ if (linestart && type == T_ID)
+ return T_LABEL;
return type;
}