diff options
Diffstat (limited to 'contrib/gcc/f/lex.h')
-rw-r--r-- | contrib/gcc/f/lex.h | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/contrib/gcc/f/lex.h b/contrib/gcc/f/lex.h deleted file mode 100644 index 04dfbed..0000000 --- a/contrib/gcc/f/lex.h +++ /dev/null @@ -1,200 +0,0 @@ -/* lex.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: - lex.c - - Modifications: - 22-Aug-89 JCB 1.1 - Change for new ffewhere interface. -*/ - -/* Allow multiple inclusion to work. */ - -#ifndef GCC_F_LEX_H -#define GCC_F_LEX_H - -/* Simple definitions and enumerations. */ - -typedef enum - { - FFELEX_typeNONE, - FFELEX_typeCOMMENT, - FFELEX_typeEOS, - FFELEX_typeEOF, - FFELEX_typeERROR, - FFELEX_typeRAW, - FFELEX_typeQUOTE, - FFELEX_typeDOLLAR, - FFELEX_typeHASH, - FFELEX_typePERCENT, - FFELEX_typeAMPERSAND, - FFELEX_typeAPOSTROPHE, - FFELEX_typeOPEN_PAREN, - FFELEX_typeCLOSE_PAREN, - FFELEX_typeASTERISK, - FFELEX_typePLUS, - FFELEX_typeMINUS, - FFELEX_typePERIOD, - FFELEX_typeSLASH, - FFELEX_typeNUMBER, /* Grep: [0-9][0-9]*. */ - FFELEX_typeOPEN_ANGLE, - FFELEX_typeEQUALS, - FFELEX_typeCLOSE_ANGLE, - FFELEX_typeNAME, /* Grep: [A-Za-z][A-Za-z0-9_]*. */ - FFELEX_typeCOMMA, - FFELEX_typePOWER, /* "**". */ - FFELEX_typeCONCAT, /* "//". */ - FFELEX_typeDEBUG, - FFELEX_typeNAMES, /* Same as FFELEX_typeNAME in initial - context. */ - FFELEX_typeHOLLERITH, /* <text> part of <nn>H<text>. */ - FFELEX_typeCHARACTER, /* <text> part of '<text>' or "<text>". */ - FFELEX_typeCOLON, - FFELEX_typeSEMICOLON, - FFELEX_typeUNDERSCORE, - FFELEX_typeQUESTION, - FFELEX_typeOPEN_ARRAY, /* "(/". */ - FFELEX_typeCLOSE_ARRAY, /* "/)". */ - FFELEX_typeCOLONCOLON, /* "::". */ - FFELEX_typeREL_LE, /* "<=". */ - FFELEX_typeREL_NE, /* "<>". */ - FFELEX_typeREL_EQ, /* "==". */ - FFELEX_typePOINTS, /* "=>". */ - FFELEX_typeREL_GE, /* ">=". */ - FFELEX_type - } ffelexType; - -/* Typedefs. */ - -typedef struct _lextoken_ *ffelexToken; -typedef void *lex_sigh_; -typedef lex_sigh_ (*lex_sigh__) (ffelexToken); -typedef lex_sigh__ (*ffelexHandler) (ffelexToken); - -/* Include files needed by this one. */ - -#include "top.h" -#include "where.h" - -/* Structure definitions. */ - -struct _lextoken_ - { - long int id_; /* DEBUG ONLY. */ - ffeTokenLength size; - ffeTokenLength length; - unsigned short uses; - char *text; - ffelexType type; - ffewhereLine where_line; - ffewhereColumn where_col; - ffewhereLine currentnames_line; /* For tracking NAMES tokens. */ - ffewhereColumn currentnames_col; /* For tracking NAMES tokens. */ - ffewhereTrack wheretrack; /* For tracking NAMES tokens. */ - }; - -/* Global objects accessed by users of this module. */ - - -/* Declare functions with prototypes. */ - -void ffelex_display_token (ffelexToken t); -bool ffelex_expecting_character (void); -ffelexHandler ffelex_file_fixed (ffewhereFile wf, FILE *f); -ffelexHandler ffelex_file_free (ffewhereFile wf, FILE *f); -void ffelex_hash_kludge (FILE *f); -void ffelex_init_1 (void); -bool ffelex_is_names_expected (void); -char *ffelex_line (void); -ffewhereColumnNumber ffelex_line_length (void); -ffewhereLineNumber ffelex_line_number (void); -void ffelex_set_expecting_hollerith (long length, char which, - ffewhereLine line, - ffewhereColumn column); -void ffelex_set_handler (ffelexHandler first); -void ffelex_set_hexnum (bool on); -void ffelex_set_include (ffewhereFile wf, bool free_form, FILE *fi); -void ffelex_set_names (bool on); -void ffelex_set_names_pure (bool on); -ffelexHandler ffelex_splice_tokens (ffelexHandler first, ffelexToken master, - ffeTokenLength start); -ffelexHandler ffelex_swallow_tokens (ffelexToken t, ffelexHandler handler); -ffelexToken ffelex_token_dollar_from_names (ffelexToken t, - ffeTokenLength start); -void ffelex_token_kill (ffelexToken t); -ffelexToken ffelex_token_name_from_names (ffelexToken t, - ffeTokenLength start, - ffeTokenLength len); -ffelexToken ffelex_token_names_from_names (ffelexToken t, - ffeTokenLength start, - ffeTokenLength len); -ffelexToken ffelex_token_new (void); -ffelexToken ffelex_token_new_character (const char *s, ffewhereLine l, - ffewhereColumn c); -ffelexToken ffelex_token_new_eof (void); -ffelexToken ffelex_token_new_name (const char *s, ffewhereLine l, - ffewhereColumn c); -ffelexToken ffelex_token_new_names (const char *s, ffewhereLine l, - ffewhereColumn c); -ffelexToken ffelex_token_new_number (const char *s, ffewhereLine l, - ffewhereColumn c); -ffelexToken ffelex_token_new_simple_ (ffelexType type, ffewhereLine l, - ffewhereColumn c); -ffelexToken ffelex_token_number_from_names (ffelexToken t, - ffeTokenLength start); -ffelexToken ffelex_token_uscore_from_names (ffelexToken t, - ffeTokenLength start); -ffelexToken ffelex_token_use (ffelexToken t); - -/* Define macros. */ - -#define ffelex_init_0() -#define ffelex_init_2() -#define ffelex_init_3() -#define ffelex_init_4() -#define ffelex_is_firstnamechar(c) ISIDST (c) -#define ffelex_terminate_0() -#define ffelex_terminate_1() -#define ffelex_terminate_2() -#define ffelex_terminate_3() -#define ffelex_terminate_4() -#define ffelex_token_length(t) ((t)->length) -#define ffelex_token_new_eos(l,c) \ - ffelex_token_new_simple_ (FFELEX_typeEOS, (l), (c)) -#define ffelex_token_new_period(l,c) \ - ffelex_token_new_simple_ (FFELEX_typePERIOD, (l), (c)) -#define ffelex_token_strcmp(t1,t2) strcmp ((t1)->text, (t2)->text) -#define ffelex_token_text(t) ((t)->text) -#define ffelex_token_type(t) ((t)->type) -#define ffelex_token_where_column(t) ((t)->where_col) -#define ffelex_token_where_filename(t) \ - ffewhere_line_filename ((t)->where_line) -#define ffelex_token_where_filelinenum(t) \ - ffewhere_line_filelinenum((t)->where_line) -#define ffelex_token_where_line(t) ((t)->where_line) -#define ffelex_token_where_line_number(t) \ - ffewhere_line_number ((t)->where_line) -#define ffelex_token_wheretrack(t) ((t)->wheretrack) - -/* End of #include file. */ - -#endif /* ! GCC_F_LEX_H */ |