Moved the interpreter
[repair.git] / Repair / RepairInterpreter / catcherror.h
1 #ifndef CATCHERROR_H
2 #define CATCHERROR_H
3
4 #include "stack.h"
5 #include <signal.h>
6 #include <setjmp.h>
7 #include <stdio.h>
8
9 void handler(int signal);
10 void installhandlers();
11 extern struct StackElement * stackptr;
12
13 #define STARTREPAIR(repair, label)  \
14   jmp_buf label_save_buf;     \
15   if (setjmp(label_save_buf)) { \
16     repair \
17     resetanalysis(); \
18     goto label_error; \
19   } \
20 label_error:\
21   pushstack(&stackptr, &label_save_buf);
22
23
24
25
26 #define ENDREPAIR(label) popstack(&stackptr);
27
28
29
30 #endif