diff options
author | obrien <obrien@FreeBSD.org> | 1999-08-26 09:30:50 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 1999-08-26 09:30:50 +0000 |
commit | 0bedf4fb30066e5e1d4342a1d3914dae7d37cba7 (patch) | |
tree | 68d8110b41afd0ebbf39167b1a4918eea667a7c5 /contrib/gcc/f/stp.h | |
parent | d4db5fb866b7ad5216abd5047774a3973b9901a9 (diff) | |
download | FreeBSD-src-0bedf4fb30066e5e1d4342a1d3914dae7d37cba7.zip FreeBSD-src-0bedf4fb30066e5e1d4342a1d3914dae7d37cba7.tar.gz |
Virgin import of gcc from EGCS 1.1.2
Diffstat (limited to 'contrib/gcc/f/stp.h')
-rw-r--r-- | contrib/gcc/f/stp.h | 508 |
1 files changed, 508 insertions, 0 deletions
diff --git a/contrib/gcc/f/stp.h b/contrib/gcc/f/stp.h new file mode 100644 index 0000000..edfccc6 --- /dev/null +++ b/contrib/gcc/f/stp.h @@ -0,0 +1,508 @@ +/* stp.h -- Private #include File (module.h template V1.0) + Copyright (C) 1995 Free Software Foundation, Inc. + Contributed by James Craig Burley (burley@gnu.org). + +This file is part of GNU Fortran. + +GNU Fortran is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Fortran is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Fortran; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. + + Owning Modules: + stp.c + + Modifications: +*/ + +/* Allow multiple inclusion to work. */ + +#ifndef _H_f_stp +#define _H_f_stp + +/* Simple definitions and enumerations. */ + +enum _ffestp_acceptix_ + { + FFESTP_acceptixFORMAT, + FFESTP_acceptix + }; +typedef enum _ffestp_acceptix_ ffestpAcceptIx; + +enum _ffestp_attrib_ + { +#if FFESTR_F90 + FFESTP_attribALLOCATABLE, +#endif + FFESTP_attribDIMENSION, + FFESTP_attribEXTERNAL, +#if FFESTR_F90 + FFESTP_attribINTENT, +#endif + FFESTP_attribINTRINSIC, +#if FFESTR_F90 + FFESTP_attribOPTIONAL, +#endif + FFESTP_attribPARAMETER, +#if FFESTR_F90 + FFESTP_attribPOINTER, +#endif +#if FFESTR_F90 + FFESTP_attribPRIVATE, + FFESTP_attribPUBLIC, +#endif + FFESTP_attribSAVE, +#if FFESTR_F90 + FFESTP_attribTARGET, +#endif + FFESTP_attrib + }; +typedef enum _ffestp_attrib_ ffestpAttrib; + +enum _ffestp_beruix_ + { + FFESTP_beruixERR, + FFESTP_beruixIOSTAT, + FFESTP_beruixUNIT, + FFESTP_beruix + }; +typedef enum _ffestp_beruix_ ffestpBeruIx; + +enum _ffestp_closeix_ + { + FFESTP_closeixERR, + FFESTP_closeixIOSTAT, + FFESTP_closeixSTATUS, + FFESTP_closeixUNIT, + FFESTP_closeix + }; +typedef enum _ffestp_closeix_ ffestpCloseIx; + +enum _ffestp_deleteix_ + { + FFESTP_deleteixERR, + FFESTP_deleteixIOSTAT, + FFESTP_deleteixREC, + FFESTP_deleteixUNIT, + FFESTP_deleteix + }; +typedef enum _ffestp_deleteix_ ffestpDeleteIx; + +enum _ffestp_findix_ + { + FFESTP_findixERR, + FFESTP_findixIOSTAT, + FFESTP_findixREC, + FFESTP_findixUNIT, + FFESTP_findix + }; +typedef enum _ffestp_findix_ ffestpFindIx; + +enum _ffestp_inquireix_ + { + FFESTP_inquireixACCESS, + FFESTP_inquireixACTION, + FFESTP_inquireixBLANK, + FFESTP_inquireixCARRIAGECONTROL, + FFESTP_inquireixDEFAULTFILE, + FFESTP_inquireixDELIM, + FFESTP_inquireixDIRECT, + FFESTP_inquireixERR, + FFESTP_inquireixEXIST, + FFESTP_inquireixFILE, + FFESTP_inquireixFORM, + FFESTP_inquireixFORMATTED, + FFESTP_inquireixIOLENGTH, + FFESTP_inquireixIOSTAT, + FFESTP_inquireixKEYED, + FFESTP_inquireixNAME, + FFESTP_inquireixNAMED, + FFESTP_inquireixNEXTREC, + FFESTP_inquireixNUMBER, + FFESTP_inquireixOPENED, + FFESTP_inquireixORGANIZATION, + FFESTP_inquireixPAD, + FFESTP_inquireixPOSITION, + FFESTP_inquireixREAD, + FFESTP_inquireixREADWRITE, + FFESTP_inquireixRECL, + FFESTP_inquireixRECORDTYPE, + FFESTP_inquireixSEQUENTIAL, + FFESTP_inquireixUNFORMATTED, + FFESTP_inquireixUNIT, + FFESTP_inquireixWRITE, + FFESTP_inquireix + }; +typedef enum _ffestp_inquireix_ ffestpInquireIx; + +enum _ffestp_openix_ + { + FFESTP_openixACCESS, + FFESTP_openixACTION, + FFESTP_openixASSOCIATEVARIABLE, + FFESTP_openixBLANK, + FFESTP_openixBLOCKSIZE, + FFESTP_openixBUFFERCOUNT, + FFESTP_openixCARRIAGECONTROL, + FFESTP_openixDEFAULTFILE, + FFESTP_openixDELIM, + FFESTP_openixDISPOSE, + FFESTP_openixERR, + FFESTP_openixEXTENDSIZE, + FFESTP_openixFILE, + FFESTP_openixFORM, + FFESTP_openixINITIALSIZE, + FFESTP_openixIOSTAT, + FFESTP_openixKEY, + FFESTP_openixMAXREC, + FFESTP_openixNOSPANBLOCKS, + FFESTP_openixORGANIZATION, + FFESTP_openixPAD, + FFESTP_openixPOSITION, + FFESTP_openixREADONLY, + FFESTP_openixRECL, + FFESTP_openixRECORDTYPE, + FFESTP_openixSHARED, + FFESTP_openixSTATUS, + FFESTP_openixUNIT, + FFESTP_openixUSEROPEN, + FFESTP_openix + }; +typedef enum _ffestp_openix_ ffestpOpenIx; + +enum _ffestp_printix_ + { + FFESTP_printixFORMAT, + FFESTP_printix + }; +typedef enum _ffestp_printix_ ffestpPrintIx; + +enum _ffestp_readix_ + { + FFESTP_readixADVANCE, + FFESTP_readixEND, + FFESTP_readixEOR, + FFESTP_readixERR, + FFESTP_readixFORMAT, /* Or NAMELIST (use expr info to + distinguish). */ + FFESTP_readixIOSTAT, + FFESTP_readixKEYEQ, + FFESTP_readixKEYGE, + FFESTP_readixKEYGT, + FFESTP_readixKEYID, + FFESTP_readixNULLS, + FFESTP_readixREC, + FFESTP_readixSIZE, + FFESTP_readixUNIT, + FFESTP_readix + }; +typedef enum _ffestp_readix_ ffestpReadIx; + +enum _ffestp_rewriteix_ + { + FFESTP_rewriteixERR, + FFESTP_rewriteixFMT, + FFESTP_rewriteixIOSTAT, + FFESTP_rewriteixUNIT, + FFESTP_rewriteix + }; +typedef enum _ffestp_rewriteix_ ffestpRewriteIx; + +enum _ffestp_typeix_ + { + FFESTP_typeixFORMAT, + FFESTP_typeix + }; +typedef enum _ffestp_typeix_ ffestpTypeIx; + +enum _ffestp_vxtcodeix_ + { + FFESTP_vxtcodeixB, + FFESTP_vxtcodeixC, + FFESTP_vxtcodeixERR, + FFESTP_vxtcodeixF, + FFESTP_vxtcodeixIOSTAT, + FFESTP_vxtcodeix + }; +typedef enum _ffestp_vxtcodeix_ ffestpVxtcodeIx; + +enum _ffestp_writeix_ + { + FFESTP_writeixADVANCE, + FFESTP_writeixEOR, + FFESTP_writeixERR, + FFESTP_writeixFORMAT, /* Or NAMELIST (use expr info to + distinguish). */ + FFESTP_writeixIOSTAT, + FFESTP_writeixREC, + FFESTP_writeixUNIT, + FFESTP_writeix + }; +typedef enum _ffestp_writeix_ ffestpWriteIx; + +#if FFESTR_F90 +enum _ffestp_definedoperator_ + { + FFESTP_definedoperatorNone, /* INTERFACE generic-name. */ + FFESTP_definedoperatorOPERATOR, /* INTERFACE + OPERATOR(defined-operator). */ + FFESTP_definedoperatorASSIGNMENT, /* INTERFACE ASSIGNMENT(=). */ + FFESTP_definedoperatorPOWER, + FFESTP_definedoperatorMULT, + FFESTP_definedoperatorADD, + FFESTP_definedoperatorCONCAT, + FFESTP_definedoperatorDIVIDE, + FFESTP_definedoperatorSUBTRACT, + FFESTP_definedoperatorNOT, + FFESTP_definedoperatorAND, + FFESTP_definedoperatorOR, + FFESTP_definedoperatorEQV, + FFESTP_definedoperatorNEQV, + FFESTP_definedoperatorEQ, + FFESTP_definedoperatorNE, + FFESTP_definedoperatorLT, + FFESTP_definedoperatorLE, + FFESTP_definedoperatorGT, + FFESTP_definedoperatorGE, + FFESTP_definedoperator + }; +typedef enum _ffestp_definedoperator_ ffestpDefinedOperator; +#endif + +enum _ffestp_dimtype_ + { + FFESTP_dimtypeNONE, + FFESTP_dimtypeKNOWN, /* Known-bounds dimension list. */ + FFESTP_dimtypeADJUSTABLE, /* Adjustable dimension list. */ + FFESTP_dimtypeASSUMED, /* Assumed dimension list (known except for + last). */ + FFESTP_dimtypeADJUSTABLEASSUMED, /* Both. */ + FFESTP_dimtype + }; +typedef enum _ffestp_dimtype_ ffestpDimtype; + +enum _ffestp_formattype_ + { + FFESTP_formattypeNone, + FFESTP_formattypeI, + FFESTP_formattypeB, + FFESTP_formattypeO, + FFESTP_formattypeZ, + FFESTP_formattypeF, + FFESTP_formattypeE, + FFESTP_formattypeEN, + FFESTP_formattypeG, + FFESTP_formattypeL, + FFESTP_formattypeA, + FFESTP_formattypeD, + FFESTP_formattypeQ, + FFESTP_formattypeDOLLAR, /* $ (V-extension). */ + FFESTP_formattypeP, + FFESTP_formattypeT, + FFESTP_formattypeTL, + FFESTP_formattypeTR, + FFESTP_formattypeX, + FFESTP_formattypeS, + FFESTP_formattypeSP, + FFESTP_formattypeSS, + FFESTP_formattypeBN, + FFESTP_formattypeBZ, + FFESTP_formattypeH, /* Hollerith, used only for error-reporting. */ + FFESTP_formattypeSLASH, + FFESTP_formattypeCOLON, + FFESTP_formattypeR1016, /* char-literal-constant or cHchars. */ + FFESTP_formattypeFORMAT, /* [r](format-item-list). */ + FFESTP_formattype + }; +typedef enum _ffestp_formattype_ ffestpFormatType; + +enum _ffestp_type_ + { + FFESTP_typeNone, + FFESTP_typeINTEGER, + FFESTP_typeREAL, + FFESTP_typeCOMPLEX, + FFESTP_typeLOGICAL, + FFESTP_typeCHARACTER, + FFESTP_typeDBLPRCSN, + FFESTP_typeDBLCMPLX, + FFESTP_typeBYTE, + FFESTP_typeWORD, +#if FFESTR_F90 + FFESTP_typeTYPE, +#endif + FFESTP_type + }; +typedef enum _ffestp_type_ ffestpType; + +/* Typedefs. */ + +typedef struct _ffest_accept_stmt_ ffestpAcceptStmt; +typedef struct _ffest_beru_stmt_ ffestpBeruStmt; +typedef struct _ffest_close_stmt_ ffestpCloseStmt; +typedef struct _ffest_delete_stmt_ ffestpDeleteStmt; +typedef struct _ffestp_file ffestpFile; +typedef struct _ffest_find_stmt_ ffestpFindStmt; +typedef struct _ffest_inquire_stmt_ ffestpInquireStmt; +typedef struct _ffest_open_stmt_ ffestpOpenStmt; +typedef struct _ffest_print_stmt_ ffestpPrintStmt; +typedef struct _ffest_read_stmt_ ffestpReadStmt; +typedef struct _ffest_rewrite_stmt_ ffestpRewriteStmt; +typedef struct _ffest_type_stmt_ ffestpTypeStmt; +typedef struct _ffest_vxtcode_stmt_ ffestpVxtcodeStmt; +typedef struct _ffest_write_stmt_ ffestpWriteStmt; + +/* Include files needed by this one. */ + +#include "bld.h" +#include "lab.h" +#include "lex.h" +#include "stp.h" +#include "stt.h" + +/* Structure definitions. */ + +struct _ffestp_file + { + bool kw_or_val_present; /* If FALSE, all else is n/a. */ + bool kw_present; /* Indicates whether kw has a token. */ + bool value_present; /* Indicates whether value/expr are valid. */ + bool value_is_label; /* TRUE if expr has no expression, value is + NUMBER. */ + ffelexToken kw; /* The keyword, iff kw_or_val_present && + kw_present. */ + ffelexToken value; /* The value, iff kw_or_val_present && + value_present. */ + union + { + ffebld expr; /* The expr, iff kw_or_val_present && + value_present && !value_is_label. */ + ffelab label; /* The label, iff kw_or_val_present && + value_present && value_is_label. */ + } + u; + }; + +struct _ffest_accept_stmt_ + { + ffestpFile accept_spec[FFESTP_acceptix]; + }; + +struct _ffest_beru_stmt_ + { + ffestpFile beru_spec[FFESTP_beruix]; + }; + +struct _ffest_close_stmt_ + { + ffestpFile close_spec[FFESTP_closeix]; + }; + +struct _ffest_delete_stmt_ + { + ffestpFile delete_spec[FFESTP_deleteix]; + }; + +struct _ffest_find_stmt_ + { + ffestpFile find_spec[FFESTP_findix]; + }; + +struct _ffest_imp_list_ + { + ffesttImpList next; + ffesttImpList previous; + ffelexToken first; + ffelexToken last; /* NULL if a single letter. */ + }; + +struct _ffest_inquire_stmt_ + { + ffestpFile inquire_spec[FFESTP_inquireix]; + }; + +struct _ffest_open_stmt_ + { + ffestpFile open_spec[FFESTP_openix]; + }; + +struct _ffest_print_stmt_ + { + ffestpFile print_spec[FFESTP_printix]; + }; + +struct _ffest_read_stmt_ + { + ffestpFile read_spec[FFESTP_readix]; + }; + +struct _ffest_rewrite_stmt_ + { + ffestpFile rewrite_spec[FFESTP_rewriteix]; + }; + +struct _ffest_type_stmt_ + { + ffestpFile type_spec[FFESTP_typeix]; + }; + +struct _ffest_vxtcode_stmt_ + { + ffestpFile vxtcode_spec[FFESTP_vxtcodeix]; + }; + +struct _ffest_write_stmt_ + { + ffestpFile write_spec[FFESTP_writeix]; + }; + +union _ffestp_fileu_ + { + ffestpAcceptStmt accept; + ffestpBeruStmt beru; + ffestpCloseStmt close; + ffestpDeleteStmt delete; + ffestpFindStmt find; + ffestpInquireStmt inquire; + ffestpOpenStmt open; + ffestpPrintStmt print; + ffestpReadStmt read; + ffestpRewriteStmt rewrite; + ffestpTypeStmt type; + ffestpVxtcodeStmt vxtcode; + ffestpWriteStmt write; + }; + +/* Global objects accessed by users of this module. */ + +extern union _ffestp_fileu_ ffestp_file; + +/* Declare functions with prototypes. */ + + +/* Define macros. */ + +#define ffestp_init_0() +#define ffestp_init_1() +#define ffestp_init_2() +#define ffestp_init_3() +#define ffestp_init_4() +#define ffestp_terminate_0() +#define ffestp_terminate_1() +#define ffestp_terminate_2() +#define ffestp_terminate_3() +#define ffestp_terminate_4() + +/* End of #include file. */ + +#endif |