Mention KTR_IFQ and KTR_IF_START
[dragonfly.git] / contrib / gcc-3.4 / gcc / f / stv.h
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.
4
5 This file is part of GNU Fortran.
6
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.
11
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.
16
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.
21
22    Owning Modules:
23       stv.c
24
25    Modifications:
26 */
27
28 /* Allow multiple inclusion to work. */
29
30 #ifndef GCC_F_STV_H
31 #define GCC_F_STV_H
32
33 /* Simple definitions and enumerations. */
34
35 typedef enum
36   {
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;
44
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;
55
56 typedef enum
57   {
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;
65
66 typedef enum
67   {
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;
116
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;
125
126 /* Typedefs. */
127
128
129 /* Include files needed by this one. */
130
131 #include "lab.h"
132 #include "where.h"
133
134 /* Structure definitions. */
135
136
137 /* Global objects accessed by users of this module. */
138
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_;
146
147 /* Declare functions with prototypes. */
148
149
150 /* Define macros. */
151
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()
162
163 /* End of #include file. */
164
165 #endif /* ! GCC_F_STV_H */