Imported Upstream version 0.2.0+beta
[debian/yforth] / exceptio.h
1 /* yForth? - A Forth interpreter written in ANSI C
2  * Copyright (C) 2012 Luca Padovani
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  * ------------------------------------------------------------------------
17  * Module name:     exceptio.h
18  * Abstract:        include file for "exception" word set
19  */
20
21 #ifdef DECLARE_WORDS
22 #       ifdef PROTOTYPES
23 #               undef PROTOTYPES
24 #       endif
25 #       undef __EXCEPTION_H__
26 #else
27 #       ifndef PROTOTYPES
28 #               define PROTOTYPES
29 #       endif
30 #endif
31
32 #ifndef __EXCEPTION_H__
33 #define __EXCEPTION_H__
34
35 #include "yforth.h"
36 #include "macro.h"
37
38 #ifdef PROTOTYPES
39 struct exception_frame {
40         jmp_buf catch_buf;
41         Cell *sp, *rp, *bp;
42         Real *fp;
43         struct exception_frame *last;
44 };
45 #endif
46
47 /**************************************************************************/
48 /* PROTOTYPES *************************************************************/
49 /**************************************************************************/
50
51 code(catch,                                                     "catch",                                0)
52 code(throw,                                                     "throw",                                0)
53
54 #ifdef PROTOTYPES
55
56 #endif
57
58 #endif
59