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 / stv.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  6KB  |  165 lines

  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 (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.       stv.c
  23.  
  24.    Modifications:
  25. */
  26.  
  27. /* Allow multiple inclusion to work. */
  28.  
  29. #ifndef _H_f_stv
  30. #define _H_f_stv
  31.  
  32. /* Simple definitions and enumerations. */
  33.  
  34. typedef enum
  35.   {
  36.     FFESTV_accessstateNONE,    /* Haven't seen PUBLIC or PRIVATE yet. */
  37.     FFESTV_accessstatePUBLIC,    /* Seen PUBLIC stmt w/o args. */
  38.     FFESTV_accessstatePRIVATE,    /* Seen PRIVATE stmt w/o args. */
  39.     FFESTV_accessstateANY,    /* Conflict seen and reported, so stop
  40.                    whining. */
  41.     FFESTV_accessstate
  42.   } ffestvAccessstate;
  43.  
  44. typedef enum
  45.   {                /* Format specifier in an I/O statement. */
  46.     FFESTV_formatNONE,        /* None. */
  47.     FFESTV_formatLABEL,        /* Label (normal format). */
  48.     FFESTV_formatCHAREXPR,    /* Character expression (normal format). */
  49.     FFESTV_formatASTERISK,    /* Asterisk (list-directed). */
  50.     FFESTV_formatINTEXPR,    /* Integer expression (assigned label). */
  51.     FFESTV_formatNAMELIST,    /* Namelist (namelist-directed). */
  52.     FFESTV_format
  53.   } ffestvFormat;
  54.  
  55. typedef enum
  56.   {
  57.     FFESTV_savestateNONE,    /* Haven't seen SAVE stmt or attribute yet. */
  58.     FFESTV_savestateSPECIFIC,    /* Seen SAVE stmt w/args or SAVE attr. */
  59.     FFESTV_savestateALL,    /* Seen SAVE stmt w/o args. */
  60.     FFESTV_savestateANY,    /* Conflict seen and reported, so stop
  61.                    whining. */
  62.     FFESTV_savestate
  63.   } ffestvSavestate;
  64.  
  65. typedef enum
  66.   {
  67.     FFESTV_stateNIL,        /* Initial state, and after end of outer prog
  68.                    unit. */
  69.     FFESTV_statePROGRAM0,    /* After PROGRAM. */
  70.     FFESTV_statePROGRAM1,    /* Before first non-USE statement. */
  71.     FFESTV_statePROGRAM2,    /* After IMPLICIT NONE. */
  72.     FFESTV_statePROGRAM3,    /* After IMPLICIT, PARAMETER, FORMAT. */
  73.     FFESTV_statePROGRAM4,    /* Before executable stmt or CONTAINS. */
  74.     FFESTV_statePROGRAM5,    /* After CONTAINS. */
  75.     FFESTV_stateSUBROUTINE0,    /* After SUBROUTINE. */
  76.     FFESTV_stateSUBROUTINE1,    /* Before first non-USE statement. */
  77.     FFESTV_stateSUBROUTINE2,    /* After IMPLICIT NONE. */
  78.     FFESTV_stateSUBROUTINE3,    /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */
  79.     FFESTV_stateSUBROUTINE4,    /* Before executable stmt or CONTAINS. */
  80.     FFESTV_stateSUBROUTINE5,    /* After CONTAINS. */
  81.     FFESTV_stateFUNCTION0,    /* After FUNCTION. */
  82.     FFESTV_stateFUNCTION1,    /* Before first non-USE statement. */
  83.     FFESTV_stateFUNCTION2,    /* After IMPLICIT NONE. */
  84.     FFESTV_stateFUNCTION3,    /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */
  85.     FFESTV_stateFUNCTION4,    /* Before executable stmt or CONTAINS. */
  86.     FFESTV_stateFUNCTION5,    /* After CONTAINS. */
  87.     FFESTV_stateMODULE0,    /* After MODULE. */
  88.     FFESTV_stateMODULE1,    /* Before first non-USE statement. */
  89.     FFESTV_stateMODULE2,    /* After IMPLICIT NONE. */
  90.     FFESTV_stateMODULE3,    /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */
  91.     FFESTV_stateMODULE4,    /* Before executable stmt or CONTAINS. */
  92.     FFESTV_stateMODULE5,    /* After CONTAINS. */
  93.     FFESTV_stateBLOCKDATA0,    /* After BLOCKDATA. */
  94.     FFESTV_stateBLOCKDATA1,    /* Before first non-USE statement. */
  95.     FFESTV_stateBLOCKDATA2,    /* After IMPLICIT NONE. */
  96.     FFESTV_stateBLOCKDATA3,    /* After IMPLICIT, PARAMETER, FORMAT, ENTRY. */
  97.     FFESTV_stateBLOCKDATA4,    /* Before executable stmt or CONTAINS. */
  98.     FFESTV_stateBLOCKDATA5,    /* After CONTAINS. */
  99.     FFESTV_stateUSE,        /* Before first USE thru last USE. */
  100.     FFESTV_stateTYPE,        /* After TYPE thru END TYPE. */
  101.     FFESTV_stateINTERFACE0,    /* After INTERFACE thru MODULE PROCEDURE. */
  102.     FFESTV_stateINTERFACE1,    /* After MODULE PROCEDURE thru END INTERFACE. */
  103.     FFESTV_stateSTRUCTURE,    /* After STRUCTURE thru END STRUCTURE. */
  104.     FFESTV_stateUNION,        /* After UNION thru END UNION. */
  105.     FFESTV_stateMAP,        /* After MAP thru END MAP. */
  106.     FFESTV_stateWHERETHEN,    /* After WHERE-construct thru END WHERE. */
  107.     FFESTV_stateWHERE,        /* After WHERE-stmt thru next stmt. */
  108.     FFESTV_stateIFTHEN,        /* After IF THEN thru END IF. */
  109.     FFESTV_stateIF,        /* After IF thru next stmt. */
  110.     FFESTV_stateDO,        /* After DO thru END DO or terminating label. */
  111.     FFESTV_stateSELECT0,    /* After SELECT to before first CASE. */
  112.     FFESTV_stateSELECT1,    /* First CASE in SELECT thru END SELECT. */
  113.     FFESTV_state
  114.   } ffestvState;
  115.  
  116. typedef enum
  117.   {                /* Unit specifier. */
  118.     FFESTV_unitNONE,        /* None. */
  119.     FFESTV_unitINTEXPR,        /* Integer expression (external file unit). */
  120.     FFESTV_unitASTERISK,    /* Default unit. */
  121.     FFESTV_unitCHAREXPR,    /* Character expression (internal file unit). */
  122.     FFESTV_unit
  123.   } ffestvUnit;
  124.  
  125. /* Typedefs. */
  126.  
  127.  
  128. /* Include files needed by this one. */
  129.  
  130. #include "lab.h"
  131. #include "where.h"
  132.  
  133. /* Structure definitions. */
  134.  
  135.  
  136. /* Global objects accessed by users of this module. */
  137.  
  138. extern ffestvSavestate ffestv_save_state_;
  139. extern ffewhereLine ffestv_save_line_;
  140. extern ffewhereColumn ffestv_save_col_;
  141. extern ffestvAccessstate ffestv_access_state_;
  142. extern ffewhereLine ffestv_access_line_;
  143. extern ffewhereColumn ffestv_access_col_;
  144. extern ffelabNumber ffestv_num_label_defines_;
  145.  
  146. /* Declare functions with prototypes. */
  147.  
  148.  
  149. /* Define macros. */
  150.  
  151. #define ffestv_init_0()
  152. #define ffestv_init_1()
  153. #define ffestv_init_2()
  154. #define ffestv_init_3()
  155. #define ffestv_init_4()
  156. #define ffestv_terminate_0()
  157. #define ffestv_terminate_1()
  158. #define ffestv_terminate_2()
  159. #define ffestv_terminate_3()
  160. #define ffestv_terminate_4()
  161.  
  162. /* End of #include file. */
  163.  
  164. #endif
  165.