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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [gas/] [itbl-lex.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
/* itbl-lex.l
/* itbl-lex.l
   Copyright 1997, 1998, 2001, 2002, 2005, 2006, 2007
   Copyright 1997, 1998, 2001, 2002, 2005, 2006, 2007
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
   This file is part of GAS, the GNU Assembler.
   This file is part of GAS, the GNU Assembler.
   GAS is free software; you can redistribute it and/or modify
   GAS 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, or (at your option)
   the Free Software Foundation; either version 3, or (at your option)
   any later version.
   any later version.
   GAS is distributed in the hope that it will be useful,
   GAS 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 GAS; see the file COPYING.  If not, write to the Free
   along with GAS; see the file COPYING.  If not, write to the Free
   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
   02110-1301, USA.  */
   02110-1301, USA.  */
%{
%{
#include "as.h"
#include "as.h"
#include "itbl-lex.h"
#include "itbl-lex.h"
#include 
#include 
#ifdef DEBUG
#ifdef DEBUG
#define DBG(x) printf x
#define DBG(x) printf x
#define MDBG(x) printf x
#define MDBG(x) printf x
#else
#else
#define DBG(x)
#define DBG(x)
#define MDBG(x)
#define MDBG(x)
#endif
#endif
int insntbl_line = 1;
int insntbl_line = 1;
%}
%}
ALNUM   [A-Za-z0-9_]
ALNUM   [A-Za-z0-9_]
DIGIT   [0-9]
DIGIT   [0-9]
ALPHA   [A-Za-z_]
ALPHA   [A-Za-z_]
HEX     [0-9A-Fa-f]
HEX     [0-9A-Fa-f]
%%
%%
"creg"|"CREG" {
"creg"|"CREG" {
    return CREG;
    return CREG;
  }
  }
"dreg"|"DREG" {
"dreg"|"DREG" {
    return DREG;
    return DREG;
  }
  }
"greg"|"GREG" {
"greg"|"GREG" {
    return GREG;
    return GREG;
  }
  }
"immed"|"IMMED" {
"immed"|"IMMED" {
    return IMMED;
    return IMMED;
  }
  }
"addr"|"ADDR" {
"addr"|"ADDR" {
    return ADDR;
    return ADDR;
  }
  }
"insn"|"INSN" {
"insn"|"INSN" {
    return INSN;
    return INSN;
  }
  }
"p"{DIGIT} {
"p"{DIGIT} {
    yytext[yyleng] = 0;
    yytext[yyleng] = 0;
    yylval.processor = strtoul (yytext+1, 0, 0);
    yylval.processor = strtoul (yytext+1, 0, 0);
    return PNUM;
    return PNUM;
  }
  }
{DIGIT}+ {
{DIGIT}+ {
    yytext[yyleng] = 0;
    yytext[yyleng] = 0;
    yylval.num = strtoul (yytext, 0, 0);
    yylval.num = strtoul (yytext, 0, 0);
    return NUM;
    return NUM;
  }
  }
"0x"{HEX}+ {
"0x"{HEX}+ {
    yytext[yyleng] = 0;
    yytext[yyleng] = 0;
    yylval.num = strtoul (yytext, 0, 0);
    yylval.num = strtoul (yytext, 0, 0);
    return NUM;
    return NUM;
  }
  }
{ALPHA}{ALNUM}* {
{ALPHA}{ALNUM}* {
    yytext[yyleng] = 0;
    yytext[yyleng] = 0;
    yylval.str = strdup (yytext);
    yylval.str = strdup (yytext);
    return ID;
    return ID;
  }
  }
";"|"#" {
";"|"#" {
    int c;
    int c;
    while ((c = input ()) !=  EOF)
    while ((c = input ()) !=  EOF)
      {
      {
        if (c ==  '\n')
        if (c ==  '\n')
        {
        {
                unput (c);
                unput (c);
                break;
                break;
        }
        }
      }
      }
  }
  }
"\n"    {
"\n"    {
    insntbl_line++;
    insntbl_line++;
    MDBG (("in lex, NL = %d (x%x)\n", NL, NL));
    MDBG (("in lex, NL = %d (x%x)\n", NL, NL));
    return NL;
    return NL;
  }
  }
" "|"\t" {
" "|"\t" {
  }
  }
. {
. {
    MDBG (("char = %x, %d\n", yytext[0], yytext[0]));
    MDBG (("char = %x, %d\n", yytext[0], yytext[0]));
    return yytext[0];
    return yytext[0];
  }
  }
%%
%%
#ifndef yywrap
#ifndef yywrap
int
int
yywrap ()
yywrap ()
  {
  {
    return 1;
    return 1;
  }
  }
#endif
#endif
 
 

powered by: WebSVN 2.1.0

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