]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/m2/mc-boot/Gkeyc.h
Update copyright years.
[thirdparty/gcc.git] / gcc / m2 / mc-boot / Gkeyc.h
CommitLineData
1eee94d3
GM
1/* do not edit automatically generated by mc from keyc. */
2/* keyc.def provides an interface to emitting symbols which.
3
83ffe9cd 4Copyright (C) 2016-2023 Free Software Foundation, Inc.
1eee94d3
GM
5Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
6
7This file is part of GNU Modula-2.
8
9GNU Modula-2 is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 3, or (at your option)
12any later version.
13
14GNU Modula-2 is distributed in the hope that it will be useful, but
15WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17General Public License for more details.
18
19You should have received a copy of the GNU General Public License
20along with GNU Modula-2; see the file COPYING3. If not see
21<http://www.gnu.org/licenses/>. */
22
23
24#if !defined (_keyc_H)
25# define _keyc_H
26
27#include "config.h"
28#include "system.h"
29# ifdef __cplusplus
30extern "C" {
31# endif
32# if !defined (PROC_D)
33# define PROC_D
34 typedef void (*PROC_t) (void);
35 typedef struct { PROC_t proc; } PROC;
36# endif
37
38# include "GmcPretty.h"
39# include "GDynamicStrings.h"
40# include "Gdecl.h"
41# include "GnameKey.h"
42
43# if defined (_keyc_C)
44# define EXTERN
45# else
46# define EXTERN extern
47# endif
48
49
50/*
51 useUnistd - need to use unistd.h call using open/close/read/write require this header.
52*/
53
54EXTERN void keyc_useUnistd (void);
55
56/*
57 useThrow - use the throw function.
58*/
59
60EXTERN void keyc_useThrow (void);
61
62/*
63 useStorage - indicate we have used storage.
64*/
65
66EXTERN void keyc_useStorage (void);
67
68/*
69 useFree - indicate we have used free.
70*/
71
72EXTERN void keyc_useFree (void);
73
74/*
75 useMalloc - indicate we have used malloc.
76*/
77
78EXTERN void keyc_useMalloc (void);
79
80/*
81 useProc - indicate we have used proc.
82*/
83
84EXTERN void keyc_useProc (void);
85
86/*
87 useTrue - indicate we have used TRUE.
88*/
89
90EXTERN void keyc_useTrue (void);
91
92/*
93 useFalse - indicate we have used FALSE.
94*/
95
96EXTERN void keyc_useFalse (void);
97
98/*
99 useNull - indicate we have used NULL.
100*/
101
102EXTERN void keyc_useNull (void);
103
104/*
105 useMemcpy - indicate we have used memcpy.
106*/
107
108EXTERN void keyc_useMemcpy (void);
109
110/*
111 useIntMin - indicate we have used INT_MIN.
112*/
113
114EXTERN void keyc_useIntMin (void);
115
116/*
117 useUIntMin - indicate we have used UINT_MIN.
118*/
119
120EXTERN void keyc_useUIntMin (void);
121
122/*
123 useLongMin - indicate we have used LONG_MIN.
124*/
125
126EXTERN void keyc_useLongMin (void);
127
128/*
129 useULongMin - indicate we have used ULONG_MIN.
130*/
131
132EXTERN void keyc_useULongMin (void);
133
134/*
135 useCharMin - indicate we have used CHAR_MIN.
136*/
137
138EXTERN void keyc_useCharMin (void);
139
140/*
141 useUCharMin - indicate we have used UCHAR_MIN.
142*/
143
144EXTERN void keyc_useUCharMin (void);
145
146/*
147 useIntMax - indicate we have used INT_MAX.
148*/
149
150EXTERN void keyc_useIntMax (void);
151
152/*
153 useUIntMax - indicate we have used UINT_MAX.
154*/
155
156EXTERN void keyc_useUIntMax (void);
157
158/*
159 useLongMax - indicate we have used LONG_MAX.
160*/
161
162EXTERN void keyc_useLongMax (void);
163
164/*
165 useULongMax - indicate we have used ULONG_MAX.
166*/
167
168EXTERN void keyc_useULongMax (void);
169
170/*
171 useCharMax - indicate we have used CHAR_MAX.
172*/
173
174EXTERN void keyc_useCharMax (void);
175
176/*
177 useUCharMax - indicate we have used UChar_MAX.
178*/
179
180EXTERN void keyc_useUCharMax (void);
181
182/*
183 useSize_t - indicate we have used size_t.
184*/
185
186EXTERN void keyc_useSize_t (void);
187
188/*
189 useSSize_t - indicate we have used ssize_t.
190*/
191
192EXTERN void keyc_useSSize_t (void);
193
194/*
195 useLabs - indicate we have used labs.
196*/
197
198EXTERN void keyc_useLabs (void);
199
200/*
201 useAbs - indicate we have used abs.
202*/
203
204EXTERN void keyc_useAbs (void);
205
206/*
207 useFabs - indicate we have used fabs.
208*/
209
210EXTERN void keyc_useFabs (void);
211
212/*
213 useFabsl - indicate we have used fabsl.
214*/
215
216EXTERN void keyc_useFabsl (void);
217
218/*
219 useException - use the exceptions module, mcrts.
220*/
221
222EXTERN void keyc_useException (void);
223
224/*
225 useComplex - use the complex data type.
226*/
227
228EXTERN void keyc_useComplex (void);
229
230/*
231 useM2RTS - indicate we have used M2RTS in the converted code.
232*/
233
234EXTERN void keyc_useM2RTS (void);
235
236/*
237 useStrlen - indicate we have used strlen in the converted code.
238*/
239
240EXTERN void keyc_useStrlen (void);
241
242/*
243 useCtype - indicate we have used the toupper function.
244*/
245
246EXTERN void keyc_useCtype (void);
247
248/*
249 genDefs - generate definitions or includes for all
250 macros and prototypes used.
251*/
252
253EXTERN void keyc_genDefs (mcPretty_pretty p);
254
255/*
256 genConfigSystem - generate include files for config.h and system.h
257 within the GCC framework.
258*/
259
260EXTERN void keyc_genConfigSystem (mcPretty_pretty p);
261
262/*
263 enterScope - enter a scope defined by, n.
264*/
265
266EXTERN void keyc_enterScope (decl_node n);
267
268/*
269 leaveScope - leave the scope defined by, n.
270*/
271
272EXTERN void keyc_leaveScope (decl_node n);
273
274/*
275 cname - attempts to declare a symbol with name, n, in the
276 current scope. If there is no conflict with the
277 target language then NIL is returned, otherwise
278 a mangled name is returned as a String.
279 If scopes is FALSE then only the keywords and
280 macros are detected for a clash (all scoping
281 is ignored).
282*/
283
284EXTERN DynamicStrings_String keyc_cname (nameKey_Name n, unsigned int scopes);
285
286/*
287 cnamen - attempts to declare a symbol with name, n, in the
288 current scope. If there is no conflict with the
289 target language then NIL is returned, otherwise
290 a mangled name is returned as a Name
291 If scopes is FALSE then only the keywords and
292 macros are detected for a clash (all scoping
293 is ignored).
294*/
295
296EXTERN nameKey_Name keyc_cnamen (nameKey_Name n, unsigned int scopes);
297
298/*
299 cp - include C++ keywords and standard declarations to avoid.
300*/
301
302EXTERN void keyc_cp (void);
303# ifdef __cplusplus
304}
305# endif
306
307# undef EXTERN
308#endif