Annotation of parser3/src/main/pa_error.C, revision 1.2
1.1 paf 1: /*
1.2 ! paf 2: $Id: pa_error.C,v 1.1 2001/01/29 20:46:22 paf Exp $
1.1 paf 3: */
4:
5: #include <stdio.h>
6: #include <stdlib.h>
7:
8: #include "pa_error.h"
9: #include "pa_common.h"
10:
11: void Error::die(char *acomment) {
12: // FIX: log(LOG_ERROR, acomment)
1.2 ! paf 13: fprintf(stderr, "die: %s\n", acomment);
1.1 paf 14: exit(1);
15: }
16:
1.2 ! paf 17: void Error::prepare_begin() {
1.1 paf 18: fproblem_source=0;
19: fcomment[0]=0;
20: valid=true;
21: }
22:
23: void Error::raise(String *aproblem_source, char *comment_fmt, ...) {
24: if(!valid)
25: die("Error::raise(...) -- without begin()");
26:
27: fproblem_source=aproblem_source;
28:
29: va_list args;
30: va_start(args, comment_fmt);
1.2 ! paf 31: vsnprintf(fcomment, MAX_STRING, comment_fmt, args);
1.1 paf 32: va_end(args);
33:
34: longjmp(mark, 1);
35: }
36:
37: String *Error::problem_source() {
38: if(!valid)
39: die("Error::problem_source() -- without begin()");
40:
41: return fproblem_source;
42: }
43:
44: char *Error::comment() {
45: if(!valid)
46: die("Error::comment() -- without begin()");
47:
48: return fcomment;
49: }
E-mail: