xref: /openbsd-src/gnu/usr.bin/gcc/gcc/f/stp.h (revision c87b03e512fc05ed6e0222f6fb0ae86264b1d05b)
1*c87b03e5Sespie /* stp.h -- Private #include File (module.h template V1.0)
2*c87b03e5Sespie    Copyright (C) 1995 Free Software Foundation, Inc.
3*c87b03e5Sespie    Contributed by James Craig Burley.
4*c87b03e5Sespie 
5*c87b03e5Sespie This file is part of GNU Fortran.
6*c87b03e5Sespie 
7*c87b03e5Sespie GNU Fortran is free software; you can redistribute it and/or modify
8*c87b03e5Sespie it under the terms of the GNU General Public License as published by
9*c87b03e5Sespie the Free Software Foundation; either version 2, or (at your option)
10*c87b03e5Sespie any later version.
11*c87b03e5Sespie 
12*c87b03e5Sespie GNU Fortran is distributed in the hope that it will be useful,
13*c87b03e5Sespie but WITHOUT ANY WARRANTY; without even the implied warranty of
14*c87b03e5Sespie MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15*c87b03e5Sespie GNU General Public License for more details.
16*c87b03e5Sespie 
17*c87b03e5Sespie You should have received a copy of the GNU General Public License
18*c87b03e5Sespie along with GNU Fortran; see the file COPYING.  If not, write to
19*c87b03e5Sespie the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20*c87b03e5Sespie 02111-1307, USA.
21*c87b03e5Sespie 
22*c87b03e5Sespie    Owning Modules:
23*c87b03e5Sespie       stp.c
24*c87b03e5Sespie 
25*c87b03e5Sespie    Modifications:
26*c87b03e5Sespie */
27*c87b03e5Sespie 
28*c87b03e5Sespie /* Allow multiple inclusion to work. */
29*c87b03e5Sespie 
30*c87b03e5Sespie #ifndef GCC_F_STP_H
31*c87b03e5Sespie #define GCC_F_STP_H
32*c87b03e5Sespie 
33*c87b03e5Sespie /* Simple definitions and enumerations. */
34*c87b03e5Sespie 
35*c87b03e5Sespie enum _ffestp_acceptix_
36*c87b03e5Sespie   {
37*c87b03e5Sespie     FFESTP_acceptixFORMAT,
38*c87b03e5Sespie     FFESTP_acceptix
39*c87b03e5Sespie   };
40*c87b03e5Sespie typedef enum _ffestp_acceptix_ ffestpAcceptIx;
41*c87b03e5Sespie 
42*c87b03e5Sespie enum _ffestp_attrib_
43*c87b03e5Sespie   {
44*c87b03e5Sespie #if FFESTR_F90
45*c87b03e5Sespie     FFESTP_attribALLOCATABLE,
46*c87b03e5Sespie #endif
47*c87b03e5Sespie     FFESTP_attribDIMENSION,
48*c87b03e5Sespie     FFESTP_attribEXTERNAL,
49*c87b03e5Sespie #if FFESTR_F90
50*c87b03e5Sespie     FFESTP_attribINTENT,
51*c87b03e5Sespie #endif
52*c87b03e5Sespie     FFESTP_attribINTRINSIC,
53*c87b03e5Sespie #if FFESTR_F90
54*c87b03e5Sespie     FFESTP_attribOPTIONAL,
55*c87b03e5Sespie #endif
56*c87b03e5Sespie     FFESTP_attribPARAMETER,
57*c87b03e5Sespie #if FFESTR_F90
58*c87b03e5Sespie     FFESTP_attribPOINTER,
59*c87b03e5Sespie #endif
60*c87b03e5Sespie #if FFESTR_F90
61*c87b03e5Sespie     FFESTP_attribPRIVATE,
62*c87b03e5Sespie     FFESTP_attribPUBLIC,
63*c87b03e5Sespie #endif
64*c87b03e5Sespie     FFESTP_attribSAVE,
65*c87b03e5Sespie #if FFESTR_F90
66*c87b03e5Sespie     FFESTP_attribTARGET,
67*c87b03e5Sespie #endif
68*c87b03e5Sespie     FFESTP_attrib
69*c87b03e5Sespie   };
70*c87b03e5Sespie typedef enum _ffestp_attrib_ ffestpAttrib;
71*c87b03e5Sespie 
72*c87b03e5Sespie enum _ffestp_beruix_
73*c87b03e5Sespie   {
74*c87b03e5Sespie     FFESTP_beruixERR,
75*c87b03e5Sespie     FFESTP_beruixIOSTAT,
76*c87b03e5Sespie     FFESTP_beruixUNIT,
77*c87b03e5Sespie     FFESTP_beruix
78*c87b03e5Sespie   };
79*c87b03e5Sespie typedef enum _ffestp_beruix_ ffestpBeruIx;
80*c87b03e5Sespie 
81*c87b03e5Sespie enum _ffestp_closeix_
82*c87b03e5Sespie   {
83*c87b03e5Sespie     FFESTP_closeixERR,
84*c87b03e5Sespie     FFESTP_closeixIOSTAT,
85*c87b03e5Sespie     FFESTP_closeixSTATUS,
86*c87b03e5Sespie     FFESTP_closeixUNIT,
87*c87b03e5Sespie     FFESTP_closeix
88*c87b03e5Sespie   };
89*c87b03e5Sespie typedef enum _ffestp_closeix_ ffestpCloseIx;
90*c87b03e5Sespie 
91*c87b03e5Sespie enum _ffestp_deleteix_
92*c87b03e5Sespie   {
93*c87b03e5Sespie     FFESTP_deleteixERR,
94*c87b03e5Sespie     FFESTP_deleteixIOSTAT,
95*c87b03e5Sespie     FFESTP_deleteixREC,
96*c87b03e5Sespie     FFESTP_deleteixUNIT,
97*c87b03e5Sespie     FFESTP_deleteix
98*c87b03e5Sespie   };
99*c87b03e5Sespie typedef enum _ffestp_deleteix_ ffestpDeleteIx;
100*c87b03e5Sespie 
101*c87b03e5Sespie enum _ffestp_findix_
102*c87b03e5Sespie   {
103*c87b03e5Sespie     FFESTP_findixERR,
104*c87b03e5Sespie     FFESTP_findixIOSTAT,
105*c87b03e5Sespie     FFESTP_findixREC,
106*c87b03e5Sespie     FFESTP_findixUNIT,
107*c87b03e5Sespie     FFESTP_findix
108*c87b03e5Sespie   };
109*c87b03e5Sespie typedef enum _ffestp_findix_ ffestpFindIx;
110*c87b03e5Sespie 
111*c87b03e5Sespie enum _ffestp_inquireix_
112*c87b03e5Sespie   {
113*c87b03e5Sespie     FFESTP_inquireixACCESS,
114*c87b03e5Sespie     FFESTP_inquireixACTION,
115*c87b03e5Sespie     FFESTP_inquireixBLANK,
116*c87b03e5Sespie     FFESTP_inquireixCARRIAGECONTROL,
117*c87b03e5Sespie     FFESTP_inquireixDEFAULTFILE,
118*c87b03e5Sespie     FFESTP_inquireixDELIM,
119*c87b03e5Sespie     FFESTP_inquireixDIRECT,
120*c87b03e5Sespie     FFESTP_inquireixERR,
121*c87b03e5Sespie     FFESTP_inquireixEXIST,
122*c87b03e5Sespie     FFESTP_inquireixFILE,
123*c87b03e5Sespie     FFESTP_inquireixFORM,
124*c87b03e5Sespie     FFESTP_inquireixFORMATTED,
125*c87b03e5Sespie     FFESTP_inquireixIOLENGTH,
126*c87b03e5Sespie     FFESTP_inquireixIOSTAT,
127*c87b03e5Sespie     FFESTP_inquireixKEYED,
128*c87b03e5Sespie     FFESTP_inquireixNAME,
129*c87b03e5Sespie     FFESTP_inquireixNAMED,
130*c87b03e5Sespie     FFESTP_inquireixNEXTREC,
131*c87b03e5Sespie     FFESTP_inquireixNUMBER,
132*c87b03e5Sespie     FFESTP_inquireixOPENED,
133*c87b03e5Sespie     FFESTP_inquireixORGANIZATION,
134*c87b03e5Sespie     FFESTP_inquireixPAD,
135*c87b03e5Sespie     FFESTP_inquireixPOSITION,
136*c87b03e5Sespie     FFESTP_inquireixREAD,
137*c87b03e5Sespie     FFESTP_inquireixREADWRITE,
138*c87b03e5Sespie     FFESTP_inquireixRECL,
139*c87b03e5Sespie     FFESTP_inquireixRECORDTYPE,
140*c87b03e5Sespie     FFESTP_inquireixSEQUENTIAL,
141*c87b03e5Sespie     FFESTP_inquireixUNFORMATTED,
142*c87b03e5Sespie     FFESTP_inquireixUNIT,
143*c87b03e5Sespie     FFESTP_inquireixWRITE,
144*c87b03e5Sespie     FFESTP_inquireix
145*c87b03e5Sespie   };
146*c87b03e5Sespie typedef enum _ffestp_inquireix_ ffestpInquireIx;
147*c87b03e5Sespie 
148*c87b03e5Sespie enum _ffestp_openix_
149*c87b03e5Sespie   {
150*c87b03e5Sespie     FFESTP_openixACCESS,
151*c87b03e5Sespie     FFESTP_openixACTION,
152*c87b03e5Sespie     FFESTP_openixASSOCIATEVARIABLE,
153*c87b03e5Sespie     FFESTP_openixBLANK,
154*c87b03e5Sespie     FFESTP_openixBLOCKSIZE,
155*c87b03e5Sespie     FFESTP_openixBUFFERCOUNT,
156*c87b03e5Sespie     FFESTP_openixCARRIAGECONTROL,
157*c87b03e5Sespie     FFESTP_openixDEFAULTFILE,
158*c87b03e5Sespie     FFESTP_openixDELIM,
159*c87b03e5Sespie     FFESTP_openixDISPOSE,
160*c87b03e5Sespie     FFESTP_openixERR,
161*c87b03e5Sespie     FFESTP_openixEXTENDSIZE,
162*c87b03e5Sespie     FFESTP_openixFILE,
163*c87b03e5Sespie     FFESTP_openixFORM,
164*c87b03e5Sespie     FFESTP_openixINITIALSIZE,
165*c87b03e5Sespie     FFESTP_openixIOSTAT,
166*c87b03e5Sespie     FFESTP_openixKEY,
167*c87b03e5Sespie     FFESTP_openixMAXREC,
168*c87b03e5Sespie     FFESTP_openixNOSPANBLOCKS,
169*c87b03e5Sespie     FFESTP_openixORGANIZATION,
170*c87b03e5Sespie     FFESTP_openixPAD,
171*c87b03e5Sespie     FFESTP_openixPOSITION,
172*c87b03e5Sespie     FFESTP_openixREADONLY,
173*c87b03e5Sespie     FFESTP_openixRECL,
174*c87b03e5Sespie     FFESTP_openixRECORDTYPE,
175*c87b03e5Sespie     FFESTP_openixSHARED,
176*c87b03e5Sespie     FFESTP_openixSTATUS,
177*c87b03e5Sespie     FFESTP_openixUNIT,
178*c87b03e5Sespie     FFESTP_openixUSEROPEN,
179*c87b03e5Sespie     FFESTP_openix
180*c87b03e5Sespie   };
181*c87b03e5Sespie typedef enum _ffestp_openix_ ffestpOpenIx;
182*c87b03e5Sespie 
183*c87b03e5Sespie enum _ffestp_printix_
184*c87b03e5Sespie   {
185*c87b03e5Sespie     FFESTP_printixFORMAT,
186*c87b03e5Sespie     FFESTP_printix
187*c87b03e5Sespie   };
188*c87b03e5Sespie typedef enum _ffestp_printix_ ffestpPrintIx;
189*c87b03e5Sespie 
190*c87b03e5Sespie enum _ffestp_readix_
191*c87b03e5Sespie   {
192*c87b03e5Sespie     FFESTP_readixADVANCE,
193*c87b03e5Sespie     FFESTP_readixEND,
194*c87b03e5Sespie     FFESTP_readixEOR,
195*c87b03e5Sespie     FFESTP_readixERR,
196*c87b03e5Sespie     FFESTP_readixFORMAT,	/* Or NAMELIST (use expr info to
197*c87b03e5Sespie 				   distinguish). */
198*c87b03e5Sespie     FFESTP_readixIOSTAT,
199*c87b03e5Sespie     FFESTP_readixKEYEQ,
200*c87b03e5Sespie     FFESTP_readixKEYGE,
201*c87b03e5Sespie     FFESTP_readixKEYGT,
202*c87b03e5Sespie     FFESTP_readixKEYID,
203*c87b03e5Sespie     FFESTP_readixNULLS,
204*c87b03e5Sespie     FFESTP_readixREC,
205*c87b03e5Sespie     FFESTP_readixSIZE,
206*c87b03e5Sespie     FFESTP_readixUNIT,
207*c87b03e5Sespie     FFESTP_readix
208*c87b03e5Sespie   };
209*c87b03e5Sespie typedef enum _ffestp_readix_ ffestpReadIx;
210*c87b03e5Sespie 
211*c87b03e5Sespie enum _ffestp_rewriteix_
212*c87b03e5Sespie   {
213*c87b03e5Sespie     FFESTP_rewriteixERR,
214*c87b03e5Sespie     FFESTP_rewriteixFMT,
215*c87b03e5Sespie     FFESTP_rewriteixIOSTAT,
216*c87b03e5Sespie     FFESTP_rewriteixUNIT,
217*c87b03e5Sespie     FFESTP_rewriteix
218*c87b03e5Sespie   };
219*c87b03e5Sespie typedef enum _ffestp_rewriteix_ ffestpRewriteIx;
220*c87b03e5Sespie 
221*c87b03e5Sespie enum _ffestp_typeix_
222*c87b03e5Sespie   {
223*c87b03e5Sespie     FFESTP_typeixFORMAT,
224*c87b03e5Sespie     FFESTP_typeix
225*c87b03e5Sespie   };
226*c87b03e5Sespie typedef enum _ffestp_typeix_ ffestpTypeIx;
227*c87b03e5Sespie 
228*c87b03e5Sespie enum _ffestp_vxtcodeix_
229*c87b03e5Sespie   {
230*c87b03e5Sespie     FFESTP_vxtcodeixB,
231*c87b03e5Sespie     FFESTP_vxtcodeixC,
232*c87b03e5Sespie     FFESTP_vxtcodeixERR,
233*c87b03e5Sespie     FFESTP_vxtcodeixF,
234*c87b03e5Sespie     FFESTP_vxtcodeixIOSTAT,
235*c87b03e5Sespie     FFESTP_vxtcodeix
236*c87b03e5Sespie   };
237*c87b03e5Sespie typedef enum _ffestp_vxtcodeix_ ffestpVxtcodeIx;
238*c87b03e5Sespie 
239*c87b03e5Sespie enum _ffestp_writeix_
240*c87b03e5Sespie   {
241*c87b03e5Sespie     FFESTP_writeixADVANCE,
242*c87b03e5Sespie     FFESTP_writeixEOR,
243*c87b03e5Sespie     FFESTP_writeixERR,
244*c87b03e5Sespie     FFESTP_writeixFORMAT,	/* Or NAMELIST (use expr info to
245*c87b03e5Sespie 				   distinguish). */
246*c87b03e5Sespie     FFESTP_writeixIOSTAT,
247*c87b03e5Sespie     FFESTP_writeixREC,
248*c87b03e5Sespie     FFESTP_writeixUNIT,
249*c87b03e5Sespie     FFESTP_writeix
250*c87b03e5Sespie   };
251*c87b03e5Sespie typedef enum _ffestp_writeix_ ffestpWriteIx;
252*c87b03e5Sespie 
253*c87b03e5Sespie #if FFESTR_F90
254*c87b03e5Sespie enum _ffestp_definedoperator_
255*c87b03e5Sespie   {
256*c87b03e5Sespie     FFESTP_definedoperatorNone,	/* INTERFACE generic-name. */
257*c87b03e5Sespie     FFESTP_definedoperatorOPERATOR,	/* INTERFACE
258*c87b03e5Sespie 					   OPERATOR(defined-operator). */
259*c87b03e5Sespie     FFESTP_definedoperatorASSIGNMENT,	/* INTERFACE ASSIGNMENT(=). */
260*c87b03e5Sespie     FFESTP_definedoperatorPOWER,
261*c87b03e5Sespie     FFESTP_definedoperatorMULT,
262*c87b03e5Sespie     FFESTP_definedoperatorADD,
263*c87b03e5Sespie     FFESTP_definedoperatorCONCAT,
264*c87b03e5Sespie     FFESTP_definedoperatorDIVIDE,
265*c87b03e5Sespie     FFESTP_definedoperatorSUBTRACT,
266*c87b03e5Sespie     FFESTP_definedoperatorNOT,
267*c87b03e5Sespie     FFESTP_definedoperatorAND,
268*c87b03e5Sespie     FFESTP_definedoperatorOR,
269*c87b03e5Sespie     FFESTP_definedoperatorEQV,
270*c87b03e5Sespie     FFESTP_definedoperatorNEQV,
271*c87b03e5Sespie     FFESTP_definedoperatorEQ,
272*c87b03e5Sespie     FFESTP_definedoperatorNE,
273*c87b03e5Sespie     FFESTP_definedoperatorLT,
274*c87b03e5Sespie     FFESTP_definedoperatorLE,
275*c87b03e5Sespie     FFESTP_definedoperatorGT,
276*c87b03e5Sespie     FFESTP_definedoperatorGE,
277*c87b03e5Sespie     FFESTP_definedoperator
278*c87b03e5Sespie   };
279*c87b03e5Sespie typedef enum _ffestp_definedoperator_ ffestpDefinedOperator;
280*c87b03e5Sespie #endif
281*c87b03e5Sespie 
282*c87b03e5Sespie enum _ffestp_dimtype_
283*c87b03e5Sespie   {
284*c87b03e5Sespie     FFESTP_dimtypeNONE,
285*c87b03e5Sespie     FFESTP_dimtypeKNOWN,	/* Known-bounds dimension list. */
286*c87b03e5Sespie     FFESTP_dimtypeADJUSTABLE,	/* Adjustable dimension list. */
287*c87b03e5Sespie     FFESTP_dimtypeASSUMED,	/* Assumed dimension list (known except for
288*c87b03e5Sespie 				   last). */
289*c87b03e5Sespie     FFESTP_dimtypeADJUSTABLEASSUMED,	/* Both. */
290*c87b03e5Sespie     FFESTP_dimtype
291*c87b03e5Sespie   };
292*c87b03e5Sespie typedef enum _ffestp_dimtype_ ffestpDimtype;
293*c87b03e5Sespie 
294*c87b03e5Sespie enum _ffestp_formattype_
295*c87b03e5Sespie   {
296*c87b03e5Sespie     FFESTP_formattypeNone,
297*c87b03e5Sespie     FFESTP_formattypeI,
298*c87b03e5Sespie     FFESTP_formattypeB,
299*c87b03e5Sespie     FFESTP_formattypeO,
300*c87b03e5Sespie     FFESTP_formattypeZ,
301*c87b03e5Sespie     FFESTP_formattypeF,
302*c87b03e5Sespie     FFESTP_formattypeE,
303*c87b03e5Sespie     FFESTP_formattypeEN,
304*c87b03e5Sespie     FFESTP_formattypeG,
305*c87b03e5Sespie     FFESTP_formattypeL,
306*c87b03e5Sespie     FFESTP_formattypeA,
307*c87b03e5Sespie     FFESTP_formattypeD,
308*c87b03e5Sespie     FFESTP_formattypeQ,
309*c87b03e5Sespie     FFESTP_formattypeDOLLAR,	/* $ (V-extension). */
310*c87b03e5Sespie     FFESTP_formattypeP,
311*c87b03e5Sespie     FFESTP_formattypeT,
312*c87b03e5Sespie     FFESTP_formattypeTL,
313*c87b03e5Sespie     FFESTP_formattypeTR,
314*c87b03e5Sespie     FFESTP_formattypeX,
315*c87b03e5Sespie     FFESTP_formattypeS,
316*c87b03e5Sespie     FFESTP_formattypeSP,
317*c87b03e5Sespie     FFESTP_formattypeSS,
318*c87b03e5Sespie     FFESTP_formattypeBN,
319*c87b03e5Sespie     FFESTP_formattypeBZ,
320*c87b03e5Sespie     FFESTP_formattypeH,		/* Hollerith, used only for error-reporting. */
321*c87b03e5Sespie     FFESTP_formattypeSLASH,
322*c87b03e5Sespie     FFESTP_formattypeCOLON,
323*c87b03e5Sespie     FFESTP_formattypeR1016,	/* char-literal-constant or cHchars. */
324*c87b03e5Sespie     FFESTP_formattypeFORMAT,	/* [r](format-item-list). */
325*c87b03e5Sespie     FFESTP_formattype
326*c87b03e5Sespie   };
327*c87b03e5Sespie typedef enum _ffestp_formattype_ ffestpFormatType;
328*c87b03e5Sespie 
329*c87b03e5Sespie enum _ffestp_type_
330*c87b03e5Sespie   {
331*c87b03e5Sespie     FFESTP_typeNone,
332*c87b03e5Sespie     FFESTP_typeINTEGER,
333*c87b03e5Sespie     FFESTP_typeREAL,
334*c87b03e5Sespie     FFESTP_typeCOMPLEX,
335*c87b03e5Sespie     FFESTP_typeLOGICAL,
336*c87b03e5Sespie     FFESTP_typeCHARACTER,
337*c87b03e5Sespie     FFESTP_typeDBLPRCSN,
338*c87b03e5Sespie     FFESTP_typeDBLCMPLX,
339*c87b03e5Sespie     FFESTP_typeBYTE,
340*c87b03e5Sespie     FFESTP_typeWORD,
341*c87b03e5Sespie #if FFESTR_F90
342*c87b03e5Sespie     FFESTP_typeTYPE,
343*c87b03e5Sespie #endif
344*c87b03e5Sespie     FFESTP_type
345*c87b03e5Sespie   };
346*c87b03e5Sespie typedef enum _ffestp_type_ ffestpType;
347*c87b03e5Sespie 
348*c87b03e5Sespie /* Typedefs. */
349*c87b03e5Sespie 
350*c87b03e5Sespie typedef struct _ffest_accept_stmt_ ffestpAcceptStmt;
351*c87b03e5Sespie typedef struct _ffest_beru_stmt_ ffestpBeruStmt;
352*c87b03e5Sespie typedef struct _ffest_close_stmt_ ffestpCloseStmt;
353*c87b03e5Sespie typedef struct _ffest_delete_stmt_ ffestpDeleteStmt;
354*c87b03e5Sespie typedef struct _ffestp_file ffestpFile;
355*c87b03e5Sespie typedef struct _ffest_find_stmt_ ffestpFindStmt;
356*c87b03e5Sespie typedef struct _ffest_inquire_stmt_ ffestpInquireStmt;
357*c87b03e5Sespie typedef struct _ffest_open_stmt_ ffestpOpenStmt;
358*c87b03e5Sespie typedef struct _ffest_print_stmt_ ffestpPrintStmt;
359*c87b03e5Sespie typedef struct _ffest_read_stmt_ ffestpReadStmt;
360*c87b03e5Sespie typedef struct _ffest_rewrite_stmt_ ffestpRewriteStmt;
361*c87b03e5Sespie typedef struct _ffest_type_stmt_ ffestpTypeStmt;
362*c87b03e5Sespie typedef struct _ffest_vxtcode_stmt_ ffestpVxtcodeStmt;
363*c87b03e5Sespie typedef struct _ffest_write_stmt_ ffestpWriteStmt;
364*c87b03e5Sespie 
365*c87b03e5Sespie /* Include files needed by this one. */
366*c87b03e5Sespie 
367*c87b03e5Sespie #include "bld.h"
368*c87b03e5Sespie #include "lab.h"
369*c87b03e5Sespie #include "lex.h"
370*c87b03e5Sespie #include "stp.h"
371*c87b03e5Sespie #include "stt.h"
372*c87b03e5Sespie 
373*c87b03e5Sespie /* Structure definitions. */
374*c87b03e5Sespie 
375*c87b03e5Sespie struct _ffestp_file
376*c87b03e5Sespie   {
377*c87b03e5Sespie     bool kw_or_val_present;	/* If FALSE, all else is n/a. */
378*c87b03e5Sespie     bool kw_present;		/* Indicates whether kw has a token. */
379*c87b03e5Sespie     bool value_present;		/* Indicates whether value/expr are valid. */
380*c87b03e5Sespie     bool value_is_label;	/* TRUE if expr has no expression, value is
381*c87b03e5Sespie 				   NUMBER. */
382*c87b03e5Sespie     ffelexToken kw;		/* The keyword, iff kw_or_val_present &&
383*c87b03e5Sespie 				   kw_present. */
384*c87b03e5Sespie     ffelexToken value;		/* The value, iff kw_or_val_present &&
385*c87b03e5Sespie 				   value_present. */
386*c87b03e5Sespie     union
387*c87b03e5Sespie       {
388*c87b03e5Sespie 	ffebld expr;		/* The expr, iff kw_or_val_present &&
389*c87b03e5Sespie 				   value_present && !value_is_label. */
390*c87b03e5Sespie 	ffelab label;		/* The label, iff kw_or_val_present &&
391*c87b03e5Sespie 				   value_present && value_is_label. */
392*c87b03e5Sespie       }
393*c87b03e5Sespie     u;
394*c87b03e5Sespie   };
395*c87b03e5Sespie 
396*c87b03e5Sespie struct _ffest_accept_stmt_
397*c87b03e5Sespie   {
398*c87b03e5Sespie     ffestpFile accept_spec[FFESTP_acceptix];
399*c87b03e5Sespie   };
400*c87b03e5Sespie 
401*c87b03e5Sespie struct _ffest_beru_stmt_
402*c87b03e5Sespie   {
403*c87b03e5Sespie     ffestpFile beru_spec[FFESTP_beruix];
404*c87b03e5Sespie   };
405*c87b03e5Sespie 
406*c87b03e5Sespie struct _ffest_close_stmt_
407*c87b03e5Sespie   {
408*c87b03e5Sespie     ffestpFile close_spec[FFESTP_closeix];
409*c87b03e5Sespie   };
410*c87b03e5Sespie 
411*c87b03e5Sespie struct _ffest_delete_stmt_
412*c87b03e5Sespie   {
413*c87b03e5Sespie     ffestpFile delete_spec[FFESTP_deleteix];
414*c87b03e5Sespie   };
415*c87b03e5Sespie 
416*c87b03e5Sespie struct _ffest_find_stmt_
417*c87b03e5Sespie   {
418*c87b03e5Sespie     ffestpFile find_spec[FFESTP_findix];
419*c87b03e5Sespie   };
420*c87b03e5Sespie 
421*c87b03e5Sespie struct _ffest_imp_list_
422*c87b03e5Sespie   {
423*c87b03e5Sespie     ffesttImpList next;
424*c87b03e5Sespie     ffesttImpList previous;
425*c87b03e5Sespie     ffelexToken first;
426*c87b03e5Sespie     ffelexToken last;		/* NULL if a single letter. */
427*c87b03e5Sespie   };
428*c87b03e5Sespie 
429*c87b03e5Sespie struct _ffest_inquire_stmt_
430*c87b03e5Sespie   {
431*c87b03e5Sespie     ffestpFile inquire_spec[FFESTP_inquireix];
432*c87b03e5Sespie   };
433*c87b03e5Sespie 
434*c87b03e5Sespie struct _ffest_open_stmt_
435*c87b03e5Sespie   {
436*c87b03e5Sespie     ffestpFile open_spec[FFESTP_openix];
437*c87b03e5Sespie   };
438*c87b03e5Sespie 
439*c87b03e5Sespie struct _ffest_print_stmt_
440*c87b03e5Sespie   {
441*c87b03e5Sespie     ffestpFile print_spec[FFESTP_printix];
442*c87b03e5Sespie   };
443*c87b03e5Sespie 
444*c87b03e5Sespie struct _ffest_read_stmt_
445*c87b03e5Sespie   {
446*c87b03e5Sespie     ffestpFile read_spec[FFESTP_readix];
447*c87b03e5Sespie   };
448*c87b03e5Sespie 
449*c87b03e5Sespie struct _ffest_rewrite_stmt_
450*c87b03e5Sespie   {
451*c87b03e5Sespie     ffestpFile rewrite_spec[FFESTP_rewriteix];
452*c87b03e5Sespie   };
453*c87b03e5Sespie 
454*c87b03e5Sespie struct _ffest_type_stmt_
455*c87b03e5Sespie   {
456*c87b03e5Sespie     ffestpFile type_spec[FFESTP_typeix];
457*c87b03e5Sespie   };
458*c87b03e5Sespie 
459*c87b03e5Sespie struct _ffest_vxtcode_stmt_
460*c87b03e5Sespie   {
461*c87b03e5Sespie     ffestpFile vxtcode_spec[FFESTP_vxtcodeix];
462*c87b03e5Sespie   };
463*c87b03e5Sespie 
464*c87b03e5Sespie struct _ffest_write_stmt_
465*c87b03e5Sespie   {
466*c87b03e5Sespie     ffestpFile write_spec[FFESTP_writeix];
467*c87b03e5Sespie   };
468*c87b03e5Sespie 
469*c87b03e5Sespie union _ffestp_fileu_
470*c87b03e5Sespie   {
471*c87b03e5Sespie     ffestpAcceptStmt accept;
472*c87b03e5Sespie     ffestpBeruStmt beru;
473*c87b03e5Sespie     ffestpCloseStmt close;
474*c87b03e5Sespie     ffestpDeleteStmt delete;
475*c87b03e5Sespie     ffestpFindStmt find;
476*c87b03e5Sespie     ffestpInquireStmt inquire;
477*c87b03e5Sespie     ffestpOpenStmt open;
478*c87b03e5Sespie     ffestpPrintStmt print;
479*c87b03e5Sespie     ffestpReadStmt read;
480*c87b03e5Sespie     ffestpRewriteStmt rewrite;
481*c87b03e5Sespie     ffestpTypeStmt type;
482*c87b03e5Sespie     ffestpVxtcodeStmt vxtcode;
483*c87b03e5Sespie     ffestpWriteStmt write;
484*c87b03e5Sespie   };
485*c87b03e5Sespie 
486*c87b03e5Sespie /* Global objects accessed by users of this module. */
487*c87b03e5Sespie 
488*c87b03e5Sespie extern union _ffestp_fileu_ ffestp_file;
489*c87b03e5Sespie 
490*c87b03e5Sespie /* Declare functions with prototypes. */
491*c87b03e5Sespie 
492*c87b03e5Sespie 
493*c87b03e5Sespie /* Define macros. */
494*c87b03e5Sespie 
495*c87b03e5Sespie #define ffestp_init_0()
496*c87b03e5Sespie #define ffestp_init_1()
497*c87b03e5Sespie #define ffestp_init_2()
498*c87b03e5Sespie #define ffestp_init_3()
499*c87b03e5Sespie #define ffestp_init_4()
500*c87b03e5Sespie #define ffestp_terminate_0()
501*c87b03e5Sespie #define ffestp_terminate_1()
502*c87b03e5Sespie #define ffestp_terminate_2()
503*c87b03e5Sespie #define ffestp_terminate_3()
504*c87b03e5Sespie #define ffestp_terminate_4()
505*c87b03e5Sespie 
506*c87b03e5Sespie /* End of #include file. */
507*c87b03e5Sespie 
508*c87b03e5Sespie #endif /* ! GCC_F_STP_H */
509