OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [ld/] [ldlex.l] - Diff between revs 156 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 156 Rev 816
%{
%{
/* Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
/* Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
   2000, 2001, 2002, 2003, 2004, 2005, 2007
   2000, 2001, 2002, 2003, 2004, 2005, 2007
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
   Written by Steve Chamberlain of Cygnus Support.
   Written by Steve Chamberlain of Cygnus Support.
   This file is part of the GNU Binutils.
   This file is part of the GNU Binutils.
   This program is free software; you can redistribute it and/or modify
   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
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.
   (at your option) any later version.
   This program is distributed in the hope that it will be useful,
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   GNU General Public License for more details.
   You should have received a copy of the GNU General Public License
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
   MA 02110-1301, USA.  */
   MA 02110-1301, USA.  */
#include "sysdep.h"
#include "sysdep.h"
#include "bfd.h"
#include "bfd.h"
#include "safe-ctype.h"
#include "safe-ctype.h"
#include "bfdlink.h"
#include "bfdlink.h"
#include "ld.h"
#include "ld.h"
#include "ldmisc.h"
#include "ldmisc.h"
#include "ldexp.h"
#include "ldexp.h"
#include "ldlang.h"
#include "ldlang.h"
#include 
#include 
#include "ldfile.h"
#include "ldfile.h"
#include "ldlex.h"
#include "ldlex.h"
#include "ldmain.h"
#include "ldmain.h"
#include "libiberty.h"
#include "libiberty.h"
/* The type of top-level parser input.
/* The type of top-level parser input.
   yylex and yyparse (indirectly) both check this.  */
   yylex and yyparse (indirectly) both check this.  */
input_type parser_input;
input_type parser_input;
/* Line number in the current input file.
/* Line number in the current input file.
   (FIXME Actually, it doesn't appear to get reset for each file?)  */
   (FIXME Actually, it doesn't appear to get reset for each file?)  */
unsigned int lineno = 1;
unsigned int lineno = 1;
/* The string we are currently lexing, or NULL if we are reading a
/* The string we are currently lexing, or NULL if we are reading a
   file.  */
   file.  */
const char *lex_string = NULL;
const char *lex_string = NULL;
/* Support for flex reading from more than one input file (stream).
/* Support for flex reading from more than one input file (stream).
   `include_stack' is flex's input state for each open file;
   `include_stack' is flex's input state for each open file;
   `file_name_stack' is the file names.  `lineno_stack' is the current
   `file_name_stack' is the file names.  `lineno_stack' is the current
   line numbers.
   line numbers.
   If `include_stack_ptr' is 0, we haven't started reading anything yet.
   If `include_stack_ptr' is 0, we haven't started reading anything yet.
   Otherwise, stack elements 0 through `include_stack_ptr - 1' are valid.  */
   Otherwise, stack elements 0 through `include_stack_ptr - 1' are valid.  */
#undef YY_INPUT
#undef YY_INPUT
#define YY_INPUT(buf,result,max_size) yy_input (buf, &result, max_size)
#define YY_INPUT(buf,result,max_size) yy_input (buf, &result, max_size)
#define YY_NO_UNPUT
#define YY_NO_UNPUT
#define MAX_INCLUDE_DEPTH 10
#define MAX_INCLUDE_DEPTH 10
static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
static const char *file_name_stack[MAX_INCLUDE_DEPTH];
static const char *file_name_stack[MAX_INCLUDE_DEPTH];
static unsigned int lineno_stack[MAX_INCLUDE_DEPTH];
static unsigned int lineno_stack[MAX_INCLUDE_DEPTH];
static unsigned int include_stack_ptr = 0;
static unsigned int include_stack_ptr = 0;
static int vers_node_nesting = 0;
static int vers_node_nesting = 0;
static void yy_input (char *, int *, int);
static void yy_input (char *, int *, int);
static void comment (void);
static void comment (void);
static void lex_warn_invalid (char *where, char *what);
static void lex_warn_invalid (char *where, char *what);
/* STATES
/* STATES
        EXPRESSION      definitely in an expression
        EXPRESSION      definitely in an expression
        SCRIPT          definitely in a script
        SCRIPT          definitely in a script
        BOTH            either EXPRESSION or SCRIPT
        BOTH            either EXPRESSION or SCRIPT
        DEFSYMEXP       in an argument to -defsym
        DEFSYMEXP       in an argument to -defsym
        MRI             in an MRI script
        MRI             in an MRI script
        VERS_START      starting a Sun style mapfile
        VERS_START      starting a Sun style mapfile
        VERS_SCRIPT     a Sun style mapfile
        VERS_SCRIPT     a Sun style mapfile
        VERS_NODE       a node within a Sun style mapfile
        VERS_NODE       a node within a Sun style mapfile
*/
*/
#define RTOKEN(x)  {  yylval.token = x; return x; }
#define RTOKEN(x)  {  yylval.token = x; return x; }
/* Some versions of flex want this.  */
/* Some versions of flex want this.  */
#ifndef yywrap
#ifndef yywrap
int yywrap (void) { return 1; }
int yywrap (void) { return 1; }
#endif
#endif
%}
%}
%a 4000
%a 4000
%o 5000
%o 5000
CMDFILENAMECHAR   [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\-\~]
CMDFILENAMECHAR   [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\-\~]
CMDFILENAMECHAR1  [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\~]
CMDFILENAMECHAR1  [_a-zA-Z0-9\/\.\\_\+\$\:\[\]\\\,\=\&\!\<\>\~]
FILENAMECHAR1   [_a-zA-Z\/\.\\\$\_\~]
FILENAMECHAR1   [_a-zA-Z\/\.\\\$\_\~]
SYMBOLCHARN     [_a-zA-Z\/\.\\\$\_\~0-9]
SYMBOLCHARN     [_a-zA-Z\/\.\\\$\_\~0-9]
FILENAMECHAR    [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~]
FILENAMECHAR    [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~]
WILDCHAR        [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~\?\*]
WILDCHAR        [_a-zA-Z0-9\/\.\-\_\+\=\$\:\[\]\\\,\~\?\*]
WHITE           [ \t\n\r]+
WHITE           [ \t\n\r]+
NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~]
NOCFILENAMECHAR [_a-zA-Z0-9\/\.\-\_\+\$\:\[\]\\\~]
V_TAG [.$_a-zA-Z][._a-zA-Z0-9]*
V_TAG [.$_a-zA-Z][._a-zA-Z0-9]*
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
%s SCRIPT
%s SCRIPT
%s EXPRESSION
%s EXPRESSION
%s BOTH
%s BOTH
%s DEFSYMEXP
%s DEFSYMEXP
%s MRI
%s MRI
%s VERS_START
%s VERS_START
%s VERS_SCRIPT
%s VERS_SCRIPT
%s VERS_NODE
%s VERS_NODE
%%
%%
  if (parser_input != input_selected)
  if (parser_input != input_selected)
    {
    {
      /* The first token of the input determines the initial parser state.  */
      /* The first token of the input determines the initial parser state.  */
      input_type t = parser_input;
      input_type t = parser_input;
      parser_input = input_selected;
      parser_input = input_selected;
      switch (t)
      switch (t)
        {
        {
        case input_script: return INPUT_SCRIPT; break;
        case input_script: return INPUT_SCRIPT; break;
        case input_mri_script: return INPUT_MRI_SCRIPT; break;
        case input_mri_script: return INPUT_MRI_SCRIPT; break;
        case input_version_script: return INPUT_VERSION_SCRIPT; break;
        case input_version_script: return INPUT_VERSION_SCRIPT; break;
        case input_dynamic_list: return INPUT_DYNAMIC_LIST; break;
        case input_dynamic_list: return INPUT_DYNAMIC_LIST; break;
        case input_defsym: return INPUT_DEFSYM; break;
        case input_defsym: return INPUT_DEFSYM; break;
        default: abort ();
        default: abort ();
        }
        }
    }
    }
"/*"    { comment (); }
"/*"    { comment (); }
"-"                  { RTOKEN('-');}
"-"                  { RTOKEN('-');}
"+"                  { RTOKEN('+');}
"+"                  { RTOKEN('+');}
{FILENAMECHAR1}{SYMBOLCHARN}*   { yylval.name = xstrdup (yytext); return NAME; }
{FILENAMECHAR1}{SYMBOLCHARN}*   { yylval.name = xstrdup (yytext); return NAME; }
"="                  { RTOKEN('='); }
"="                  { RTOKEN('='); }
"$"([0-9A-Fa-f])+ {
"$"([0-9A-Fa-f])+ {
                                yylval.integer = bfd_scan_vma (yytext + 1, 0, 16);
                                yylval.integer = bfd_scan_vma (yytext + 1, 0, 16);
                                yylval.bigint.str = NULL;
                                yylval.bigint.str = NULL;
                                return INT;
                                return INT;
                        }
                        }
([0-9A-Fa-f])+(H|h|X|x|B|b|O|o|D|d) {
([0-9A-Fa-f])+(H|h|X|x|B|b|O|o|D|d) {
                                   int ibase ;
                                   int ibase ;
                                   switch (yytext[yyleng - 1]) {
                                   switch (yytext[yyleng - 1]) {
                                    case 'X':
                                    case 'X':
                                    case 'x':
                                    case 'x':
                                    case 'H':
                                    case 'H':
                                    case 'h':
                                    case 'h':
                                     ibase = 16;
                                     ibase = 16;
                                     break;
                                     break;
                                    case 'O':
                                    case 'O':
                                    case 'o':
                                    case 'o':
                                     ibase = 8;
                                     ibase = 8;
                                     break;
                                     break;
                                    case 'B':
                                    case 'B':
                                    case 'b':
                                    case 'b':
                                     ibase = 2;
                                     ibase = 2;
                                     break;
                                     break;
                                    default:
                                    default:
                                     ibase = 10;
                                     ibase = 10;
                                   }
                                   }
                                   yylval.integer = bfd_scan_vma (yytext, 0,
                                   yylval.integer = bfd_scan_vma (yytext, 0,
                                                                  ibase);
                                                                  ibase);
                                   yylval.bigint.str = NULL;
                                   yylval.bigint.str = NULL;
                                   return INT;
                                   return INT;
                                 }
                                 }
((("$"|0[xX])([0-9A-Fa-f])+)|(([0-9])+))(M|K|m|k)? {
((("$"|0[xX])([0-9A-Fa-f])+)|(([0-9])+))(M|K|m|k)? {
                                  char *s = yytext;
                                  char *s = yytext;
                                  int ibase = 0;
                                  int ibase = 0;
                                  if (*s == '$')
                                  if (*s == '$')
                                    {
                                    {
                                      ++s;
                                      ++s;
                                      ibase = 16;
                                      ibase = 16;
                                    }
                                    }
                                  yylval.integer = bfd_scan_vma (s, 0, ibase);
                                  yylval.integer = bfd_scan_vma (s, 0, ibase);
                                  yylval.bigint.str = NULL;
                                  yylval.bigint.str = NULL;
                                  if (yytext[yyleng - 1] == 'M'
                                  if (yytext[yyleng - 1] == 'M'
                                      || yytext[yyleng - 1] == 'm')
                                      || yytext[yyleng - 1] == 'm')
                                    {
                                    {
                                      yylval.integer *= 1024 * 1024;
                                      yylval.integer *= 1024 * 1024;
                                    }
                                    }
                                  else if (yytext[yyleng - 1] == 'K'
                                  else if (yytext[yyleng - 1] == 'K'
                                      || yytext[yyleng - 1]=='k')
                                      || yytext[yyleng - 1]=='k')
                                    {
                                    {
                                      yylval.integer *= 1024;
                                      yylval.integer *= 1024;
                                    }
                                    }
                                  else if (yytext[0] == '0'
                                  else if (yytext[0] == '0'
                                           && (yytext[1] == 'x'
                                           && (yytext[1] == 'x'
                                               || yytext[1] == 'X'))
                                               || yytext[1] == 'X'))
                                    {
                                    {
                                      yylval.bigint.str = xstrdup (yytext + 2);
                                      yylval.bigint.str = xstrdup (yytext + 2);
                                    }
                                    }
                                  return INT;
                                  return INT;
                                }
                                }
"]"             { RTOKEN(']');}
"]"             { RTOKEN(']');}
"["             { RTOKEN('[');}
"["             { RTOKEN('[');}
"<<="   { RTOKEN(LSHIFTEQ);}
"<<="   { RTOKEN(LSHIFTEQ);}
">>="   { RTOKEN(RSHIFTEQ);}
">>="   { RTOKEN(RSHIFTEQ);}
"||"    { RTOKEN(OROR);}
"||"    { RTOKEN(OROR);}
"=="    { RTOKEN(EQ);}
"=="    { RTOKEN(EQ);}
"!="    { RTOKEN(NE);}
"!="    { RTOKEN(NE);}
">="    { RTOKEN(GE);}
">="    { RTOKEN(GE);}
"<="    { RTOKEN(LE);}
"<="    { RTOKEN(LE);}
"<<"    { RTOKEN(LSHIFT);}
"<<"    { RTOKEN(LSHIFT);}
">>"    { RTOKEN(RSHIFT);}
">>"    { RTOKEN(RSHIFT);}
"+="    { RTOKEN(PLUSEQ);}
"+="    { RTOKEN(PLUSEQ);}
"-="    { RTOKEN(MINUSEQ);}
"-="    { RTOKEN(MINUSEQ);}
"*="    { RTOKEN(MULTEQ);}
"*="    { RTOKEN(MULTEQ);}
"/="    { RTOKEN(DIVEQ);}
"/="    { RTOKEN(DIVEQ);}
"&="	{ RTOKEN(ANDEQ);}
"&="	{ RTOKEN(ANDEQ);}
"|="    { RTOKEN(OREQ);}
"|="    { RTOKEN(OREQ);}
"&&"	{ RTOKEN(ANDAND);}
"&&"	{ RTOKEN(ANDAND);}
">"             { RTOKEN('>');}
">"             { RTOKEN('>');}
","             { RTOKEN(',');}
","             { RTOKEN(',');}
"&"		{ RTOKEN('&');}
"&"		{ RTOKEN('&');}
"|"             { RTOKEN('|');}
"|"             { RTOKEN('|');}
"~"             { RTOKEN('~');}
"~"             { RTOKEN('~');}
"!"             { RTOKEN('!');}
"!"             { RTOKEN('!');}
"?"             { RTOKEN('?');}
"?"             { RTOKEN('?');}
"*"             { RTOKEN('*');}
"*"             { RTOKEN('*');}
"+"             { RTOKEN('+');}
"+"             { RTOKEN('+');}
"-"             { RTOKEN('-');}
"-"             { RTOKEN('-');}
"/"             { RTOKEN('/');}
"/"             { RTOKEN('/');}
"%"             { RTOKEN('%');}
"%"             { RTOKEN('%');}
"<"             { RTOKEN('<');}
"<"             { RTOKEN('<');}
"="         { RTOKEN('=');}
"="         { RTOKEN('=');}
"}"             { RTOKEN('}') ; }
"}"             { RTOKEN('}') ; }
"{"             { RTOKEN('{'); }
"{"             { RTOKEN('{'); }
")"             { RTOKEN(')');}
")"             { RTOKEN(')');}
"("             { RTOKEN('(');}
"("             { RTOKEN('(');}
":"             { RTOKEN(':'); }
":"             { RTOKEN(':'); }
";"             { RTOKEN(';');}
";"             { RTOKEN(';');}
"MEMORY"                        { RTOKEN(MEMORY);}
"MEMORY"                        { RTOKEN(MEMORY);}
"ORIGIN"        { RTOKEN(ORIGIN);}
"ORIGIN"        { RTOKEN(ORIGIN);}
"VERSION"                       { RTOKEN(VERSIONK);}
"VERSION"                       { RTOKEN(VERSIONK);}
"BLOCK"         { RTOKEN(BLOCK);}
"BLOCK"         { RTOKEN(BLOCK);}
"BIND"          { RTOKEN(BIND);}
"BIND"          { RTOKEN(BIND);}
"LENGTH"        { RTOKEN(LENGTH);}
"LENGTH"        { RTOKEN(LENGTH);}
"ALIGN"         { RTOKEN(ALIGN_K);}
"ALIGN"         { RTOKEN(ALIGN_K);}
"DATA_SEGMENT_ALIGN"    { RTOKEN(DATA_SEGMENT_ALIGN);}
"DATA_SEGMENT_ALIGN"    { RTOKEN(DATA_SEGMENT_ALIGN);}
"DATA_SEGMENT_RELRO_END"        { RTOKEN(DATA_SEGMENT_RELRO_END);}
"DATA_SEGMENT_RELRO_END"        { RTOKEN(DATA_SEGMENT_RELRO_END);}
"DATA_SEGMENT_END"      { RTOKEN(DATA_SEGMENT_END);}
"DATA_SEGMENT_END"      { RTOKEN(DATA_SEGMENT_END);}
"ADDR"          { RTOKEN(ADDR);}
"ADDR"          { RTOKEN(ADDR);}
"LOADADDR"      { RTOKEN(LOADADDR);}
"LOADADDR"      { RTOKEN(LOADADDR);}
"ALIGNOF"       { RTOKEN(ALIGNOF); }
"ALIGNOF"       { RTOKEN(ALIGNOF); }
"MAX"                   { RTOKEN(MAX_K); }
"MAX"                   { RTOKEN(MAX_K); }
"MIN"                   { RTOKEN(MIN_K); }
"MIN"                   { RTOKEN(MIN_K); }
"ASSERT"        { RTOKEN(ASSERT_K); }
"ASSERT"        { RTOKEN(ASSERT_K); }
"ENTRY"                 { RTOKEN(ENTRY);}
"ENTRY"                 { RTOKEN(ENTRY);}
"EXTERN"                { RTOKEN(EXTERN);}
"EXTERN"                { RTOKEN(EXTERN);}
"NEXT"          { RTOKEN(NEXT);}
"NEXT"          { RTOKEN(NEXT);}
"sizeof_headers"        { RTOKEN(SIZEOF_HEADERS);}
"sizeof_headers"        { RTOKEN(SIZEOF_HEADERS);}
"SIZEOF_HEADERS"        { RTOKEN(SIZEOF_HEADERS);}
"SIZEOF_HEADERS"        { RTOKEN(SIZEOF_HEADERS);}
"SEGMENT_START" { RTOKEN(SEGMENT_START);}
"SEGMENT_START" { RTOKEN(SEGMENT_START);}
"MAP"                   { RTOKEN(MAP);}
"MAP"                   { RTOKEN(MAP);}
"SIZEOF"        { RTOKEN(SIZEOF);}
"SIZEOF"        { RTOKEN(SIZEOF);}
"TARGET"                        { RTOKEN(TARGET_K);}
"TARGET"                        { RTOKEN(TARGET_K);}
"SEARCH_DIR"            { RTOKEN(SEARCH_DIR);}
"SEARCH_DIR"            { RTOKEN(SEARCH_DIR);}
"OUTPUT"                        { RTOKEN(OUTPUT);}
"OUTPUT"                        { RTOKEN(OUTPUT);}
"INPUT"                 { RTOKEN(INPUT);}
"INPUT"                 { RTOKEN(INPUT);}
"GROUP"         { RTOKEN(GROUP);}
"GROUP"         { RTOKEN(GROUP);}
"AS_NEEDED"     { RTOKEN(AS_NEEDED);}
"AS_NEEDED"     { RTOKEN(AS_NEEDED);}
"DEFINED"       { RTOKEN(DEFINED);}
"DEFINED"       { RTOKEN(DEFINED);}
"CREATE_OBJECT_SYMBOLS" { RTOKEN(CREATE_OBJECT_SYMBOLS);}
"CREATE_OBJECT_SYMBOLS" { RTOKEN(CREATE_OBJECT_SYMBOLS);}
"CONSTRUCTORS"          { RTOKEN( CONSTRUCTORS);}
"CONSTRUCTORS"          { RTOKEN( CONSTRUCTORS);}
"FORCE_COMMON_ALLOCATION"       { RTOKEN(FORCE_COMMON_ALLOCATION);}
"FORCE_COMMON_ALLOCATION"       { RTOKEN(FORCE_COMMON_ALLOCATION);}
"INHIBIT_COMMON_ALLOCATION" { RTOKEN(INHIBIT_COMMON_ALLOCATION);}
"INHIBIT_COMMON_ALLOCATION" { RTOKEN(INHIBIT_COMMON_ALLOCATION);}
"SECTIONS"                      { RTOKEN(SECTIONS);}
"SECTIONS"                      { RTOKEN(SECTIONS);}
"INSERT"                        { RTOKEN(INSERT_K);}
"INSERT"                        { RTOKEN(INSERT_K);}
"AFTER"                 { RTOKEN(AFTER);}
"AFTER"                 { RTOKEN(AFTER);}
"BEFORE"                        { RTOKEN(BEFORE);}
"BEFORE"                        { RTOKEN(BEFORE);}
"FILL"                  { RTOKEN(FILL);}
"FILL"                  { RTOKEN(FILL);}
"STARTUP"                       { RTOKEN(STARTUP);}
"STARTUP"                       { RTOKEN(STARTUP);}
"OUTPUT_FORMAT"         { RTOKEN(OUTPUT_FORMAT);}
"OUTPUT_FORMAT"         { RTOKEN(OUTPUT_FORMAT);}
"OUTPUT_ARCH"           { RTOKEN( OUTPUT_ARCH);}
"OUTPUT_ARCH"           { RTOKEN( OUTPUT_ARCH);}
"HLL"                   { RTOKEN(HLL);}
"HLL"                   { RTOKEN(HLL);}
"SYSLIB"                        { RTOKEN(SYSLIB);}
"SYSLIB"                        { RTOKEN(SYSLIB);}
"FLOAT"                 { RTOKEN(FLOAT);}
"FLOAT"                 { RTOKEN(FLOAT);}
"QUAD"                  { RTOKEN( QUAD);}
"QUAD"                  { RTOKEN( QUAD);}
"SQUAD"                 { RTOKEN( SQUAD);}
"SQUAD"                 { RTOKEN( SQUAD);}
"LONG"                  { RTOKEN( LONG);}
"LONG"                  { RTOKEN( LONG);}
"SHORT"                 { RTOKEN( SHORT);}
"SHORT"                 { RTOKEN( SHORT);}
"BYTE"                  { RTOKEN( BYTE);}
"BYTE"                  { RTOKEN( BYTE);}
"NOFLOAT"                       { RTOKEN(NOFLOAT);}
"NOFLOAT"                       { RTOKEN(NOFLOAT);}
"NOCROSSREFS"   { RTOKEN(NOCROSSREFS);}
"NOCROSSREFS"   { RTOKEN(NOCROSSREFS);}
"OVERLAY"                       { RTOKEN(OVERLAY); }
"OVERLAY"                       { RTOKEN(OVERLAY); }
"SORT_BY_NAME"          { RTOKEN(SORT_BY_NAME); }
"SORT_BY_NAME"          { RTOKEN(SORT_BY_NAME); }
"SORT_BY_ALIGNMENT"     { RTOKEN(SORT_BY_ALIGNMENT); }
"SORT_BY_ALIGNMENT"     { RTOKEN(SORT_BY_ALIGNMENT); }
"SORT"                  { RTOKEN(SORT_BY_NAME); }
"SORT"                  { RTOKEN(SORT_BY_NAME); }
"NOLOAD"        { RTOKEN(NOLOAD);}
"NOLOAD"        { RTOKEN(NOLOAD);}
"DSECT"         { RTOKEN(DSECT);}
"DSECT"         { RTOKEN(DSECT);}
"COPY"          { RTOKEN(COPY);}
"COPY"          { RTOKEN(COPY);}
"INFO"          { RTOKEN(INFO);}
"INFO"          { RTOKEN(INFO);}
"OVERLAY"       { RTOKEN(OVERLAY);}
"OVERLAY"       { RTOKEN(OVERLAY);}
"ONLY_IF_RO"    { RTOKEN(ONLY_IF_RO); }
"ONLY_IF_RO"    { RTOKEN(ONLY_IF_RO); }
"ONLY_IF_RW"    { RTOKEN(ONLY_IF_RW); }
"ONLY_IF_RW"    { RTOKEN(ONLY_IF_RW); }
"SPECIAL"       { RTOKEN(SPECIAL); }
"SPECIAL"       { RTOKEN(SPECIAL); }
"o"                     { RTOKEN(ORIGIN);}
"o"                     { RTOKEN(ORIGIN);}
"org"                   { RTOKEN(ORIGIN);}
"org"                   { RTOKEN(ORIGIN);}
"l"                     { RTOKEN( LENGTH);}
"l"                     { RTOKEN( LENGTH);}
"len"                   { RTOKEN( LENGTH);}
"len"                   { RTOKEN( LENGTH);}
"INCLUDE"                       { RTOKEN(INCLUDE);}
"INCLUDE"                       { RTOKEN(INCLUDE);}
"PHDRS"                 { RTOKEN (PHDRS); }
"PHDRS"                 { RTOKEN (PHDRS); }
"AT"            { RTOKEN(AT);}
"AT"            { RTOKEN(AT);}
"SUBALIGN"      { RTOKEN(SUBALIGN);}
"SUBALIGN"      { RTOKEN(SUBALIGN);}
"PROVIDE"       { RTOKEN(PROVIDE); }
"PROVIDE"       { RTOKEN(PROVIDE); }
"PROVIDE_HIDDEN" { RTOKEN(PROVIDE_HIDDEN); }
"PROVIDE_HIDDEN" { RTOKEN(PROVIDE_HIDDEN); }
"KEEP"          { RTOKEN(KEEP); }
"KEEP"          { RTOKEN(KEEP); }
"EXCLUDE_FILE"  { RTOKEN(EXCLUDE_FILE); }
"EXCLUDE_FILE"  { RTOKEN(EXCLUDE_FILE); }
"CONSTANT"      { RTOKEN(CONSTANT);}
"CONSTANT"      { RTOKEN(CONSTANT);}
"#".*\n?                        { ++ lineno; }
"#".*\n?                        { ++ lineno; }
"\n"                    { ++ lineno;  RTOKEN(NEWLINE); }
"\n"                    { ++ lineno;  RTOKEN(NEWLINE); }
"*".*                   { /* Mri comment line */ }
"*".*                   { /* Mri comment line */ }
";".*                   { /* Mri comment line */ }
";".*                   { /* Mri comment line */ }
"END"                      { RTOKEN(ENDWORD); }
"END"                      { RTOKEN(ENDWORD); }
"ALIGNMOD"                      { RTOKEN(ALIGNMOD);}
"ALIGNMOD"                      { RTOKEN(ALIGNMOD);}
"ALIGN"                 { RTOKEN(ALIGN_K);}
"ALIGN"                 { RTOKEN(ALIGN_K);}
"CHIP"                     { RTOKEN(CHIP); }
"CHIP"                     { RTOKEN(CHIP); }
"BASE"                     { RTOKEN(BASE); }
"BASE"                     { RTOKEN(BASE); }
"ALIAS"                    { RTOKEN(ALIAS); }
"ALIAS"                    { RTOKEN(ALIAS); }
"TRUNCATE"                 { RTOKEN(TRUNCATE); }
"TRUNCATE"                 { RTOKEN(TRUNCATE); }
"LOAD"                     { RTOKEN(LOAD); }
"LOAD"                     { RTOKEN(LOAD); }
"PUBLIC"                   { RTOKEN(PUBLIC); }
"PUBLIC"                   { RTOKEN(PUBLIC); }
"ORDER"                    { RTOKEN(ORDER); }
"ORDER"                    { RTOKEN(ORDER); }
"NAME"                     { RTOKEN(NAMEWORD); }
"NAME"                     { RTOKEN(NAMEWORD); }
"FORMAT"                   { RTOKEN(FORMAT); }
"FORMAT"                   { RTOKEN(FORMAT); }
"CASE"                     { RTOKEN(CASE); }
"CASE"                     { RTOKEN(CASE); }
"START"                    { RTOKEN(START); }
"START"                    { RTOKEN(START); }
"LIST".*                   { RTOKEN(LIST); /* LIST and ignore to end of line */ }
"LIST".*                   { RTOKEN(LIST); /* LIST and ignore to end of line */ }
"SECT"                  { RTOKEN(SECT); }
"SECT"                  { RTOKEN(SECT); }
"ABSOLUTE"                      { RTOKEN(ABSOLUTE); }
"ABSOLUTE"                      { RTOKEN(ABSOLUTE); }
"end"                      { RTOKEN(ENDWORD); }
"end"                      { RTOKEN(ENDWORD); }
"alignmod"                      { RTOKEN(ALIGNMOD);}
"alignmod"                      { RTOKEN(ALIGNMOD);}
"align"                 { RTOKEN(ALIGN_K);}
"align"                 { RTOKEN(ALIGN_K);}
"chip"                     { RTOKEN(CHIP); }
"chip"                     { RTOKEN(CHIP); }
"base"                     { RTOKEN(BASE); }
"base"                     { RTOKEN(BASE); }
"alias"                    { RTOKEN(ALIAS); }
"alias"                    { RTOKEN(ALIAS); }
"truncate"                 { RTOKEN(TRUNCATE); }
"truncate"                 { RTOKEN(TRUNCATE); }
"load"                     { RTOKEN(LOAD); }
"load"                     { RTOKEN(LOAD); }
"public"                   { RTOKEN(PUBLIC); }
"public"                   { RTOKEN(PUBLIC); }
"order"                    { RTOKEN(ORDER); }
"order"                    { RTOKEN(ORDER); }
"name"                     { RTOKEN(NAMEWORD); }
"name"                     { RTOKEN(NAMEWORD); }
"format"                   { RTOKEN(FORMAT); }
"format"                   { RTOKEN(FORMAT); }
"case"                     { RTOKEN(CASE); }
"case"                     { RTOKEN(CASE); }
"extern"                   { RTOKEN(EXTERN); }
"extern"                   { RTOKEN(EXTERN); }
"start"                    { RTOKEN(START); }
"start"                    { RTOKEN(START); }
"list".*                   { RTOKEN(LIST); /* LIST and ignore to end of line */ }
"list".*                   { RTOKEN(LIST); /* LIST and ignore to end of line */ }
"sect"                  { RTOKEN(SECT); }
"sect"                  { RTOKEN(SECT); }
"absolute"                      { RTOKEN(ABSOLUTE); }
"absolute"                      { RTOKEN(ABSOLUTE); }
{FILENAMECHAR1}{NOCFILENAMECHAR}*       {
{FILENAMECHAR1}{NOCFILENAMECHAR}*       {
/* Filename without commas, needed to parse mri stuff */
/* Filename without commas, needed to parse mri stuff */
                                 yylval.name = xstrdup (yytext);
                                 yylval.name = xstrdup (yytext);
                                  return NAME;
                                  return NAME;
                                }
                                }
{FILENAMECHAR1}{FILENAMECHAR}*  {
{FILENAMECHAR1}{FILENAMECHAR}*  {
                                 yylval.name = xstrdup (yytext);
                                 yylval.name = xstrdup (yytext);
                                  return NAME;
                                  return NAME;
                                }
                                }
"-l"{FILENAMECHAR}+ {
"-l"{FILENAMECHAR}+ {
                                  yylval.name = xstrdup (yytext + 2);
                                  yylval.name = xstrdup (yytext + 2);
                                  return LNAME;
                                  return LNAME;
                                }
                                }
{FILENAMECHAR1}{NOCFILENAMECHAR}*       {
{FILENAMECHAR1}{NOCFILENAMECHAR}*       {
                                 yylval.name = xstrdup (yytext);
                                 yylval.name = xstrdup (yytext);
                                  return NAME;
                                  return NAME;
                                }
                                }
"-l"{NOCFILENAMECHAR}+ {
"-l"{NOCFILENAMECHAR}+ {
                                  yylval.name = xstrdup (yytext + 2);
                                  yylval.name = xstrdup (yytext + 2);
                                  return LNAME;
                                  return LNAME;
                                }
                                }

        
        
            
    
© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.