(linenum→info "unix/slp.c:2238")

binutils/2.18/binutils/deflex.l

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