gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / binutils / deflex.l
index ccbc2dd7287e6099141af2d031ba53b9361a64d0..1ada969f6dd012c41dfe19147d2e7ecaaed5aa65 100644 (file)
@@ -1,85 +1,93 @@
-%{
-/* deflex.l - Lexer for .def files */
+%option noinput nounput noyywrap
 
-/*   Copyright (C) 1995 Free Software Foundation, Inc.
+%{/* deflex.l - Lexer for .def files */
 
-This file is part of GNU Binutils.
+/* Copyright (C) 1995-2020 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; }
-#endif
This page took 0.029072 seconds and 4 git commands to generate.