Annotation of parser3/src/include/pa_error.h, revision 1.2
1.1 paf 1: /*
1.2 ! paf 2: $Id: pa_error.h,v 1.1 2001/01/29 20:46:21 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.1 paf 22: void raise(String *aproblem_source, char *comment_fmt, ...);
23:
24: String *problem_source();
25: char *comment();
26:
27: private:
28:
29: bool valid;
30:
31: String *fproblem_source;
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: