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

binutils/2.18/binutils/arlex.l

    1: %{
    2: /* arlex.l - Strange script language lexer */
    3: 
    4: /* Copyright 1992, 1997, 2000, 2001, 2002, 2003, 2004, 2007
    5:    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 "ansidecl.h"
   29: #include "libiberty.h"
   30: #include "arparse.h"
   31: 
   32: #define YY_NO_UNPUT
   33: 
   34: extern int yylex (void);
   35: 
   36: int linenumber;
   37: %}
   38: 
   39: %a 10000
   40: %o 25000
   41: 
   42: %%
   43: 
   44: "ADDLIB"        { return ADDLIB; }
   45: "ADDMOD"        { return ADDMOD; }
   46: "CLEAR"         { return CLEAR; }
   47: "CREATE"        { return CREATE; }
   48: "DELETE"        { return DELETE; }
   49: "DIRECTORY"     { return DIRECTORY; }
   50: "END"           { return END; }
   51: "EXTRACT"       { return EXTRACT; }
   52: "FULLDIR"       { return FULLDIR; }
   53: "HELP"          { return HELP; }
   54: "LIST"          { return LIST; }
   55: "OPEN"          { return OPEN; }
   56: "REPLACE"       { return REPLACE; }
   57: "VERBOSE"       { return VERBOSE; }
   58: "SAVE"          { return SAVE; }
   59: "addlib"        { return ADDLIB; }
   60: "addmod"        { return ADDMOD; }
   61: "clear"         { return CLEAR; }
   62: "create"        { return CREATE; }
   63: "delete"        { return DELETE; }
   64: "directory"     { return DIRECTORY; }
   65: "end"           { return END; }
   66: "extract"       { return EXTRACT; }
   67: "fulldir"       { return FULLDIR; }
   68: "help"          { return HELP; }
   69: "list"          { return LIST; }
   70: "open"          { return OPEN; }
   71: "replace"       { return REPLACE; }
   72: "verbose"       { return VERBOSE; }
   73: "save"          { return SAVE; }
   74: "+\n"           { linenumber ++; }
   75: "("             { return '('; }
   76: ")"             { return ')'; }
   77: ","             { return ','; }
   78: [A-Za-z0-9/\\$:.\-\_]+  {       
   79:                 yylval.name =  xstrdup (yytext);
   80:                 return FILENAME;
   81:                 }
   82: "*".*           { }
   83: ";".*           { }
   84: " "             { }
   85: "\n"        { linenumber ++; return NEWLINE; }      
   86: 
   87: %%
   88: #ifndef yywrap
   89: /* Needed for lex, though not flex. */
   90: int yywrap(void) { return 1; }
   91: #endif
Syntax (Markdown)