//
// RMAC - Reboot's Macro Assembler for all Atari computers
// PROCLN.C - Line Processing
-// Copyright (C) 199x Landon Dyer, 2011-2018 Reboot and Friends
+// Copyright (C) 199x Landon Dyer, 2011-2019 Reboot and Friends
// RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
// Source utilised with the kind permission of Landon Dyer
//
int just_bss; // 1, ds.b in microprocessor mode
uint32_t pcloc; // Value of "PC" at beginning of line
SYM * lab_sym; // Label on line (or NULL)
+char * label_defined; // The name of the last label defined in current line (if any)
const char extra_stuff[] = "extra (unexpected) text found after addressing mode";
const char comma_error[] = "missing comma";
state = -3; // No keyword (just EOL)
label = NULL; // No label
+ label_defined = NULL; // No label defined yet
lab_sym = NULL; // No (exported) label
equate = NULL; // No equate
tk = tok; // Save first token in line
if (HandleLabel(label, labtyp) != 0)
goto loop;
+ label_defined = label;
+
goto as68label;
}
}
{
if (HandleLabel(label, labtyp) != 0)
goto loop;
+
+ label_defined = label;
}
HandleRept();
if (list_flag) // Put value in listing
listvalue((uint32_t)eval);
- at_eol(); // Must be at EOL now
+ ErrorIfNotAtEOL(); // Must be at EOL now
goto loop;
}
// Non-zero == error occurred
if (HandleLabel(label, labtyp) != 0)
goto loop;
+
+ label_defined = label;
}
// Punt on EOL