1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-24 11:31:31 +00:00

Identifiers starting with a dot could not be used as namens for .define

style macros, even with --leading_dots_in_identifiers. This was also true
for symbols with one character names and without a leading dot.


git-svn-id: svn://svn.cc65.org/cc65/trunk@2882 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2004-02-22 11:34:29 +00:00
parent 4d80ff9214
commit 96f96a5bde

View File

@ -747,15 +747,25 @@ Again:
/* Dot keyword, search for it */
Tok = FindDotKeyword ();
if (Tok == TOK_NONE) {
/* Not found */
if (LeadingDotInIdents) {
/* An identifier with a dot */
Tok = TOK_IDENT;
} else {
if (!LeadingDotInIdents) {
/* Invalid pseudo instruction */
Error ("`%s' is not a recognized control command", SVal);
goto Again;
}
/* An identifier with a dot. Check if it's a define style
* macro.
*/
if (IsDefine (SVal)) {
/* This is a define style macro - expand it */
MacExpandStart ();
goto Restart;
}
/* Just an identifier with a dot */
Tok = TOK_IDENT;
}
}
@ -786,16 +796,18 @@ Again:
/* Read the identifier */
ReadIdent (0);
/* Check for special names */
/* Check for special names. Bail out if we have identified the type of
* the token. Go on if the token is an identifier.
*/
if (SVal[1] == '\0') {
switch (toupper (SVal [0])) {
case 'A':
case 'A':
if (C == ':') {
NextChar ();
Tok = TOK_OVERRIDE_ABS;
} else {
Tok = TOK_A;
Tok = TOK_A;
}
return;
@ -803,35 +815,32 @@ Again:
if (C == ':') {
NextChar ();
Tok = TOK_OVERRIDE_FAR;
} else {
Tok = TOK_IDENT;
return;
}
return;
break;
case 'S':
Tok = TOK_S;
return;
Tok = TOK_S;
return;
case 'X':
Tok = TOK_X;
return;
Tok = TOK_X;
return;
case 'Y':
Tok = TOK_Y;
return;
Tok = TOK_Y;
return;
case 'Z':
if (C == ':') {
NextChar ();
Tok = TOK_OVERRIDE_ZP;
} else {
Tok = TOK_IDENT;
return;
}
return;
break;
default:
Tok = TOK_IDENT;
return;
break;
}
}