
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