/*****************************************************************************/
/* */
-/* error.c */
+/* error.c */
/* */
-/* Error handling for the ca65 macroassembler */
+/* Error handling for the ca65 macroassembler */
/* */
/* */
/* */
#include <stdlib.h>
#include <stdarg.h>
+/* ca65 */
+#include "filetab.h"
#include "nexttok.h"
#include "error.h"
/* Warning level */
unsigned WarnLevel = 1;
-/* Messages for internal compiler errors */
-const char _MsgCheckFailed [] =
- "Check failed: `%s' (= %d), file `%s', line %u\n";
-const char _MsgPrecondition [] =
- "Precondition violated: `%s' (= %d), file `%s', line %u\n";
-const char _MsgFail [] =
- "%s, file `%s', line %u\n";
-
-
/* Statistics */
unsigned ErrorCount = 0;
unsigned WarningCount = 0;
{ 2, "Symbol `%s' is defined but never used" },
{ 2, "Symbol `%s' is imported but never used" },
{ 1, "Cannot track processor status byte" },
+ { 0, "User warning: %s" },
};
if (Warnings [WarnNum-1].Level <= WarnLevel) {
/* Print an error message */
{
static const char* Msgs [ERR_COUNT-1] = {
- "Command/operation not implemented",
- "Cannot open include file `%s': %s",
- "Include nesting too deep",
+ "Command/operation not implemented",
+ "Cannot open include file `%s': %s",
+ "Cannot read from include file `%s': %s",
+ "Include nesting too deep",
"Invalid input character: %02X",
"Hex digit expected",
"Digit expected",
"Identifier expected",
"`.endmacro' expected",
"Option key expected",
+ "`=' expected",
"Command is only valid in 65816 mode",
"User error: %s",
"String constant too long",
"Illegal use of local symbol",
"Illegal segment name: `%s'",
"Illegal segment attribute",
- "Illegal macro package name",
+ "Illegal macro package name",
"Illegal emulation feature",
"Syntax error",
"Symbol `%s' is already defined",
"Undefined symbol `%s'",
- "Symbol `%s' is marked as import",
- "Symbol `%s' is marked as export",
+ "Symbol `%s' is already marked as import",
+ "Symbol `%s' is already marked as export",
"Exported symbol `%s' is undefined",
"Exported values must be constant",
".IF nesting too deep",
+ "Unexpected end of file",
"Unexpected end of line",
"Unexpected `%s'",
"Division by zero",
"Circular reference in symbol definition",
"Symbol redeclaration mismatch",
"Alignment value must be a power of 2",
- "Duplicate `.ELSE'",
+ "Duplicate `.ELSE'",
"Conditional assembly branch was never closed",
"Lexical level was not terminated correctly",
"Segment attribute mismatch",
- "CPU not supported",
+ "CPU not supported",
"Counter underflow",
"Undefined label",
"Open `%s´",
+ "File name `%s' not found in file table",
};
fprintf (stderr, "%s(%lu): Error #%u: ",