X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Fdeflex.l;h=54e62c2690c10f52138e5fa63dddb2a608ac75db;hb=4ee959fb247a677b048ce3c59c1399c023a400d9;hp=ccbc2dd7287e6099141af2d031ba53b9361a64d0;hpb=6f2d32120e50bd3bc24ac0c16f53875a35788314;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/deflex.l b/binutils/deflex.l index ccbc2dd728..54e62c2690 100644 --- a/binutils/deflex.l +++ b/binutils/deflex.l @@ -1,85 +1,97 @@ -%{ -/* deflex.l - Lexer for .def files */ +%option noinput nounput -/* Copyright (C) 1995 Free Software Foundation, Inc. +%{/* deflex.l - Lexer for .def files */ -This file is part of GNU Binutils. +/* Copyright (C) 1995-2015 Free Software Foundation, Inc. -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 file is part of GNU Binutils. -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 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. -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. */ + 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., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ -/* Contributed by Steve Chamberlain - sac@cygnus.com -*/ +/* Contributed by Steve Chamberlain: sac@cygnus.com */ + #define DONTDECLARE_MALLOC +#include "libiberty.h" #include "defparse.h" -extern char *strdup(); +#include "dlltool.h" + int linenumber; %} %% -"NAME" { return NAME;} -"LIBRARY" { return LIBRARY;} -"DESCRIPTION" { return DESCRIPTION;} -"STACKSIZE" { return STACKSIZE;} -"HEAPSIZE" { return HEAPSIZE;} -"CODE" { return CODE;} -"DATA" { return DATA;} -"SECTIONS" { return SECTIONS;} -"EXPORTS" { return EXPORTS;} -"IMPORTS" { return IMPORTS;} -"VERSION" { return VERSION;} -"BASE" { return BASE;} +"NAME" { return NAME;} +"LIBRARY" { return LIBRARY;} +"DESCRIPTION" { return DESCRIPTION;} +"STACKSIZE" { return STACKSIZE;} +"HEAPSIZE" { return HEAPSIZE;} +"CODE" { return CODE;} +"DATA" { return DATA;} +"SECTIONS" { return SECTIONS;} +"EXPORTS" { return EXPORTS;} +"IMPORTS" { return IMPORTS;} +"VERSION" { return VERSIONK;} +"BASE" { return BASE;} "CONSTANT" { return CONSTANT; } "NONAME" { return NONAME; } - -"READ" { return READ;} -"WRITE" { return WRITE;} +"PRIVATE" { return PRIVATE; } +"READ" { return READ;} +"WRITE" { return WRITE;} "EXECUTE" { return EXECUTE;} "SHARED" { return SHARED;} +"NONSHARED" { return NONSHARED;} +"SINGLE" { return SINGLE;} +"MULTIPLE" { return MULTIPLE;} +"INITINSTANCE" { return INITINSTANCE;} +"INITGLOBAL" { return INITGLOBAL;} +"TERMINSTANCE" { return TERMINSTANCE;} +"TERMGLOBAL" { return TERMGLOBAL;} -[0-9][x0-9A-Fa-f]* { yylval.number = strtol (yytext,0,0); +[0-9][x0-9A-Fa-f]* { yylval.number = strtol (yytext,0,0); return NUMBER; } -[A-Za-z$:\-\_][A-Za-z0-9/$:\-\_@]+ { - yylval.id = strdup(yytext); +(@)?[A-Za-z$:\-\_?][A-Za-z0-9/$:\<\>\-\_@?]* { + yylval.id = xstrdup (yytext); return ID; } + "\""[^\"]*"\"" { - yylval.string = strdup (yytext+1); - yylval.string[yyleng-2] = 0; - return STRING; + yylval.id = xstrdup (yytext+1); + yylval.id[yyleng-2] = 0; + return ID; } "\'"[^\']*"\'" { - yylval.string = strdup (yytext+1); - yylval.string[yyleng-2] = 0; - return STRING; + yylval.id = xstrdup (yytext+1); + yylval.id[yyleng-2] = 0; + return ID; } "*".* { } ";".* { } " " { } "\t" { } -"\n" { linenumber ++ ;} -"=" { return '=';} -"." { return '.';} -"@" { return '@';} -"," { return ',';} +"\r" { } +"\n" { linenumber ++ ;} +"==" { return EQUAL;} +"=" { return '=';} +"." { return '.';} +"@" { return '@';} +"," { return ',';} %% #ifndef yywrap /* Needed for lex, though not flex. */ -int yywrap() { return 1; } +int yywrap(void) { return 1; } #endif