1*a9fa9459Szrj %option noinput nounput 2*a9fa9459Szrj 3*a9fa9459Szrj %{ 4*a9fa9459Szrj /* arlex.l - Strange script language lexer */ 5*a9fa9459Szrj 6*a9fa9459Szrj /* Copyright (C) 1992-2016 Free Software Foundation, Inc. 7*a9fa9459Szrj 8*a9fa9459Szrj This file is part of GNU Binutils. 9*a9fa9459Szrj 10*a9fa9459Szrj This program is free software; you can redistribute it and/or modify 11*a9fa9459Szrj it under the terms of the GNU General Public License as published by 12*a9fa9459Szrj the Free Software Foundation; either version 3 of the License, or 13*a9fa9459Szrj (at your option) any later version. 14*a9fa9459Szrj 15*a9fa9459Szrj This program is distributed in the hope that it will be useful, 16*a9fa9459Szrj but WITHOUT ANY WARRANTY; without even the implied warranty of 17*a9fa9459Szrj MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*a9fa9459Szrj GNU General Public License for more details. 19*a9fa9459Szrj 20*a9fa9459Szrj You should have received a copy of the GNU General Public License 21*a9fa9459Szrj along with this program; if not, write to the Free Software 22*a9fa9459Szrj Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 23*a9fa9459Szrj MA 02110-1301, USA. */ 24*a9fa9459Szrj 25*a9fa9459Szrj 26*a9fa9459Szrj /* Contributed by Steve Chamberlain <sac@cygnus.com>. */ 27*a9fa9459Szrj 28*a9fa9459Szrj #define DONTDECLARE_MALLOC 29*a9fa9459Szrj #include "ansidecl.h" 30*a9fa9459Szrj #include "libiberty.h" 31*a9fa9459Szrj #include "arparse.h" 32*a9fa9459Szrj 33*a9fa9459Szrj #ifndef YY_NO_UNPUT 34*a9fa9459Szrj #define YY_NO_UNPUT 35*a9fa9459Szrj #endif 36*a9fa9459Szrj 37*a9fa9459Szrj extern int yylex (void); 38*a9fa9459Szrj 39*a9fa9459Szrj int linenumber; 40*a9fa9459Szrj %} 41*a9fa9459Szrj 42*a9fa9459Szrj %a 10000 43*a9fa9459Szrj %o 25000 44*a9fa9459Szrj 45*a9fa9459Szrj %% 46*a9fa9459Szrj 47*a9fa9459Szrj "ADDLIB" { return ADDLIB; } 48*a9fa9459Szrj "ADDMOD" { return ADDMOD; } 49*a9fa9459Szrj "CLEAR" { return CLEAR; } 50*a9fa9459Szrj "CREATE" { return CREATE; } 51*a9fa9459Szrj "DELETE" { return DELETE; } 52*a9fa9459Szrj "DIRECTORY" { return DIRECTORY; } 53*a9fa9459Szrj "END" { return END; } 54*a9fa9459Szrj "EXTRACT" { return EXTRACT; } 55*a9fa9459Szrj "FULLDIR" { return FULLDIR; } 56*a9fa9459Szrj "HELP" { return HELP; } 57*a9fa9459Szrj "LIST" { return LIST; } 58*a9fa9459Szrj "OPEN" { return OPEN; } 59*a9fa9459Szrj "REPLACE" { return REPLACE; } 60*a9fa9459Szrj "VERBOSE" { return VERBOSE; } 61*a9fa9459Szrj "SAVE" { return SAVE; } 62*a9fa9459Szrj "addlib" { return ADDLIB; } 63*a9fa9459Szrj "addmod" { return ADDMOD; } 64*a9fa9459Szrj "clear" { return CLEAR; } 65*a9fa9459Szrj "create" { return CREATE; } 66*a9fa9459Szrj "delete" { return DELETE; } 67*a9fa9459Szrj "directory" { return DIRECTORY; } 68*a9fa9459Szrj "end" { return END; } 69*a9fa9459Szrj "extract" { return EXTRACT; } 70*a9fa9459Szrj "fulldir" { return FULLDIR; } 71*a9fa9459Szrj "help" { return HELP; } 72*a9fa9459Szrj "list" { return LIST; } 73*a9fa9459Szrj "open" { return OPEN; } 74*a9fa9459Szrj "replace" { return REPLACE; } 75*a9fa9459Szrj "verbose" { return VERBOSE; } 76*a9fa9459Szrj "save" { return SAVE; } 77*a9fa9459Szrj "+\n" { linenumber ++; } 78*a9fa9459Szrj "(" { return '('; } 79*a9fa9459Szrj ")" { return ')'; } 80*a9fa9459Szrj "," { return ','; } 81*a9fa9459Szrj [A-Za-z0-9/\\$:.\-\_]+ { 82*a9fa9459Szrj yylval.name = xstrdup (yytext); 83*a9fa9459Szrj return FILENAME; 84*a9fa9459Szrj } 85*a9fa9459Szrj "*".* { } 86*a9fa9459Szrj ";".* { } 87*a9fa9459Szrj " " { } 88*a9fa9459Szrj "\n" { linenumber ++; return NEWLINE; } 89*a9fa9459Szrj 90*a9fa9459Szrj %% 91*a9fa9459Szrj #ifndef yywrap 92*a9fa9459Szrj /* Needed for lex, though not flex. */ 93*a9fa9459Szrj int yywrap(void) { return 1; } 94*a9fa9459Szrj #endif 95