home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / g77-0.5.15-src.tgz / tar.out / fsf / g77 / f / stb.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  7KB  |  254 lines

  1. /* stb.h -- Private #include File (module.h template V1.0)
  2.    Copyright (C) 1995 Free Software Foundation, Inc.
  3.    Contributed by James Craig Burley (burley@gnu.ai.mit.edu).
  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, 675 Mass Ave, Cambridge, MA 02139, USA.
  20.  
  21.    Owning Modules:
  22.       stb.c
  23.  
  24.    Modifications:
  25. */
  26.  
  27. /* Allow multiple inclusion to work. */
  28.  
  29. #ifndef _H_f_stb
  30. #define _H_f_stb
  31.  
  32. /* Simple definitions and enumerations. */
  33.  
  34.  
  35. /* Typedefs. */
  36.  
  37.  
  38. /* Include files needed by this one. */
  39.  
  40. #include "bad.h"
  41. #include "expr.h"
  42. #include "lex.h"
  43. #include "stp.h"
  44. #include "str.h"
  45.  
  46. /* Structure definitions. */
  47.  
  48. struct _ffestb_args_
  49.   {
  50.     struct
  51.       {
  52.     char *badname;
  53.     ffeTokenLength len;    /* Length of "ENTRY/FUNCTION/SUBROUTINE". */
  54.     bool is_subr;        /* TRUE if SUBROUTINE or if ENTRY within
  55.                    SUBROUTINE. */
  56.       }
  57.     dummy;
  58.     struct
  59.       {
  60.     char *badname;
  61.     ffeTokenLength len;    /* Length of
  62.                    "BACKSPACE/ENDFILE/REWIND/UNLOCK". */
  63.       }
  64.     beru;
  65.     struct
  66.       {
  67.     ffeTokenLength len;    /* Length of keyword including "END". */
  68.     ffestrSecond second;    /* Second keyword. */
  69.       }
  70.     endxyz;
  71.     struct
  72.       {
  73.     ffestrSecond second;    /* Second keyword. */
  74.       }
  75.     elsexyz;
  76.     struct
  77.       {
  78.     ffeTokenLength len;    /* Length of "STOP/PAUSE". */
  79.       }
  80.     halt;
  81. #if FFESTR_F90
  82.     struct
  83.       {
  84.     char *badname;
  85.     ffeTokenLength len;    /* Length of "ALLOCATE/DEALLOCATE". */
  86.     ffeexprContext ctx;    /* Either ALLOCATE or DEALLOCATE. */
  87.       }
  88.     heap;
  89. #endif
  90.     struct
  91.       {
  92.     char *badname;
  93.     ffeTokenLength len;    /* Length of
  94.                    "EXTERNAL/INTENT/INTRINSIC/OPTIONAL/PUBLIC/
  95.                    PRIVATE". */
  96.       }
  97.     varlist;
  98. #if FFESTR_VXT
  99.     struct
  100.       {
  101.     char *badname;
  102.     ffeTokenLength len;    /* Length of "ENCODE/DECODE". */
  103.       }
  104.     vxtcode;
  105. #endif
  106. #if FFESTR_F90
  107.     struct
  108.       {
  109.     char *badname;
  110.     ffeTokenLength len;    /* Length of "ALLOCATABLE/POINTER/TARGET". */
  111.       }
  112.     dimlist;
  113. #endif
  114.     struct
  115.       {
  116.     char *badname;
  117.     ffeTokenLength len;    /* Length of "DIMENSION/VIRTUAL". */
  118.       }
  119.     R524;
  120.     struct
  121.       {
  122.     ffeTokenLength len;    /* Length of first keyword. */
  123.     ffestpType type;    /* Type of declaration. */
  124.       }
  125.     decl;
  126.   };
  127.  
  128. /* Global objects accessed by users of this module. */
  129.  
  130. extern struct _ffestb_args_ ffestb_args;
  131.  
  132. /* Declare functions with prototypes. */
  133.  
  134. ffelexHandler ffestb_unimplemented (ffelexToken t);
  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
  254.