aboutsummaryrefslogtreecommitdiff
path: root/ld/ldgram.y
diff options
context:
space:
mode:
authorSteve Chamberlain <steve@cygnus>1991-04-03 22:03:55 +0000
committerSteve Chamberlain <steve@cygnus>1991-04-03 22:03:55 +0000
commit7ca04d280d065c7749a091505e58b1066483dbb6 (patch)
tree6624cf0d129abfb9003875f7e73b546ac49c66af /ld/ldgram.y
parentd008dd076c611b53e984077a626c6c8b667988b1 (diff)
downloadgdb-7ca04d280d065c7749a091505e58b1066483dbb6.zip
gdb-7ca04d280d065c7749a091505e58b1066483dbb6.tar.gz
gdb-7ca04d280d065c7749a091505e58b1066483dbb6.tar.bz2
Fixed some grammer ambiguities
Better error reporting sun3 support
Diffstat (limited to 'ld/ldgram.y')
-rw-r--r--ld/ldgram.y101
1 files changed, 39 insertions, 62 deletions
diff --git a/ld/ldgram.y b/ld/ldgram.y
index aa0f325..c42a3e5 100644
--- a/ld/ldgram.y
+++ b/ld/ldgram.y
@@ -20,37 +20,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/*
* $Id$
*
- * $Log$
- * Revision 1.1 1991/03/21 21:28:41 gumby
- * Initial revision
- *
- * Revision 1.2 1991/03/16 22:27:24 rich
- * fish
- *
- * Revision 1.1 1991/03/13 00:48:21 chrisb
- * Initial revision
- *
- * Revision 1.6 1991/03/10 09:31:26 rich
- * Modified Files:
- * Makefile config.h ld-emul.c ld-emul.h ld-gld.c ld-gld960.c
- * ld-lnk960.c ld.h lddigest.c ldexp.c ldexp.h ldfile.c ldfile.h
- * ldgram.y ldinfo.h ldlang.c ldlang.h ldlex.h ldlex.l ldmain.c
- * ldmain.h ldmisc.c ldmisc.h ldsym.c ldsym.h ldversion.c
- * ldversion.h ldwarn.h ldwrite.c ldwrite.h y.tab.h
- *
- * As of this round of changes, ld now builds on all hosts of (Intel960)
- * interest and copy passes my copy test on big endian hosts again.
- *
- * Revision 1.5 1991/03/09 03:25:48 sac
- * Can now parse the -Ur flag
- *
- * Revision 1.4 1991/03/06 02:26:01 sac
- * Added support for constructor sections.
- * Remove parsing ambiguity.
- * Lint
- *
- * Revision 1.3 1991/02/22 17:15:13 sac
- * Added RCS keywords and copyrights
*
*/
@@ -113,10 +82,11 @@ char *current_file;
boolean ldgram_want_filename = true;
boolean had_script = false;
boolean force_make_executable = false;
-boolean ldgram_mustbe_filename = false;
-boolean ldgram_mustbe_symbolname = false;
boolean ldgram_has_inputfile = false;
+boolean ldgram_in_expression = false;
+
+boolean ldgram_in_defsym = false;
/* LOCALS */
@@ -171,7 +141,9 @@ boolean ldgram_has_inputfile = false;
%token MEMORY
%token DSECT NOLOAD COPY INFO OVERLAY
%token NAME DEFINED TARGET_K SEARCH_DIR MAP ENTRY
-%token OPTION_e OPTION_c OPTION_noinhibit_exec OPTION_s OPTION_S OPTION_format
+%token OPTION_e OPTION_c OPTION_noinhibit_exec OPTION_s OPTION_S
+%token OPTION_format OPTION_F
+
%token OPTION_d OPTION_dc OPTION_dp OPTION_x OPTION_X
%token OPTION_v OPTION_M OPTION_t STARTUP HLL SYSLIB FLOAT NOFLOAT OPTION_defsym
%token OPTION_n OPTION_r OPTION_o OPTION_b OPTION_A
@@ -195,14 +167,7 @@ file: command_line { lang_final(); };
filename:
- {
- ldgram_mustbe_filename =true;
- }
- NAME
- {
- ldgram_mustbe_filename = false;
- $$ = $2;
- }
+ NAME;
command_line:
command_line command_line_option
@@ -271,23 +236,23 @@ command_line_option:
{
/* Ignored */
}
- | OPTION_dp
+ | OPTION_dp
{
command_line.force_common_definition = true;
}
- | OPTION_format NAME
- {
- lang_add_target($2);
- }
+ | OPTION_format NAME
+ {
+ lang_add_target($2);
+ }
- | OPTION_Texp { hex_mode =true; }
- exp_head
+ | OPTION_Texp { hex_mode =true; }
+ exp
{ lang_section_start($1, $3);
hex_mode = false; }
- | OPTION_Aarch
+ | OPTION_Aarch
{ ldfile_add_arch($1); }
- | OPTION_b NAME
+ | OPTION_b NAME
{
lang_add_target($2);
}
@@ -295,6 +260,11 @@ command_line_option:
{
ldfile_add_library_path($1);
}
+ | OPTION_F
+ {
+ /* Ignore */
+ }
+
| ifile_p1
| input_list
| OPTION_c filename
@@ -317,7 +287,15 @@ command_line_option:
lang_input_file_is_symbols_only_enum,
(char *)NULL);
}
- | OPTION_defsym assignment_with_nospaces
+ | OPTION_defsym
+ {
+ ldgram_in_defsym = true;
+ }
+ assignment
+ {
+ ldgram_in_defsym = false;
+ }
+
;
@@ -468,11 +446,6 @@ assign_op:
end: ';' | ','
;
-assignment_with_nospaces:
- { ldgram_want_filename = false; }
- assignment
- { ldgram_want_filename = true; }
- ;
assignment:
@@ -663,14 +636,18 @@ opt_things:
;
exp_head:
- { ldgram_mustbe_symbolname = true; }
+ {
+ ldgram_in_expression = true;
+ }
exp
- { ldgram_mustbe_symbolname = false;
- $$ = $2;
- }
+ {
+ ldgram_in_expression = false;
+ $$ = $2;
+ }
+ ;
opt_exp:
- exp
+ exp_head
{ $$ = $1; }
| { $$= (etree_type *)NULL; }
;