diff anagram/agcore/error.h @ 0:13d2b8934445

Import AnaGram (near-)release tree into Mercurial.
author David A. Holland
date Sat, 22 Dec 2007 17:52:45 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/anagram/agcore/error.h	Sat Dec 22 17:52:45 2007 -0500
@@ -0,0 +1,57 @@
+/*
+ * AnaGram, A System for Syntax Directed Programming
+ * Copyright 1993-2002 Parsifal Software. All Rights Reserved.
+ * See the file COPYING for license and usage terms.
+ *
+ * error.h
+ */
+
+#ifndef ERROR_H
+#define ERROR_H
+
+#include "agstack.h"
+#include "agstring.h"
+
+class Error {
+public:
+  enum keytype {
+    warn,
+    fatal,
+  };
+
+  AgString file;
+  int line;
+  int column;
+  keytype key;
+  AgString message;
+
+  static const char *keyString[];
+
+  Error() : line(0), column(0), key(fatal) {}
+  Error(AgString msg);                                          // misc error
+  Error(int line, int column, AgString msg);                    // parse error
+  Error(int line, int column, AgString file, AgString msg);     // config error
+
+  void setFatal() { key=fatal; }
+  int operator < (const Error &e) const { return line < e.line; }
+};
+
+extern AgStack<Error> errorList;
+
+extern AgString errorReportFile;
+
+extern int charRangeDiagnostic;
+extern int eventDrivenDiagnostic;
+extern int negativeCharDiagnostic;
+extern int errorResynchDiagnostic;
+
+void reset_errors(void);
+
+void log_error();
+void log_error(const char *);
+void log_error(int,int);
+
+void checkParams();
+
+
+#endif /* ERROR_H */