1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-30 04:29:26 +00:00

New function IsLocalLabelName.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3992 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2009-08-04 19:12:34 +00:00
parent 3d95c9453f
commit ca73116a03
2 changed files with 45 additions and 9 deletions

View File

@ -6,10 +6,10 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2000-2001 Ullrich von Bassewitz */ /* (C) 2000-2009 Ullrich von Bassewitz */
/* Wacholderweg 14 */ /* Roemerstrasse 52 */
/* D-70597 Stuttgart */ /* D-70794 Filderstadt */
/* EMail: uz@musoftware.de */ /* EMail: uz@cc65.org */
/* */ /* */
/* */ /* */
/* This software is provided 'as-is', without any expressed or implied */ /* This software is provided 'as-is', without any expressed or implied */
@ -34,9 +34,14 @@
#include <stdio.h> #include <stdio.h>
#include <string.h>
/* common */
#include "chartype.h"
/* cc65 */ /* cc65 */
#include "asmlabel.h" #include "asmlabel.h"
#include "error.h"
@ -51,6 +56,13 @@ unsigned GetLocalLabel (void)
{ {
/* Number to generate unique labels */ /* Number to generate unique labels */
static unsigned NextLabel = 0; static unsigned NextLabel = 0;
/* Check for an overflow */
if (NextLabel > 0xFFFF) {
Internal ("Local label overflow");
}
/* Return the next label */
return ++NextLabel; return ++NextLabel;
} }
@ -69,3 +81,24 @@ const char* LocalLabelName (unsigned L)
int IsLocalLabelName (const char* Name)
/* Return true if Name is the name of a local label */
{
unsigned I;
if (Name[0] != 'L' || strlen (Name) != 5) {
return 0;
}
for (I = 1; I <= 5; ++I) {
if (!IsXDigit (Name[I])) {
return 0;
}
}
/* Local label name */
return 1;
}

View File

@ -6,10 +6,10 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2000 Ullrich von Bassewitz */ /* (C) 2000-2009 Ullrich von Bassewitz */
/* Wacholderweg 14 */ /* Roemerstrasse 52 */
/* D-70597 Stuttgart */ /* D-70794 Filderstadt */
/* EMail: uz@musoftware.de */ /* EMail: uz@cc65.org */
/* */ /* */
/* */ /* */
/* This software is provided 'as-is', without any expressed or implied */ /* This software is provided 'as-is', without any expressed or implied */
@ -53,6 +53,9 @@ const char* LocalLabelName (unsigned L);
* again. * again.
*/ */
int IsLocalLabelName (const char* Name);
/* Return true if Name is the name of a local label */
/* End of asmlabel.h */ /* End of asmlabel.h */