xref: /openbsd-src/gnu/usr.bin/gcc/gcc/f/stb.h (revision c87b03e512fc05ed6e0222f6fb0ae86264b1d05b)
1 /* stb.h -- Private #include File (module.h template V1.0)
2    Copyright (C) 1995, 1996 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       stb.c
24 
25    Modifications:
26 */
27 
28 /* Allow multiple inclusion to work. */
29 
30 #ifndef GCC_F_STB_H
31 #define GCC_F_STB_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 "expr.h"
43 #include "lex.h"
44 #include "stp.h"
45 #include "str.h"
46 
47 /* Structure definitions. */
48 
49 struct _ffestb_args_
50   {
51     struct
52       {
53 	const char *badname;
54 	ffeTokenLength len;	/* Length of "ENTRY/FUNCTION/SUBROUTINE". */
55 	bool is_subr;		/* TRUE if SUBROUTINE or if ENTRY within
56 				   SUBROUTINE. */
57       }
58     dummy;
59     struct
60       {
61 	const char *badname;
62 	ffeTokenLength len;	/* Length of
63 				   "BACKSPACE/ENDFILE/REWIND/UNLOCK". */
64       }
65     beru;
66     struct
67       {
68 	ffeTokenLength len;	/* Length of keyword including "END". */
69 	ffestrSecond second;	/* Second keyword. */
70       }
71     endxyz;
72     struct
73       {
74 	ffestrSecond second;	/* Second keyword. */
75       }
76     elsexyz;
77     struct
78       {
79 	ffeTokenLength len;	/* Length of "STOP/PAUSE". */
80       }
81     halt;
82 #if FFESTR_F90
83     struct
84       {
85 	const char *badname;
86 	ffeTokenLength len;	/* Length of "ALLOCATE/DEALLOCATE". */
87 	ffeexprContext ctx;	/* Either ALLOCATE or DEALLOCATE. */
88       }
89     heap;
90 #endif
91     struct
92       {
93 	const char *badname;
94 	ffeTokenLength len;	/* Length of
95 				   "EXTERNAL/INTENT/INTRINSIC/OPTIONAL/PUBLIC/
96 				   PRIVATE". */
97       }
98     varlist;
99 #if FFESTR_VXT
100     struct
101       {
102 	const char *badname;
103 	ffeTokenLength len;	/* Length of "ENCODE/DECODE". */
104       }
105     vxtcode;
106 #endif
107 #if FFESTR_F90
108     struct
109       {
110 	const char *badname;
111 	ffeTokenLength len;	/* Length of "ALLOCATABLE/POINTER/TARGET". */
112       }
113     dimlist;
114 #endif
115     struct
116       {
117 	const char *badname;
118 	ffeTokenLength len;	/* Length of "DIMENSION/VIRTUAL". */
119       }
120     R524;
121     struct
122       {
123 	ffeTokenLength len;	/* Length of first keyword. */
124 	ffestpType type;	/* Type of declaration. */
125       }
126     decl;
127   };
128 
129 /* Global objects accessed by users of this module. */
130 
131 extern struct _ffestb_args_ ffestb_args;
132 
133 /* Declare functions with prototypes. */
134 
135 ffelexHandler ffestb_beru (ffelexToken t);
136 ffelexHandler ffestb_block (ffelexToken t);
137 ffelexHandler ffestb_blockdata (ffelexToken t);
138 ffelexHandler ffestb_decl_chartype (ffelexToken t);
139 ffelexHandler ffestb_construct (ffelexToken t);
140 ffelexHandler ffestb_decl_dbltype (ffelexToken t);
141 ffelexHandler ffestb_decl_double (ffelexToken t);
142 ffelexHandler ffestb_dimlist (ffelexToken t);
143 ffelexHandler ffestb_do (ffelexToken t);
144 ffelexHandler ffestb_dowhile (ffelexToken t);
145 ffelexHandler ffestb_dummy (ffelexToken t);
146 ffelexHandler ffestb_else (ffelexToken t);
147 ffelexHandler ffestb_elsexyz (ffelexToken t);
148 ffelexHandler ffestb_end (ffelexToken t);
149 ffelexHandler ffestb_endxyz (ffelexToken t);
150 ffelexHandler ffestb_decl_gentype (ffelexToken t);
151 ffelexHandler ffestb_goto (ffelexToken t);
152 ffelexHandler ffestb_halt (ffelexToken t);
153 #if FFESTR_F90
154 ffelexHandler ffestb_heap (ffelexToken t);
155 #endif
156 ffelexHandler ffestb_if (ffelexToken t);
157 ffelexHandler ffestb_let (ffelexToken t);
158 #if FFESTR_F90
159 ffelexHandler ffestb_module (ffelexToken t);
160 #endif
161 #if FFESTR_F90
162 ffelexHandler ffestb_decl_recursive (ffelexToken t);
163 #endif
164 #if FFESTR_F90
165 ffelexHandler ffestb_type (ffelexToken t);
166 #endif
167 #if FFESTR_F90
168 ffelexHandler ffestb_decl_typetype (ffelexToken t);
169 #endif
170 ffelexHandler ffestb_varlist (ffelexToken t);
171 #if FFESTR_VXT
172 ffelexHandler ffestb_vxtcode (ffelexToken t);
173 #endif
174 #if FFESTR_F90
175 ffelexHandler ffestb_where (ffelexToken t);
176 #endif
177 #if HARD_F90
178 ffelexHandler ffestb_R423B (ffelexToken t);
179 #endif
180 ffelexHandler ffestb_R522 (ffelexToken t);
181 ffelexHandler ffestb_R524 (ffelexToken t);
182 ffelexHandler ffestb_R528 (ffelexToken t);
183 ffelexHandler ffestb_R537 (ffelexToken t);
184 ffelexHandler ffestb_decl_R539 (ffelexToken t);
185 ffelexHandler ffestb_R542 (ffelexToken t);
186 ffelexHandler ffestb_R544 (ffelexToken t);
187 ffelexHandler ffestb_R547 (ffelexToken t);
188 #if FFESTR_F90
189 ffelexHandler ffestb_R624 (ffelexToken t);
190 #endif
191 ffelexHandler ffestb_R809 (ffelexToken t);
192 ffelexHandler ffestb_R810 (ffelexToken t);
193 ffelexHandler ffestb_R834 (ffelexToken t);
194 ffelexHandler ffestb_R835 (ffelexToken t);
195 ffelexHandler ffestb_R838 (ffelexToken t);
196 ffelexHandler ffestb_R840 (ffelexToken t);
197 ffelexHandler ffestb_R841 (ffelexToken t);
198 ffelexHandler ffestb_R904 (ffelexToken t);
199 ffelexHandler ffestb_R907 (ffelexToken t);
200 ffelexHandler ffestb_R909 (ffelexToken t);
201 ffelexHandler ffestb_R910 (ffelexToken t);
202 ffelexHandler ffestb_R911 (ffelexToken t);
203 ffelexHandler ffestb_R923 (ffelexToken t);
204 ffelexHandler ffestb_R1001 (ffelexToken t);
205 ffelexHandler ffestb_R1102 (ffelexToken t);
206 #if FFESTR_F90
207 ffelexHandler ffestb_R1107 (ffelexToken t);
208 #endif
209 #if FFESTR_F90
210 ffelexHandler ffestb_R1202 (ffelexToken t);
211 #endif
212 ffelexHandler ffestb_R1212 (ffelexToken t);
213 ffelexHandler ffestb_R1227 (ffelexToken t);
214 #if FFESTR_F90
215 ffelexHandler ffestb_R1228 (ffelexToken t);
216 #endif
217 ffelexHandler ffestb_R1229 (ffelexToken t);
218 ffelexHandler ffestb_S3P4 (ffelexToken t);
219 #if FFESTR_VXT
220 ffelexHandler ffestb_V003 (ffelexToken t);
221 ffelexHandler ffestb_V009 (ffelexToken t);
222 ffelexHandler ffestb_V012 (ffelexToken t);
223 #endif
224 ffelexHandler ffestb_V014 (ffelexToken t);
225 #if FFESTR_VXT
226 ffelexHandler ffestb_V016 (ffelexToken t);
227 ffelexHandler ffestb_V018 (ffelexToken t);
228 ffelexHandler ffestb_V019 (ffelexToken t);
229 #endif
230 ffelexHandler ffestb_V020 (ffelexToken t);
231 #if FFESTR_VXT
232 ffelexHandler ffestb_V021 (ffelexToken t);
233 ffelexHandler ffestb_V025 (ffelexToken t);
234 ffelexHandler ffestb_V026 (ffelexToken t);
235 #endif
236 ffelexHandler ffestb_V027 (ffelexToken t);
237 
238 /* Define macros. */
239 
240 #define ffestb_init_0()
241 #define ffestb_init_1()
242 #define ffestb_init_2()
243 #define ffestb_init_3()
244 #define ffestb_init_4()
245 #define ffestb_terminate_0()
246 #define ffestb_terminate_1()
247 #define ffestb_terminate_2()
248 #define ffestb_terminate_3()
249 #define ffestb_terminate_4()
250 
251 /* End of #include file. */
252 
253 #endif /* ! GCC_F_STB_H */
254