1%option noinput nounput noyywrap 2 3%{/* deflex.l - Lexer for .def files */ 4 5/* Copyright (C) 1995-2017 Free Software Foundation, Inc. 6 7 This file is part of GNU Binutils. 8 9 This program is free software; you can redistribute it and/or modify 10 it under the terms of the GNU General Public License as published by 11 the Free Software Foundation; either version 3 of the License, or 12 (at your option) any later version. 13 14 This program is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public License for more details. 18 19 You should have received a copy of the GNU General Public License 20 along with this program; if not, write to the Free Software 21 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 22 MA 02110-1301, USA. */ 23 24 25/* Contributed by Steve Chamberlain: sac@cygnus.com */ 26 27#define DONTDECLARE_MALLOC 28#include "libiberty.h" 29#include "defparse.h" 30#include "dlltool.h" 31 32int linenumber; 33 34%} 35%% 36"NAME" { return NAME;} 37"LIBRARY" { return LIBRARY;} 38"DESCRIPTION" { return DESCRIPTION;} 39"STACKSIZE" { return STACKSIZE;} 40"HEAPSIZE" { return HEAPSIZE;} 41"CODE" { return CODE;} 42"DATA" { return DATA;} 43"SECTIONS" { return SECTIONS;} 44"EXPORTS" { return EXPORTS;} 45"IMPORTS" { return IMPORTS;} 46"VERSION" { return VERSIONK;} 47"BASE" { return BASE;} 48"CONSTANT" { return CONSTANT; } 49"NONAME" { return NONAME; } 50"PRIVATE" { return PRIVATE; } 51"READ" { return READ;} 52"WRITE" { return WRITE;} 53"EXECUTE" { return EXECUTE;} 54"SHARED" { return SHARED;} 55"NONSHARED" { return NONSHARED;} 56"SINGLE" { return SINGLE;} 57"MULTIPLE" { return MULTIPLE;} 58"INITINSTANCE" { return INITINSTANCE;} 59"INITGLOBAL" { return INITGLOBAL;} 60"TERMINSTANCE" { return TERMINSTANCE;} 61"TERMGLOBAL" { return TERMGLOBAL;} 62 63[0-9][x0-9A-Fa-f]* { yylval.number = strtol (yytext,0,0); 64 return NUMBER; } 65 66(@)?[A-Za-z$:\-\_?][A-Za-z0-9/$:\<\>\-\_@?]* { 67 yylval.id = xstrdup (yytext); 68 return ID; 69 } 70 71"\""[^\"]*"\"" { 72 yylval.id = xstrdup (yytext+1); 73 yylval.id[yyleng-2] = 0; 74 return ID; 75 } 76 77"\'"[^\']*"\'" { 78 yylval.id = xstrdup (yytext+1); 79 yylval.id[yyleng-2] = 0; 80 return ID; 81 } 82"*".* { } 83";".* { } 84" " { } 85"\t" { } 86"\r" { } 87"\n" { linenumber ++ ;} 88"==" { return EQUAL;} 89"=" { return '=';} 90"." { return '.';} 91"@" { return '@';} 92"," { return ',';} 93%% 94