mirror of
https://github.com/cc65/cc65.git
synced 2024-11-18 00:07:21 +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:
parent
3d95c9453f
commit
ca73116a03
@ -6,10 +6,10 @@
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* (C) 2000-2001 Ullrich von Bassewitz */
|
||||
/* Wacholderweg 14 */
|
||||
/* D-70597 Stuttgart */
|
||||
/* EMail: uz@musoftware.de */
|
||||
/* (C) 2000-2009 Ullrich von Bassewitz */
|
||||
/* Roemerstrasse 52 */
|
||||
/* D-70794 Filderstadt */
|
||||
/* EMail: uz@cc65.org */
|
||||
/* */
|
||||
/* */
|
||||
/* This software is provided 'as-is', without any expressed or implied */
|
||||
@ -34,9 +34,14 @@
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
/* common */
|
||||
#include "chartype.h"
|
||||
|
||||
/* cc65 */
|
||||
#include "asmlabel.h"
|
||||
#include "error.h"
|
||||
|
||||
|
||||
|
||||
@ -51,6 +56,13 @@ unsigned GetLocalLabel (void)
|
||||
{
|
||||
/* Number to generate unique labels */
|
||||
static unsigned NextLabel = 0;
|
||||
|
||||
/* Check for an overflow */
|
||||
if (NextLabel > 0xFFFF) {
|
||||
Internal ("Local label overflow");
|
||||
}
|
||||
|
||||
/* Return the next label */
|
||||
return ++NextLabel;
|
||||
}
|
||||
|
||||
@ -61,7 +73,7 @@ const char* LocalLabelName (unsigned L)
|
||||
* created in static storage and overwritten when calling the function
|
||||
* again.
|
||||
*/
|
||||
{
|
||||
{
|
||||
static char Buf[64];
|
||||
sprintf (Buf, "L%04X", L);
|
||||
return Buf;
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -6,10 +6,10 @@
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* (C) 2000 Ullrich von Bassewitz */
|
||||
/* Wacholderweg 14 */
|
||||
/* D-70597 Stuttgart */
|
||||
/* EMail: uz@musoftware.de */
|
||||
/* (C) 2000-2009 Ullrich von Bassewitz */
|
||||
/* Roemerstrasse 52 */
|
||||
/* D-70794 Filderstadt */
|
||||
/* EMail: uz@cc65.org */
|
||||
/* */
|
||||
/* */
|
||||
/* This software is provided 'as-is', without any expressed or implied */
|
||||
@ -53,6 +53,9 @@ const char* LocalLabelName (unsigned L);
|
||||
* again.
|
||||
*/
|
||||
|
||||
int IsLocalLabelName (const char* Name);
|
||||
/* Return true if Name is the name of a local label */
|
||||
|
||||
|
||||
|
||||
/* End of asmlabel.h */
|
||||
|
Loading…
Reference in New Issue
Block a user