Annotation of parser3/src/include/pa_error.h, revision 1.3
1.1 paf 1: /*
1.3 ! paf 2: $Id: pa_error.h,v 1.2 2001/01/29 21:51:51 paf Exp $
1.1 paf 3: */
4:
5: #ifndef PA_ERROR_H
6: #define PA_ERROR_H
7:
8: #include <setjmp.h>
9:
10: #include "pa_types.h"
11: #include "pa_string.h"
12:
13: class Error {
14: public:
15:
1.2 paf 16: // address for long jump to jump to
17: jmp_buf mark;
18:
1.1 paf 19: Error() : valid(false) {}
20: static void die(char *acomment);
1.2 paf 21: void prepare_begin();
1.3 ! paf 22: void raise(const String *aproblem_source, const char *comment_fmt, ...);
1.1 paf 23:
1.3 ! paf 24: const String *problem_source();
! 25: const char *comment();
1.1 paf 26:
27: private:
28:
29: bool valid;
30:
1.3 ! paf 31: const String *fproblem_source;
1.1 paf 32: char fcomment[MAX_STRING];
33: };
1.2 paf 34:
35: #define ERROR_BEGIN(error) error.prepare_begin(), (setjmp(error.mark)==0)
1.1 paf 36:
37: #endif
E-mail: