1 /* sta.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 sta.c 24 25 Modifications: 26 */ 27 28 /* Allow multiple inclusion to work. */ 29 30 #ifndef GCC_F_STA_H 31 #define GCC_F_STA_H 32 33 /* Simple definitions and enumerations. */ 34 35 typedef enum 36 { 37 FFESTA_pooldispDISCARD, /* Default state. */ 38 FFESTA_pooldispPRESERVE, /* Preserve through end of program unit. */ 39 FFESTA_pooldisp 40 } ffestaPooldisp; 41 42 #define FFESTA_tokensMAX 10 /* Max # tokens in fixed positions. */ 43 44 /* Typedefs. */ 45 46 /* Include files needed by this one. */ 47 48 #include "bad.h" 49 #include "lex.h" 50 #include "malloc.h" 51 #include "str.h" 52 #include "symbol.h" 53 54 typedef mallocPool ffestaPool; /* No need for use count yet. */ 55 56 /* Structure definitions. */ 57 58 59 /* Global objects accessed by users of this module. */ 60 61 extern ffelexToken ffesta_tokens[FFESTA_tokensMAX]; 62 extern ffestrFirst ffesta_first_kw; 63 extern ffestrSecond ffesta_second_kw; 64 extern mallocPool ffesta_output_pool; 65 extern mallocPool ffesta_scratch_pool; 66 extern ffelexToken ffesta_construct_name; 67 extern ffelexToken ffesta_label_token; 68 extern bool ffesta_seen_first_exec; 69 extern bool ffesta_is_entry_valid; 70 extern bool ffesta_line_has_semicolons; 71 72 /* Declare functions with prototypes. */ 73 74 void ffesta_confirmed (void); 75 void ffesta_eof (void); 76 bool ffesta_ffebad_start (ffebad errnum); 77 void ffesta_ffebad_here_current_stmt (ffebadIndex i); 78 ffelexHandler ffesta_first (ffelexToken t); 79 void ffesta_init_0 (void); 80 void ffesta_init_3 (void); 81 bool ffesta_is_inhibited (void); 82 void ffesta_terminate_0 (void); 83 void ffesta_terminate_1 (void); 84 void ffesta_terminate_2 (void); 85 void ffesta_terminate_3 (void); 86 void ffesta_terminate_4 (void); 87 void ffesta_ffebad_here_doiter (ffebadIndex i, ffesymbol s); 88 void ffesta_shutdown (void); 89 ffesymbol ffesta_sym_end_transition (ffesymbol s); 90 ffesymbol ffesta_sym_exec_transition (ffesymbol s); 91 void ffesta_ffebad_1p (ffebad msg, ffelexToken names_token, 92 ffeTokenLength index, ffelexToken next_token); 93 void ffesta_ffebad_1sp (ffebad msg, const char *s, ffelexToken names_token, 94 ffeTokenLength index, ffelexToken next_token); 95 void ffesta_ffebad_1st (ffebad msg, const char *s, ffelexToken t); 96 void ffesta_ffebad_1t (ffebad msg, ffelexToken t); 97 void ffesta_ffebad_2st (ffebad msg, const char *s, ffelexToken t1, ffelexToken t2); 98 void ffesta_ffebad_2t (ffebad msg, ffelexToken t1, ffelexToken t2); 99 ffelexHandler ffesta_zero (ffelexToken t); 100 ffelexHandler ffesta_two (ffelexToken first, ffelexToken second); 101 ffestaPooldisp ffesta_outpooldisp (void); 102 void ffesta_set_outpooldisp (ffestaPooldisp d); 103 104 /* Define macros. */ 105 106 #define ffesta_init_1() 107 #define ffesta_init_2() 108 #define ffesta_init_4() 109 #define ffesta_terminate_0() 110 #define ffesta_terminate_1() 111 #define ffesta_terminate_2() 112 #define ffesta_terminate_3() 113 #define ffesta_terminate_4() 114 115 /* End of #include file. */ 116 117 #endif /* ! GCC_F_STA_H */ 118