xref: /openbsd/gnu/usr.bin/gcc/gcc/f/stc.h (revision c87b03e5)
1 /* stc.h -- Private #include File (module.h template V1.0)
2    Copyright (C) 1995 Free Software Foundation, Inc.
3    Contributed by James Craig Burley.
4 
5 This file is part of GNU Fortran.
6 
7 GNU Fortran is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
11 
12 GNU Fortran is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with GNU Fortran; see the file COPYING.  If not, write to
19 the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA.
21 
22    Owning Modules:
23       stc.c
24 
25    Modifications:
26 */
27 
28 /* Allow multiple inclusion to work. */
29 
30 #ifndef GCC_F_STC_H
31 #define GCC_F_STC_H
32 
33 /* Simple definitions and enumerations. */
34 
35 
36 /* Typedefs. */
37 
38 
39 /* Include files needed by this one. */
40 
41 #include "bad.h"
42 #include "bld.h"
43 #include "expr.h"
44 #include "lex.h"
45 #include "stp.h"
46 #include "str.h"
47 #include "stt.h"
48 
49 /* Structure definitions. */
50 
51 
52 /* Global objects accessed by users of this module. */
53 
54 extern ffeexprContext ffestc_iolist_context_;
55 
56 /* Declare functions with prototypes. */
57 
58 void ffestc_decl_start (ffestpType type, ffelexToken typet, ffebld kind,
59 			ffelexToken kindt, ffebld len, ffelexToken lent);
60 void ffestc_decl_attrib (ffestpAttrib attrib, ffelexToken attribt,
61 			 ffestrOther intent_kw, ffesttDimList dims);
62 void ffestc_decl_item (ffelexToken name, ffebld kind, ffelexToken kindt,
63 		       ffesttDimList dims, ffebld len, ffelexToken lent,
64 		       ffebld init, ffelexToken initt, bool clist);
65 void ffestc_decl_itemstartvals (void);
66 void ffestc_decl_itemvalue (ffebld repeat, ffelexToken repeat_token,
67 			    ffebld value, ffelexToken value_token);
68 void ffestc_decl_itemendvals (ffelexToken t);
69 void ffestc_decl_finish (void);
70 void ffestc_elsewhere (ffelexToken where_token);
71 void ffestc_end (void);
72 void ffestc_eof (void);
73 bool ffestc_exec_transition (void);
74 void ffestc_ffebad_here_doiter (ffebadIndex i, ffesymbol s);
75 void ffestc_init_3 (void);
76 void ffestc_init_4 (void);
77 bool ffestc_is_decl_not_R1219 (void);
78 bool ffestc_is_entry_in_subr (void);
79 bool ffestc_is_let_not_V027 (void);
80 #if FFESTR_F90
81 void ffestc_let (ffebld dest, ffebld source, ffelexToken source_token);
82 #else
83 #define ffestc_let ffestc_R737
84 #endif
85 #if FFESTR_F90
86 void ffestc_module (ffelexToken module_name, ffelexToken procedure_name);
87 #endif
88 #if FFESTR_F90
89 void ffestc_private (void);
90 #endif
91 void ffestc_terminate_4 (void);
92 #if FFESTR_F90
93 void ffestc_R423A (void);
94 void ffestc_R423B (void);
95 void ffestc_R424 (ffelexToken access, ffestrOther access_kw, ffelexToken name);
96 void ffestc_R425 (ffelexToken name);
97 void ffestc_R426_start (ffestpType type, ffelexToken typet, ffebld kind,
98 			ffelexToken kindt, ffebld len, ffelexToken lent);
99 void ffestc_R426_attrib (ffestpAttrib attrib, ffelexToken attribt,
100 			 ffestrOther intent_kw, ffesttDimList dims);
101 void ffestc_R426_item (ffelexToken name, ffebld kind, ffelexToken kindt,
102 	      ffesttDimList dims, ffebld len, ffelexToken lent, ffebld init,
103 		       ffelexToken initt, bool clist);
104 void ffestc_R426_itemstartvals (void);
105 void ffestc_R426_itemvalue (ffebld repeat, ffelexToken repeat_token,
106 			    ffebld value, ffelexToken value_token);
107 void ffestc_R426_itemendvals (ffelexToken t);
108 void ffestc_R426_finish (void);
109 #endif
110 void ffestc_R501_start (ffestpType type, ffelexToken typet, ffebld kind,
111 			ffelexToken kindt, ffebld len, ffelexToken lent);
112 void ffestc_R501_attrib (ffestpAttrib attrib, ffelexToken attribt,
113 			 ffestrOther intent_kw, ffesttDimList dims);
114 void ffestc_R501_item (ffelexToken name, ffebld kind, ffelexToken kindt,
115 	      ffesttDimList dims, ffebld len, ffelexToken lent, ffebld init,
116 		       ffelexToken initt, bool clist);
117 void ffestc_R501_itemstartvals (void);
118 void ffestc_R501_itemvalue (ffebld repeat, ffelexToken repeat_token,
119 			    ffebld value, ffelexToken value_token);
120 void ffestc_R501_itemendvals (ffelexToken t);
121 void ffestc_R501_finish (void);
122 #if FFESTR_F90
123 void ffestc_R519_start (ffelexToken intent, ffestrOther intent_kw);
124 void ffestc_R519_item (ffelexToken name);
125 void ffestc_R519_finish (void);
126 void ffestc_R520_start (void);
127 void ffestc_R520_item (ffelexToken name);
128 void ffestc_R520_finish (void);
129 void ffestc_R521A (void);
130 void ffestc_R521Astart (void);
131 void ffestc_R521Aitem (ffelexToken name);
132 void ffestc_R521Afinish (void);
133 void ffestc_R521B (void);
134 void ffestc_R521Bstart (void);
135 void ffestc_R521Bitem (ffelexToken name);
136 void ffestc_R521Bfinish (void);
137 #endif
138 void ffestc_R522 (void);
139 void ffestc_R522start (void);
140 void ffestc_R522item_object (ffelexToken name);
141 void ffestc_R522item_cblock (ffelexToken name);
142 void ffestc_R522finish (void);
143 void ffestc_R524_start (bool virtual);
144 void ffestc_R524_item (ffelexToken name, ffesttDimList dims);
145 void ffestc_R524_finish (void);
146 #if FFESTR_F90
147 void ffestc_R525_start (void);
148 void ffestc_R525_item (ffelexToken name, ffesttDimList dims);
149 void ffestc_R525_finish (void);
150 void ffestc_R526_start (void);
151 void ffestc_R526_item (ffelexToken name, ffesttDimList dims);
152 void ffestc_R526_finish (void);
153 void ffestc_R527_start (void);
154 void ffestc_R527_item (ffelexToken name, ffesttDimList dims);
155 void ffestc_R527_finish (void);
156 #endif
157 void ffestc_R528_start (void);
158 void ffestc_R528_item_object (ffebld expr, ffelexToken expr_token);
159 void ffestc_R528_item_startvals (void);
160 void ffestc_R528_item_value (ffebld repeat, ffelexToken repeat_token,
161 			     ffebld value, ffelexToken value_token);
162 void ffestc_R528_item_endvals (ffelexToken t);
163 void ffestc_R528_finish (void);
164 void ffestc_R537_start (void);
165 void ffestc_R537_item (ffebld dest, ffelexToken dest_token, ffebld source,
166 		       ffelexToken source_token);
167 void ffestc_R537_finish (void);
168 void ffestc_R539 (void);
169 void ffestc_R539start (void);
170 void ffestc_R539item (ffestpType type, ffebld kind, ffelexToken kindt,
171 		      ffebld len, ffelexToken lent, ffesttImpList letters);
172 void ffestc_R539finish (void);
173 void ffestc_R542_start (void);
174 void ffestc_R542_item_nlist (ffelexToken name);
175 void ffestc_R542_item_nitem (ffelexToken name);
176 void ffestc_R542_finish (void);
177 void ffestc_R544_start (void);
178 void ffestc_R544_item (ffesttExprList exprlist);
179 void ffestc_R544_finish (void);
180 void ffestc_R547_start (void);
181 void ffestc_R547_item_object (ffelexToken name, ffesttDimList dims);
182 void ffestc_R547_item_cblock (ffelexToken name);
183 void ffestc_R547_finish (void);
184 #if FFESTR_F90
185 void ffestc_R620 (ffesttExprList objects, ffebld stat,
186 		  ffelexToken stat_token);
187 void ffestc_R624 (ffesttExprList pointers);
188 void ffestc_R625 (ffesttExprList objects, ffebld stat,
189 		  ffelexToken stat_token);
190 #endif
191 void ffestc_R737 (ffebld dest, ffebld source, ffelexToken source_token);
192 #if FFESTR_F90
193 void ffestc_R738 (ffebld dest, ffebld source, ffelexToken source_token);
194 void ffestc_R740 (ffebld expr, ffelexToken expr_token);
195 void ffestc_R742 (ffebld expr, ffelexToken expr_token);
196 void ffestc_R744 (void);
197 void ffestc_R745 (void);
198 #endif
199 void ffestc_R803 (ffelexToken construct_name, ffebld expr,
200 		  ffelexToken expr_token);
201 void ffestc_R804 (ffebld expr, ffelexToken expr_token, ffelexToken name);
202 void ffestc_R805 (ffelexToken name);
203 void ffestc_R806 (ffelexToken name);
204 void ffestc_R807 (ffebld expr, ffelexToken expr_token);
205 void ffestc_R809 (ffelexToken construct_name, ffebld expr,
206 		  ffelexToken expr_token);
207 void ffestc_R810 (ffesttCaseList cases, ffelexToken name);
208 void ffestc_R811 (ffelexToken name);
209 void ffestc_R819A (ffelexToken construct_name, ffelexToken label, ffebld var,
210    ffelexToken var_token, ffebld start, ffelexToken start_token, ffebld end,
211 		ffelexToken end_token, ffebld incr, ffelexToken incr_token);
212 void ffestc_R819B (ffelexToken construct_name, ffelexToken label, ffebld expr,
213 		   ffelexToken expr_token);
214 void ffestc_R820A (ffelexToken construct_name, ffebld var,
215    ffelexToken var_token, ffebld start, ffelexToken start_token, ffebld end,
216 		ffelexToken end_token, ffebld incr, ffelexToken incr_token);
217 void ffestc_R820B (ffelexToken construct_name, ffebld expr,
218 		   ffelexToken expr_token);
219 void ffestc_R825 (ffelexToken name);
220 void ffestc_R834 (ffelexToken name);
221 void ffestc_R835 (ffelexToken name);
222 void ffestc_R836 (ffelexToken label);
223 void ffestc_R837 (ffesttTokenList label_toks, ffebld expr,
224 		  ffelexToken expr_token);
225 void ffestc_R838 (ffelexToken label, ffebld target, ffelexToken target_token);
226 void ffestc_R839 (ffebld target, ffelexToken target_token,
227 		  ffesttTokenList label_toks);
228 void ffestc_R840 (ffebld expr, ffelexToken expr_token, ffelexToken neg,
229 		  ffelexToken zero, ffelexToken pos);
230 void ffestc_R841 (void);
231 void ffestc_R842 (ffebld expr, ffelexToken expr_token);
232 void ffestc_R843 (ffebld expr, ffelexToken expr_token);
233 void ffestc_R904 (void);
234 void ffestc_R907 (void);
235 void ffestc_R909_start (bool only_format);
236 void ffestc_R909_item (ffebld expr, ffelexToken expr_token);
237 void ffestc_R909_finish (void);
238 void ffestc_R910_start (void);
239 void ffestc_R910_item (ffebld expr, ffelexToken expr_token);
240 void ffestc_R910_finish (void);
241 void ffestc_R911_start (void);
242 void ffestc_R911_item (ffebld expr, ffelexToken expr_token);
243 void ffestc_R911_finish (void);
244 void ffestc_R919 (void);
245 void ffestc_R920 (void);
246 void ffestc_R921 (void);
247 void ffestc_R923A (void);
248 void ffestc_R923B_start (void);
249 void ffestc_R923B_item (ffebld expr, ffelexToken expr_token);
250 void ffestc_R923B_finish (void);
251 void ffestc_R1001 (ffesttFormatList f);
252 void ffestc_R1102 (ffelexToken name);
253 void ffestc_R1103 (ffelexToken name);
254 #if FFESTR_F90
255 void ffestc_R1105 (ffelexToken name);
256 void ffestc_R1106 (ffelexToken name);
257 void ffestc_R1107_start (ffelexToken name, bool only);
258 void ffestc_R1107_item (ffelexToken local, ffelexToken use);
259 void ffestc_R1107_finish (void);
260 #endif
261 void ffestc_R1111 (ffelexToken name);
262 void ffestc_R1112 (ffelexToken name);
263 #if FFESTR_F90
264 void ffestc_R1202 (ffestpDefinedOperator operator, ffelexToken name);
265 void ffestc_R1203 (void);
266 void ffestc_R1205_start (void);
267 void ffestc_R1205_item (ffelexToken name);
268 void ffestc_R1205_finish (void);
269 #endif
270 void ffestc_R1207_start (void);
271 void ffestc_R1207_item (ffelexToken name);
272 void ffestc_R1207_finish (void);
273 void ffestc_R1208_start (void);
274 void ffestc_R1208_item (ffelexToken name);
275 void ffestc_R1208_finish (void);
276 void ffestc_R1212 (ffebld expr, ffelexToken expr_token);
277 #if FFESTR_F90
278 void ffestc_R1213 (ffebld dest, ffebld source, ffelexToken source_token);
279 #endif
280 void ffestc_R1219 (ffelexToken funcname, ffesttTokenList args,
281 	 ffelexToken final, ffestpType type, ffebld kind, ffelexToken kindt,
282    ffebld len, ffelexToken lent, ffelexToken recursive, ffelexToken result);
283 void ffestc_R1221 (ffelexToken name);
284 void ffestc_R1223 (ffelexToken subrname, ffesttTokenList args,
285 		   ffelexToken final, ffelexToken recursive);
286 void ffestc_R1225 (ffelexToken name);
287 void ffestc_R1226 (ffelexToken entryname, ffesttTokenList args,
288 		   ffelexToken final);
289 void ffestc_R1227 (ffebld expr, ffelexToken expr_token);
290 #if FFESTR_F90
291 void ffestc_R1228 (void);
292 #endif
293 void ffestc_R1229_start (ffelexToken name, ffesttTokenList args,
294 			 ffelexToken final);
295 void ffestc_R1229_finish (ffebld expr, ffelexToken expr_token);
296 void ffestc_S3P4 (ffebld filename, ffelexToken filename_token);
297 #if FFESTR_VXT
298 void ffestc_V003_start (ffelexToken structure_name);
299 void ffestc_V003_item (ffelexToken name, ffesttDimList dims);
300 void ffestc_V003_finish (void);
301 void ffestc_V004 (void);
302 void ffestc_V009 (void);
303 void ffestc_V010 (void);
304 void ffestc_V012 (void);
305 void ffestc_V013 (void);
306 #endif
307 void ffestc_V014_start (void);
308 void ffestc_V014_item_object (ffelexToken name);
309 void ffestc_V014_item_cblock (ffelexToken name);
310 void ffestc_V014_finish (void);
311 #if FFESTR_VXT
312 void ffestc_V016_start (void);
313 void ffestc_V016_item_structure (ffelexToken name);
314 void ffestc_V016_item_object (ffelexToken name, ffesttDimList dims);
315 void ffestc_V016_finish (void);
316 void ffestc_V018_start (void);
317 void ffestc_V018_item (ffebld expr, ffelexToken expr_token);
318 void ffestc_V018_finish (void);
319 void ffestc_V019_start (void);
320 void ffestc_V019_item (ffebld expr, ffelexToken expr_token);
321 void ffestc_V019_finish (void);
322 #endif
323 void ffestc_V020_start (void);
324 void ffestc_V020_item (ffebld expr, ffelexToken expr_token);
325 void ffestc_V020_finish (void);
326 #if FFESTR_VXT
327 void ffestc_V021 (void);
328 void ffestc_V022 (void);
329 void ffestc_V023_start (void);
330 void ffestc_V023_item (ffebld expr, ffelexToken expr_token);
331 void ffestc_V023_finish (void);
332 void ffestc_V024_start (void);
333 void ffestc_V024_item (ffebld expr, ffelexToken expr_token);
334 void ffestc_V024_finish (void);
335 void ffestc_V025_start (void);
336 void ffestc_V025_item (ffebld u, ffelexToken ut, ffebld m, ffelexToken mt,
337 		    ffebld n, ffelexToken nt, ffebld asv, ffelexToken asvt);
338 void ffestc_V025_finish (void);
339 void ffestc_V026 (void);
340 #endif
341 void ffestc_V027_start (void);
342 void ffestc_V027_item (ffelexToken dest_token, ffebld source,
343 		       ffelexToken source_token);
344 void ffestc_V027_finish (void);
345 void ffestc_any (void);
346 
347 /* Define macros. */
348 
349 #define ffestc_context_iolist() ffestc_iolist_context_
350 #define ffestc_init_0()
351 #define ffestc_init_1()
352 #define ffestc_init_2()
353 #define ffestc_terminate_0()
354 #define ffestc_terminate_1()
355 #define ffestc_terminate_2()
356 #define ffestc_terminate_3()
357 
358 /* End of #include file. */
359 
360 #endif /* ! GCC_F_STC_H */
361