Adjust the C++ preprocessor to include /usr/include/c++ by default for
[dragonfly.git] / contrib / gcc / f / stb.h
1 /* stb.h -- Private #include File (module.h template V1.0)
2    Copyright (C) 1995, 1996 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       stb.c
24
25    Modifications:
26 */
27
28 /* Allow multiple inclusion to work. */
29
30 #ifndef _H_f_stb
31 #define _H_f_stb
32
33 /* Simple definitions and enumerations. */
34
35
36 /* Typedefs. */
37
38
39 /* Include files needed by this one. */
40
41 #include "bad.h"
42 #include "expr.h"
43 #include "lex.h"
44 #include "stp.h"
45 #include "str.h"
46
47 /* Structure definitions. */
48
49 struct _ffestb_args_
50   {
51     struct
52       {
53         const char *badname;
54         ffeTokenLength len;     /* Length of "ENTRY/FUNCTION/SUBROUTINE". */
55         bool is_subr;           /* TRUE if SUBROUTINE or if ENTRY within
56                                    SUBROUTINE. */
57       }
58     dummy;
59     struct
60       {
61         const char *badname;
62         ffeTokenLength len;     /* Length of
63                                    "BACKSPACE/ENDFILE/REWIND/UNLOCK". */
64       }
65     beru;
66     struct
67       {
68         ffeTokenLength len;     /* Length of keyword including "END". */
69         ffestrSecond second;    /* Second keyword. */
70       }
71     endxyz;
72     struct
73       {
74         ffestrSecond second;    /* Second keyword. */
75       }
76     elsexyz;
77     struct
78       {
79         ffeTokenLength len;     /* Length of "STOP/PAUSE". */
80       }
81     halt;
82 #if FFESTR_F90
83     struct
84       {
85         const char *badname;
86         ffeTokenLength len;     /* Length of "ALLOCATE/DEALLOCATE". */
87         ffeexprContext ctx;     /* Either ALLOCATE or DEALLOCATE. */
88       }
89     heap;
90 #endif
91     struct
92       {
93         const char *badname;
94         ffeTokenLength len;     /* Length of
95                                    "EXTERNAL/INTENT/INTRINSIC/OPTIONAL/PUBLIC/
96                                    PRIVATE". */
97       }
98     varlist;
99 #if FFESTR_VXT
100     struct
101       {
102         const char *badname;
103         ffeTokenLength len;     /* Length of "ENCODE/DECODE". */
104       }
105     vxtcode;
106 #endif
107 #if FFESTR_F90
108     struct
109       {
110         const char *badname;
111         ffeTokenLength len;     /* Length of "ALLOCATABLE/POINTER/TARGET". */
112       }
113     dimlist;
114 #endif
115     struct
116       {
117         const char *badname;
118         ffeTokenLength len;     /* Length of "DIMENSION/VIRTUAL". */
119       }
120     R524;
121     struct
122       {
123         ffeTokenLength len;     /* Length of first keyword. */
124         ffestpType type;        /* Type of declaration. */
125       }
126     decl;
127   };
128
129 /* Global objects accessed by users of this module. */
130
131 extern struct _ffestb_args_ ffestb_args;
132
133 /* Declare functions with prototypes. */
134
135 ffelexHandler ffestb_beru (ffelexToken t);
136 ffelexHandler ffestb_block (ffelexToken t);
137 ffelexHandler ffestb_blockdata (ffelexToken t);
138 ffelexHandler ffestb_decl_chartype (ffelexToken t);
139 ffelexHandler ffestb_construct (ffelexToken t);
140 ffelexHandler ffestb_decl_dbltype (ffelexToken t);
141 ffelexHandler ffestb_decl_double (ffelexToken t);
142 ffelexHandler ffestb_dimlist (ffelexToken t);
143 ffelexHandler ffestb_do (ffelexToken t);
144 ffelexHandler ffestb_dowhile (ffelexToken t);
145 ffelexHandler ffestb_dummy (ffelexToken t);
146 ffelexHandler ffestb_else (ffelexToken t);
147 ffelexHandler ffestb_elsexyz (ffelexToken t);
148 ffelexHandler ffestb_end (ffelexToken t);
149 ffelexHandler ffestb_endxyz (ffelexToken t);
150 ffelexHandler ffestb_decl_gentype (ffelexToken t);
151 ffelexHandler ffestb_goto (ffelexToken t);
152 ffelexHandler ffestb_halt (ffelexToken t);
153 #if FFESTR_F90
154 ffelexHandler ffestb_heap (ffelexToken t);
155 #endif
156 ffelexHandler ffestb_if (ffelexToken t);
157 ffelexHandler ffestb_let (ffelexToken t);
158 #if FFESTR_F90
159 ffelexHandler ffestb_module (ffelexToken t);
160 #endif
161 #if FFESTR_F90
162 ffelexHandler ffestb_decl_recursive (ffelexToken t);
163 #endif
164 #if FFESTR_F90
165 ffelexHandler ffestb_type (ffelexToken t);
166 #endif
167 #if FFESTR_F90
168 ffelexHandler ffestb_decl_typetype (ffelexToken t);
169 #endif
170 ffelexHandler ffestb_varlist (ffelexToken t);
171 #if FFESTR_VXT
172 ffelexHandler ffestb_vxtcode (ffelexToken t);
173 #endif
174 #if FFESTR_F90
175 ffelexHandler ffestb_where (ffelexToken t);
176 #endif
177 #if HARD_F90
178 ffelexHandler ffestb_R423B (ffelexToken t);
179 #endif
180 ffelexHandler ffestb_R522 (ffelexToken t);
181 ffelexHandler ffestb_R524 (ffelexToken t);
182 ffelexHandler ffestb_R528 (ffelexToken t);
183 ffelexHandler ffestb_R537 (ffelexToken t);
184 ffelexHandler ffestb_decl_R539 (ffelexToken t);
185 ffelexHandler ffestb_R542 (ffelexToken t);
186 ffelexHandler ffestb_R544 (ffelexToken t);
187 ffelexHandler ffestb_R547 (ffelexToken t);
188 #if FFESTR_F90
189 ffelexHandler ffestb_R624 (ffelexToken t);
190 #endif
191 ffelexHandler ffestb_R809 (ffelexToken t);
192 ffelexHandler ffestb_R810 (ffelexToken t);
193 ffelexHandler ffestb_R834 (ffelexToken t);
194 ffelexHandler ffestb_R835 (ffelexToken t);
195 ffelexHandler ffestb_R838 (ffelexToken t);
196 ffelexHandler ffestb_R840 (ffelexToken t);
197 ffelexHandler ffestb_R841 (ffelexToken t);
198 ffelexHandler ffestb_R904 (ffelexToken t);
199 ffelexHandler ffestb_R907 (ffelexToken t);
200 ffelexHandler ffestb_R909 (ffelexToken t);
201 ffelexHandler ffestb_R910 (ffelexToken t);
202 ffelexHandler ffestb_R911 (ffelexToken t);
203 ffelexHandler ffestb_R923 (ffelexToken t);
204 ffelexHandler ffestb_R1001 (ffelexToken t);
205 ffelexHandler ffestb_R1102 (ffelexToken t);
206 #if FFESTR_F90
207 ffelexHandler ffestb_R1107 (ffelexToken t);
208 #endif
209 #if FFESTR_F90
210 ffelexHandler ffestb_R1202 (ffelexToken t);
211 #endif
212 ffelexHandler ffestb_R1212 (ffelexToken t);
213 ffelexHandler ffestb_R1227 (ffelexToken t);
214 #if FFESTR_F90
215 ffelexHandler ffestb_R1228 (ffelexToken t);
216 #endif
217 ffelexHandler ffestb_R1229 (ffelexToken t);
218 ffelexHandler ffestb_S3P4 (ffelexToken t);
219 #if FFESTR_VXT
220 ffelexHandler ffestb_V003 (ffelexToken t);
221 ffelexHandler ffestb_V009 (ffelexToken t);
222 ffelexHandler ffestb_V012 (ffelexToken t);
223 #endif
224 ffelexHandler ffestb_V014 (ffelexToken t);
225 #if FFESTR_VXT
226 ffelexHandler ffestb_V016 (ffelexToken t);
227 ffelexHandler ffestb_V018 (ffelexToken t);
228 ffelexHandler ffestb_V019 (ffelexToken t);
229 #endif
230 ffelexHandler ffestb_V020 (ffelexToken t);
231 #if FFESTR_VXT
232 ffelexHandler ffestb_V021 (ffelexToken t);
233 ffelexHandler ffestb_V025 (ffelexToken t);
234 ffelexHandler ffestb_V026 (ffelexToken t);
235 #endif
236 ffelexHandler ffestb_V027 (ffelexToken t);
237
238 /* Define macros. */
239
240 #define ffestb_init_0()
241 #define ffestb_init_1()
242 #define ffestb_init_2()
243 #define ffestb_init_3()
244 #define ffestb_init_4()
245 #define ffestb_terminate_0()
246 #define ffestb_terminate_1()
247 #define ffestb_terminate_2()
248 #define ffestb_terminate_3()
249 #define ffestb_terminate_4()
250
251 /* End of #include file. */
252
253 #endif