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