X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=binutils%2Farparse.y;h=b1f5a97980662663dd3cc66bf3669c3dfe45ab43;hb=62e6599087efba193e0156d89ee65fb74fc99cb2;hp=dccdf8e3633d26df26aafd900212843fba7b35a1;hpb=c0cc691258938d3c280b06531b951936b93dc921;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/arparse.y b/binutils/arparse.y index dccdf8e363..b1f5a97980 100644 --- a/binutils/arparse.y +++ b/binutils/arparse.y @@ -1,23 +1,24 @@ %{ -/* arparse.y - Stange script language parser */ +/* arparse.y - Strange script language parser */ -/* Copyright (C) 1992 Free Software Foundation, Inc. +/* Copyright (C) 1992-2019 Free Software Foundation, Inc. -This file is part of GNU Binutils. + This file is part of GNU Binutils. -This program 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 of the License, or -(at your option) any later version. + This program 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 3 of the License, or + (at your option) any later version. -This program 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. + This program 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 this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ /* Contributed by Steve Chamberlain @@ -25,14 +26,12 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ */ #define DONTDECLARE_MALLOC +#include "sysdep.h" #include "bfd.h" -#include #include "arsup.h" -extern int interactive; -extern bfd *inarch; extern int verbose; -void (*command)(); -FILE *listing; +extern int yylex (void); +static int yyerror (const char *); %} %union { @@ -60,7 +59,7 @@ struct list *list ; %token SAVE %token OPEN -%type modulelist +%type modulelist %type modulename %type optional_filename %% @@ -76,30 +75,38 @@ session: command_line: command NEWLINE { prompt(); } + ; command: - open_command - | create_command + open_command + | create_command | verbose_command | directory_command | addlib_command | clear_command | addmod_command | save_command + | extract_command | replace_command | delete_command | list_command - | END { return 0; } + | END { ar_end(); return 0; } | error + | FILENAME { yyerror("foo"); } | ; -replace_command: +extract_command: + EXTRACT modulename + { ar_extract($2); } + ; + +replace_command: REPLACE modulename { ar_replace($2); } ; - + clear_command: CLEAR { ar_clear(); } @@ -114,12 +121,12 @@ addmod_command: { ar_addmod($2); } ; -list_command: +list_command: LIST { ar_list(); } ; -save_command: +save_command: SAVE { ar_save(); } ; @@ -127,12 +134,12 @@ save_command: open_command: - OPEN FILENAME + OPEN FILENAME { ar_open($2,0); } ; create_command: - CREATE FILENAME + CREATE FILENAME { ar_open($2,1); } ; @@ -155,7 +162,7 @@ optional_filename: ; modulelist: - '(' modulename ')' + '(' modulename ')' { $$ = $2; } | { $$ = 0; } @@ -164,34 +171,33 @@ modulelist: modulename: modulename optcomma FILENAME { struct list *n = (struct list *) malloc(sizeof(struct list)); - n->next = $1; + n->next = $1; n->name = $3; $$ = n; } | { $$ = 0; } ; - + optcomma: ',' | ; - - + + verbose_command: - VERBOSE + VERBOSE { verbose = !verbose; } ; %% - -int -yyerror(x) -char *x; +static int +yyerror (const char *x ATTRIBUTE_UNUSED) { extern int linenumber; - printf("Synax error in archive script, line %d\n", linenumber + 1); + + printf (_("Syntax error in archive script, line %d\n"), linenumber + 1); return 0; }