diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-08-12 07:47:32 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-08-12 07:47:32 +0000 |
commit | b2f877e9db26ec43ff364a9ed1b43d2012023222 (patch) | |
tree | 9338aae2651126a7f5a07aba373f5643beb8dfde /gcc/f/stv.h | |
parent | a66ed8d6cf7db67b6d94735f61a57bd2ac583bea (diff) | |
download | ppe42-gcc-b2f877e9db26ec43ff364a9ed1b43d2012023222.tar.gz ppe42-gcc-b2f877e9db26ec43ff364a9ed1b43d2012023222.zip |
Initial revision
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14772 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/f/stv.h')
-rw-r--r-- | gcc/f/stv.h | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/gcc/f/stv.h b/gcc/f/stv.h new file mode 100644 index 00000000000..6cd9299aaf2 --- /dev/null +++ b/gcc/f/stv.h @@ -0,0 +1,165 @@ +/* stv.h -- Private #include File (module.h template V1.0) + Copyright (C) 1995 Free Software Foundation, Inc. + Contributed by James Craig Burley (burley@gnu.ai.mit.edu). + +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: + stv.c + + Modifications: +*/ + +/* Allow multiple inclusion to work. */ + +#ifndef _H_f_stv +#define _H_f_stv + +/* Simple definitions and enumerations. */ + +typedef enum + { + FFESTV_accessstateNONE, /* Haven't seen PUBLIC or PRIVATE yet. */ + FFESTV_accessstatePUBLIC, /* Seen PUBLIC stmt w/o args. */ + FFESTV_accessstatePRIVATE, /* Seen PRIVATE stmt w/o args. */ + FFESTV_accessstateANY, /* Conflict seen and reported, so stop + whining. */ + FFESTV_accessstate + } ffestvAccessstate; + +typedef enum + { /* Format specifier in an I/O statement. */ + FFESTV_formatNONE, /* None. */ + FFESTV_formatLABEL, /* Label (normal format). */ + FFESTV_formatCHAREXPR, /* Character expression (normal format). */ + FFESTV_formatASTERISK, /* Asterisk (list-directed). */ + FFESTV_formatINTEXPR, /* Integer expression (assigned label). */ + FFESTV_formatNAMELIST, /* Namelist (namelist-directed). */ + FFESTV_format + } ffestvFormat; + +typedef enum + { + FFESTV_savestateNONE, /* Haven't seen SAVE stmt or attribute yet. */ + FFESTV_savestateSPECIFIC, /* Seen SAVE stmt w/args or SAVE attr. */ + FFESTV_savestateALL, /* Seen SAVE stmt w/o args. */ + FFESTV_savestateANY, /* Conflict seen and reported, so stop + whining. */ + FFESTV_savestate + } ffestvSavestate; + +typedef enum + { + FFESTV_stateNIL, /* Initial state, and after end of outer prog + unit. */ + FFESTV_statePROGRAM0, /* After PROGRAM. */ + FFESTV_statePROGRAM1, /* Before first non-USE statement. */ + FFESTV_statePROGRAM2, /* After IMPLICIT NONE. */ + FFESTV_statePROGRAM3, /* After IMPLICIT, PARAMETER, FORMAT. */ + FFESTV_statePROGRAM4, /* Before executable stmt or CONTAINS. */ + FFESTV_statePROGRAM5, /* After CONTAINS. */ + FFESTV_stateSUBROUTINE0, /* After SUBROUTINE. */ + FFESTV_stateSUBROUTINE1, /* Before first non-USE statement. */ + FFESTV_stateSUBROUTINE2, /* After IMPLICIT NONE. */ + FFESTV_stateSUBROUTINE3, /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */ + FFESTV_stateSUBROUTINE4, /* Before executable stmt or CONTAINS. */ + FFESTV_stateSUBROUTINE5, /* After CONTAINS. */ + FFESTV_stateFUNCTION0, /* After FUNCTION. */ + FFESTV_stateFUNCTION1, /* Before first non-USE statement. */ + FFESTV_stateFUNCTION2, /* After IMPLICIT NONE. */ + FFESTV_stateFUNCTION3, /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */ + FFESTV_stateFUNCTION4, /* Before executable stmt or CONTAINS. */ + FFESTV_stateFUNCTION5, /* After CONTAINS. */ + FFESTV_stateMODULE0, /* After MODULE. */ + FFESTV_stateMODULE1, /* Before first non-USE statement. */ + FFESTV_stateMODULE2, /* After IMPLICIT NONE. */ + FFESTV_stateMODULE3, /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */ + FFESTV_stateMODULE4, /* Before executable stmt or CONTAINS. */ + FFESTV_stateMODULE5, /* After CONTAINS. */ + FFESTV_stateBLOCKDATA0, /* After BLOCKDATA. */ + FFESTV_stateBLOCKDATA1, /* Before first non-USE statement. */ + FFESTV_stateBLOCKDATA2, /* After IMPLICIT NONE. */ + FFESTV_stateBLOCKDATA3, /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */ + FFESTV_stateBLOCKDATA4, /* Before executable stmt or CONTAINS. */ + FFESTV_stateBLOCKDATA5, /* After CONTAINS. */ + FFESTV_stateUSE, /* Before first USE thru last USE. */ + FFESTV_stateTYPE, /* After TYPE thru END TYPE. */ + FFESTV_stateINTERFACE0, /* After INTERFACE thru MODULE PROCEDURE. */ + FFESTV_stateINTERFACE1, /* After MODULE PROCEDURE thru END INTERFACE. */ + FFESTV_stateSTRUCTURE, /* After STRUCTURE thru END STRUCTURE. */ + FFESTV_stateUNION, /* After UNION thru END UNION. */ + FFESTV_stateMAP, /* After MAP thru END MAP. */ + FFESTV_stateWHERETHEN, /* After WHERE-construct thru END WHERE. */ + FFESTV_stateWHERE, /* After WHERE-stmt thru next stmt. */ + FFESTV_stateIFTHEN, /* After IF THEN thru END IF. */ + FFESTV_stateIF, /* After IF thru next stmt. */ + FFESTV_stateDO, /* After DO thru END DO or terminating label. */ + FFESTV_stateSELECT0, /* After SELECT to before first CASE. */ + FFESTV_stateSELECT1, /* First CASE in SELECT thru END SELECT. */ + FFESTV_state + } ffestvState; + +typedef enum + { /* Unit specifier. */ + FFESTV_unitNONE, /* None. */ + FFESTV_unitINTEXPR, /* Integer expression (external file unit). */ + FFESTV_unitASTERISK, /* Default unit. */ + FFESTV_unitCHAREXPR, /* Character expression (internal file unit). */ + FFESTV_unit + } ffestvUnit; + +/* Typedefs. */ + + +/* Include files needed by this one. */ + +#include "lab.h" +#include "where.h" + +/* Structure definitions. */ + + +/* Global objects accessed by users of this module. */ + +extern ffestvSavestate ffestv_save_state_; +extern ffewhereLine ffestv_save_line_; +extern ffewhereColumn ffestv_save_col_; +extern ffestvAccessstate ffestv_access_state_; +extern ffewhereLine ffestv_access_line_; +extern ffewhereColumn ffestv_access_col_; +extern ffelabNumber ffestv_num_label_defines_; + +/* Declare functions with prototypes. */ + + +/* Define macros. */ + +#define ffestv_init_0() +#define ffestv_init_1() +#define ffestv_init_2() +#define ffestv_init_3() +#define ffestv_init_4() +#define ffestv_terminate_0() +#define ffestv_terminate_1() +#define ffestv_terminate_2() +#define ffestv_terminate_3() +#define ffestv_terminate_4() + +/* End of #include file. */ + +#endif |