Daily bump.
[official-gcc.git] / gcc / f / stv.h
bloba3f959f46086181a80627bd8544f745381acbd91
1 /* stv.h -- Private #include File (module.h template V1.0)
2 Copyright (C) 1995 Free Software Foundation, Inc.
3 Contributed by James Craig Burley.
5 This file is part of GNU Fortran.
7 GNU Fortran is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
12 GNU Fortran is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GNU Fortran; see the file COPYING. If not, write to
19 the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA.
22 Owning Modules:
23 stv.c
25 Modifications:
28 /* Allow multiple inclusion to work. */
30 #ifndef GCC_F_STV_H
31 #define GCC_F_STV_H
33 /* Simple definitions and enumerations. */
35 typedef enum
37 FFESTV_accessstateNONE, /* Haven't seen PUBLIC or PRIVATE yet. */
38 FFESTV_accessstatePUBLIC, /* Seen PUBLIC stmt w/o args. */
39 FFESTV_accessstatePRIVATE, /* Seen PRIVATE stmt w/o args. */
40 FFESTV_accessstateANY, /* Conflict seen and reported, so stop
41 whining. */
42 FFESTV_accessstate
43 } ffestvAccessstate;
45 typedef enum
46 { /* Format specifier in an I/O statement. */
47 FFESTV_formatNONE, /* None. */
48 FFESTV_formatLABEL, /* Label (normal format). */
49 FFESTV_formatCHAREXPR, /* Character expression (normal format). */
50 FFESTV_formatASTERISK, /* Asterisk (list-directed). */
51 FFESTV_formatINTEXPR, /* Integer expression (assigned label). */
52 FFESTV_formatNAMELIST, /* Namelist (namelist-directed). */
53 FFESTV_format
54 } ffestvFormat;
56 typedef enum
58 FFESTV_savestateNONE, /* Haven't seen SAVE stmt or attribute yet. */
59 FFESTV_savestateSPECIFIC, /* Seen SAVE stmt w/args or SAVE attr. */
60 FFESTV_savestateALL, /* Seen SAVE stmt w/o args. */
61 FFESTV_savestateANY, /* Conflict seen and reported, so stop
62 whining. */
63 FFESTV_savestate
64 } ffestvSavestate;
66 typedef enum
68 FFESTV_stateNIL, /* Initial state, and after end of outer prog
69 unit. */
70 FFESTV_statePROGRAM0, /* After PROGRAM. */
71 FFESTV_statePROGRAM1, /* Before first non-USE statement. */
72 FFESTV_statePROGRAM2, /* After IMPLICIT NONE. */
73 FFESTV_statePROGRAM3, /* After IMPLICIT, PARAMETER, FORMAT. */
74 FFESTV_statePROGRAM4, /* Before executable stmt or CONTAINS. */
75 FFESTV_statePROGRAM5, /* After CONTAINS. */
76 FFESTV_stateSUBROUTINE0, /* After SUBROUTINE. */
77 FFESTV_stateSUBROUTINE1, /* Before first non-USE statement. */
78 FFESTV_stateSUBROUTINE2, /* After IMPLICIT NONE. */
79 FFESTV_stateSUBROUTINE3, /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */
80 FFESTV_stateSUBROUTINE4, /* Before executable stmt or CONTAINS. */
81 FFESTV_stateSUBROUTINE5, /* After CONTAINS. */
82 FFESTV_stateFUNCTION0, /* After FUNCTION. */
83 FFESTV_stateFUNCTION1, /* Before first non-USE statement. */
84 FFESTV_stateFUNCTION2, /* After IMPLICIT NONE. */
85 FFESTV_stateFUNCTION3, /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */
86 FFESTV_stateFUNCTION4, /* Before executable stmt or CONTAINS. */
87 FFESTV_stateFUNCTION5, /* After CONTAINS. */
88 FFESTV_stateMODULE0, /* After MODULE. */
89 FFESTV_stateMODULE1, /* Before first non-USE statement. */
90 FFESTV_stateMODULE2, /* After IMPLICIT NONE. */
91 FFESTV_stateMODULE3, /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */
92 FFESTV_stateMODULE4, /* Before executable stmt or CONTAINS. */
93 FFESTV_stateMODULE5, /* After CONTAINS. */
94 FFESTV_stateBLOCKDATA0, /* After BLOCKDATA. */
95 FFESTV_stateBLOCKDATA1, /* Before first non-USE statement. */
96 FFESTV_stateBLOCKDATA2, /* After IMPLICIT NONE. */
97 FFESTV_stateBLOCKDATA3, /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */
98 FFESTV_stateBLOCKDATA4, /* Before executable stmt or CONTAINS. */
99 FFESTV_stateBLOCKDATA5, /* After CONTAINS. */
100 FFESTV_stateUSE, /* Before first USE thru last USE. */
101 FFESTV_stateTYPE, /* After TYPE thru END TYPE. */
102 FFESTV_stateINTERFACE0, /* After INTERFACE thru MODULE PROCEDURE. */
103 FFESTV_stateINTERFACE1, /* After MODULE PROCEDURE thru END INTERFACE. */
104 FFESTV_stateSTRUCTURE, /* After STRUCTURE thru END STRUCTURE. */
105 FFESTV_stateUNION, /* After UNION thru END UNION. */
106 FFESTV_stateMAP, /* After MAP thru END MAP. */
107 FFESTV_stateWHERETHEN, /* After WHERE-construct thru END WHERE. */
108 FFESTV_stateWHERE, /* After WHERE-stmt thru next stmt. */
109 FFESTV_stateIFTHEN, /* After IF THEN thru END IF. */
110 FFESTV_stateIF, /* After IF thru next stmt. */
111 FFESTV_stateDO, /* After DO thru END DO or terminating label. */
112 FFESTV_stateSELECT0, /* After SELECT to before first CASE. */
113 FFESTV_stateSELECT1, /* First CASE in SELECT thru END SELECT. */
114 FFESTV_state
115 } ffestvState;
117 typedef enum
118 { /* Unit specifier. */
119 FFESTV_unitNONE, /* None. */
120 FFESTV_unitINTEXPR, /* Integer expression (external file unit). */
121 FFESTV_unitASTERISK, /* Default unit. */
122 FFESTV_unitCHAREXPR, /* Character expression (internal file unit). */
123 FFESTV_unit
124 } ffestvUnit;
126 /* Typedefs. */
129 /* Include files needed by this one. */
131 #include "lab.h"
132 #include "where.h"
134 /* Structure definitions. */
137 /* Global objects accessed by users of this module. */
139 extern ffestvSavestate ffestv_save_state_;
140 extern ffewhereLine ffestv_save_line_;
141 extern ffewhereColumn ffestv_save_col_;
142 extern ffestvAccessstate ffestv_access_state_;
143 extern ffewhereLine ffestv_access_line_;
144 extern ffewhereColumn ffestv_access_col_;
145 extern ffelabNumber ffestv_num_label_defines_;
147 /* Declare functions with prototypes. */
150 /* Define macros. */
152 #define ffestv_init_0()
153 #define ffestv_init_1()
154 #define ffestv_init_2()
155 #define ffestv_init_3()
156 #define ffestv_init_4()
157 #define ffestv_terminate_0()
158 #define ffestv_terminate_1()
159 #define ffestv_terminate_2()
160 #define ffestv_terminate_3()
161 #define ffestv_terminate_4()
163 /* End of #include file. */
165 #endif /* ! GCC_F_STV_H */