/* */
/* */
/* */
-/* (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 */
#include <stdio.h>
+#include <string.h>
+
+/* common */
+#include "chartype.h"
/* cc65 */
#include "asmlabel.h"
+#include "error.h"
{
/* 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;
}
* created in static storage and overwritten when calling the function
* again.
*/
-{
+{
static char Buf[64];
sprintf (Buf, "L%04X", L);
return Buf;
+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;
+}
+
+
+
+
/* */
/* */
/* */
-/* (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 */
* again.
*/
+int IsLocalLabelName (const char* Name);
+/* Return true if Name is the name of a local label */
+
/* End of asmlabel.h */