| /* name.h -- Public #include File (module.h template V1.0) |
| Copyright (C) 1995 Free Software Foundation, Inc. |
| Contributed by James Craig Burley. |
| |
| This file is part of GNU Fortran. |
| |
| GNU Fortran is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 2, or (at your option) |
| any later version. |
| |
| GNU Fortran is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with GNU Fortran; see the file COPYING. If not, write to |
| the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA |
| 02111-1307, USA. |
| |
| Owning Modules: |
| name.c |
| |
| Modifications: |
| */ |
| |
| /* Allow multiple inclusion to work. */ |
| |
| #ifndef GCC_F_NAME_H |
| #define GCC_F_NAME_H |
| |
| /* Simple definitions and enumerations. */ |
| |
| |
| /* Typedefs. */ |
| |
| typedef struct _ffename_ *ffename; |
| typedef struct _ffename_space_ *ffenameSpace; |
| |
| /* Include files needed by this one. */ |
| |
| #include "global.h" |
| #include "lex.h" |
| #include "malloc.h" |
| #include "symbol.h" |
| |
| /* Structure definitions. */ |
| |
| struct _ffename_ |
| { |
| ffename next; |
| ffename previous; |
| ffelexToken t; |
| union |
| { |
| ffesymbol s; |
| ffeglobal g; |
| } |
| u; |
| }; |
| |
| struct _ffename_space_ |
| { |
| ffename first; |
| ffename last; |
| mallocPool pool; |
| }; |
| |
| /* Global objects accessed by users of this module. */ |
| |
| |
| /* Declare functions with prototypes. */ |
| |
| ffename ffename_find (ffenameSpace ns, ffelexToken t); |
| void ffename_kill (ffenameSpace ns, ffename n); |
| ffename ffename_lookup (ffenameSpace ns, ffelexToken t); |
| void ffename_space_drive_global (ffenameSpace ns, ffeglobal (*fn) (ffeglobal)); |
| void ffename_space_drive_symbol (ffenameSpace ns, ffesymbol (*fn) (ffesymbol)); |
| void ffename_space_kill (ffenameSpace ns); |
| ffenameSpace ffename_space_new (mallocPool pool); |
| |
| /* Define macros. */ |
| |
| #define ffename_first_token(n) ((n)->t) |
| #define ffename_global(n) ((n)->u.g) |
| #define ffename_init_0() |
| #define ffename_init_1() |
| #define ffename_init_2() |
| #define ffename_init_3() |
| #define ffename_init_4() |
| #define ffename_set_global(n,glob) ((n)->u.g = (glob)) |
| #define ffename_set_symbol(n,sym) ((n)->u.s = (sym)) |
| #define ffename_symbol(n) ((n)->u.s) |
| #define ffename_terminate_0() |
| #define ffename_terminate_1() |
| #define ffename_terminate_2() |
| #define ffename_terminate_3() |
| #define ffename_terminate_4() |
| #define ffename_text(n) ffelex_token_text((n)->t) |
| #define ffename_token(n) ((n)->t) |
| #define ffename_where_filename(n) ffelex_token_where_filename((n)->t) |
| #define ffename_where_filelinenum(n) ffelex_token_where_filelinenum((n)->t) |
| #define ffename_where_line(n) ffelex_token_where_line((n)->t) |
| #define ffename_where_column(n) ffelex_token_where_column((n)->t) |
| |
| /* End of #include file. */ |
| |
| #endif /* ! GCC_F_NAME_H */ |