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 / equiv.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  3KB  |  99 lines

  1. /* equiv.h -- Public #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.       equiv.c
  23.  
  24.    Modifications:
  25. */
  26.  
  27. /* Allow multiple inclusion to work. */
  28.  
  29. #ifndef _H_f_equiv
  30. #define _H_f_equiv
  31.  
  32. /* Simple definitions and enumerations. */
  33.  
  34.  
  35. /* Typedefs. */
  36.  
  37. typedef struct _ffeequiv_ *ffeequiv;
  38.  
  39. /* Include files needed by this one. */
  40.  
  41. #include "bld.h"
  42. #include "lex.h"
  43. #include "storag.h"
  44. #include "symbol.h"
  45.  
  46. /* Structure definitions. */
  47.  
  48. struct _ffeequiv_
  49.   {
  50.     ffeequiv next;
  51.     ffeequiv previous;
  52.     ffesymbol common;        /* Common area for this equiv, if any. */
  53.     ffebld list;        /* List of lists of equiv exprs. */
  54.     bool save;            /* Any SAVEd members? */
  55.     bool init;            /* Any initialized members? */
  56.   };
  57.  
  58. /* Global objects accessed by users of this module. */
  59.  
  60.  
  61. /* Declare functions with prototypes. */
  62.  
  63. void ffeequiv_add (ffeequiv eq, ffebld list, ffelexToken t);
  64. void ffeequiv_dump (ffeequiv eq);
  65. void ffeequiv_exec_transition (void);
  66. void ffeequiv_init_2 (void);
  67. void ffeequiv_kill (ffeequiv victim);
  68. bool ffeequiv_layout_cblock (ffestorag st);
  69. ffeequiv ffeequiv_merge (ffeequiv eq1, ffeequiv eq2, ffelexToken t);
  70. ffeequiv ffeequiv_new (void);
  71. ffesymbol ffeequiv_symbol (ffebld expr);
  72. void ffeequiv_update_save (ffeequiv eq);
  73.  
  74. /* Define macros. */
  75.  
  76. #define ffeequiv_common(e) ((e)->common)
  77. #define ffeequiv_init(e) ((e)->init)
  78. #define ffeequiv_init_0()
  79. #define ffeequiv_init_1()
  80. #define ffeequiv_init_3()
  81. #define ffeequiv_init_4()
  82. #define ffeequiv_list(e) ((e)->list)
  83. #define ffeequiv_next(e) ((e)->next)
  84. #define ffeequiv_previous(e) ((e)->previous)
  85. #define ffeequiv_save(e) ((e)->save)
  86. #define ffeequiv_set_common(e,c) ((e)->common = (c))
  87. #define ffeequiv_set_init(e,i) ((e)->init = (i))
  88. #define ffeequiv_set_list(e,l) ((e)->list = (l))
  89. #define ffeequiv_set_save(e,s) ((e)->save = (s))
  90. #define ffeequiv_terminate_0()
  91. #define ffeequiv_terminate_1()
  92. #define ffeequiv_terminate_2()
  93. #define ffeequiv_terminate_3()
  94. #define ffeequiv_terminate_4()
  95.  
  96. /* End of #include file. */
  97.  
  98. #endif
  99.