modify upstream makefile to allow hardening build flags to apply
[debian/yforth] / locals.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:     locals.h
18  * Abstract:        include file for "locals" word set
19  */
20
21 #ifdef DECLARE_WORDS
22 #       ifdef PROTOTYPES
23 #               undef PROTOTYPES
24 #       endif
25 #       undef __LOCALS_H__
26 #else
27 #       ifndef PROTOTYPES
28 #               define PROTOTYPES
29 #       endif
30 #endif
31
32 #ifndef __LOCALS_H__
33 #define __LOCALS_H__
34
35 #include "yforth.h"
36 #include "macro.h"
37
38 /**************************************************************************/
39 /* PROTOTYPES *************************************************************/
40 /**************************************************************************/
41
42 code(paren_local_paren,                         "(local)",                              COMP_ONLY)
43
44 code(paren_bp_restore_paren,            "(bp!)",                                0)
45 code(paren_bp_save_paren,                       "(bp@)",                                0)
46 code(paren_read_local_paren,            "(rLocal)",                             0)
47 code(paren_write_local_paren,           "(wLocal)",                             0)
48
49 #ifdef PROTOTYPES
50
51 /**************************************************************************/
52 /* AUXILIARY FUNCTIONS PROTOTYPES *****************************************/
53 /**************************************************************************/
54
55 void clear_locals(void);
56 void free_locals(void);
57 void init_locals(void);
58 void declare_local(Char *s, UCell u);
59 struct word_def *get_first_local(void);
60 int locals_defined(void);
61
62 #endif
63
64 #endif
65