|  | %option noinput nounput noyywrap | 
|  |  | 
|  | %{ | 
|  | /* Copyright (C) 2001-2023 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.  */ | 
|  |  | 
|  | #include <string.h> | 
|  | #include "sysinfo.h" | 
|  |  | 
|  | #ifndef YY_NO_UNPUT | 
|  | #define YY_NO_UNPUT | 
|  | #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;} |