d4e5e3c330
* ld.texinfo (Options): Document changes to option syntax. * Makefile.in: Update dependencies. * ldver.c (help): Tweak dashes in usage message. * ldgram.y (%union): Remove unused members. Remove %tokens for command line options; add ones for input types. (command_line): Rules removed. (file): Instead of command line, recognize an input type indicator, then use the nonterminal for that type. (defsym_expr): New nonterminal from code formerly in command_line. * ldlex.h: Declare parser input type enum and variable. Don't declare parse_line. * ldlex.l: Remove unused variables. Make some used ones static and comment them. (COMMAND): Start state and its rules removed. At start of yylex, return input state token if at start of input. (lex_redirect): Don't need to set yyout. (ldlex_command): Function removed. * ldmain.c (main): Instead of calling parse_line, set up the redirections and call yyparse directly. * ldmisc.c (vfinfo): If there's no input filename, print nothing, not "command line". * lexsup.c: Remove #if 0'd code. (parse_line): Function removed. (parse_args): Rewrite to use getopt_long_only. (set_default_dirlist): New function from code formerly in ldgram.y:command_line. (set_section_start): New function. * emultempl/generic.em, emultempl/gld960.em, emultempl/hppaelf.em, emultempl/lnk960.em, emultempl/m88kbcs.em: Don't enclose compiled-in link scripts in "{" and "}", as the grammar no longer wants them to be.
59 lines
1.8 KiB
C
59 lines
1.8 KiB
C
/* ldlex.h -
|
|
Copyright 1991, 1992 Free Software Foundation, Inc.
|
|
|
|
This file is part of GLD, the Gnu Linker.
|
|
|
|
GLD 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 1, or (at your option)
|
|
any later version.
|
|
|
|
GLD 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 GLD; see the file COPYING. If not, write to
|
|
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|
|
|
#ifndef LDLEX_H
|
|
#define LDLEX_H
|
|
|
|
#include <stdio.h>
|
|
|
|
/* The initial parser states. */
|
|
typedef enum input_enum {
|
|
input_selected, /* We've set the initial state. */
|
|
input_script = INPUT_SCRIPT,
|
|
input_mri_script = INPUT_MRI_SCRIPT,
|
|
input_defsym = INPUT_DEFSYM
|
|
} input_type;
|
|
|
|
extern input_type parser_input;
|
|
|
|
extern int hex_mode;
|
|
extern unsigned int lineno;
|
|
|
|
/* In ldlex.l. */
|
|
extern int yylex PARAMS ((void));
|
|
extern void lex_push_file PARAMS ((FILE *, char *));
|
|
extern void lex_redirect PARAMS ((const char *));
|
|
extern void ldlex_script PARAMS ((void));
|
|
extern void ldlex_mri_script PARAMS ((void));
|
|
extern void ldlex_defsym PARAMS ((void));
|
|
extern void ldlex_expression PARAMS ((void));
|
|
extern void ldlex_both PARAMS ((void));
|
|
extern void ldlex_command PARAMS ((void));
|
|
extern void ldlex_popstate PARAMS ((void));
|
|
|
|
/* In lexsup.c. */
|
|
extern int lex_input PARAMS ((void));
|
|
extern void lex_unput PARAMS ((int));
|
|
#ifndef yywrap
|
|
extern int yywrap PARAMS ((void));
|
|
#endif
|
|
extern void parse_args PARAMS ((int, char **));
|
|
|
|
#endif
|