1 /* stc.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 stc.c 24 25 Modifications: 26 */ 27 28 /* Allow multiple inclusion to work. */ 29 30 #ifndef GCC_F_STC_H 31 #define GCC_F_STC_H 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 "bld.h" 43 #include "expr.h" 44 #include "lex.h" 45 #include "stp.h" 46 #include "str.h" 47 #include "stt.h" 48 49 /* Structure definitions. */ 50 51 52 /* Global objects accessed by users of this module. */ 53 54 extern ffeexprContext ffestc_iolist_context_; 55 56 /* Declare functions with prototypes. */ 57 58 void ffestc_decl_start (ffestpType type, ffelexToken typet, ffebld kind, 59 ffelexToken kindt, ffebld len, ffelexToken lent); 60 void ffestc_decl_attrib (ffestpAttrib attrib, ffelexToken attribt, 61 ffestrOther intent_kw, ffesttDimList dims); 62 void ffestc_decl_item (ffelexToken name, ffebld kind, ffelexToken kindt, 63 ffesttDimList dims, ffebld len, ffelexToken lent, 64 ffebld init, ffelexToken initt, bool clist); 65 void ffestc_decl_itemstartvals (void); 66 void ffestc_decl_itemvalue (ffebld repeat, ffelexToken repeat_token, 67 ffebld value, ffelexToken value_token); 68 void ffestc_decl_itemendvals (ffelexToken t); 69 void ffestc_decl_finish (void); 70 void ffestc_elsewhere (ffelexToken where_token); 71 void ffestc_end (void); 72 void ffestc_eof (void); 73 bool ffestc_exec_transition (void); 74 void ffestc_ffebad_here_doiter (ffebadIndex i, ffesymbol s); 75 void ffestc_init_3 (void); 76 void ffestc_init_4 (void); 77 bool ffestc_is_decl_not_R1219 (void); 78 bool ffestc_is_entry_in_subr (void); 79 bool ffestc_is_let_not_V027 (void); 80 #if FFESTR_F90 81 void ffestc_let (ffebld dest, ffebld source, ffelexToken source_token); 82 #else 83 #define ffestc_let ffestc_R737 84 #endif 85 #if FFESTR_F90 86 void ffestc_module (ffelexToken module_name, ffelexToken procedure_name); 87 #endif 88 #if FFESTR_F90 89 void ffestc_private (void); 90 #endif 91 void ffestc_terminate_4 (void); 92 #if FFESTR_F90 93 void ffestc_R423A (void); 94 void ffestc_R423B (void); 95 void ffestc_R424 (ffelexToken access, ffestrOther access_kw, ffelexToken name); 96 void ffestc_R425 (ffelexToken name); 97 void ffestc_R426_start (ffestpType type, ffelexToken typet, ffebld kind, 98 ffelexToken kindt, ffebld len, ffelexToken lent); 99 void ffestc_R426_attrib (ffestpAttrib attrib, ffelexToken attribt, 100 ffestrOther intent_kw, ffesttDimList dims); 101 void ffestc_R426_item (ffelexToken name, ffebld kind, ffelexToken kindt, 102 ffesttDimList dims, ffebld len, ffelexToken lent, ffebld init, 103 ffelexToken initt, bool clist); 104 void ffestc_R426_itemstartvals (void); 105 void ffestc_R426_itemvalue (ffebld repeat, ffelexToken repeat_token, 106 ffebld value, ffelexToken value_token); 107 void ffestc_R426_itemendvals (ffelexToken t); 108 void ffestc_R426_finish (void); 109 #endif 110 void ffestc_R501_start (ffestpType type, ffelexToken typet, ffebld kind, 111 ffelexToken kindt, ffebld len, ffelexToken lent); 112 void ffestc_R501_attrib (ffestpAttrib attrib, ffelexToken attribt, 113 ffestrOther intent_kw, ffesttDimList dims); 114 void ffestc_R501_item (ffelexToken name, ffebld kind, ffelexToken kindt, 115 ffesttDimList dims, ffebld len, ffelexToken lent, ffebld init, 116 ffelexToken initt, bool clist); 117 void ffestc_R501_itemstartvals (void); 118 void ffestc_R501_itemvalue (ffebld repeat, ffelexToken repeat_token, 119 ffebld value, ffelexToken value_token); 120 void ffestc_R501_itemendvals (ffelexToken t); 121 void ffestc_R501_finish (void); 122 #if FFESTR_F90 123 void ffestc_R519_start (ffelexToken intent, ffestrOther intent_kw); 124 void ffestc_R519_item (ffelexToken name); 125 void ffestc_R519_finish (void); 126 void ffestc_R520_start (void); 127 void ffestc_R520_item (ffelexToken name); 128 void ffestc_R520_finish (void); 129 void ffestc_R521A (void); 130 void ffestc_R521Astart (void); 131 void ffestc_R521Aitem (ffelexToken name); 132 void ffestc_R521Afinish (void); 133 void ffestc_R521B (void); 134 void ffestc_R521Bstart (void); 135 void ffestc_R521Bitem (ffelexToken name); 136 void ffestc_R521Bfinish (void); 137 #endif 138 void ffestc_R522 (void); 139 void ffestc_R522start (void); 140 void ffestc_R522item_object (ffelexToken name); 141 void ffestc_R522item_cblock (ffelexToken name); 142 void ffestc_R522finish (void); 143 void ffestc_R524_start (bool virtual); 144 void ffestc_R524_item (ffelexToken name, ffesttDimList dims); 145 void ffestc_R524_finish (void); 146 #if FFESTR_F90 147 void ffestc_R525_start (void); 148 void ffestc_R525_item (ffelexToken name, ffesttDimList dims); 149 void ffestc_R525_finish (void); 150 void ffestc_R526_start (void); 151 void ffestc_R526_item (ffelexToken name, ffesttDimList dims); 152 void ffestc_R526_finish (void); 153 void ffestc_R527_start (void); 154 void ffestc_R527_item (ffelexToken name, ffesttDimList dims); 155 void ffestc_R527_finish (void); 156 #endif 157 void ffestc_R528_start (void); 158 void ffestc_R528_item_object (ffebld expr, ffelexToken expr_token); 159 void ffestc_R528_item_startvals (void); 160 void ffestc_R528_item_value (ffebld repeat, ffelexToken repeat_token, 161 ffebld value, ffelexToken value_token); 162 void ffestc_R528_item_endvals (ffelexToken t); 163 void ffestc_R528_finish (void); 164 void ffestc_R537_start (void); 165 void ffestc_R537_item (ffebld dest, ffelexToken dest_token, ffebld source, 166 ffelexToken source_token); 167 void ffestc_R537_finish (void); 168 void ffestc_R539 (void); 169 void ffestc_R539start (void); 170 void ffestc_R539item (ffestpType type, ffebld kind, ffelexToken kindt, 171 ffebld len, ffelexToken lent, ffesttImpList letters); 172 void ffestc_R539finish (void); 173 void ffestc_R542_start (void); 174 void ffestc_R542_item_nlist (ffelexToken name); 175 void ffestc_R542_item_nitem (ffelexToken name); 176 void ffestc_R542_finish (void); 177 void ffestc_R544_start (void); 178 void ffestc_R544_item (ffesttExprList exprlist); 179 void ffestc_R544_finish (void); 180 void ffestc_R547_start (void); 181 void ffestc_R547_item_object (ffelexToken name, ffesttDimList dims); 182 void ffestc_R547_item_cblock (ffelexToken name); 183 void ffestc_R547_finish (void); 184 #if FFESTR_F90 185 void ffestc_R620 (ffesttExprList objects, ffebld stat, 186 ffelexToken stat_token); 187 void ffestc_R624 (ffesttExprList pointers); 188 void ffestc_R625 (ffesttExprList objects, ffebld stat, 189 ffelexToken stat_token); 190 #endif 191 void ffestc_R737 (ffebld dest, ffebld source, ffelexToken source_token); 192 #if FFESTR_F90 193 void ffestc_R738 (ffebld dest, ffebld source, ffelexToken source_token); 194 void ffestc_R740 (ffebld expr, ffelexToken expr_token); 195 void ffestc_R742 (ffebld expr, ffelexToken expr_token); 196 void ffestc_R744 (void); 197 void ffestc_R745 (void); 198 #endif 199 void ffestc_R803 (ffelexToken construct_name, ffebld expr, 200 ffelexToken expr_token); 201 void ffestc_R804 (ffebld expr, ffelexToken expr_token, ffelexToken name); 202 void ffestc_R805 (ffelexToken name); 203 void ffestc_R806 (ffelexToken name); 204 void ffestc_R807 (ffebld expr, ffelexToken expr_token); 205 void ffestc_R809 (ffelexToken construct_name, ffebld expr, 206 ffelexToken expr_token); 207 void ffestc_R810 (ffesttCaseList cases, ffelexToken name); 208 void ffestc_R811 (ffelexToken name); 209 void ffestc_R819A (ffelexToken construct_name, ffelexToken label, ffebld var, 210 ffelexToken var_token, ffebld start, ffelexToken start_token, ffebld end, 211 ffelexToken end_token, ffebld incr, ffelexToken incr_token); 212 void ffestc_R819B (ffelexToken construct_name, ffelexToken label, ffebld expr, 213 ffelexToken expr_token); 214 void ffestc_R820A (ffelexToken construct_name, ffebld var, 215 ffelexToken var_token, ffebld start, ffelexToken start_token, ffebld end, 216 ffelexToken end_token, ffebld incr, ffelexToken incr_token); 217 void ffestc_R820B (ffelexToken construct_name, ffebld expr, 218 ffelexToken expr_token); 219 void ffestc_R825 (ffelexToken name); 220 void ffestc_R834 (ffelexToken name); 221 void ffestc_R835 (ffelexToken name); 222 void ffestc_R836 (ffelexToken label); 223 void ffestc_R837 (ffesttTokenList label_toks, ffebld expr, 224 ffelexToken expr_token); 225 void ffestc_R838 (ffelexToken label, ffebld target, ffelexToken target_token); 226 void ffestc_R839 (ffebld target, ffelexToken target_token, 227 ffesttTokenList label_toks); 228 void ffestc_R840 (ffebld expr, ffelexToken expr_token, ffelexToken neg, 229 ffelexToken zero, ffelexToken pos); 230 void ffestc_R841 (void); 231 void ffestc_R842 (ffebld expr, ffelexToken expr_token); 232 void ffestc_R843 (ffebld expr, ffelexToken expr_token); 233 void ffestc_R904 (void); 234 void ffestc_R907 (void); 235 void ffestc_R909_start (bool only_format); 236 void ffestc_R909_item (ffebld expr, ffelexToken expr_token); 237 void ffestc_R909_finish (void); 238 void ffestc_R910_start (void); 239 void ffestc_R910_item (ffebld expr, ffelexToken expr_token); 240 void ffestc_R910_finish (void); 241 void ffestc_R911_start (void); 242 void ffestc_R911_item (ffebld expr, ffelexToken expr_token); 243 void ffestc_R911_finish (void); 244 void ffestc_R919 (void); 245 void ffestc_R920 (void); 246 void ffestc_R921 (void); 247 void ffestc_R923A (void); 248 void ffestc_R923B_start (void); 249 void ffestc_R923B_item (ffebld expr, ffelexToken expr_token); 250 void ffestc_R923B_finish (void); 251 void ffestc_R1001 (ffesttFormatList f); 252 void ffestc_R1102 (ffelexToken name); 253 void ffestc_R1103 (ffelexToken name); 254 #if FFESTR_F90 255 void ffestc_R1105 (ffelexToken name); 256 void ffestc_R1106 (ffelexToken name); 257 void ffestc_R1107_start (ffelexToken name, bool only); 258 void ffestc_R1107_item (ffelexToken local, ffelexToken use); 259 void ffestc_R1107_finish (void); 260 #endif 261 void ffestc_R1111 (ffelexToken name); 262 void ffestc_R1112 (ffelexToken name); 263 #if FFESTR_F90 264 void ffestc_R1202 (ffestpDefinedOperator operator, ffelexToken name); 265 void ffestc_R1203 (void); 266 void ffestc_R1205_start (void); 267 void ffestc_R1205_item (ffelexToken name); 268 void ffestc_R1205_finish (void); 269 #endif 270 void ffestc_R1207_start (void); 271 void ffestc_R1207_item (ffelexToken name); 272 void ffestc_R1207_finish (void); 273 void ffestc_R1208_start (void); 274 void ffestc_R1208_item (ffelexToken name); 275 void ffestc_R1208_finish (void); 276 void ffestc_R1212 (ffebld expr, ffelexToken expr_token); 277 #if FFESTR_F90 278 void ffestc_R1213 (ffebld dest, ffebld source, ffelexToken source_token); 279 #endif 280 void ffestc_R1219 (ffelexToken funcname, ffesttTokenList args, 281 ffelexToken final, ffestpType type, ffebld kind, ffelexToken kindt, 282 ffebld len, ffelexToken lent, ffelexToken recursive, ffelexToken result); 283 void ffestc_R1221 (ffelexToken name); 284 void ffestc_R1223 (ffelexToken subrname, ffesttTokenList args, 285 ffelexToken final, ffelexToken recursive); 286 void ffestc_R1225 (ffelexToken name); 287 void ffestc_R1226 (ffelexToken entryname, ffesttTokenList args, 288 ffelexToken final); 289 void ffestc_R1227 (ffebld expr, ffelexToken expr_token); 290 #if FFESTR_F90 291 void ffestc_R1228 (void); 292 #endif 293 void ffestc_R1229_start (ffelexToken name, ffesttTokenList args, 294 ffelexToken final); 295 void ffestc_R1229_finish (ffebld expr, ffelexToken expr_token); 296 void ffestc_S3P4 (ffebld filename, ffelexToken filename_token); 297 #if FFESTR_VXT 298 void ffestc_V003_start (ffelexToken structure_name); 299 void ffestc_V003_item (ffelexToken name, ffesttDimList dims); 300 void ffestc_V003_finish (void); 301 void ffestc_V004 (void); 302 void ffestc_V009 (void); 303 void ffestc_V010 (void); 304 void ffestc_V012 (void); 305 void ffestc_V013 (void); 306 #endif 307 void ffestc_V014_start (void); 308 void ffestc_V014_item_object (ffelexToken name); 309 void ffestc_V014_item_cblock (ffelexToken name); 310 void ffestc_V014_finish (void); 311 #if FFESTR_VXT 312 void ffestc_V016_start (void); 313 void ffestc_V016_item_structure (ffelexToken name); 314 void ffestc_V016_item_object (ffelexToken name, ffesttDimList dims); 315 void ffestc_V016_finish (void); 316 void ffestc_V018_start (void); 317 void ffestc_V018_item (ffebld expr, ffelexToken expr_token); 318 void ffestc_V018_finish (void); 319 void ffestc_V019_start (void); 320 void ffestc_V019_item (ffebld expr, ffelexToken expr_token); 321 void ffestc_V019_finish (void); 322 #endif 323 void ffestc_V020_start (void); 324 void ffestc_V020_item (ffebld expr, ffelexToken expr_token); 325 void ffestc_V020_finish (void); 326 #if FFESTR_VXT 327 void ffestc_V021 (void); 328 void ffestc_V022 (void); 329 void ffestc_V023_start (void); 330 void ffestc_V023_item (ffebld expr, ffelexToken expr_token); 331 void ffestc_V023_finish (void); 332 void ffestc_V024_start (void); 333 void ffestc_V024_item (ffebld expr, ffelexToken expr_token); 334 void ffestc_V024_finish (void); 335 void ffestc_V025_start (void); 336 void ffestc_V025_item (ffebld u, ffelexToken ut, ffebld m, ffelexToken mt, 337 ffebld n, ffelexToken nt, ffebld asv, ffelexToken asvt); 338 void ffestc_V025_finish (void); 339 void ffestc_V026 (void); 340 #endif 341 void ffestc_V027_start (void); 342 void ffestc_V027_item (ffelexToken dest_token, ffebld source, 343 ffelexToken source_token); 344 void ffestc_V027_finish (void); 345 void ffestc_any (void); 346 347 /* Define macros. */ 348 349 #define ffestc_context_iolist() ffestc_iolist_context_ 350 #define ffestc_init_0() 351 #define ffestc_init_1() 352 #define ffestc_init_2() 353 #define ffestc_terminate_0() 354 #define ffestc_terminate_1() 355 #define ffestc_terminate_2() 356 #define ffestc_terminate_3() 357 358 /* End of #include file. */ 359 360 #endif /* ! GCC_F_STC_H */ 361