1 /* ldlex.h - 2 Copyright 1991, 1992, 1993, 1994, 1995, 1997, 2000, 2003, 2005, 2006, 2007 3 Free Software Foundation, Inc. 4 5 This file is part of the GNU Binutils. 6 7 This program 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 3 of the License, or 10 (at your option) any later version. 11 12 This program 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 this program; if not, write to the Free Software 19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 20 MA 02110-1301, USA. */ 21 22 #ifndef LDLEX_H 23 #define LDLEX_H 24 25 #include <stdio.h> 26 27 /* The initial parser states. */ 28 typedef enum input_enum { 29 input_selected, /* We've set the initial state. */ 30 input_script, 31 input_mri_script, 32 input_version_script, 33 input_dynamic_list, 34 input_defsym 35 } input_type; 36 37 extern input_type parser_input; 38 39 extern unsigned int lineno; 40 extern const char *lex_string; 41 42 /* In ldlex.l. */ 43 extern int yylex (void); 44 extern void lex_push_file (FILE *, const char *); 45 extern void lex_redirect (const char *); 46 extern void ldlex_script (void); 47 extern void ldlex_mri_script (void); 48 extern void ldlex_version_script (void); 49 extern void ldlex_version_file (void); 50 extern void ldlex_defsym (void); 51 extern void ldlex_expression (void); 52 extern void ldlex_both (void); 53 extern void ldlex_command (void); 54 extern void ldlex_popstate (void); 55 56 /* In lexsup.c. */ 57 extern int lex_input (void); 58 extern void lex_unput (int); 59 #ifndef yywrap 60 extern int yywrap (void); 61 #endif 62 extern void parse_args (unsigned, char **); 63 64 #endif 65