1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- %option noinput nounput
- %{
- /* Copyright (C) 2001-2015 Free Software Foundation, Inc.
- This file is part of GNU Binutils.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with GLD; see the file COPYING. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
- /* Note: config.h is #included via syslex_wrap.c. */
- #ifdef HAVE_STRING_H
- #include <string.h>
- #else
- #ifdef HAVE_STRINGS_H
- #include <strings.h>
- #endif
- #endif
- #include "sysinfo.h"
- #ifndef YY_NO_UNPUT
- #define YY_NO_UNPUT
- #endif
- #ifndef yywrap
- static int yywrap (void) { return 1; }
- #endif
- extern int yylex (void);
- %}
- %%
- "(" { return '(';}
- ")" { return ')';}
- "[" { return '[';}
- "]" { return ']';}
- " " { ; }
- ";".* { ; }
- "\t" { ; }
- "\n" { ; }
- "\""[^\"]*"\"" {
- yylval.s = malloc (yyleng - 1);
- memcpy (yylval.s, yytext + 1, yyleng - 2);
- yylval.s[yyleng - 2] = '\0';
- return NAME;
- }
- 0x[0-9a-f]+ {
- yylval.i = strtol(yytext,0,16);
- return NUMBER;
- }
- [0-9]+ {
- yylval.i = atoi(yytext);
- return NUMBER;
- }
- "bits" { yylval.i =1 ;return UNIT;}
- "bit" { yylval.i = 1; return UNIT;}
- "bytes" { yylval.i= 8; return UNIT;}
- "byte" { yylval.i = 8; return UNIT;}
- "int" { yylval.s = "INT"; return TYPE;}
- "barray" { yylval.s = "BARRAY"; return TYPE;}
- "chars" { yylval.s = "CHARS"; return TYPE;}
- "variable" { yylval.i = 0; return NUMBER;}
- "counted" { yylval.i = -4; return NUMBER;}
- "addrsize" { yylval.i = -2; return NUMBER; }
- "segsize" { yylval.i = -1; return NUMBER; }
- "cond" { return COND;}
- "repeat" { return REPEAT;}
|