Mercurial > ~dholland > hg > ag > index.cgi
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 */