aboutsummaryrefslogtreecommitdiff
path: root/gcc/f/stv.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/f/stv.h')
-rw-r--r--gcc/f/stv.h165
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