aboutsummaryrefslogtreecommitdiff
path: root/binutils/defparse.y
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-06-13 10:16:43 +0000
committerIan Lance Taylor <ian@airs.com>1999-06-13 10:16:43 +0000
commitd7ec8102d915a3d515a42008965d49dd1b617b7a (patch)
treeee08b9f0effe33dcd53cb191f45fa0c68ddef763 /binutils/defparse.y
parent3e2699126a6d93df5a878b0437781200cadfc0bc (diff)
downloadgdb-d7ec8102d915a3d515a42008965d49dd1b617b7a.zip
gdb-d7ec8102d915a3d515a42008965d49dd1b617b7a.tar.gz
gdb-d7ec8102d915a3d515a42008965d49dd1b617b7a.tar.bz2
* defparse.y (explist): Remove separate expline to eliminate
shift/reduce conflict. From Kai-Uwe Rommel <rommel@ars.de>: * defparse.y: Add tokens NONSHARED, SINGLE, MULTIPLE, INITINSTANCE, INITGLOBAL, TERMINSTANCE, and TERMGLOBAL. (command): Add option_list after LIBRARY. (attr): Accept and ignore NONSHARED, SINGLE, and MULTIPLE. (option_list, option): New nonterminals. * deflex.l: Recognize NONSHARED, SINGLE, MULTIPLE, INITINSTANCE, INITGLOBAL, TERMINSTANCE, and TERMGLOBAL.
Diffstat (limited to 'binutils/defparse.y')
-rw-r--r--binutils/defparse.y30
1 files changed, 21 insertions, 9 deletions
diff --git a/binutils/defparse.y b/binutils/defparse.y
index 1cb6360..5718d46 100644
--- a/binutils/defparse.y
+++ b/binutils/defparse.y
@@ -1,6 +1,6 @@
%{ /* defparse.y - parser for .def files */
-/* Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of GNU Binutils.
@@ -30,7 +30,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
%token NAME, LIBRARY, DESCRIPTION, STACKSIZE, HEAPSIZE, CODE, DATA
%token SECTIONS, EXPORTS, IMPORTS, VERSIONK, BASE, CONSTANT
-%token READ WRITE EXECUTE SHARED NONAME
+%token READ WRITE EXECUTE SHARED NONSHARED NONAME
+%token SINGLE MULTIPLE INITINSTANCE INITGLOBAL TERMINSTANCE TERMGLOBAL
%token <id> ID
%token <number> NUMBER
%type <number> opt_base opt_ordinal opt_NONAME opt_CONSTANT opt_DATA
@@ -45,7 +46,7 @@ start: start command
command:
NAME opt_name opt_base { def_name ($2, $3); }
- | LIBRARY opt_name opt_base { def_library ($2, $3); }
+ | LIBRARY opt_name opt_base option_list { def_library ($2, $3); }
| EXPORTS explist
| DESCRIPTION ID { def_description ($2);}
| STACKSIZE NUMBER opt_number { def_stacksize ($2, $3);}
@@ -61,7 +62,6 @@ command:
explist:
/* EMPTY */
- | expline
| explist expline
;
@@ -108,10 +108,13 @@ opt_number: ',' NUMBER { $$=$2;}
;
attr:
- READ { $$ = 1;}
- | WRITE { $$ = 2;}
- | EXECUTE { $$=4;}
- | SHARED { $$=8;}
+ READ { $$ = 1; }
+ | WRITE { $$ = 2; }
+ | EXECUTE { $$ = 4; }
+ | SHARED { $$ = 8; }
+ | NONSHARED { $$ = 0; }
+ | SINGLE { $$ = 0; }
+ | MULTIPLE { $$ = 0; }
;
opt_CONSTANT:
@@ -153,5 +156,14 @@ opt_base: BASE '=' NUMBER { $$= $3;}
| { $$=-1;}
;
-
+option_list:
+ /* empty */
+ | option_list opt_comma option
+ ;
+option:
+ INITINSTANCE
+ | INITGLOBAL
+ | TERMINSTANCE
+ | TERMGLOBAL
+ ;