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

Subversion Repositories thor

[/] [thor/] [trunk/] [FT64v5/] [software/] [AS64/] [source/] [token.cpp] - Diff between revs 50 and 54

Only display areas with differences | Details | Blame | View Log

Rev 50 Rev 54
// ============================================================================
// ============================================================================
//        __
//        __
//   \\__/ o\    (C) 2014-2018  Robert Finch, Waterloo
//   \\__/ o\    (C) 2014-2018  Robert Finch, Waterloo
//    \  __ /    All rights reserved.
//    \  __ /    All rights reserved.
//     \/_//     robfinch<remove>@finitron.ca
//     \/_//     robfinch<remove>@finitron.ca
//       ||
//       ||
//
//
// AS64 - Assembler
// AS64 - Assembler
//  - 64 bit CPU
//  - 64 bit CPU
//
//
// This source file is free software: you can redistribute it and/or modify 
// This source file is free software: you can redistribute it and/or modify 
// it under the terms of the GNU Lesser General Public License as published 
// it under the terms of the GNU Lesser General Public License as published 
// by the Free Software Foundation, either version 3 of the License, or     
// by the Free Software Foundation, either version 3 of the License, or     
// (at your option) any later version.                                      
// (at your option) any later version.                                      
//                                                                          
//                                                                          
// This source file is distributed in the hope that it will be useful,      
// This source file 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, see <http://www.gnu.org/licenses/>.    
// along with this program.  If not, see <http://www.gnu.org/licenses/>.    
//                                                                          
//                                                                          
// ============================================================================
// ============================================================================
//
//
#include "stdafx.h"
#include "stdafx.h"
 
 
char *pinptr;
char *pinptr;
char lastid[500];
char lastid[500];
 
char laststr[500];
char lastch;
char lastch;
Int128 last_icon;
Int128 last_icon;
Int128 ival;
Int128 ival;
double rval;
double rval;
 
 
int my_isspace(char ch)
int my_isspace(char ch)
{
{
    if (ch==' ' || ch=='\t' || ch=='\r')
    if (ch==' ' || ch=='\t' || ch=='\r')
        return 1;
        return (1);
    return 0;
    return (0);
}
}
int isspaceOrDot(char ch)
int isspaceOrDot(char ch)
{
{
        return my_isspace(ch) || ch=='.';
        ch &= 0x7f;
 
        return (my_isspace(ch) || ch=='.');
}
}
 
 
int isFirstIdentChar(char ch)
int isFirstIdentChar(char ch)
{
{
    return isalpha(ch) || ch=='_';
        ch &= 0x7f;
 
  return (isalpha(ch) || ch=='_');
}
}
 
 
int isIdentChar(char ch)
int isIdentChar(char ch)
{
{
    return isalnum(ch) || ch=='_';
        ch &= 0x7f;
 
        return (isalnum(ch) || ch=='_');
}
}
 
 
int need(int tk)
int need(int tk)
{
{
    if (tk != token) {
    if (tk != token) {
        printf("Syntax error (%d).\r\n", lineno);
        printf("Syntax error (%d).\r\n", lineno);
        printf("Line:%.60s\r\n", stptr);
        printf("Line:%.60s\r\n", stptr);
    }
    }
        return 1;
        return 1;
}
}
 
 
int expect(int tk)
int expect(int tk)
{
{
    if (tk != token) {
    if (tk != token) {
        if (tk==tk_comma)
        if (tk==tk_comma)
            printf("%d Expecting a , %.60s\r\n", lineno, inptr-30);
            printf("%d Expecting a , %.60s\r\n", lineno, inptr-30);
    }
    }
    NextToken();
    NextToken();
        return 1;
        return 1;
}
}
 
 
void SkipSpaces()
void SkipSpaces()
{
{
    while(my_isspace(*inptr)) inptr++;
    while(my_isspace(*inptr)) inptr++;
}
}
 
 
void ScanToEOL()
void ScanToEOL()
{
{
     while(*inptr && *inptr!='\n') inptr++;
     while(*inptr && *inptr!='\n') inptr++;
     lineno++;
     lineno++;
}
}
 
 
int64_t radix36(char c)
int64_t radix36(char c)
{
{
        if(isdigit(c))
        if(isdigit(c))
            return c - '0';
            return c - '0';
    if(c >= 'a' && c <= 'z')
    if(c >= 'a' && c <= 'z')
            return c - 'a' + 10LL;
            return c - 'a' + 10LL;
    if(c >= 'A' && c <= 'Z')
    if(c >= 'A' && c <= 'Z')
            return c - 'A' + 10LL;
            return c - 'A' + 10LL;
    return -1LL;
    return -1LL;
}
}
 
 
/*
/*
 *      getbase - get an integer in any base.
 *      getbase - get an integer in any base.
 */
 */
void getbase(int b)
void getbase(int b)
{
{
    Int128 i, j, ba;
    Int128 i, j, ba;
    i.high = i.low = 0LL;
    i.high = i.low = 0LL;
        ba.low = b;
        ba.low = b;
        ba.high = 0LL;
        ba.high = 0LL;
    while(isalnum(*inptr) || *inptr=='_') {
    while(isalnum(*inptr) || *inptr=='_') {
        if (*inptr=='_') {
        if (*inptr=='_') {
            inptr++;
            inptr++;
            continue;
            continue;
        }
        }
        if((j.low = radix36(*inptr)) < b) {
        if((j.low = radix36(*inptr)) < b) {
                        j.high = 0LL;
                        j.high = 0LL;
                        Int128::Mul(&i,&i,&ba);
                        Int128::Mul(&i,&i,&ba);
                        Int128::Add(&i,&i,&j);
                        Int128::Add(&i,&i,&j);
                        //i = i * b + j;
                        //i = i * b + j;
                        inptr++;
                        inptr++;
                        }
                        }
                else break;
                else break;
                }
                }
                if (*inptr=='L' || *inptr=='U') // ignore a 'L'ong suffix and 'U'nsigned
                if (*inptr=='L' || *inptr=='U') // ignore a 'L'ong suffix and 'U'nsigned
                        inptr++;
                        inptr++;
    ival = i;
    ival = i;
    token = tk_icon;
    token = tk_icon;
}
}
 
 
 
 
/*
/*
 *      getbase - get an integer in base 2.
 *      getbase - get an integer in base 2.
 */
 */
/*
/*
void getbase2()
void getbase2()
{
{
    Int128 i, j;
    Int128 i, j;
 
 
    i = 0;
    i = 0;
    while(*inptr=='0' || *inptr=='1' || *inptr=='_') {
    while(*inptr=='0' || *inptr=='1' || *inptr=='_') {
        if (*inptr=='_') {
        if (*inptr=='_') {
            inptr++;
            inptr++;
            continue;
            continue;
        }
        }
        j = *inptr - '0';
        j = *inptr - '0';
        i = (i + i) | j;
        i = (i + i) | j;
        inptr++;
        inptr++;
   }
   }
   if (*inptr=='L' || *inptr=='U')      // ignore a 'L'ong suffix and 'U'nsigned
   if (*inptr=='L' || *inptr=='U')      // ignore a 'L'ong suffix and 'U'nsigned
       inptr++;
       inptr++;
    ival = i;
    ival = i;
    token = tk_icon;
    token = tk_icon;
}
}
*/
*/
//
//
// getfrac - get fraction part of a floating number.
// getfrac - get fraction part of a floating number.
//
//
void getfrac()
void getfrac()
{
{
        double frmul;
        double frmul;
    frmul = 0.1;
    frmul = 0.1;
    while(isdigit(*inptr)) {
    while(isdigit(*inptr)) {
        rval += frmul * (*inptr - '0');
        rval += frmul * (*inptr - '0');
        inptr++;
        inptr++;
        frmul *= 0.1;
        frmul *= 0.1;
    }
    }
}
}
 
 
/*
/*
 *      getexp - get exponent part of floating number.
 *      getexp - get exponent part of floating number.
 *
 *
 *      this algorithm is primative but usefull.  Floating
 *      this algorithm is primative but usefull.  Floating
 *      exponents are limited to +/-255 but most hardware
 *      exponents are limited to +/-255 but most hardware
 *      won't support more anyway.
 *      won't support more anyway.
 */
 */
void getexp()
void getexp()
{       double  expo, exmul;
{       double  expo, exmul;
        expo = 1.0;
        expo = 1.0;
        if(token != tk_rconst)
        if(token != tk_rconst)
                rval = ival.low;
                rval = ival.low;
        if(*inptr == '-') {
        if(*inptr == '-') {
                exmul = 0.1;
                exmul = 0.1;
                inptr++;
                inptr++;
                }
                }
        else
        else
                exmul = 10.0;
                exmul = 10.0;
        getbase(10);
        getbase(10);
        if(ival.low > 255)
        if(ival.low > 255)
                printf("Error in floating point number.\r\n");
                printf("Error in floating point number.\r\n");
                //error(ERR_FPCON);
                //error(ERR_FPCON);
        else
        else
                while(ival.low--)
                while(ival.low--)
                        expo *= exmul;
                        expo *= exmul;
        rval *= expo;
        rval *= expo;
}
}
/*
/*
 *      getnum - get a number from input.
 *      getnum - get a number from input.
 *
 *
 *      getnum handles all of the numeric input. it accepts
 *      getnum handles all of the numeric input. it accepts
 *      decimal, octal, hexidecimal, and floating point numbers.
 *      decimal, octal, hexidecimal, and floating point numbers.
 */
 */
void getnum()
void getnum()
{
{
     register int    i;
     register int    i;
        i = 0;
        i = 0;
        if(*inptr == '0') {
        if(*inptr == '0') {
                inptr++;
                inptr++;
                if(*inptr == 'x' || *inptr == 'X') {
                if(*inptr == 'x' || *inptr == 'X') {
                        inptr++;
                        inptr++;
                        getbase(16);
                        getbase(16);
                        }
                        }
                else if(*inptr == 'o' || *inptr == 'O') {
                else if(*inptr == 'o' || *inptr == 'O') {
                        inptr++;
                        inptr++;
                        getbase(8);
                        getbase(8);
                        }
                        }
                else getbase(8);
                else getbase(8);
                }
                }
        else    {
        else    {
                getbase(10);
                getbase(10);
                if(*inptr == '.') {
                if(*inptr == '.') {
                        inptr++;
                        inptr++;
                        rval = ival.low;    /* float the integer part */
                        rval = ival.low;    /* float the integer part */
                        getfrac();      /* add the fractional part */
                        getfrac();      /* add the fractional part */
                        token = tk_rconst;
                        token = tk_rconst;
                        }
                        }
                if(*inptr == 'e' || *inptr == 'E') {
                if(*inptr == 'e' || *inptr == 'E') {
                        inptr++;
                        inptr++;
                        getexp();       /* get the exponent */
                        getexp();       /* get the exponent */
                        }
                        }
                                // Ignore 'U' unsigned suffix
                                // Ignore 'U' unsigned suffix
                                if (*inptr=='U' || *inptr=='u') {
                                if (*inptr=='U' || *inptr=='u') {
                                        inptr++;
                                        inptr++;
                                }
                                }
                                }
                                }
 
 
}
}
 
 
/*
/*
 *      getsch - get a character in a quoted string.
 *      getsch - get a character in a quoted string.
 *
 *
 *      this routine handles all of the escape mechanisms
 *      this routine handles all of the escape mechanisms
 *      for characters in strings and character constants.
 *      for characters in strings and character constants.
 */
 */
int64_t getsch()        /* return an in-quote character */
int64_t getsch()        /* return an in-quote character */
{
{
        register int64_t i, j;
        register int64_t i, j;
        if(*inptr == '\n')
        if(*inptr == '\n')
                return -1;
                return -1;
        if(*inptr != '\\') {
        if(*inptr != '\\') {
                i = *inptr;
                i = *inptr;
                inptr++;
                inptr++;
                return i;
                return i;
                }
                }
        inptr++;        /* get an escaped character */
        inptr++;        /* get an escaped character */
        if(isdigit(*inptr)) {
        if(isdigit(*inptr)) {
                i = 0;
                i = 0;
                for(j = i = 0;j < 3;++j) {
                for(j = i = 0;j < 3;++j) {
                        if(*inptr <= '7' && *inptr >= '0')
                        if(*inptr <= '7' && *inptr >= '0')
                                i = (i << 3) + *inptr - '0';
                                i = (i << 3) + *inptr - '0';
                        else
                        else
                                break;
                                break;
                        inptr++;
                        inptr++;
                        }
                        }
                return i;
                return i;
                }
                }
        i = *inptr;
        i = *inptr;
        inptr++;
        inptr++;
        switch(i) {
        switch(i) {
                case '\n':
                case '\n':
                        inptr++;
                        inptr++;
                        return getsch();
                        return getsch();
                case 'b':
                case 'b':
                        return '\b';
                        return '\b';
                case 'f':
                case 'f':
                        return '\f';
                        return '\f';
                case 'n':
                case 'n':
                        return '\n';
                        return '\n';
                case 'r':
                case 'r':
                        return '\r';
                        return '\r';
                                case 't':
                                case 't':
                                                return '\t';
                                                return '\t';
                default:
                default:
                        return i;
                        return i;
                }
                }
}
}
 
 
int getIdentifier()
int getIdentifier()
{
{
    int nn;
  int nn;
 
 
//    printf("GetIdentifier: %.30s\r\n", inptr);
//    printf("GetIdentifier: %.30s\r\n", inptr);
    if (isFirstIdentChar(*inptr) || (*inptr=='.' && isIdentChar(inptr[1]))) {
  if (isFirstIdentChar(*inptr) || (*inptr=='.' && isIdentChar(inptr[1]))) {
        nn = 1;
    nn = 1;
        lastid[0] = *inptr;
    lastid[0] = *inptr;
        inptr++;
    inptr++;
        while(isIdentChar(*inptr) && nn < sizeof(lastid)-1) {
    while(isIdentChar(*inptr) && nn < sizeof(lastid)-1) {
            lastid[nn] = *inptr;
      lastid[nn] = *inptr;
            inptr++;
      inptr++;
            nn++;
      nn++;
        }
    }
        lastid[nn] = '\0';
    lastid[nn] = '\0';
        return 1;
    return 1;
    }
  }
    else
  else
        return 0;
    return 0;
}
}
 
 
 
void getString()
 
{
 
        int nn;
 
 
 
        nn = 0;
 
        while (*inptr && *inptr != '"' && *inptr != '\n' && nn < sizeof(laststr) - 2) {
 
                laststr[nn] = *inptr;
 
                nn++;
 
                inptr++;
 
        }
 
        inptr++;
 
        laststr[nn] = '\0';
 
}
 
 
static char *pseudos[] = {
static char *pseudos[] = {
    "align", "code", "data", "tls", "rodata",
    "align", "code", "data", "tls", "rodata", "file",
    "fill", "org", "byte", "message",(char *)NULL
    "fill", "org", "byte", "message",(char *)NULL
};
};
static int pseudoTokens[] = {
static int pseudoTokens[] = {
    tk_align, tk_code, tk_data, tk_tls, tk_rodata,
    tk_align, tk_code, tk_data, tk_tls, tk_rodata, tk_file,
    tk_fill, tk_org, tk_db, tk_message, tk_none
    tk_fill, tk_org, tk_db, tk_message, tk_none
};
};
 
 
int isPseudoOp()
int isPseudoOp()
{
{
    static char buf[500];
  static char buf[500];
    char *p = inptr;
  char *p = inptr;
    int nn = 0;
  int nn = 0;
 
 
    if (*p=='.') p++;
  if (*p=='.') p++;
    if (!isFirstIdentChar(*p))
    if (!isFirstIdentChar(*p))
        return 0;
    return (0);
    while(isIdentChar(*p)) {
    while(isIdentChar(*p)) {
        buf[nn] = tolower(*p);
    buf[nn] = tolower(*p);
        p++;
    p++;
        nn++;
    nn++;
    }
  }
    buf[nn] = '\0';
    buf[nn] = '\0';
    for (nn = 0; nn < 8; nn++) {
  for (nn = 0; nn < 9; nn++) {
        if (strcmp(buf, pseudos[nn])==0) {
        if (strcmp(buf, pseudos[nn])==0) {
            //inptr = p;
      //inptr = p;
            //token = pseudoTokens[nn];
            //token = pseudoTokens[nn];
            return 1;
      return (1);
        }
        }
    }
    }
    return 0;
  return (0);
}
}
 
 
void prevToken()
void prevToken()
{
{
    inptr = pinptr;
    inptr = pinptr;
}
}
 
 
int NextToken()
int NextToken()
{
{
 
        char ch;
 
        char *p;
 
 
    pinptr = inptr;
    pinptr = inptr;
    do {
    do {
        if (*inptr=='\0')
        if (*inptr=='\0')
           return token = tk_eof;
           return token = tk_eof;
        SkipSpaces();                      // skip over leading spaces
        SkipSpaces();                      // skip over leading spaces
        if (*inptr==';') {                 // comment ?
        if (*inptr==';') {                 // comment ?
            ScanToEOL();
            ScanToEOL();
            continue;
            continue;
        }
        }
        if (isdigit(*inptr)) {
                                ch = *inptr & 0x7f;
 
        if (isdigit(ch)) {
           getnum();
           getnum();
           return token;
           return token;
        }
        }
        switch(*inptr) {
        switch(*inptr) {
 
                                case '"':
 
                                        inptr++;
 
                                        getString();
 
                                        return (token = tk_strconst);
        case '.': if (isPseudoOp()) { inptr++; continue; }
        case '.': if (isPseudoOp()) { inptr++; continue; }
                  else if (getIdentifier()) { return token = tk_id; }
                  else if (getIdentifier()) { return (token = tk_id); }
                  else { inptr++; continue; }
                  else { inptr++; continue; }
        case '\n': inptr++; return token = tk_eol;
        case '\n': inptr++; return token = tk_eol;
        case '$': inptr++; getbase(16); return token = tk_icon;
        case '$': inptr++; getbase(16); return token = tk_icon;
        case '%': inptr++; getbase(2); return token = tk_icon;
        case '%': inptr++; getbase(2); return token = tk_icon;
        case ',': inptr++; return token = ',';
        case ',': inptr++; return token = ',';
        case '+':
        case '+':
             if (inptr[1]=='}') {
             if (inptr[1]=='}') {
               inptr += 2;
               inptr += 2;
               return token = tk_end_expand;
               return token = tk_end_expand;
             }
             }
             inptr++; return token = '+';
             inptr++; return token = '+';
        case '-': inptr++; return token = '-';
        case '-': inptr++; return token = '-';
        case '/':
        case '/':
             if (inptr[1]=='/') {
             if (inptr[1]=='/') {
                ScanToEOL();
                ScanToEOL();
                continue;
                continue;
             }
             }
             if (inptr[1]=='*') {
             if (inptr[1]=='*') {
                inptr++;
                inptr++;
                do {
                do {
                        if (inptr[0]=='\0') return token = tk_eof;
                        if (inptr[0]=='\0') return token = tk_eof;
                        inptr++;
                        inptr++;
                } while(!(inptr[0]=='*' && inptr[1]=='/'));
                } while(!(inptr[0]=='*' && inptr[1]=='/'));
                continue;
                continue;
                         }
                         }
             inptr++;
             inptr++;
             return token = '/';
             return token = '/';
        case '*': inptr++; return token = '*';
        case '*': inptr++; return token = '*';
        case '#': inptr++; return token = '#';
        case '#': inptr++; return token = '#';
        case '[': inptr++; return token = '[';
        case '[': inptr++; return token = '[';
        case ']': inptr++; return token = ']';
        case ']': inptr++; return token = ']';
        case '(': inptr++; return token = '(';
        case '(': inptr++; return token = '(';
        case ')': inptr++; return token = ')';
        case ')': inptr++; return token = ')';
        case '{':
        case '{':
             if (inptr[1]=='+') {
             if (inptr[1]=='+') {
               inptr+=2;
               inptr+=2;
               return token=tk_begin_expand;
               return token=tk_begin_expand;
             }
             }
             break;
             break;
        case ':': inptr++; return token = ':';
        case ':': inptr++; return token = ':';
        case '\'':
        case '\'':
             inptr++;
             inptr++;
             ival.low = getsch();
             ival.low = getsch();
                         ival.high = 0;
                         ival.high = 0;
             if (*inptr!='\'')
             if (*inptr!='\'')
                 printf("Syntax error - missing close quote.\r\n");
                 printf("Syntax error - missing close quote.\r\n");
             else
             else
                 inptr++;
                 inptr++;
             return token = tk_icon;
             return token = tk_icon;
        case '=':
        case '=':
             if (inptr[1]=='=') { inptr+=2; return token = tk_eq; }
             if (inptr[1]=='=') { inptr+=2; return token = tk_eq; }
             inptr++;
             inptr++;
             return token = tk_eq;
             return token = tk_eq;
        case '!':
        case '!':
             if (inptr[1]=='=') { inptr+=2; return token = tk_ne; }
             if (inptr[1]=='=') { inptr+=2; return token = tk_ne; }
             inptr++;
             inptr++;
             return token = '!';
             return token = '!';
        case '>':
        case '>':
             if (inptr[1]=='>') { inptr+=2; return token = tk_rshift; }
             if (inptr[1]=='>') { inptr+=2; return token = tk_rshift; }
             if (inptr[1]=='=') { inptr+=2; return token = tk_ge; }
             if (inptr[1]=='=') { inptr+=2; return token = tk_ge; }
             inptr++;
             inptr++;
             return token = tk_gt;
             return token = tk_gt;
        case '<':
        case '<':
             if (inptr[1]=='>') { inptr+=2; return token = tk_ne; }
             if (inptr[1]=='>') { inptr+=2; return token = tk_ne; }
             if (inptr[1]=='<') { inptr+=2; return token = tk_lshift; }
             if (inptr[1]=='<') { inptr+=2; return token = tk_lshift; }
             if (inptr[1]=='=') { inptr+=2; return token = tk_le; }
             if (inptr[1]=='=') { inptr+=2; return token = tk_le; }
             inptr++;
             inptr++;
             return token = tk_lt;
             return token = tk_lt;
        case '~': inptr++; return token = '~';
        case '~': inptr++; return token = '~';
        case '|':
        case '|':
             if (inptr[1]=='|') { inptr+=2; return token = tk_lor; }
             if (inptr[1]=='|') { inptr+=2; return token = tk_lor; }
             inptr++;
             inptr++;
             return token = '|';
             return token = '|';
        case '&':
        case '&':
             if (inptr[1]=='&') { inptr+=2; return token = tk_land; }
             if (inptr[1]=='&') { inptr+=2; return token = tk_land; }
             inptr++;
             inptr++;
             return token = '&';
             return token = '&';
 
 
        case '_':
        case '_':
             if (inptr[1]=='4' &&
             if (inptr[1]=='4' &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             isspace(inptr[6])) {
             isspace(inptr[6])) {
                inptr += 6;
                inptr += 6;
                return token = tk_4addu;
                return token = tk_4addu;
             }
             }
             if (inptr[1]=='2' &&
             if (inptr[1]=='2' &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             isspace(inptr[6])) {
             isspace(inptr[6])) {
                inptr += 6;
                inptr += 6;
                return token = tk_2addu;
                return token = tk_2addu;
             }
             }
             if (inptr[1]=='8' &&
             if (inptr[1]=='8' &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             isspace(inptr[6])) {
             isspace(inptr[6])) {
                inptr += 6;
                inptr += 6;
                return token = tk_8addu;
                return token = tk_8addu;
             }
             }
             if (inptr[1]=='1' && inptr[2]=='6' &&
             if (inptr[1]=='1' && inptr[2]=='6' &&
             (inptr[3]=='a' || inptr[3]=='A') &&
             (inptr[3]=='a' || inptr[3]=='A') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='d' || inptr[5]=='D') &&
             (inptr[5]=='d' || inptr[5]=='D') &&
             (inptr[6]=='u' || inptr[6]=='U') &&
             (inptr[6]=='u' || inptr[6]=='U') &&
             isspace(inptr[7])) {
             isspace(inptr[7])) {
                inptr += 7;
                inptr += 7;
                return token = tk_16addu;
                return token = tk_16addu;
             }
             }
             if (inptr[1]=='4' &&
             if (inptr[1]=='4' &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             (inptr[6]=='i' || inptr[6]=='I') &&
             (inptr[6]=='i' || inptr[6]=='I') &&
             isspace(inptr[7])) {
             isspace(inptr[7])) {
                inptr += 7;
                inptr += 7;
                return token = tk_4addui;
                return token = tk_4addui;
             }
             }
             if (inptr[1]=='2' &&
             if (inptr[1]=='2' &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             (inptr[6]=='i' || inptr[6]=='I') &&
             (inptr[6]=='i' || inptr[6]=='I') &&
             isspace(inptr[7])) {
             isspace(inptr[7])) {
                inptr += 7;
                inptr += 7;
                return token = tk_2addui;
                return token = tk_2addui;
             }
             }
             if (inptr[1]=='8' &&
             if (inptr[1]=='8' &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             (inptr[5]=='u' || inptr[5]=='U') &&
             (inptr[6]=='i' || inptr[6]=='I') &&
             (inptr[6]=='i' || inptr[6]=='I') &&
             isspace(inptr[7])) {
             isspace(inptr[7])) {
                inptr += 7;
                inptr += 7;
                return token = tk_8addui;
                return token = tk_8addui;
             }
             }
             if (inptr[1]=='1' && inptr[2]=='6' &&
             if (inptr[1]=='1' && inptr[2]=='6' &&
             (inptr[3]=='a' || inptr[3]=='A') &&
             (inptr[3]=='a' || inptr[3]=='A') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='d' || inptr[5]=='D') &&
             (inptr[5]=='d' || inptr[5]=='D') &&
             (inptr[6]=='u' || inptr[6]=='U') &&
             (inptr[6]=='u' || inptr[6]=='U') &&
             (inptr[7]=='i' || inptr[7]=='I') &&
             (inptr[7]=='i' || inptr[7]=='I') &&
             isspace(inptr[8])) {
             isspace(inptr[8])) {
                inptr += 8;
                inptr += 8;
                return token = tk_16addui;
                return token = tk_16addui;
             }
             }
             break;
             break;
 
 
        // abs add addi addu addui and andi align asr asri
        // abs add addi addu addui and andi align asr asri
        case 'a':
        case 'a':
        case 'A':
        case 'A':
            if ((inptr[1]=='n' || inptr[1]=='N') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
            if ((inptr[1]=='n' || inptr[1]=='N') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_and;
                return token = tk_and;
            }
            }
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='d' || inptr[2]=='D') && (inptr[3]=='u' || inptr[3]=='U') && isspace(inptr[4])) {
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='d' || inptr[2]=='D') && (inptr[3]=='u' || inptr[3]=='U') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_addu;
                return token = tk_addu;
            }
            }
            if ((inptr[1]=='d' || inptr[1]=='D') &&
            if ((inptr[1]=='d' || inptr[1]=='D') &&
                (inptr[2]=='d' || inptr[2]=='D') &&
                (inptr[2]=='d' || inptr[2]=='D') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_addui;
                return token = tk_addui;
            }
            }
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='d' || inptr[2]=='D') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='d' || inptr[2]=='D') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_addi;
                return token = tk_addi;
            }
            }
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_add;
                return token = tk_add;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='i' || inptr[2]=='I') && (inptr[3]=='g' || inptr[3]=='G') && (inptr[4]=='n' || inptr[4]=='N') && isspace(inptr[5])) {
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='i' || inptr[2]=='I') && (inptr[3]=='g' || inptr[3]=='G') && (inptr[4]=='n' || inptr[4]=='N') && isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_align;
                return token = tk_align;
            }
            }
            if ((inptr[1]=='n' || inptr[1]=='N') && (inptr[2]=='d' || inptr[2]=='D') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='n' || inptr[1]=='N') && (inptr[2]=='d' || inptr[2]=='D') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_andi;
                return token = tk_andi;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='r' || inptr[2]=='R') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='r' || inptr[2]=='R') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_asri;
                return token = tk_asri;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='r' || inptr[2]=='R') && isspaceOrDot(inptr[3])) {
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='r' || inptr[2]=='R') && isspaceOrDot(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_asr;
                return token = tk_asr;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='l' || inptr[2]=='L') && (inptr[3]=='i' || inptr[3]=='I') && isspaceOrDot(inptr[4])) {
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='l' || inptr[2]=='L') && (inptr[3]=='i' || inptr[3]=='I') && isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_asli;
                return token = tk_asli;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='l' || inptr[2]=='L') && isspaceOrDot(inptr[3])) {
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='l' || inptr[2]=='L') && isspaceOrDot(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_asl;
                return token = tk_asl;
            }
            }
            if ((inptr[1]=='b' || inptr[1]=='B') && (inptr[2]=='s' || inptr[2]=='S') && isspace(inptr[3])) {
            if ((inptr[1]=='b' || inptr[1]=='B') && (inptr[2]=='s' || inptr[2]=='S') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_abs;
                return token = tk_abs;
            }
            }
            break;
            break;
 
 
        // beq bne bit
        // beq bne bit
        case 'b':
        case 'b':
        case 'B':
        case 'B':
            if ((inptr[1]=='e' || inptr[1]=='E') &&
            if ((inptr[1]=='e' || inptr[1]=='E') &&
                (inptr[2]=='q' || inptr[2]=='Q') &&
                (inptr[2]=='q' || inptr[2]=='Q') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_beq;
                return token = tk_beq;
            }
            }
            if ((inptr[1]=='e' || inptr[1]=='E') &&
            if ((inptr[1]=='e' || inptr[1]=='E') &&
                (inptr[2]=='q' || inptr[2]=='Q') &&
                (inptr[2]=='q' || inptr[2]=='Q') &&
                (inptr[3]=='i' || inptr[2]=='I') &&
                (inptr[3]=='i' || inptr[2]=='I') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_beqi;
                return token = tk_beqi;
            }
            }
            if ((inptr[1]=='n' || inptr[1]=='N') &&
            if ((inptr[1]=='n' || inptr[1]=='N') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bne;
                return token = tk_bne;
            }
            }
            if ((inptr[1]=='n' || inptr[1]=='N') &&
            if ((inptr[1]=='n' || inptr[1]=='N') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bnei;
                return token = tk_bnei;
            }
            }
            if ((inptr[1]=='r' || inptr[1]=='R') &&
            if ((inptr[1]=='r' || inptr[1]=='R') &&
                (inptr[2]=='a' || inptr[2]=='A') &&
                (inptr[2]=='a' || inptr[2]=='A') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bra;
                return token = tk_bra;
            }
            }
            if ((inptr[1]=='r' || inptr[1]=='R') &&
            if ((inptr[1]=='r' || inptr[1]=='R') &&
                (inptr[2]=='z' || inptr[2]=='Z') &&
                (inptr[2]=='z' || inptr[2]=='Z') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_brz;
                return token = tk_brz;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_blt;
                return token = tk_blt;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_blti;
                return token = tk_blti;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bltu;
                return token = tk_bltu;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_bltui;
                return token = tk_bltui;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='o' || inptr[2]=='O') &&
                (inptr[2]=='o' || inptr[2]=='O') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bltu;
                return token = tk_bltu;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_ble;
                return token = tk_ble;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_blei;
                return token = tk_blei;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bleu;
                return token = tk_bleu;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_bleui;
                return token = tk_bleui;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bleu;
                return token = tk_bleu;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bge;
                return token = tk_bge;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bgei;
                return token = tk_bgei;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bgeu;
                return token = tk_bgeu;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_bgeui;
                return token = tk_bgeui;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') &&
            if ((inptr[1]=='h' || inptr[1]=='H') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bgeu;
                return token = tk_bgeu;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bgt;
                return token = tk_bgt;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bgti;
                return token = tk_bgti;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bgtu;
                return token = tk_bgtu;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_bgtui;
                return token = tk_bgtui;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') &&
            if ((inptr[1]=='h' || inptr[1]=='H') &&
                (inptr[2]=='i' || inptr[2]=='I') &&
                (inptr[2]=='i' || inptr[2]=='I') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bgtu;
                return token = tk_bgtu;
            }
            }
            if ((inptr[1]=='r' || inptr[1]=='R') &&
            if ((inptr[1]=='r' || inptr[1]=='R') &&
                (inptr[2]=='n' || inptr[2]=='N') &&
                (inptr[2]=='n' || inptr[2]=='N') &&
                (inptr[3]=='z' || inptr[3]=='Z') &&
                (inptr[3]=='z' || inptr[3]=='Z') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_brnz;
                return token = tk_brnz;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') &&
            if ((inptr[1]=='s' || inptr[1]=='S') &&
                (inptr[2]=='r' || inptr[2]=='R') &&
                (inptr[2]=='r' || inptr[2]=='R') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bsr;
                return token = tk_bsr;
            }
            }
            if ((inptr[1]=='m' || inptr[1]=='M') &&
            if ((inptr[1]=='m' || inptr[1]=='M') &&
                (inptr[2]=='i' || inptr[2]=='I') &&
                (inptr[2]=='i' || inptr[2]=='I') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bmi;
                return token = tk_bmi;
            }
            }
            if ((inptr[1]=='p' || inptr[1]=='P') &&
            if ((inptr[1]=='p' || inptr[1]=='P') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bpl;
                return token = tk_bpl;
            }
            }
            if ((inptr[1]=='v' || inptr[1]=='V') &&
            if ((inptr[1]=='v' || inptr[1]=='V') &&
                (inptr[2]=='c' || inptr[2]=='C') &&
                (inptr[2]=='c' || inptr[2]=='C') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bvc;
                return token = tk_bvc;
            }
            }
            if ((inptr[1]=='v' || inptr[1]=='V') &&
            if ((inptr[1]=='v' || inptr[1]=='V') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bvs;
                return token = tk_bvs;
            }
            }
            if (inptr[1]=='r' && inptr[2]=='k' && isspace(inptr[3])) {
            if (inptr[1]=='r' && inptr[2]=='k' && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_brk;
                return token = tk_brk;
            }
            }
            if ((inptr[1]=='r' || inptr[1]=='R') &&
            if ((inptr[1]=='r' || inptr[1]=='R') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                (inptr[3]=='l' || inptr[3]=='L') &&
                (inptr[3]=='l' || inptr[3]=='L') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bpl;
                return token = tk_bpl;
            }
            }
            if ((inptr[1]=='r' || inptr[1]=='R') &&
            if ((inptr[1]=='r' || inptr[1]=='R') &&
                (inptr[2]=='m' || inptr[2]=='M') &&
                (inptr[2]=='m' || inptr[2]=='M') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bmi;
                return token = tk_bmi;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') &&
            if ((inptr[1]=='s' || inptr[1]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_bss;
                return token = tk_bss;
            }
            }
            if ((inptr[1]=='i' || inptr[1]=='I') &&
            if ((inptr[1]=='i' || inptr[1]=='I') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='s' || inptr[3]=='S') &&
                (inptr[3]=='s' || inptr[3]=='S') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_bits;
                return token = tk_bits;
            }
            }
            if ((inptr[1]=='y' || inptr[1]=='Y') &&
            if ((inptr[1]=='y' || inptr[1]=='Y') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='e' || inptr[3]=='E') &&
                (inptr[3]=='e' || inptr[3]=='E') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_db;
                return token = tk_db;
            }
            }
            if ((inptr[1]=='f' || inptr[1]=='F') &&
            if ((inptr[1]=='f' || inptr[1]=='F') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='x' || inptr[3]=='X') &&
                (inptr[3]=='x' || inptr[3]=='X') &&
                (inptr[4]=='t' || inptr[4]=='T') &&
                (inptr[4]=='t' || inptr[4]=='T') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_bfext;
                return token = tk_bfext;
            }
            }
            if ((inptr[1]=='f' || inptr[1]=='F') &&
            if ((inptr[1]=='f' || inptr[1]=='F') &&
                (inptr[2]=='i' || inptr[2]=='I') &&
                (inptr[2]=='i' || inptr[2]=='I') &&
                (inptr[3]=='n' || inptr[3]=='N') &&
                (inptr[3]=='n' || inptr[3]=='N') &&
                (inptr[4]=='s' || inptr[4]=='S') &&
                (inptr[4]=='s' || inptr[4]=='S') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_bfins;
                return token = tk_bfins;
            }
            }
            if ((inptr[1]=='f' || inptr[1]=='F') &&
            if ((inptr[1]=='f' || inptr[1]=='F') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='x' || inptr[3]=='X') &&
                (inptr[3]=='x' || inptr[3]=='X') &&
                (inptr[4]=='t' || inptr[4]=='T') &&
                (inptr[4]=='t' || inptr[4]=='T') &&
                (inptr[5]=='u' || inptr[5]=='U') &&
                (inptr[5]=='u' || inptr[5]=='U') &&
                 isspace(inptr[6])) {
                 isspace(inptr[6])) {
                inptr += 6;
                inptr += 6;
                return token = tk_bfextu;
                return token = tk_bfextu;
            }
            }
            if (gCpu==4) {
            if (gCpu==4) {
                if ((inptr[1]=='r' || inptr[1]=='R') && isspace(inptr[2])) {
                if ((inptr[1]=='r' || inptr[1]=='R') && isspace(inptr[2])) {
                    inptr += 2;
                    inptr += 2;
                    return token = tk_br;
                    return token = tk_br;
                }
                }
                if ((inptr[1]=='i' || inptr[1]=='I') &&
                if ((inptr[1]=='i' || inptr[1]=='I') &&
                    (inptr[2]=='t' || inptr[2]=='T') &&
                    (inptr[2]=='t' || inptr[2]=='T') &&
                     isspace(inptr[3])) {
                     isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_bit;
                    return token = tk_bit;
                }
                }
                if ((inptr[1]=='i' || inptr[1]=='I') &&
                if ((inptr[1]=='i' || inptr[1]=='I') &&
                    (inptr[2]=='t' || inptr[2]=='T') &&
                    (inptr[2]=='t' || inptr[2]=='T') &&
                    (inptr[3]=='i' || inptr[3]=='I') &&
                    (inptr[3]=='i' || inptr[3]=='I') &&
                     isspace(inptr[4])) {
                     isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_biti;
                    return token = tk_biti;
                }
                }
            }
            }
                        if (gCpu==7 || gCpu=='A' || gCpu=='F') {
                        if (gCpu==7 || gCpu=='A' || gCpu=='F') {
                if ((inptr[1]=='b' || inptr[1]=='B') &&
                if ((inptr[1]=='b' || inptr[1]=='B') &&
                    (inptr[2]=='c' || inptr[2]=='C') &&
                    (inptr[2]=='c' || inptr[2]=='C') &&
                     isspace(inptr[3])) {
                     isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_bbc;
                    return token = tk_bbc;
                }
                }
                if ((inptr[1]=='b' || inptr[1]=='B') &&
                if ((inptr[1]=='b' || inptr[1]=='B') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                     isspace(inptr[3])) {
                     isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_bbs;
                    return token = tk_bbs;
                }
                }
                        }
                        }
            break;
            break;
 
 
        // call cas chk cmp cmpu code cli com cmpi csrrc csrrs csrrw
        // call cas chk cmp cmpu code cli com cmpi csrrc csrrs csrrw
        case 'c': case 'C':
        case 'c': case 'C':
                        if (gCpu=='F' || gCpu=='G') {
                        if (gCpu=='F' || gCpu=='G') {
                                if ((inptr[1]=='a' || inptr[1]=='A')
                                if ((inptr[1]=='a' || inptr[1]=='A')
                                        && (inptr[2]=='c' || inptr[2]=='C')
                                        && (inptr[2]=='c' || inptr[2]=='C')
                                        && (inptr[3]=='h' || inptr[3]=='H')
                                        && (inptr[3]=='h' || inptr[3]=='H')
                                        && (inptr[4]=='e' || inptr[4]=='E')
                                        && (inptr[4]=='e' || inptr[4]=='E')
                                        && isspace(inptr[5])) {
                                        && isspace(inptr[5])) {
                                                inptr += 5;
                                                inptr += 5;
                                                return (token = tk_cache);
                                                return (token = tk_cache);
                                }
                                }
                        }
                        }
                         if (gCpu==7 || gCpu=='A' || gCpu=='F' || gCpu=='G') {
                         if (gCpu==7 || gCpu=='A' || gCpu=='F' || gCpu=='G') {
                 if ((inptr[1]=='a' || inptr[1]=='A') &&
                 if ((inptr[1]=='a' || inptr[1]=='A') &&
                     (inptr[2]=='l' || inptr[2]=='L') &&
                     (inptr[2]=='l' || inptr[2]=='L') &&
                     (inptr[3]=='l' || inptr[3]=='L') &&
                     (inptr[3]=='l' || inptr[3]=='L') &&
                     isspace(inptr[4])) {
                     isspace(inptr[4])) {
                     inptr += 4;
                     inptr += 4;
                     return token = tk_call;
                     return token = tk_call;
                 }
                 }
                 if ((inptr[1]=='a' || inptr[1]=='A') &&
                 if ((inptr[1]=='a' || inptr[1]=='A') &&
                     (inptr[2]=='l' || inptr[2]=='L') &&
                     (inptr[2]=='l' || inptr[2]=='L') &&
                     (inptr[3]=='l' || inptr[3]=='L') &&
                     (inptr[3]=='l' || inptr[3]=='L') &&
                     (inptr[4]=='t' || inptr[4]=='T') &&
                     (inptr[4]=='t' || inptr[4]=='T') &&
                     (inptr[5]=='g' || inptr[5]=='G') &&
                     (inptr[5]=='g' || inptr[5]=='G') &&
                     (inptr[6]=='t' || inptr[6]=='T') &&
                     (inptr[6]=='t' || inptr[6]=='T') &&
                     isspace(inptr[7])) {
                     isspace(inptr[7])) {
                     inptr += 7;
                     inptr += 7;
                     return token = tk_calltgt;
                     return token = tk_calltgt;
                 }
                 }
                         }
                         }
             if (gCpu==4) {
             if (gCpu==4) {
                 if ((inptr[1]=='m' || inptr[1]=='M') &&
                 if ((inptr[1]=='m' || inptr[1]=='M') &&
                     (inptr[2]=='p' || inptr[2]=='P') &&
                     (inptr[2]=='p' || inptr[2]=='P') &&
                     (inptr[3]=='i' || inptr[3]=='I') &&
                     (inptr[3]=='i' || inptr[3]=='I') &&
                     isspace(inptr[4])) {
                     isspace(inptr[4])) {
                     inptr += 4;
                     inptr += 4;
                     return token = tk_cmpi;
                     return token = tk_cmpi;
                 }
                 }
             }
             }
             if ((inptr[1]=='m' || inptr[1]=='M') &&
             if ((inptr[1]=='m' || inptr[1]=='M') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 (inptr[3]=='u' || inptr[3]=='U') &&
                 (inptr[3]=='u' || inptr[3]=='U') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_cmpu;
                 return token = tk_cmpu;
             }
             }
             if ((inptr[1]=='m' || inptr[1]=='M') &&
             if ((inptr[1]=='m' || inptr[1]=='M') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 (inptr[3]=='u' || inptr[3]=='U') &&
                 (inptr[3]=='u' || inptr[3]=='U') &&
                 (inptr[4]=='i' || inptr[4]=='I') &&
                 (inptr[4]=='i' || inptr[4]=='I') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                 inptr += 5;
                 inptr += 5;
                 return token = tk_cmpui;
                 return token = tk_cmpui;
             }
             }
             if ((inptr[1]=='m' || inptr[1]=='M') &&
             if ((inptr[1]=='m' || inptr[1]=='M') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_cmp;
                 return token = tk_cmp;
             }
             }
             if ((inptr[1]=='o' || inptr[1]=='O') &&
             if ((inptr[1]=='o' || inptr[1]=='O') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[3]=='e' || inptr[3]=='E') &&
                 (inptr[3]=='e' || inptr[3]=='E') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_code;
                 return token = tk_code;
             }
             }
             if ((inptr[1]=='l' || inptr[1]=='L') &&
             if ((inptr[1]=='l' || inptr[1]=='L') &&
                 (inptr[2]=='i' || inptr[2]=='I') &&
                 (inptr[2]=='i' || inptr[2]=='I') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_cli;
                 return token = tk_cli;
             }
             }
             if ((inptr[1]=='o' || inptr[1]=='O') &&
             if ((inptr[1]=='o' || inptr[1]=='O') &&
                 (inptr[2]=='m' || inptr[2]=='M') &&
                 (inptr[2]=='m' || inptr[2]=='M') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_com;
                 return token = tk_com;
             }
             }
             if ((inptr[1]=='s' || inptr[1]=='S') &&
             if ((inptr[1]=='s' || inptr[1]=='S') &&
                 (inptr[2]==':')) {
                 (inptr[2]==':')) {
                 inptr+=3;
                 inptr+=3;
                 return token = tk_cs;
                 return token = tk_cs;
             }
             }
             if ((inptr[1]=='p' || inptr[1]=='P') &&
             if ((inptr[1]=='p' || inptr[1]=='P') &&
                 (inptr[2]=='u' || inptr[2]=='U') &&
                 (inptr[2]=='u' || inptr[2]=='U') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                 (inptr[4]=='d' || inptr[4]=='D') &&
                 (inptr[4]=='d' || inptr[4]=='D') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                 inptr += 5;
                 inptr += 5;
                 return token = tk_cpuid;
                 return token = tk_cpuid;
             }
             }
             if ((inptr[1]=='a' || inptr[1]=='A') &&
             if ((inptr[1]=='a' || inptr[1]=='A') &&
                 (inptr[2]=='s' || inptr[2]=='S') &&
                 (inptr[2]=='s' || inptr[2]=='S') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_cas;
                 return token = tk_cas;
             }
             }
             if ((inptr[1]=='h' || inptr[1]=='H') &&
             if ((inptr[1]=='h' || inptr[1]=='H') &&
                 (inptr[2]=='k' || inptr[2]=='K') &&
                 (inptr[2]=='k' || inptr[2]=='K') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_chk;
                 return token = tk_chk;
             }
             }
             if ((inptr[1]=='h' || inptr[1]=='H') &&
             if ((inptr[1]=='h' || inptr[1]=='H') &&
                 (inptr[2]=='k' || inptr[2]=='K') &&
                 (inptr[2]=='k' || inptr[2]=='K') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_chki;
                 return token = tk_chki;
             }
             }
             if (gCpu==5 || gCpu==7 || gCpu=='A' || gCpu=='F' || gCpu=='G') {
             if (gCpu==5 || gCpu==7 || gCpu=='A' || gCpu=='F' || gCpu=='G') {
               if ((inptr[1]=='s' || inptr[1]=='S') &&
               if ((inptr[1]=='s' || inptr[1]=='S') &&
                   (inptr[2]=='r' || inptr[2]=='R') &&
                   (inptr[2]=='r' || inptr[2]=='R') &&
                   (inptr[3]=='r' || inptr[3]=='R') &&
                   (inptr[3]=='r' || inptr[3]=='R') &&
                   (inptr[4]=='c' || inptr[4]=='C') &&
                   (inptr[4]=='c' || inptr[4]=='C') &&
                   isspace(inptr[5])) {
                   isspace(inptr[5])) {
                     inptr += 5;
                     inptr += 5;
                     return token = tk_csrrc;
                     return token = tk_csrrc;
               }
               }
               if ((inptr[1]=='s' || inptr[1]=='S') &&
               if ((inptr[1]=='s' || inptr[1]=='S') &&
                   (inptr[2]=='r' || inptr[2]=='R') &&
                   (inptr[2]=='r' || inptr[2]=='R') &&
                   (inptr[3]=='r' || inptr[3]=='R') &&
                   (inptr[3]=='r' || inptr[3]=='R') &&
                   (inptr[4]=='d' || inptr[4]=='D') &&
                   (inptr[4]=='d' || inptr[4]=='D') &&
                   isspace(inptr[5])) {
                   isspace(inptr[5])) {
                     inptr += 5;
                     inptr += 5;
                     return token = tk_csrrd;
                     return token = tk_csrrd;
               }
               }
               if ((inptr[1]=='s' || inptr[1]=='S') &&
               if ((inptr[1]=='s' || inptr[1]=='S') &&
                   (inptr[2]=='r' || inptr[2]=='R') &&
                   (inptr[2]=='r' || inptr[2]=='R') &&
                   (inptr[3]=='r' || inptr[3]=='R') &&
                   (inptr[3]=='r' || inptr[3]=='R') &&
                   (inptr[4]=='s' || inptr[4]=='S') &&
                   (inptr[4]=='s' || inptr[4]=='S') &&
                   isspace(inptr[5])) {
                   isspace(inptr[5])) {
                     inptr += 5;
                     inptr += 5;
                     return token = tk_csrrs;
                     return token = tk_csrrs;
               }
               }
               if ((inptr[1]=='s' || inptr[1]=='S') &&
               if ((inptr[1]=='s' || inptr[1]=='S') &&
                   (inptr[2]=='r' || inptr[2]=='R') &&
                   (inptr[2]=='r' || inptr[2]=='R') &&
                   (inptr[3]=='r' || inptr[3]=='R') &&
                   (inptr[3]=='r' || inptr[3]=='R') &&
                   (inptr[4]=='w' || inptr[4]=='W') &&
                   (inptr[4]=='w' || inptr[4]=='W') &&
                   isspace(inptr[5])) {
                   isspace(inptr[5])) {
                     inptr += 5;
                     inptr += 5;
                     return token = tk_csrrw;
                     return token = tk_csrrw;
                   }
                   }
                           if (gCpu == 'F') {
                           if (gCpu == 'F') {
                                   if ((inptr[1] == 'm' || inptr[1] == 'M') &&
                                   if ((inptr[1] == 'm' || inptr[1] == 'M') &&
                                           (inptr[2] == 'o' || inptr[2] == 'O') &&
                                           (inptr[2] == 'o' || inptr[2] == 'O') &&
                                           (inptr[3] == 'v' || inptr[3] == 'V') &&
                                           (inptr[3] == 'v' || inptr[3] == 'V') &&
                                           (inptr[4] == 'e' || inptr[4] == 'E') &&
                                           (inptr[4] == 'e' || inptr[4] == 'E') &&
                                           (inptr[5] == 'n' || inptr[5] == 'N') &&
                                           (inptr[5] == 'n' || inptr[5] == 'N') &&
                                           (inptr[6] == 'z' || inptr[6] == 'Z') &&
                                           (inptr[6] == 'z' || inptr[6] == 'Z') &&
                                           isspace(inptr[7])) {
                                           isspace(inptr[7])) {
                                           inptr += 7;
                                           inptr += 7;
                                           return (token = tk_cmovenz);
                                           return (token = tk_cmovenz);
                                   }
                                   }
 
 
                           }
                           }
             }
             }
             break;
             break;
 
 
        // db dbnz dc dh dw data div divs divu divi divui ds:
        // db dbnz dc dh dw data div divs divu divi divui ds:
        case 'd': case 'D':
        case 'd': case 'D':
             if ((inptr[1]=='b' || inptr[1]=='B') &&
             if ((inptr[1]=='b' || inptr[1]=='B') &&
                 (inptr[2]=='n' || inptr[2]=='N') &&
                 (inptr[2]=='n' || inptr[2]=='N') &&
                 (inptr[3]=='z' || inptr[3]=='Z') &&
                 (inptr[3]=='z' || inptr[3]=='Z') &&
                  isspace(inptr[4])) {
                  isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_dbnz;
                 return token = tk_dbnz;
             }
             }
             if ((inptr[1]=='b' || inptr[1]=='B') && isspace(inptr[2])) {
             if ((inptr[1]=='b' || inptr[1]=='B') && isspace(inptr[2])) {
                 inptr += 2;
                 inptr += 2;
                 return token = tk_db;
                 return token = tk_db;
             }
             }
             if ((inptr[1]=='c' || inptr[1]=='C') && isspace(inptr[2])) {
             if ((inptr[1]=='c' || inptr[1]=='C') && isspace(inptr[2])) {
                 inptr += 2;
                 inptr += 2;
                 return token = tk_dc;
                 return token = tk_dc;
             }
             }
             if ((inptr[1]=='h' || inptr[1]=='H') && isspace(inptr[2])) {
             if ((inptr[1]=='h' || inptr[1]=='H') && isspace(inptr[2])) {
                 inptr += 2;
                 inptr += 2;
                 return token = tk_dh;
                 return token = tk_dh;
             }
             }
                         if (gCpu=='A') {
                         if (gCpu=='A') {
                                 if ((inptr[1]=='d' || inptr[1]=='D') && isspace(inptr[2])) {
                                 if ((inptr[1]=='d' || inptr[1]=='D') && isspace(inptr[2])) {
                                         inptr += 2;
                                         inptr += 2;
                                         return token = tk_dd;
                                         return token = tk_dd;
                                 }
                                 }
                                 if ((inptr[1]=='o' || inptr[1]=='O') && isspace(inptr[2])) {
                                 if ((inptr[1]=='o' || inptr[1]=='O') && isspace(inptr[2])) {
                                         inptr += 2;
                                         inptr += 2;
                                         return token = tk_do;
                                         return token = tk_do;
                                 }
                                 }
                                 if ((inptr[1]=='t' || inptr[1]=='T') && isspace(inptr[2])) {
                                 if ((inptr[1]=='t' || inptr[1]=='T') && isspace(inptr[2])) {
                                         inptr += 2;
                                         inptr += 2;
                                         return token = tk_dt;
                                         return token = tk_dt;
                                 }
                                 }
                         }
                         }
             if ((inptr[1]=='w' || inptr[1]=='W') && isspace(inptr[2])) {
             if ((inptr[1]=='w' || inptr[1]=='W') && isspace(inptr[2])) {
                 inptr += 2;
                 inptr += 2;
                 return token = tk_dw;
                 return token = tk_dw;
             }
             }
             if ((inptr[1]=='i' || inptr[1]=='I') && (inptr[2]=='v' || inptr[2]=='V') && isspace(inptr[3])) {
             if ((inptr[1]=='i' || inptr[1]=='I') && (inptr[2]=='v' || inptr[2]=='V') && isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_div;
                 return token = tk_div;
             }
             }
             if ((inptr[1]=='i' || inptr[1]=='I') &&
             if ((inptr[1]=='i' || inptr[1]=='I') &&
                 (inptr[2]=='v' || inptr[2]=='V') &&
                 (inptr[2]=='v' || inptr[2]=='V') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                  isspace(inptr[4])) {
                  isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_divi;
                 return token = tk_divi;
             }
             }
             if ((inptr[1]=='i' || inptr[1]=='I') &&
             if ((inptr[1]=='i' || inptr[1]=='I') &&
                 (inptr[2]=='v' || inptr[2]=='V') &&
                 (inptr[2]=='v' || inptr[2]=='V') &&
                 (inptr[3]=='u' || inptr[3]=='U') &&
                 (inptr[3]=='u' || inptr[3]=='U') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_divu;
                 return token = tk_divu;
             }
             }
             if ((inptr[1]=='i' || inptr[1]=='I') &&
             if ((inptr[1]=='i' || inptr[1]=='I') &&
                 (inptr[2]=='v' || inptr[2]=='V') &&
                 (inptr[2]=='v' || inptr[2]=='V') &&
                 (inptr[3]=='u' || inptr[3]=='U') &&
                 (inptr[3]=='u' || inptr[3]=='U') &&
                 (inptr[4]=='i' || inptr[4]=='I') &&
                 (inptr[4]=='i' || inptr[4]=='I') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                 inptr += 5;
                 inptr += 5;
                 return token = tk_divui;
                 return token = tk_divui;
             }
             }
             if ((inptr[1]=='i' || inptr[1]=='I') &&
             if ((inptr[1]=='i' || inptr[1]=='I') &&
                 (inptr[2]=='v' || inptr[2]=='V') &&
                 (inptr[2]=='v' || inptr[2]=='V') &&
                 (inptr[3]=='s' || inptr[3]=='S') &&
                 (inptr[3]=='s' || inptr[3]=='S') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_div;
                 return token = tk_div;
             }
             }
             if ((inptr[1]=='a' || inptr[1]=='A') &&
             if ((inptr[1]=='a' || inptr[1]=='A') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 (inptr[3]=='a' || inptr[3]=='A') &&
                 (inptr[3]=='a' || inptr[3]=='A') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_data;
                 return token = tk_data;
             }
             }
             if ((inptr[1]=='s' || inptr[1]=='S') &&
             if ((inptr[1]=='s' || inptr[1]=='S') &&
                 (inptr[2]==':')) {
                 (inptr[2]==':')) {
                 inptr+=3;
                 inptr+=3;
                 return token = tk_ds;
                 return token = tk_ds;
             }
             }
             if ((inptr[1]=='c' || inptr[1]=='C') && (inptr[2]=='b' || inptr[2]=='B') && (isspace(inptr[3])||inptr[3]=='.')) {
             if ((inptr[1]=='c' || inptr[1]=='C') && (inptr[2]=='b' || inptr[2]=='B') && (isspace(inptr[3])||inptr[3]=='.')) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_fill;
                 return token = tk_fill;
             }
             }
             if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='c' || inptr[2]=='C') && (isspace(inptr[3])||inptr[3]=='.')) {
             if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='c' || inptr[2]=='C') && (isspace(inptr[3])||inptr[3]=='.')) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_dec;
                 return token = tk_dec;
             }
             }
             if ((inptr[1]=='h' || inptr[1]=='H') &&
             if ((inptr[1]=='h' || inptr[1]=='H') &&
                 (inptr[2]=='_' || inptr[2]=='_') &&
                 (inptr[2]=='_' || inptr[2]=='_') &&
                 (inptr[3]=='h' || inptr[3]=='H') &&
                 (inptr[3]=='h' || inptr[3]=='H') &&
                 (inptr[4]=='t' || inptr[4]=='T') &&
                 (inptr[4]=='t' || inptr[4]=='T') &&
                 (inptr[5]=='b' || inptr[4]=='B') &&
                 (inptr[5]=='b' || inptr[4]=='B') &&
                 (inptr[6]=='l' || inptr[4]=='L') &&
                 (inptr[6]=='l' || inptr[4]=='L') &&
                 isspace(inptr[7])) {
                 isspace(inptr[7])) {
                 inptr += 7;
                 inptr += 7;
                 return token = tk_dh_htbl;
                 return token = tk_dh_htbl;
             }
             }
             break;
             break;
 
 
        // end eor eori endif endpublic extern equ eret es
        // end eor eori endif endpublic extern equ eret es
        case 'e': case 'E':
        case 'e': case 'E':
             if ((inptr[1]=='q' || inptr[1]=='Q') &&
             if ((inptr[1]=='q' || inptr[1]=='Q') &&
                 (inptr[2]=='u' || inptr[2]=='U') &&
                 (inptr[2]=='u' || inptr[2]=='U') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_equ;
                 return token = tk_equ;
             }
             }
             if ((inptr[1]=='o' || inptr[1]=='O') &&
             if ((inptr[1]=='o' || inptr[1]=='O') &&
                 (inptr[2]=='r' || inptr[2]=='R') &&
                 (inptr[2]=='r' || inptr[2]=='R') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_eori;
                 return token = tk_eori;
             }
             }
             if ((inptr[1]=='o' || inptr[1]=='O') &&
             if ((inptr[1]=='o' || inptr[1]=='O') &&
                 (inptr[2]=='r' || inptr[2]=='R') &&
                 (inptr[2]=='r' || inptr[2]=='R') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_eor;
                 return token = tk_eor;
             }
             }
             if ((inptr[1]=='n' || inptr[1]=='N') &&
             if ((inptr[1]=='n' || inptr[1]=='N') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_end;
                 return token = tk_end;
             }
             }
             if ((inptr[1]=='n' || inptr[1]=='O') &&
             if ((inptr[1]=='n' || inptr[1]=='O') &&
                 (inptr[2]=='d' || inptr[2]=='R') &&
                 (inptr[2]=='d' || inptr[2]=='R') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                 (inptr[3]=='i' || inptr[3]=='I') &&
                 (inptr[4]=='f' || inptr[4]=='F') &&
                 (inptr[4]=='f' || inptr[4]=='F') &&
                 isspace(inptr[5])) {
                 isspace(inptr[5])) {
                 inptr += 5;
                 inptr += 5;
                 return token = tk_endif;
                 return token = tk_endif;
             }
             }
             if ((inptr[1]=='l' || inptr[1]=='L') &&
             if ((inptr[1]=='l' || inptr[1]=='L') &&
                 (inptr[2]=='s' || inptr[2]=='S') &&
                 (inptr[2]=='s' || inptr[2]=='S') &&
                 (inptr[3]=='e' || inptr[3]=='E') &&
                 (inptr[3]=='e' || inptr[3]=='E') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_else;
                 return token = tk_else;
             }
             }
             if ((inptr[1]=='n' || inptr[1]=='N') &&
             if ((inptr[1]=='n' || inptr[1]=='N') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[3]=='p' || inptr[3]=='P') &&
                 (inptr[3]=='p' || inptr[3]=='P') &&
                 (inptr[4]=='u' || inptr[4]=='U') &&
                 (inptr[4]=='u' || inptr[4]=='U') &&
                 (inptr[5]=='b' || inptr[5]=='B') &&
                 (inptr[5]=='b' || inptr[5]=='B') &&
                 (inptr[6]=='l' || inptr[6]=='L') &&
                 (inptr[6]=='l' || inptr[6]=='L') &&
                 (inptr[7]=='i' || inptr[7]=='I') &&
                 (inptr[7]=='i' || inptr[7]=='I') &&
                 (inptr[8]=='c' || inptr[8]=='C') &&
                 (inptr[8]=='c' || inptr[8]=='C') &&
                 isspace(inptr[9])) {
                 isspace(inptr[9])) {
                 inptr += 9;
                 inptr += 9;
                 return token = tk_endpublic;
                 return token = tk_endpublic;
             }
             }
             if ((inptr[1]=='x' || inptr[1]=='X') &&
             if ((inptr[1]=='x' || inptr[1]=='X') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 (inptr[3]=='e' || inptr[3]=='E') &&
                 (inptr[3]=='e' || inptr[3]=='E') &&
                 (inptr[4]=='r' || inptr[4]=='R') &&
                 (inptr[4]=='r' || inptr[4]=='R') &&
                 (inptr[5]=='n' || inptr[5]=='N') &&
                 (inptr[5]=='n' || inptr[5]=='N') &&
                 isspace(inptr[6])) {
                 isspace(inptr[6])) {
                 inptr += 6;
                 inptr += 6;
                 return token = tk_extern;
                 return token = tk_extern;
             }
             }
             if ((inptr[1]=='s' || inptr[1]=='S') &&
             if ((inptr[1]=='s' || inptr[1]=='S') &&
                 (inptr[2]==':')) {
                 (inptr[2]==':')) {
                 inptr+=3;
                 inptr+=3;
                 return token = tk_es;
                 return token = tk_es;
             }
             }
                         if (gCpu==5) {
                         if (gCpu==5) {
                                 if ((inptr[1]=='r' || inptr[1]=='R') &&
                                 if ((inptr[1]=='r' || inptr[1]=='R') &&
                                         (inptr[2]=='e' || inptr[2]=='E') &&
                                         (inptr[2]=='e' || inptr[2]=='E') &&
                                         (inptr[3]=='t' || inptr[3]=='T') &&
                                         (inptr[3]=='t' || inptr[3]=='T') &&
                                         isspace(inptr[4])) {
                                         isspace(inptr[4])) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_eret;
                                         return token = tk_eret;
                                 }
                                 }
                         }
                         }
             if ((inptr[1]=='n' || inptr[1]=='N') &&
             if ((inptr[1]=='n' || inptr[1]=='N') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[3]=='m' || inptr[3]=='M') &&
                 (inptr[3]=='m' || inptr[3]=='M') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_endm;
                 return token = tk_endm;
             }
             }
             break;
             break;
 
 
        // fill fabs fadd fb__
        // fill fabs fadd fb__
                // fcmp fcx fdiv fmul fnabs fneg fsub fix2flt flt2fix ftst ftoi
                // fcmp fcx fdiv fmul fnabs fneg fsub fix2flt flt2fix ftst ftoi
        case 'f': case 'F':
        case 'f': case 'F':
             if ((inptr[1]=='i' || inptr[1]=='I') &&
             if ((inptr[1]=='i' || inptr[1]=='I') &&
                 (inptr[2]=='l' || inptr[2]=='L') &&
                 (inptr[2]=='l' || inptr[2]=='L') &&
                 (inptr[3]=='l' || inptr[3]=='L') &&
                 (inptr[3]=='l' || inptr[3]=='L') &&
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_fill;
                 return token = tk_fill;
             }
             }
             if ((inptr[1]=='a' || inptr[1]=='A') &&
             if ((inptr[1]=='a' || inptr[1]=='A') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[3]=='d' || inptr[3]=='D') &&
                 (inptr[3]=='d' || inptr[3]=='D') &&
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_fadd;
                 return token = tk_fadd;
             }
             }
             if ((inptr[1]=='s' || inptr[1]=='S') &&
             if ((inptr[1]=='s' || inptr[1]=='S') &&
                 (inptr[2]=='u' || inptr[2]=='U') &&
                 (inptr[2]=='u' || inptr[2]=='U') &&
                 (inptr[3]=='b' || inptr[3]=='B') &&
                 (inptr[3]=='b' || inptr[3]=='B') &&
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_fsub;
                 return token = tk_fsub;
             }
             }
             if ((inptr[1]=='c' || inptr[1]=='C') &&
             if ((inptr[1]=='c' || inptr[1]=='C') &&
                 (inptr[2]=='m' || inptr[2]=='M') &&
                 (inptr[2]=='m' || inptr[2]=='M') &&
                 (inptr[3]=='p' || inptr[3]=='P') &&
                 (inptr[3]=='p' || inptr[3]=='P') &&
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_fcmp;
                 return token = tk_fcmp;
             }
             }
             if ((inptr[1]=='m' || inptr[1]=='M') &&
             if ((inptr[1]=='m' || inptr[1]=='M') &&
                 (inptr[2]=='u' || inptr[2]=='U') &&
                 (inptr[2]=='u' || inptr[2]=='U') &&
                 (inptr[3]=='l' || inptr[3]=='L') &&
                 (inptr[3]=='l' || inptr[3]=='L') &&
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_fmul;
                 return token = tk_fmul;
             }
             }
             if ((inptr[1]=='m' || inptr[1]=='M') &&
             if ((inptr[1]=='m' || inptr[1]=='M') &&
                 (inptr[2]=='o' || inptr[2]=='O') &&
                 (inptr[2]=='o' || inptr[2]=='O') &&
                 (inptr[3]=='v' || inptr[3]=='V') &&
                 (inptr[3]=='v' || inptr[3]=='V') &&
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_fmov;
                 return token = tk_fmov;
             }
             }
             if ((inptr[1]=='d' || inptr[1]=='D') &&
             if ((inptr[1]=='d' || inptr[1]=='D') &&
                 (inptr[2]=='i' || inptr[2]=='I') &&
                 (inptr[2]=='i' || inptr[2]=='I') &&
                 (inptr[3]=='v' || inptr[3]=='V') &&
                 (inptr[3]=='v' || inptr[3]=='V') &&
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_fdiv;
                 return token = tk_fdiv;
             }
             }
             if ((inptr[1]=='i' || inptr[1]=='I') &&
             if ((inptr[1]=='i' || inptr[1]=='I') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (inptr[3]=='2' || inptr[3]=='2') &&
                 (inptr[3]=='2' || inptr[3]=='2') &&
                 (inptr[4]=='f' || inptr[3]=='F') &&
                 (inptr[4]=='f' || inptr[3]=='F') &&
                 (inptr[5]=='l' || inptr[3]=='L') &&
                 (inptr[5]=='l' || inptr[3]=='L') &&
                 (inptr[6]=='t' || inptr[3]=='T') &&
                 (inptr[6]=='t' || inptr[3]=='T') &&
                 (isspace(inptr[7]) || inptr[7]=='.')) {
                 (isspace(inptr[7]) || inptr[7]=='.')) {
                 inptr += 7;
                 inptr += 7;
                 return token = tk_fix2flt;
                 return token = tk_fix2flt;
             }
             }
             if ((inptr[1]=='l' || inptr[1]=='L') &&
             if ((inptr[1]=='l' || inptr[1]=='L') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 (inptr[3]=='2' || inptr[3]=='2') &&
                 (inptr[3]=='2' || inptr[3]=='2') &&
                 (inptr[4]=='f' || inptr[3]=='F') &&
                 (inptr[4]=='f' || inptr[3]=='F') &&
                 (inptr[5]=='i' || inptr[3]=='I') &&
                 (inptr[5]=='i' || inptr[3]=='I') &&
                 (inptr[6]=='x' || inptr[3]=='X') &&
                 (inptr[6]=='x' || inptr[3]=='X') &&
                 (isspace(inptr[7]) || inptr[7]=='.')) {
                 (isspace(inptr[7]) || inptr[7]=='.')) {
                 inptr += 7;
                 inptr += 7;
                 return token = tk_flt2fix;
                 return token = tk_flt2fix;
             }
             }
             if ((inptr[1]=='a' || inptr[1]=='A') &&
             if ((inptr[1]=='a' || inptr[1]=='A') &&
                 (inptr[2]=='b' || inptr[2]=='B') &&
                 (inptr[2]=='b' || inptr[2]=='B') &&
                 (inptr[3]=='s' || inptr[3]=='S') &&
                 (inptr[3]=='s' || inptr[3]=='S') &&
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_fabs;
                 return token = tk_fabs;
             }
             }
             if ((inptr[1]=='n' || inptr[1]=='N') &&
             if ((inptr[1]=='n' || inptr[1]=='N') &&
                 (inptr[2]=='e' || inptr[2]=='E') &&
                 (inptr[2]=='e' || inptr[2]=='E') &&
                 (inptr[3]=='g' || inptr[3]=='G') &&
                 (inptr[3]=='g' || inptr[3]=='G') &&
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 (isspace(inptr[4]) || inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_fneg;
                 return token = tk_fneg;
             }
             }
             if ((inptr[1]=='n' || inptr[1]=='N') &&
             if ((inptr[1]=='n' || inptr[1]=='N') &&
                 (inptr[2]=='a' || inptr[2]=='A') &&
                 (inptr[2]=='a' || inptr[2]=='A') &&
                 (inptr[3]=='b' || inptr[3]=='B') &&
                 (inptr[3]=='b' || inptr[3]=='B') &&
                 (inptr[4]=='s' || inptr[4]=='S') &&
                 (inptr[4]=='s' || inptr[4]=='S') &&
                 (isspace(inptr[5]) || inptr[5]=='.')) {
                 (isspace(inptr[5]) || inptr[5]=='.')) {
                 inptr += 5;
                 inptr += 5;
                 return token = tk_fnabs;
                 return token = tk_fnabs;
             }
             }
             if ((inptr[1]=='c' || inptr[1]=='C') &&
             if ((inptr[1]=='c' || inptr[1]=='C') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (isspace(inptr[3]))) {
                 (isspace(inptr[3]))) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_fcx;
                 return token = tk_fcx;
             }
             }
             if ((inptr[1]=='d' || inptr[1]=='D') &&
             if ((inptr[1]=='d' || inptr[1]=='D') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (isspace(inptr[3]))) {
                 (isspace(inptr[3]))) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_fdx;
                 return token = tk_fdx;
             }
             }
             if ((inptr[1]=='e' || inptr[1]=='E') &&
             if ((inptr[1]=='e' || inptr[1]=='E') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (isspace(inptr[3]))) {
                 (isspace(inptr[3]))) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_fex;
                 return token = tk_fex;
             }
             }
             if ((inptr[1]=='r' || inptr[1]=='R') &&
             if ((inptr[1]=='r' || inptr[1]=='R') &&
                 (inptr[2]=='m' || inptr[2]=='M') &&
                 (inptr[2]=='m' || inptr[2]=='M') &&
                 (isspace(inptr[3]))) {
                 (isspace(inptr[3]))) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_frm;
                 return token = tk_frm;
             }
             }
             if ((inptr[1]=='t' || inptr[1]=='T') &&
             if ((inptr[1]=='t' || inptr[1]=='T') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (inptr[2]=='x' || inptr[2]=='X') &&
                 (isspace(inptr[3]))) {
                 (isspace(inptr[3]))) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_ftx;
                 return token = tk_ftx;
             }
             }
             if ((inptr[1]=='s' || inptr[1]=='S') &&
             if ((inptr[1]=='s' || inptr[1]=='S') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 (inptr[3]=='a' || inptr[3]=='A') &&
                 (inptr[3]=='a' || inptr[3]=='A') &&
                 (inptr[4]=='t' || inptr[4]=='T') &&
                 (inptr[4]=='t' || inptr[4]=='T') &&
                 (isspace(inptr[5]))) {
                 (isspace(inptr[5]))) {
                 inptr += 5;
                 inptr += 5;
                 return token = tk_fstat;
                 return token = tk_fstat;
             }
             }
             if ((inptr[1]=='t' || inptr[1]=='T') &&
             if ((inptr[1]=='t' || inptr[1]=='T') &&
                 (inptr[2]=='s' || inptr[2]=='S') &&
                 (inptr[2]=='s' || inptr[2]=='S') &&
                 (inptr[3]=='t' || inptr[3]=='T') &&
                 (inptr[3]=='t' || inptr[3]=='T') &&
                 (isspace(inptr[4])||inptr[4]=='.')) {
                 (isspace(inptr[4])||inptr[4]=='.')) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_ftst;
                 return token = tk_ftst;
             }
             }
                         if (gCpu==7 || gCpu=='A' || gCpu=='F') {
                         if (gCpu==7 || gCpu=='A' || gCpu=='F') {
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                         (inptr[2]=='e' || inptr[2]=='E') &&
                                         (inptr[2]=='e' || inptr[2]=='E') &&
                                         (inptr[3]=='q' || inptr[3]=='Q') &&
                                         (inptr[3]=='q' || inptr[3]=='Q') &&
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_fbeq;
                                         return token = tk_fbeq;
                                 }
                                 }
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                         (inptr[2]=='n' || inptr[2]=='N') &&
                                         (inptr[2]=='n' || inptr[2]=='N') &&
                                         (inptr[3]=='e' || inptr[3]=='E') &&
                                         (inptr[3]=='e' || inptr[3]=='E') &&
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_fbne;
                                         return token = tk_fbne;
                                 }
                                 }
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                         (inptr[2]=='l' || inptr[2]=='L') &&
                                         (inptr[2]=='l' || inptr[2]=='L') &&
                                         (inptr[3]=='t' || inptr[3]=='T') &&
                                         (inptr[3]=='t' || inptr[3]=='T') &&
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_fblt;
                                         return token = tk_fblt;
                                 }
                                 }
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                         (inptr[2]=='l' || inptr[2]=='L') &&
                                         (inptr[2]=='l' || inptr[2]=='L') &&
                                         (inptr[3]=='e' || inptr[3]=='E') &&
                                         (inptr[3]=='e' || inptr[3]=='E') &&
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_fble;
                                         return token = tk_fble;
                                 }
                                 }
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                         (inptr[2]=='g' || inptr[2]=='G') &&
                                         (inptr[2]=='g' || inptr[2]=='G') &&
                                         (inptr[3]=='t' || inptr[3]=='T') &&
                                         (inptr[3]=='t' || inptr[3]=='T') &&
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_fbgt;
                                         return token = tk_fbgt;
                                 }
                                 }
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                         (inptr[2]=='g' || inptr[2]=='G') &&
                                         (inptr[2]=='g' || inptr[2]=='G') &&
                                         (inptr[3]=='e' || inptr[3]=='E') &&
                                         (inptr[3]=='e' || inptr[3]=='E') &&
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_fbge;
                                         return token = tk_fbge;
                                 }
                                 }
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                         (inptr[2]=='o' || inptr[2]=='O') &&
                                         (inptr[2]=='o' || inptr[2]=='O') &&
                                         (inptr[3]=='r' || inptr[3]=='R') &&
                                         (inptr[3]=='r' || inptr[3]=='R') &&
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_fbor;
                                         return token = tk_fbor;
                                 }
                                 }
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                 if ((inptr[1]=='b' || inptr[1]=='B') &&
                                         (inptr[2]=='u' || inptr[2]=='U') &&
                                         (inptr[2]=='u' || inptr[2]=='U') &&
                                         (inptr[3]=='n' || inptr[3]=='N') &&
                                         (inptr[3]=='n' || inptr[3]=='N') &&
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_fbun;
                                         return token = tk_fbun;
                                 }
                                 }
                                 if ((inptr[1]=='t' || inptr[1]=='T') &&
                                 if ((inptr[1]=='t' || inptr[1]=='T') &&
                                         (inptr[2]=='o' || inptr[2]=='O') &&
                                         (inptr[2]=='o' || inptr[2]=='O') &&
                                         (inptr[3]=='i' || inptr[3]=='I') &&
                                         (inptr[3]=='i' || inptr[3]=='I') &&
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         (isspace(inptr[4])||inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_ftoi;
                                         return token = tk_ftoi;
                                 }
                                 }
                         }
                         }
 
                         if ((inptr[1] == 'i' || inptr[1] == 'I') &&
 
                                 (inptr[2] == 'l' || inptr[2] == 'L') &&
 
                                 (inptr[3] == 'e' || inptr[3] == 'E') &&
 
                                 (isspace(inptr[4]) || inptr[4] == ':')) {
 
                                 inptr += 4;
 
                                 return (token = tk_file);
 
                         }
 
 
             break;
             break;
 
 
        // gran
        // gran
        case 'g': case 'G':
        case 'g': case 'G':
             if ((inptr[1]=='r' || inptr[1]=='R') &&
             if ((inptr[1]=='r' || inptr[1]=='R') &&
                 (inptr[2]=='a' || inptr[2]=='A') &&
                 (inptr[2]=='a' || inptr[2]=='A') &&
                 (inptr[3]=='n' || inptr[3]=='N') &&
                 (inptr[3]=='n' || inptr[3]=='N') &&
                 isspace(inptr[4])) {
                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_gran;
                 return token = tk_gran;
             }
             }
             break;
             break;
 
 
                // hs hint
                // hs hint
        case 'h': case 'H':
        case 'h': case 'H':
                        if ((inptr[1]=='I' || inptr[1]=='i') &&
                        if ((inptr[1]=='I' || inptr[1]=='i') &&
                                (inptr[2]=='N' || inptr[2]=='n') &&
                                (inptr[2]=='N' || inptr[2]=='n') &&
                                (inptr[3]=='T' || inptr[3]=='t') &&
                                (inptr[3]=='T' || inptr[3]=='t') &&
                                isspace(inptr[4])) {
                                isspace(inptr[4])) {
                                inptr += 4;
                                inptr += 4;
                                return (token = tk_hint);
                                return (token = tk_hint);
                        }
                        }
             if (gCpu==4) {
             if (gCpu==4) {
                 if ((inptr[1]=='s' || inptr[1]=='S') &&
                 if ((inptr[1]=='s' || inptr[1]=='S') &&
                     (inptr[2]==':')) {
                     (inptr[2]==':')) {
                     inptr += 3;
                     inptr += 3;
                     return token = tk_hs;
                     return token = tk_hs;
                 }
                 }
             }
             }
             break;
             break;
 
 
        // ibne if ifdef ifndef ios inc int iret ipush ipop itof
        // ibne if ifdef ifndef ios inc int iret ipush ipop itof
        case 'i': case 'I':
        case 'i': case 'I':
                        if (gCpu=='F') {
                        if (gCpu=='F') {
                                if ((inptr[1]=='b' || inptr[1]=='B') &&
                                if ((inptr[1]=='b' || inptr[1]=='B') &&
                                        (inptr[2]=='n' || inptr[2]=='N') &&
                                        (inptr[2]=='n' || inptr[2]=='N') &&
                                        (inptr[3]=='e' || inptr[3]=='E') &&
                                        (inptr[3]=='e' || inptr[3]=='E') &&
                                        isspace(inptr[4])) {
                                        isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_ibne;
                                        return token = tk_ibne;
                                }
                                }
                                if ((inptr[1] == 's' || inptr[1] == 'S') &&
                                if ((inptr[1] == 's' || inptr[1] == 'S') &&
                                        (inptr[2] == 'p' || inptr[2] == 'P') &&
                                        (inptr[2] == 'p' || inptr[2] == 'P') &&
                                        (inptr[3] == 't' || inptr[3] == 'T') &&
                                        (inptr[3] == 't' || inptr[3] == 'T') &&
                                        (inptr[4] == 'r' || inptr[4] == 'R') &&
                                        (inptr[4] == 'r' || inptr[4] == 'R') &&
                                        isspace(inptr[5])) {
                                        isspace(inptr[5])) {
                                        inptr += 5;
                                        inptr += 5;
                                        return token = tk_isptr;
                                        return token = tk_isptr;
                                }
                                }
                                if ((inptr[1] == 's' || inptr[1] == 'S') &&
                                if ((inptr[1] == 's' || inptr[1] == 'S') &&
                                        (inptr[2] == 'n' || inptr[2] == 'N') &&
                                        (inptr[2] == 'n' || inptr[2] == 'N') &&
                                        (inptr[3] == 'u' || inptr[3] == 'U') &&
                                        (inptr[3] == 'u' || inptr[3] == 'U') &&
                                        (inptr[4] == 'l' || inptr[4] == 'L') &&
                                        (inptr[4] == 'l' || inptr[4] == 'L') &&
                                        (inptr[5] == 'l' || inptr[5] == 'L') &&
                                        (inptr[5] == 'l' || inptr[5] == 'L') &&
                                        isspace(inptr[6])) {
                                        isspace(inptr[6])) {
                                        inptr += 6;
                                        inptr += 6;
                                        return token = tk_isnull;
                                        return token = tk_isnull;
                                }
                                }
                        }
                        }
             if ((inptr[1]=='o' || inptr[1]=='O') &&
             if ((inptr[1]=='o' || inptr[1]=='O') &&
                 (inptr[2]=='s' || inptr[2]=='S') &&
                 (inptr[2]=='s' || inptr[2]=='S') &&
                 (inptr[3]==':')) {
                 (inptr[3]==':')) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_ios;
                 return token = tk_ios;
             }
             }
             if ((inptr[1]=='n' || inptr[1]=='N') &&
             if ((inptr[1]=='n' || inptr[1]=='N') &&
                 (inptr[2]=='c' || inptr[2]=='C') &&
                 (inptr[2]=='c' || inptr[2]=='C') &&
                 (isspace(inptr[3]) || inptr[3]=='.')) {
                 (isspace(inptr[3]) || inptr[3]=='.')) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_inc;
                 return token = tk_inc;
             }
             }
             if ((inptr[1]=='n' || inptr[1]=='N') &&
             if ((inptr[1]=='n' || inptr[1]=='N') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 (inptr[2]=='t' || inptr[2]=='T') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_int;
                 return token = tk_int;
             }
             }
             if ((inptr[1]=='r' || inptr[1]=='R') &&
             if ((inptr[1]=='r' || inptr[1]=='R') &&
                 (inptr[2]=='e' || inptr[2]=='E') &&
                 (inptr[2]=='e' || inptr[2]=='E') &&
                 (inptr[3]=='t' || inptr[3]=='T') &&
                 (inptr[3]=='t' || inptr[3]=='T') &&
                                 isspace(inptr[4])) {
                                 isspace(inptr[4])) {
                 inptr += 4;
                 inptr += 4;
                 return token = tk_iret;
                 return token = tk_iret;
             }
             }
                         if (gCpu==7) {
                         if (gCpu==7) {
                                 if ((inptr[1]=='p' || inptr[1]=='P') &&
                                 if ((inptr[1]=='p' || inptr[1]=='P') &&
                                         (inptr[2]=='u' || inptr[2]=='U') &&
                                         (inptr[2]=='u' || inptr[2]=='U') &&
                                         (inptr[3]=='s' || inptr[3]=='S') &&
                                         (inptr[3]=='s' || inptr[3]=='S') &&
                                         (inptr[4]=='h' || inptr[4]=='H') &&
                                         (inptr[4]=='h' || inptr[4]=='H') &&
                                         isspace(inptr[5])) {
                                         isspace(inptr[5])) {
                                         inptr += 5;
                                         inptr += 5;
                                         return token = tk_ipush;
                                         return token = tk_ipush;
                                 }
                                 }
                                 if ((inptr[1]=='p' || inptr[1]=='P') &&
                                 if ((inptr[1]=='p' || inptr[1]=='P') &&
                                         (inptr[2]=='o' || inptr[2]=='O') &&
                                         (inptr[2]=='o' || inptr[2]=='O') &&
                                         (inptr[3]=='p' || inptr[3]=='P') &&
                                         (inptr[3]=='p' || inptr[3]=='P') &&
                                         isspace(inptr[4])) {
                                         isspace(inptr[4])) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_ipop;
                                         return token = tk_ipop;
                                 }
                                 }
                         }
                         }
                         if (gCpu==7 || gCpu=='A' || gCpu=='F') {
                         if (gCpu==7 || gCpu=='A' || gCpu=='F') {
                                 if ((inptr[1]=='t' || inptr[1]=='T') &&
                                 if ((inptr[1]=='t' || inptr[1]=='T') &&
                                         (inptr[2]=='o' || inptr[2]=='O') &&
                                         (inptr[2]=='o' || inptr[2]=='O') &&
                                         (inptr[3]=='f' || inptr[3]=='F') &&
                                         (inptr[3]=='f' || inptr[3]=='F') &&
                                         (isspace(inptr[4]) || inptr[4]=='.')) {
                                         (isspace(inptr[4]) || inptr[4]=='.')) {
                                         inptr += 4;
                                         inptr += 4;
                                         return token = tk_itof;
                                         return token = tk_itof;
                                 }
                                 }
                         }
                         }
             if (inptr[1]=='f' || inptr[1]=='F') {
             if (inptr[1]=='f' || inptr[1]=='F') {
                                if ((inptr[2]=='d' || inptr[2]=='D')
                                if ((inptr[2]=='d' || inptr[2]=='D')
                                        && (inptr[3]=='e' || inptr[3]=='E')
                                        && (inptr[3]=='e' || inptr[3]=='E')
                                        && (inptr[4]=='f' || inptr[3]=='F')
                                        && (inptr[4]=='f' || inptr[3]=='F')
                                        && (isspace(inptr[5]) || inptr[5]=='.')) {
                                        && (isspace(inptr[5]) || inptr[5]=='.')) {
                                                inptr += 5;
                                                inptr += 5;
                                                return token = tk_ifdef;
                                                return token = tk_ifdef;
                                }
                                }
                                if ((inptr[2]=='n' || inptr[2]=='N')
                                if ((inptr[2]=='n' || inptr[2]=='N')
                                        && (inptr[3]=='d' || inptr[3]=='D')
                                        && (inptr[3]=='d' || inptr[3]=='D')
                                        && (inptr[4]=='e' || inptr[4]=='E')
                                        && (inptr[4]=='e' || inptr[4]=='E')
                                        && (inptr[5]=='f' || inptr[5]=='F')
                                        && (inptr[5]=='f' || inptr[5]=='F')
                                        && (isspace(inptr[6]) || inptr[6]=='.')) {
                                        && (isspace(inptr[6]) || inptr[6]=='.')) {
                                                inptr += 6;
                                                inptr += 6;
                                                return token = tk_ifndef;
                                                return token = tk_ifndef;
                                }
                                }
                                if (isspace(inptr[2]) || inptr[2]=='.') {
                                if (isspace(inptr[2]) || inptr[2]=='.') {
                                        inptr += 2;
                                        inptr += 2;
                                        return token = tk_if;
                                        return token = tk_if;
                                }
                                }
             }
             }
             break;
             break;
 
 
        // jal jgr jmp jsf jsr jsp jci jhi
        // jal jgr jmp jsf jsr jsp jci jhi
        case 'j': case 'J':
        case 'j': case 'J':
             if ((inptr[1]=='a' || inptr[1]=='A') &&
             if ((inptr[1]=='a' || inptr[1]=='A') &&
                 (inptr[2]=='l' || inptr[2]=='L') &&
                 (inptr[2]=='l' || inptr[2]=='L') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_jal;
                 return token = tk_jal;
             }
             }
             if ((inptr[1]=='s' || inptr[1]=='S') &&
             if ((inptr[1]=='s' || inptr[1]=='S') &&
                 (inptr[2]=='r' || inptr[2]=='R') &&
                 (inptr[2]=='r' || inptr[2]=='R') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_jsr;
                 return token = tk_jsr;
             }
             }
             if ((inptr[1]=='s' || inptr[1]=='S') &&
             if ((inptr[1]=='s' || inptr[1]=='S') &&
                 (inptr[2]=='f' || inptr[2]=='F') &&
                 (inptr[2]=='f' || inptr[2]=='F') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_jsf;
                 return token = tk_jsf;
             }
             }
             if ((inptr[1]=='m' || inptr[1]=='M') &&
             if ((inptr[1]=='m' || inptr[1]=='M') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_jmp;
                 return token = tk_jmp;
             }
             }
             if ((inptr[1]=='s' || inptr[1]=='S') &&
             if ((inptr[1]=='s' || inptr[1]=='S') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 (inptr[2]=='p' || inptr[2]=='P') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_jsp;
                 return token = tk_jsp;
             }
             }
             if ((inptr[1]=='g' || inptr[1]=='G') &&
             if ((inptr[1]=='g' || inptr[1]=='G') &&
                 (inptr[2]=='r' || inptr[2]=='R') &&
                 (inptr[2]=='r' || inptr[2]=='R') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_jgr;
                 return token = tk_jgr;
             }
             }
             if (gCpu==4) {
             if (gCpu==4) {
                if ((inptr[1]=='c' || inptr[1]=='C') &&
                if ((inptr[1]=='c' || inptr[1]=='C') &&
                    (inptr[2]=='i' || inptr[2]=='I') &&
                    (inptr[2]=='i' || inptr[2]=='I') &&
                    isspace(inptr[3])) {
                    isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_jci;
                    return token = tk_jci;
                }
                }
                if ((inptr[1]=='h' || inptr[1]=='H') &&
                if ((inptr[1]=='h' || inptr[1]=='H') &&
                    (inptr[2]=='i' || inptr[2]=='I') &&
                    (inptr[2]=='i' || inptr[2]=='I') &&
                    isspace(inptr[3])) {
                    isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_jhi;
                    return token = tk_jhi;
                }
                }
             }
             }
             break;
             break;
 
 
        // lb lbu lc lcu lf lh lhu lw ld ldi ldis lea lsr lsri lwar lfd lvb lws lvh lvw ltcb link
        // lb lbu lc lcu lf lh lhu lw ld ldi ldis lea lsr lsri lwar lfd lvb lws lvh lvw ltcb link
        case 'l':
        case 'l':
        case 'L':
        case 'L':
                        if (gCpu=='A') {
                        if (gCpu=='A') {
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='d' || inptr[2]=='D') &&
                                        (inptr[2]=='d' || inptr[2]=='D') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_ldd;
                                        return token = tk_ldd;
                                }
                                }
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='b' || inptr[2]=='B') &&
                                        (inptr[2]=='b' || inptr[2]=='B') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_ldb;
                                        return token = tk_ldb;
                                }
                                }
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='b' || inptr[2]=='B') &&
                                        (inptr[2]=='b' || inptr[2]=='B') &&
                                        (inptr[3]=='u' || inptr[3]=='U') &&
                                        (inptr[3]=='u' || inptr[3]=='U') &&
                                        isspace(inptr[4])) {
                                        isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_ldbu;
                                        return token = tk_ldbu;
                                }
                                }
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='w' || inptr[2]=='W') &&
                                        (inptr[2]=='w' || inptr[2]=='W') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_ldw;
                                        return token = tk_ldw;
                                }
                                }
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='w' || inptr[2]=='W') &&
                                        (inptr[2]=='w' || inptr[2]=='W') &&
                                        (inptr[3]=='u' || inptr[3]=='U') &&
                                        (inptr[3]=='u' || inptr[3]=='U') &&
                                        isspace(inptr[4])) {
                                        isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_ldwu;
                                        return token = tk_ldwu;
                                }
                                }
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='t' || inptr[2]=='T') &&
                                        (inptr[2]=='t' || inptr[2]=='T') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_ldt;
                                        return token = tk_ldt;
                                }
                                }
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='t' || inptr[2]=='T') &&
                                        (inptr[2]=='t' || inptr[2]=='T') &&
                                        (inptr[3]=='u' || inptr[3]=='U') &&
                                        (inptr[3]=='u' || inptr[3]=='U') &&
                                        isspace(inptr[4])) {
                                        isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_ldtu;
                                        return token = tk_ldtu;
                                }
                                }
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='p' || inptr[2]=='P') &&
                                        (inptr[2]=='p' || inptr[2]=='P') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_ldp;
                                        return token = tk_ldp;
                                }
                                }
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='p' || inptr[2]=='P') &&
                                        (inptr[2]=='p' || inptr[2]=='P') &&
                                        (inptr[3]=='u' || inptr[3]=='U') &&
                                        (inptr[3]=='u' || inptr[3]=='U') &&
                                        isspace(inptr[4])) {
                                        isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_ldpu;
                                        return token = tk_ldpu;
                                }
                                }
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                if ((inptr[1]=='d' || inptr[1]=='D') &&
                                        (inptr[2]=='v' || inptr[2]=='V') &&
                                        (inptr[2]=='v' || inptr[2]=='V') &&
                                        (inptr[3]=='d' || inptr[3]=='D') &&
                                        (inptr[3]=='d' || inptr[3]=='D') &&
                                        (inptr[4]=='a' || inptr[4]=='A') &&
                                        (inptr[4]=='a' || inptr[4]=='A') &&
                                        (inptr[5]=='r' || inptr[5]=='R') &&
                                        (inptr[5]=='r' || inptr[5]=='R') &&
                                        isspace(inptr[6])) {
                                        isspace(inptr[6])) {
                                        inptr += 6;
                                        inptr += 6;
                                        return token = tk_ldvdar;
                                        return token = tk_ldvdar;
                                }
                                }
                        }
                        }
            if ((inptr[1]=='d' || inptr[1]=='D') && isspace(inptr[2])) {
            if ((inptr[1]=='d' || inptr[1]=='D') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_ld;
                return token = tk_ld;
            }
            }
            if ((inptr[1]=='b' || inptr[1]=='B') && isspace(inptr[2])) {
            if ((inptr[1]=='b' || inptr[1]=='B') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_lb;
                return token = tk_lb;
            }
            }
            if ((inptr[1]=='b' || inptr[1]=='B') && (inptr[2]=='u' || inptr[2]=='U') && isspace(inptr[3])) {
            if ((inptr[1]=='b' || inptr[1]=='B') && (inptr[2]=='u' || inptr[2]=='U') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_lbu;
                return token = tk_lbu;
            }
            }
            if ((inptr[1]=='f' || inptr[1]=='F') && (isspace(inptr[2])||inptr[2]=='.')) {
            if ((inptr[1]=='f' || inptr[1]=='F') && (isspace(inptr[2])||inptr[2]=='.')) {
                inptr += 2;
                inptr += 2;
                return token = tk_lf;
                return token = tk_lf;
            }
            }
            if ((inptr[1]=='v' || inptr[1]=='V') && isspace(inptr[2])) {
            if ((inptr[1]=='v' || inptr[1]=='V') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_lv;
                return token = tk_lv;
            }
            }
            if ((inptr[1]=='w' || inptr[1]=='W') && isspace(inptr[2])) {
            if ((inptr[1]=='w' || inptr[1]=='W') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_lw;
                return token = tk_lw;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') && isspace(inptr[2])) {
            if ((inptr[1]=='h' || inptr[1]=='H') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_lh;
                return token = tk_lh;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') && (inptr[2]=='u' || inptr[2]=='U') && isspace(inptr[3])) {
            if ((inptr[1]=='h' || inptr[1]=='H') && (inptr[2]=='u' || inptr[2]=='U') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_lhu;
                return token = tk_lhu;
            }
            }
            if ((inptr[1]=='c' || inptr[1]=='C') && isspace(inptr[2])) {
            if ((inptr[1]=='c' || inptr[1]=='C') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_lc;
                return token = tk_lc;
            }
            }
            if ((inptr[1]=='c' || inptr[1]=='C') && (inptr[2]=='u' || inptr[2]=='U') && isspace(inptr[3])) {
            if ((inptr[1]=='c' || inptr[1]=='C') && (inptr[2]=='u' || inptr[2]=='U') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_lcu;
                return token = tk_lcu;
            }
            }
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='i' || inptr[2]=='I') && isspace(inptr[3])) {
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='i' || inptr[2]=='I') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_ldi;
                return token = tk_ldi;
            }
            }
            if ((inptr[1]=='i' || inptr[1]=='I') && (inptr[2]=='n' || inptr[2]=='N') && (inptr[3]=='k' || inptr[3]=='K') && isspace(inptr[4])) {
            if ((inptr[1]=='i' || inptr[1]=='I') && (inptr[2]=='n' || inptr[2]=='N') && (inptr[3]=='k' || inptr[3]=='K') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_link;
                return token = tk_link;
            }
            }
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='i' || inptr[2]=='I') && (inptr[3]=='s' || inptr[3]=='S') && isspace(inptr[4])) {
            if ((inptr[1]=='d' || inptr[1]=='D') && (inptr[2]=='i' || inptr[2]=='I') && (inptr[3]=='s' || inptr[3]=='S') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_ldis;
                return token = tk_ldis;
            }
            }
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='a' || inptr[2]=='A') && isspace(inptr[3])) {
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='a' || inptr[2]=='A') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_lea;
                return token = tk_lea;
            }
            }
            if ((inptr[1]=='m' || inptr[1]=='M') && (inptr[2]=='r' || inptr[2]=='R') && isspace(inptr[3])) {
            if ((inptr[1]=='m' || inptr[1]=='M') && (inptr[2]=='r' || inptr[2]=='R') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_lmr;
                return token = tk_lmr;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='r' || inptr[2]=='R') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='r' || inptr[2]=='R') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_lsri;
                return token = tk_lsri;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='r' || inptr[2]=='R') && isspace(inptr[3])) {
            if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='r' || inptr[2]=='R') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_lsr;
                return token = tk_lsr;
            }
            }
            if ((inptr[1]=='f' || inptr[1]=='F') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
            if ((inptr[1]=='f' || inptr[1]=='F') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_lfd;
                return token = tk_lfd;
            }
            }
            if ((inptr[1]=='w' || inptr[1]=='W') && (inptr[2]=='a' || inptr[2]=='A') && (inptr[3]=='r' || inptr[3]=='R') && isspace(inptr[4])) {
            if ((inptr[1]=='w' || inptr[1]=='W') && (inptr[2]=='a' || inptr[2]=='A') && (inptr[3]=='r' || inptr[3]=='R') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_lwar;
                return token = tk_lwar;
            }
            }
                        if (gCpu=='F' || gCpu=='G') {
                        if (gCpu=='F' || gCpu=='G') {
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='b' || inptr[2]=='B') && isspace(inptr[3])) {
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='b' || inptr[2]=='B') && isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return (token = tk_lvb);
                    return (token = tk_lvb);
                }
                }
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='c' || inptr[2]=='C') && isspace(inptr[3])) {
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='c' || inptr[2]=='C') && isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return (token = tk_lvc);
                    return (token = tk_lvc);
                }
                }
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='h' || inptr[2]=='H') && isspace(inptr[3])) {
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='h' || inptr[2]=='H') && isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return (token = tk_lvh);
                    return (token = tk_lvh);
                }
                }
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='w' || inptr[2]=='W') && isspace(inptr[3])) {
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='w' || inptr[2]=='W') && isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return (token = tk_lvw);
                    return (token = tk_lvw);
                }
                }
                if ((inptr[1]=='w' || inptr[1]=='W') && (inptr[2]=='r' || inptr[2]=='R') && isspace(inptr[3])) {
                if ((inptr[1]=='w' || inptr[1]=='W') && (inptr[2]=='r' || inptr[2]=='R') && isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return (token = tk_lwr);
                    return (token = tk_lwr);
                }
                }
                        }
                        }
            if (gCpu==4 || gCpu=='F') {
            if (gCpu==4 || gCpu=='F') {
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='b' || inptr[2]=='B') && isspace(inptr[3])) {
                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='b' || inptr[2]=='B') && isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_lvb;
                    return token = tk_lvb;
                }
                }
                                if ((inptr[1] == 'v' || inptr[1] == 'V')
                                if ((inptr[1] == 'v' || inptr[1] == 'V')
                                        && (inptr[2] == 'b' || inptr[2] == 'B')
                                        && (inptr[2] == 'b' || inptr[2] == 'B')
                                        && (inptr[3] == 'u' || inptr[3] == 'U')
                                        && (inptr[3] == 'u' || inptr[3] == 'U')
                                        && isspace(inptr[4])) {
                                        && isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_lvbu;
                                        return token = tk_lvbu;
                                }
                                }
                                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='c' || inptr[2]=='C') && isspace(inptr[3])) {
                                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='c' || inptr[2]=='C') && isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_lvc;
                    return token = tk_lvc;
                }
                }
                                if ((inptr[1] == 'v' || inptr[1] == 'V')
                                if ((inptr[1] == 'v' || inptr[1] == 'V')
                                        && (inptr[2] == 'c' || inptr[2] == 'C')
                                        && (inptr[2] == 'c' || inptr[2] == 'C')
                                        && (inptr[3] == 'u' || inptr[3] == 'U')
                                        && (inptr[3] == 'u' || inptr[3] == 'U')
                                        && isspace(inptr[4])) {
                                        && isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_lvcu;
                                        return token = tk_lvcu;
                                }
                                }
                                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='h' || inptr[2]=='H') && isspace(inptr[3])) {
                                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='h' || inptr[2]=='H') && isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_lvh;
                    return token = tk_lvh;
                }
                }
                                if ((inptr[1] == 'v' || inptr[1] == 'V')
                                if ((inptr[1] == 'v' || inptr[1] == 'V')
                                        && (inptr[2] == 'h' || inptr[2] == 'H')
                                        && (inptr[2] == 'h' || inptr[2] == 'H')
                                        && (inptr[3] == 'u' || inptr[3] == 'U')
                                        && (inptr[3] == 'u' || inptr[3] == 'U')
                                        && isspace(inptr[4])) {
                                        && isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_lvhu;
                                        return token = tk_lvhu;
                                }
                                }
                                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='w' || inptr[2]=='W') && isspace(inptr[3])) {
                                if ((inptr[1]=='v' || inptr[1]=='V') && (inptr[2]=='w' || inptr[2]=='W') && isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_lvw;
                    return token = tk_lvw;
                }
                }
                if ((inptr[1]=='v' || inptr[1]=='V') &&
                if ((inptr[1]=='v' || inptr[1]=='V') &&
                    (inptr[2]=='w' || inptr[2]=='W') &&
                    (inptr[2]=='w' || inptr[2]=='W') &&
                    (inptr[3]=='a' || inptr[3]=='A') &&
                    (inptr[3]=='a' || inptr[3]=='A') &&
                    (inptr[4]=='r' || inptr[4]=='R') &&
                    (inptr[4]=='r' || inptr[4]=='R') &&
                    isspace(inptr[5])) {
                    isspace(inptr[5])) {
                    inptr += 5;
                    inptr += 5;
                    return token = tk_lvwar;
                    return token = tk_lvwar;
                }
                }
                if ((inptr[1]=='w' || inptr[1]=='W') &&
                if ((inptr[1]=='w' || inptr[1]=='W') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    isspace(inptr[3])) {
                    isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_lws;
                    return token = tk_lws;
                }
                }
                if ((inptr[1]=='o' || inptr[1]=='O') &&
                if ((inptr[1]=='o' || inptr[1]=='O') &&
                    (inptr[2]=='o' || inptr[2]=='O') &&
                    (inptr[2]=='o' || inptr[2]=='O') &&
                    (inptr[3]=='p' || inptr[3]=='P') &&
                    (inptr[3]=='p' || inptr[3]=='P') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_loop;
                    return token = tk_loop;
                }
                }
                if ((inptr[1]=='l' || inptr[1]=='L') &&
                if ((inptr[1]=='l' || inptr[1]=='L') &&
                    (inptr[2]=='a' || inptr[2]=='A') &&
                    (inptr[2]=='a' || inptr[2]=='A') &&
                    isspace(inptr[3])) {
                    isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_lla;
                    return token = tk_lla;
                }
                }
                if ((inptr[1]=='l' || inptr[1]=='L') &&
                if ((inptr[1]=='l' || inptr[1]=='L') &&
                    (inptr[2]=='a' || inptr[2]=='A') &&
                    (inptr[2]=='a' || inptr[2]=='A') &&
                    (inptr[3]=='x' || inptr[3]=='X') &&
                    (inptr[3]=='x' || inptr[3]=='X') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_llax;
                    return token = tk_llax;
                }
                }
            }
            }
                        if (gCpu==7) {
                        if (gCpu==7) {
                                if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='c' || inptr[2]=='C') && (inptr[3]=='b' || inptr[3]=='B') && isspace(inptr[4])) {
                                if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='c' || inptr[2]=='C') && (inptr[3]=='b' || inptr[3]=='B') && isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_ltcb;
                                        return token = tk_ltcb;
                                }
                                }
                        }
                        }
            break;
            break;
 
 
        // max mod modu modi modui mov mul muli mulu mului mtspr mfspr mtfp mffp message memdb memsb
        // max mod modu modi modui mov mul muli mulu mului mtspr mfspr mtfp mffp message memdb memsb
        case 'm': case 'M':
        case 'm': case 'M':
            if ((inptr[1]=='a' || inptr[1]=='A') && (inptr[2]=='x' || inptr[2]=='X') && isspace(inptr[3])) {
            if ((inptr[1]=='a' || inptr[1]=='A') && (inptr[2]=='x' || inptr[2]=='X') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_max;
                return token = tk_max;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='v' || inptr[2]=='V') && isspace(inptr[3])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='v' || inptr[2]=='V') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_mov;
                return token = tk_mov;
            }
            }
            if ((inptr[1]=='u' || inptr[1]=='U') &&
            if ((inptr[1]=='u' || inptr[1]=='U') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                isspace(inptr[3])) {
                isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_mul;
                return token = tk_mul;
            }
            }
            if ((inptr[1]=='u' || inptr[1]=='U') &&
            if ((inptr[1]=='u' || inptr[1]=='U') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_mulu;
                return token = tk_mulu;
            }
            }
            if ((inptr[1]=='u' || inptr[1]=='U') &&
            if ((inptr[1]=='u' || inptr[1]=='U') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_mului;
                return token = tk_mului;
            }
            }
            if ((inptr[1]=='u' || inptr[1]=='U') &&
            if ((inptr[1]=='u' || inptr[1]=='U') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                (inptr[2]=='l' || inptr[2]=='L') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_muli;
                return token = tk_muli;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_mod;
                return token = tk_mod;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') &&
            if ((inptr[1]=='o' || inptr[1]=='O') &&
                (inptr[2]=='d' || inptr[2]=='D') &&
                (inptr[2]=='d' || inptr[2]=='D') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_modu;
                return token = tk_modu;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') &&
            if ((inptr[1]=='o' || inptr[1]=='O') &&
                (inptr[2]=='d' || inptr[2]=='D') &&
                (inptr[2]=='d' || inptr[2]=='D') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                (inptr[3]=='i' || inptr[3]=='I') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_modi;
                return token = tk_modi;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') &&
            if ((inptr[1]=='o' || inptr[1]=='O') &&
                (inptr[2]=='d' || inptr[2]=='D') &&
                (inptr[2]=='d' || inptr[2]=='D') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_modui;
                return token = tk_modui;
            }
            }
            if ((inptr[1]=='t' || inptr[1]=='T') &&
            if ((inptr[1]=='t' || inptr[1]=='T') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                (inptr[4]=='r' || inptr[4]=='R') &&
                (inptr[4]=='r' || inptr[4]=='R') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_mtspr;
                return token = tk_mtspr;
            }
            }
            if ((inptr[1]=='f' || inptr[1]=='F') &&
            if ((inptr[1]=='f' || inptr[1]=='F') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                (inptr[4]=='r' || inptr[4]=='R') &&
                (inptr[4]=='r' || inptr[4]=='R') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_mfspr;
                return token = tk_mfspr;
            }
            }
            if ((inptr[1]=='t' || inptr[1]=='T') &&
            if ((inptr[1]=='t' || inptr[1]=='T') &&
                (inptr[2]=='f' || inptr[2]=='F') &&
                (inptr[2]=='f' || inptr[2]=='F') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_mtfp;
                return token = tk_mtfp;
            }
            }
            if ((inptr[1]=='f' || inptr[1]=='F') &&
            if ((inptr[1]=='f' || inptr[1]=='F') &&
                (inptr[2]=='f' || inptr[2]=='F') &&
                (inptr[2]=='f' || inptr[2]=='F') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_mffp;
                return token = tk_mffp;
            }
            }
            if ((inptr[1]=='e' || inptr[1]=='E') &&
            if ((inptr[1]=='e' || inptr[1]=='E') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[3]=='s' || inptr[3]=='S') &&
                (inptr[3]=='s' || inptr[3]=='S') &&
                (inptr[4]=='a' || inptr[4]=='A') &&
                (inptr[4]=='a' || inptr[4]=='A') &&
                (inptr[5]=='g' || inptr[5]=='G') &&
                (inptr[5]=='g' || inptr[5]=='G') &&
                (inptr[6]=='e' || inptr[6]=='E') &&
                (inptr[6]=='e' || inptr[6]=='E') &&
                isspace(inptr[7])) {
                isspace(inptr[7])) {
                inptr += 7;
                inptr += 7;
                return token = tk_message;
                return token = tk_message;
            }
            }
            if ((inptr[1]=='v' || inptr[1]=='V') &&
            if ((inptr[1]=='v' || inptr[1]=='V') &&
                (inptr[2]=='2' || inptr[2]=='2') &&
                (inptr[2]=='2' || inptr[2]=='2') &&
                (inptr[3]=='f' || inptr[3]=='F') &&
                (inptr[3]=='f' || inptr[3]=='F') &&
                (inptr[4]=='l' || inptr[4]=='L') &&
                (inptr[4]=='l' || inptr[4]=='L') &&
                (inptr[5]=='t' || inptr[5]=='T') &&
                (inptr[5]=='t' || inptr[5]=='T') &&
                isspace(inptr[6])) {
                isspace(inptr[6])) {
                inptr += 6;
                inptr += 6;
                return token = tk_mv2flt;
                return token = tk_mv2flt;
            }
            }
            if ((inptr[1]=='v' || inptr[1]=='V') &&
            if ((inptr[1]=='v' || inptr[1]=='V') &&
                (inptr[2]=='2' || inptr[2]=='2') &&
                (inptr[2]=='2' || inptr[2]=='2') &&
                (inptr[3]=='f' || inptr[3]=='F') &&
                (inptr[3]=='f' || inptr[3]=='F') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[5]=='x' || inptr[5]=='X') &&
                (inptr[5]=='x' || inptr[5]=='X') &&
                isspace(inptr[6])) {
                isspace(inptr[6])) {
                inptr += 6;
                inptr += 6;
                return token = tk_mv2fix;
                return token = tk_mv2fix;
            }
            }
            if (gCpu==4 || gCpu=='F') {
            if (gCpu==4 || gCpu=='F') {
                if ((inptr[1]=='e' || inptr[1]=='E') &&
                if ((inptr[1]=='e' || inptr[1]=='E') &&
                    (inptr[2]=='m' || inptr[2]=='M') &&
                    (inptr[2]=='m' || inptr[2]=='M') &&
                    (inptr[3]=='d' || inptr[3]=='D') &&
                    (inptr[3]=='d' || inptr[3]=='D') &&
                    (inptr[4]=='b' || inptr[4]=='B') &&
                    (inptr[4]=='b' || inptr[4]=='B') &&
                    isspace(inptr[5])) {
                    isspace(inptr[5])) {
                    inptr += 5;
                    inptr += 5;
                    return token = tk_memdb;
                    return token = tk_memdb;
                }
                }
                if ((inptr[1]=='e' || inptr[1]=='E') &&
                if ((inptr[1]=='e' || inptr[1]=='E') &&
                    (inptr[2]=='m' || inptr[2]=='M') &&
                    (inptr[2]=='m' || inptr[2]=='M') &&
                    (inptr[3]=='s' || inptr[3]=='S') &&
                    (inptr[3]=='s' || inptr[3]=='S') &&
                    (inptr[4]=='b' || inptr[4]=='B') &&
                    (inptr[4]=='b' || inptr[4]=='B') &&
                    isspace(inptr[5])) {
                    isspace(inptr[5])) {
                    inptr += 5;
                    inptr += 5;
                    return token = tk_memsb;
                    return token = tk_memsb;
                }
                }
            }
            }
                        if (gCpu=='A') {
                        if (gCpu=='A') {
                if ((inptr[1]=='a' || inptr[1]=='A') &&
                if ((inptr[1]=='a' || inptr[1]=='A') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[3]=='k' || inptr[3]=='K') &&
                    (inptr[3]=='k' || inptr[3]=='K') &&
                    (inptr[4]=='1' || inptr[4]=='1') &&
                    (inptr[4]=='1' || inptr[4]=='1') &&
                    isspace(inptr[5])) {
                    isspace(inptr[5])) {
                    inptr += 5;
                    inptr += 5;
                    return token = tk_mark1;
                    return token = tk_mark1;
                }
                }
                if ((inptr[1]=='a' || inptr[1]=='A') &&
                if ((inptr[1]=='a' || inptr[1]=='A') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[3]=='k' || inptr[3]=='K') &&
                    (inptr[3]=='k' || inptr[3]=='K') &&
                    (inptr[4]=='2' || inptr[4]=='2') &&
                    (inptr[4]=='2' || inptr[4]=='2') &&
                    isspace(inptr[5])) {
                    isspace(inptr[5])) {
                    inptr += 5;
                    inptr += 5;
                    return token = tk_mark2;
                    return token = tk_mark2;
                }
                }
                        }
                        }
            if ((inptr[1]=='a' || inptr[1]=='A') &&
            if ((inptr[1]=='a' || inptr[1]=='A') &&
                (inptr[2]=='r' || inptr[2]=='R') &&
                (inptr[2]=='c' || inptr[2]=='C') &&
                (inptr[3]=='c' || inptr[3]=='C') &&
                (inptr[3]=='r' || inptr[3]=='R') &&
                (inptr[4]=='o' || inptr[4]=='O') &&
                (inptr[4]=='o' || inptr[4]=='O') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_macro;
                return (token = tk_macro);
            }
            }
            break;
            break;
 
 
        // not neg nop
        // not neg nop
        case 'n': case 'N':
        case 'n': case 'N':
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='t' || inptr[2]=='T') && isspace(inptr[3])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='t' || inptr[2]=='T') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_not;
                return token = tk_not;
            }
            }
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='g' || inptr[2]=='G') && isspace(inptr[3])) {
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='g' || inptr[2]=='G') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_neg;
                return token = tk_neg;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='p' || inptr[2]=='P') && isspace(inptr[3])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='p' || inptr[2]=='P') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_nop;
                return token = tk_nop;
            }
            }
            break;
            break;
 
 
        // or ori org
        // or ori org
        case 'o': case 'O':
        case 'o': case 'O':
            if ((inptr[1]=='r' || inptr[1]=='R') && (inptr[2]=='i' || inptr[2]=='I') && isspace(inptr[3])) {
            if ((inptr[1]=='r' || inptr[1]=='R') && (inptr[2]=='i' || inptr[2]=='I') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_ori;
                return token = tk_ori;
            }
            }
            if ((inptr[1]=='r' || inptr[1]=='R') && isspace(inptr[2])) {
            if ((inptr[1]=='r' || inptr[1]=='R') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_or;
                return token = tk_or;
            }
            }
            if ((inptr[1]=='r' || inptr[1]=='R') && (inptr[2]=='g' || inptr[2]=='G') && isspace(inptr[3])) {
            if ((inptr[1]=='r' || inptr[1]=='R') && (inptr[2]=='g' || inptr[2]=='G') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_org;
                return token = tk_org;
            }
            }
            break;
            break;
 
 
        // pea push pop php plp public
        // pea push pop php plp public
        case 'p': case 'P':
        case 'p': case 'P':
            if ((inptr[1]=='u' || inptr[1]=='U') &&
            if ((inptr[1]=='u' || inptr[1]=='U') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[3]=='h' || inptr[3]=='H') &&
                (inptr[3]=='h' || inptr[3]=='H') &&
                isspace(inptr[4]) || inptr[4]=='.') {
                isspace(inptr[4]) || inptr[4]=='.') {
                inptr += 4;
                inptr += 4;
                return token = tk_push;
                return token = tk_push;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') &&
            if ((inptr[1]=='o' || inptr[1]=='O') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                isspace(inptr[3]) || inptr[3]=='.') {
                isspace(inptr[3]) || inptr[3]=='.') {
                inptr += 3;
                inptr += 3;
                return token = tk_pop;
                return token = tk_pop;
            }
            }
            if ((inptr[1]=='e' || inptr[1]=='E') &&
            if ((inptr[1]=='e' || inptr[1]=='E') &&
                (inptr[2]=='a' || inptr[2]=='A') &&
                (inptr[2]=='a' || inptr[2]=='A') &&
                isspace(inptr[3])) {
                isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_pea;
                return token = tk_pea;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') &&
            if ((inptr[1]=='h' || inptr[1]=='H') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                isspace(inptr[3])) {
                isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_php;
                return token = tk_php;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                isspace(inptr[3])) {
                isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_plp;
                return token = tk_plp;
            }
            }
            if ((inptr[1]=='u' || inptr[1]=='U') &&
            if ((inptr[1]=='u' || inptr[1]=='U') &&
                (inptr[2]=='b' || inptr[2]=='B') &&
                (inptr[2]=='b' || inptr[2]=='B') &&
                (inptr[3]=='l' || inptr[3]=='L') &&
                (inptr[3]=='l' || inptr[3]=='L') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[5]=='c' || inptr[5]=='C') &&
                (inptr[5]=='c' || inptr[5]=='C') &&
                isspace(inptr[6])) {
                isspace(inptr[6])) {
                inptr += 6;
                inptr += 6;
                return token = tk_public;
                return token = tk_public;
            }
            }
            if (gCpu==4) {
            if (gCpu==4) {
                if (isdigit(inptr[1]) && (inptr[2]=='.' || inptr[2]==',' || isspace(inptr[2]))) {
                if (isdigit(inptr[1]) && (inptr[2]=='.' || inptr[2]==',' || isspace(inptr[2]))) {
                    inptr += 1;
                    inptr += 1;
                    return token = tk_pred;
                    return token = tk_pred;
                }
                }
                if (isdigit(inptr[1]) && isdigit(inptr[2]) && (inptr[3]=='.' || inptr[3]==',' || isspace(inptr[3]))) {
                if (isdigit(inptr[1]) && isdigit(inptr[2]) && (inptr[3]=='.' || inptr[3]==',' || isspace(inptr[3]))) {
                    inptr += 1;
                    inptr += 1;
                    return token = tk_pred;
                    return token = tk_pred;
                }
                }
                if ((inptr[1]=='a' || inptr[1]=='A') &&
                if ((inptr[1]=='a' || inptr[1]=='A') &&
                    (inptr[2]=='n' || inptr[2]=='N') &&
                    (inptr[2]=='n' || inptr[2]=='N') &&
                    (inptr[3]=='d' || inptr[3]=='D') &&
                    (inptr[3]=='d' || inptr[3]=='D') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_pand;
                    return token = tk_pand;
                }
                }
                if ((inptr[1]=='o' || inptr[1]=='O') &&
                if ((inptr[1]=='o' || inptr[1]=='O') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    isspace(inptr[3])) {
                    isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_por;
                    return token = tk_por;
                }
                }
                if ((inptr[1]=='e' || inptr[1]=='R') &&
                if ((inptr[1]=='e' || inptr[1]=='R') &&
                    (inptr[2]=='o' || inptr[2]=='O') &&
                    (inptr[2]=='o' || inptr[2]=='O') &&
                    (inptr[3]=='r' || inptr[3]=='R') &&
                    (inptr[3]=='r' || inptr[3]=='R') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_peor;
                    return token = tk_peor;
                }
                }
                if ((inptr[1]=='a' || inptr[1]=='A') &&
                if ((inptr[1]=='a' || inptr[1]=='A') &&
                    (inptr[2]=='n' || inptr[2]=='N') &&
                    (inptr[2]=='n' || inptr[2]=='N') &&
                    (inptr[3]=='d' || inptr[3]=='D') &&
                    (inptr[3]=='d' || inptr[3]=='D') &&
                    (inptr[4]=='c' || inptr[4]=='C') &&
                    (inptr[4]=='c' || inptr[4]=='C') &&
                    isspace(inptr[5])) {
                    isspace(inptr[5])) {
                    inptr += 5;
                    inptr += 5;
                    return token = tk_pandc;
                    return token = tk_pandc;
                }
                }
                if ((inptr[1]=='o' || inptr[1]=='O') &&
                if ((inptr[1]=='o' || inptr[1]=='O') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[3]=='c' || inptr[3]=='C') &&
                    (inptr[3]=='c' || inptr[3]=='C') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_porc;
                    return token = tk_porc;
                }
                }
                if ((inptr[1]=='n' || inptr[1]=='N') &&
                if ((inptr[1]=='n' || inptr[1]=='N') &&
                    (inptr[2]=='a' || inptr[2]=='A') &&
                    (inptr[2]=='a' || inptr[2]=='A') &&
                    (inptr[3]=='n' || inptr[3]=='N') &&
                    (inptr[3]=='n' || inptr[3]=='N') &&
                    (inptr[4]=='d' || inptr[4]=='D') &&
                    (inptr[4]=='d' || inptr[4]=='D') &&
                    isspace(inptr[5])) {
                    isspace(inptr[5])) {
                    inptr += 5;
                    inptr += 5;
                    return token = tk_pnand;
                    return token = tk_pnand;
                }
                }
                if ((inptr[1]=='n' || inptr[1]=='N') &&
                if ((inptr[1]=='n' || inptr[1]=='N') &&
                    (inptr[2]=='o' || inptr[2]=='O') &&
                    (inptr[2]=='o' || inptr[2]=='O') &&
                    (inptr[3]=='r' || inptr[3]=='R') &&
                    (inptr[3]=='r' || inptr[3]=='R') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_pnor;
                    return token = tk_pnor;
                }
                }
                if ((inptr[1]=='e' || inptr[1]=='E') &&
                if ((inptr[1]=='e' || inptr[1]=='E') &&
                    (inptr[2]=='n' || inptr[2]=='N') &&
                    (inptr[2]=='n' || inptr[2]=='N') &&
                    (inptr[3]=='o' || inptr[3]=='O') &&
                    (inptr[3]=='o' || inptr[3]=='O') &&
                    (inptr[4]=='r' || inptr[4]=='R') &&
                    (inptr[4]=='r' || inptr[4]=='R') &&
                    isspace(inptr[5])) {
                    isspace(inptr[5])) {
                    inptr += 5;
                    inptr += 5;
                    return token = tk_penor;
                    return token = tk_penor;
                }
                }
            }
            }
            break;
            break;
 
 
        // ret rex rol roli ror rori rtd rte rtf rts rti rtl rodata
        // ret rex rol roli ror rori rtd rte rtf rts rti rtl rodata
        case 'r': case 'R':
        case 'r': case 'R':
                        if (gCpu==7 || gCpu=='A' || gCpu=='F') {
                        if (gCpu==7 || gCpu=='A' || gCpu=='F') {
                                if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='t' || inptr[2]=='T') && isspace(inptr[3])) {
                                if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='t' || inptr[2]=='T') && isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_ret;
                                        return token = tk_ret;
                                }
                                }
                                if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='x' || inptr[2]=='X') && isspace(inptr[3])) {
                                if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='x' || inptr[2]=='X') && isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_rex;
                                        return token = tk_rex;
                                }
                                }
                        }
                        }
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='s' || inptr[2]=='S') && isspace(inptr[3])) {
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='s' || inptr[2]=='S') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_rts;
                return token = tk_rts;
            }
            }
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='f' || inptr[2]=='F') && isspace(inptr[3])) {
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='f' || inptr[2]=='F') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_rtf;
                return token = tk_rtf;
            }
            }
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='l' || inptr[2]=='L') && isspace(inptr[3])) {
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='l' || inptr[2]=='L') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_rtl;
                return token = tk_rtl;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='l' || inptr[2]=='L') && isspaceOrDot(inptr[3])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='l' || inptr[2]=='L') && isspaceOrDot(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_rol;
                return token = tk_rol;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='l' || inptr[2]=='L') && (inptr[3]=='i' || inptr[3]=='I') && isspaceOrDot(inptr[4])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='l' || inptr[2]=='L') && (inptr[3]=='i' || inptr[3]=='I') && isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_roli;
                return token = tk_roli;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='r' || inptr[2]=='R') && isspaceOrDot(inptr[3])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='r' || inptr[2]=='R') && isspaceOrDot(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_ror;
                return token = tk_ror;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='r' || inptr[2]=='R') && (inptr[3]=='i' || inptr[3]=='I') && isspaceOrDot(inptr[4])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='r' || inptr[2]=='R') && (inptr[3]=='i' || inptr[3]=='I') && isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_rori;
                return token = tk_rori;
            }
            }
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='i' || inptr[2]=='I') && isspace(inptr[3])) {
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='i' || inptr[2]=='I') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_rti;
                return token = tk_rti;
            }
            }
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='e' || inptr[2]=='E') && isspace(inptr[3])) {
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='e' || inptr[2]=='E') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_rte;
                return token = tk_rte;
            }
            }
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
            if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_rtd;
                return token = tk_rtd;
            }
            }
             if ((inptr[1]=='o' || inptr[1]=='O') &&
             if ((inptr[1]=='o' || inptr[1]=='O') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[2]=='d' || inptr[2]=='D') &&
                 (inptr[3]=='a' || inptr[3]=='A') &&
                 (inptr[3]=='a' || inptr[3]=='A') &&
                 (inptr[4]=='t' || inptr[4]=='T') &&
                 (inptr[4]=='t' || inptr[4]=='T') &&
                 (inptr[5]=='a' || inptr[5]=='A') &&
                 (inptr[5]=='a' || inptr[5]=='A') &&
                 isspace(inptr[6])) {
                 isspace(inptr[6])) {
                 inptr += 6;
                 inptr += 6;
                 return token = tk_rodata;
                 return token = tk_rodata;
             }
             }
                         if (gCpu == 'F') {
                         if (gCpu == 'F') {
                                 if ((inptr[1] == 'e' || inptr[1] == 'E') &&
                                 if ((inptr[1] == 'e' || inptr[1] == 'E') &&
                                         (inptr[2] == 'd' || inptr[2] == 'D') &&
                                         (inptr[2] == 'd' || inptr[2] == 'D') &&
                                         (inptr[3] == 'o' || inptr[3] == 'O') &&
                                         (inptr[3] == 'o' || inptr[3] == 'O') &&
                                         (inptr[4] == 'r' || inptr[4] == 'R') &&
                                         (inptr[4] == 'r' || inptr[4] == 'R') &&
                                         isspace(inptr[5])) {
                                         isspace(inptr[5])) {
                                         inptr += 5;
                                         inptr += 5;
                                         return token = tk_redor;
                                         return token = tk_redor;
                                 }
                                 }
                         }
                         }
            break;
            break;
 
 
        // sb sc sf sh sw sxb sxc sxh sub subi subu subui shl shli shr shru shrui sei smr ss:
        // sb sc sf sh sw sxb sxc sxh sub subi subu subui shl shli shr shru shrui sei smr ss:
        // seq seqi sne snei sge sgei sgt sgti slt slti sle slei sgeu sgeui sgtu sgtui sltu sltui sleu sleui
        // seq seqi sne snei sge sgei sgt sgti slt slti sle slei sgeu sgeui sgtu sgtui sltu sltui sleu sleui
        // swcr sfd sts sync sws stcmp stmov srai srli stcb sv
        // swcr sfd sts sync sws stcmp stmov srai srli stcb sv
                // DSD9: stb stw stp std
                // DSD9: stb stw stp std
        case 's': case 'S':
        case 's': case 'S':
                        if (gCpu=='A') {
                        if (gCpu=='A') {
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                        (inptr[2]=='d' || inptr[2]=='D') &&
                                        (inptr[2]=='d' || inptr[2]=='D') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_std;
                                        return token = tk_std;
                                }
                                }
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                        (inptr[2]=='d' || inptr[2]=='D') &&
                                        (inptr[2]=='d' || inptr[2]=='D') &&
                                        (inptr[3]=='c' || inptr[3]=='C') &&
                                        (inptr[3]=='c' || inptr[3]=='C') &&
                                        (inptr[4]=='r' || inptr[4]=='R') &&
                                        (inptr[4]=='r' || inptr[4]=='R') &&
                                        isspace(inptr[5])) {
                                        isspace(inptr[5])) {
                                        inptr += 5;
                                        inptr += 5;
                                        return token = tk_stdcr;
                                        return token = tk_stdcr;
                                }
                                }
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                        (inptr[2]=='b' || inptr[2]=='B') &&
                                        (inptr[2]=='b' || inptr[2]=='B') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_stb;
                                        return token = tk_stb;
                                }
                                }
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                        (inptr[2]=='p' || inptr[2]=='P') &&
                                        (inptr[2]=='p' || inptr[2]=='P') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_stp;
                                        return token = tk_stp;
                                }
                                }
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                        (inptr[2]=='t' || inptr[2]=='T') &&
                                        (inptr[2]=='t' || inptr[2]=='T') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_stt;
                                        return token = tk_stt;
                                }
                                }
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                if ((inptr[1]=='t' || inptr[1]=='T') &&
                                        (inptr[2]=='w' || inptr[2]=='W') &&
                                        (inptr[2]=='w' || inptr[2]=='W') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_stw;
                                        return token = tk_stw;
                                }
                                }
                        }
                        }
            if ((inptr[1]=='w' || inptr[1]=='W') && isspace(inptr[2])) {
            if ((inptr[1]=='w' || inptr[1]=='W') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_sw;
                return token = tk_sw;
            }
            }
            if ((inptr[1]=='b' || inptr[1]=='B') && isspace(inptr[2])) {
            if ((inptr[1]=='b' || inptr[1]=='B') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_sb;
                return token = tk_sb;
            }
            }
            if ((inptr[1]=='c' || inptr[1]=='C') && isspace(inptr[2])) {
            if ((inptr[1]=='c' || inptr[1]=='C') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_sc;
                return token = tk_sc;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') && isspace(inptr[2])) {
            if ((inptr[1]=='h' || inptr[1]=='H') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_sh;
                return token = tk_sh;
            }
            }
            if ((inptr[1]=='f' || inptr[1]=='F') && (isspace(inptr[2])||inptr[2]=='.')) {
            if ((inptr[1]=='f' || inptr[1]=='F') && (isspace(inptr[2])||inptr[2]=='.')) {
                inptr += 2;
                inptr += 2;
                return token = tk_sf;
                return token = tk_sf;
            }
            }
            if ((inptr[1]=='u' || inptr[1]=='U') &&
            if ((inptr[1]=='u' || inptr[1]=='U') &&
                (inptr[2]=='b' || inptr[2]=='B') &&
                (inptr[2]=='b' || inptr[2]=='B') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_subui;
                return token = tk_subui;
            }
            }
            if ((inptr[1]=='u' || inptr[1]=='U') && (inptr[2]=='b' || inptr[2]=='B') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='u' || inptr[1]=='U') && (inptr[2]=='b' || inptr[2]=='B') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_subi;
                return token = tk_subi;
            }
            }
            if ((inptr[1]=='u' || inptr[1]=='U') && (inptr[2]=='b' || inptr[2]=='B') && (inptr[3]=='u' || inptr[3]=='U') && isspace(inptr[4])) {
            if ((inptr[1]=='u' || inptr[1]=='U') && (inptr[2]=='b' || inptr[2]=='B') && (inptr[3]=='u' || inptr[3]=='U') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_subu;
                return token = tk_subu;
            }
            }
            if ((inptr[1]=='u' || inptr[1]=='U') && (inptr[2]=='b' || inptr[2]=='B') && isspace(inptr[3])) {
            if ((inptr[1]=='u' || inptr[1]=='U') && (inptr[2]=='b' || inptr[2]=='B') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sub;
                return token = tk_sub;
            }
            }
            if ((inptr[1]=='f' || inptr[1]=='F') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
            if ((inptr[1]=='f' || inptr[1]=='F') && (inptr[2]=='d' || inptr[2]=='D') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sfd;
                return token = tk_sfd;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') && (inptr[2]=='l' || inptr[2]=='L') && (inptr[3]=='i' || inptr[3]=='I') && isspaceOrDot(inptr[4])) {
            if ((inptr[1]=='h' || inptr[1]=='H') && (inptr[2]=='l' || inptr[2]=='L') && (inptr[3]=='i' || inptr[3]=='I') && isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_shli;
                return token = tk_shli;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') && (inptr[2]=='l' || inptr[2]=='L') && isspaceOrDot(inptr[3])) {
            if ((inptr[1]=='h' || inptr[1]=='H') && (inptr[2]=='l' || inptr[2]=='L') && isspaceOrDot(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_shl;
                return token = tk_shl;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') &&
            if ((inptr[1]=='h' || inptr[1]=='H') &&
                (inptr[2]=='r' || inptr[2]=='R') &&
                (inptr[2]=='r' || inptr[2]=='R') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                isspaceOrDot(inptr[5])) {
                isspaceOrDot(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_shrui;
                return token = tk_shrui;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') &&
            if ((inptr[1]=='h' || inptr[1]=='H') &&
                (inptr[2]=='r' || inptr[2]=='R') &&
                (inptr[2]=='r' || inptr[2]=='R') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                isspaceOrDot(inptr[4])) {
                isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_shru;
                return token = tk_shru;
            }
            }
            if ((inptr[1]=='h' || inptr[1]=='H') &&
            if ((inptr[1]=='h' || inptr[1]=='H') &&
                (inptr[2]=='r' || inptr[2]=='R') &&
                (inptr[2]=='r' || inptr[2]=='R') &&
                isspaceOrDot(inptr[3])) {
                isspaceOrDot(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_shru;
                return token = tk_shru;
            }
            }
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='i' || inptr[2]=='I') && isspace(inptr[3])) {
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='i' || inptr[2]=='I') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sei;
                return token = tk_sei;
            }
            }
            if ((inptr[1]=='m' || inptr[1]=='M') && (inptr[2]=='r' || inptr[2]=='R') && isspace(inptr[3])) {
            if ((inptr[1]=='m' || inptr[1]=='M') && (inptr[2]=='r' || inptr[2]=='R') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_smr;
                return token = tk_smr;
            }
            }
            if ((inptr[1]=='x' || inptr[1]=='X') && (inptr[2]=='b' || inptr[2]=='B') && isspace(inptr[3])) {
            if ((inptr[1]=='x' || inptr[1]=='X') && (inptr[2]=='b' || inptr[2]=='B') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sxb;
                return token = tk_sxb;
            }
            }
            if ((inptr[1]=='x' || inptr[1]=='X') && (inptr[2]=='c' || inptr[2]=='C') && isspace(inptr[3])) {
            if ((inptr[1]=='x' || inptr[1]=='X') && (inptr[2]=='c' || inptr[2]=='C') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sxc;
                return token = tk_sxc;
            }
            }
            if ((inptr[1]=='x' || inptr[1]=='X') && (inptr[2]=='h' || inptr[2]=='H') && isspace(inptr[3])) {
            if ((inptr[1]=='x' || inptr[1]=='X') && (inptr[2]=='h' || inptr[2]=='H') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sxh;
                return token = tk_sxh;
            }
            }
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='q' || inptr[2]=='Q') && isspace(inptr[3])) {
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='q' || inptr[2]=='Q') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_seq;
                return token = tk_seq;
            }
            }
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='q' || inptr[2]=='Q') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='e' || inptr[1]=='E') && (inptr[2]=='q' || inptr[2]=='Q') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_seqi;
                return token = tk_seqi;
            }
            }
            if ((inptr[1]=='n' || inptr[1]=='N') && (inptr[2]=='e' || inptr[2]=='E') && isspace(inptr[3])) {
            if ((inptr[1]=='n' || inptr[1]=='N') && (inptr[2]=='e' || inptr[2]=='E') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sne;
                return token = tk_sne;
            }
            }
            if ((inptr[1]=='n' || inptr[1]=='N') && (inptr[2]=='e' || inptr[2]=='E') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='n' || inptr[1]=='N') && (inptr[2]=='e' || inptr[2]=='E') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_snei;
                return token = tk_snei;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') && (inptr[2]=='e' || inptr[2]=='E') && isspace(inptr[3])) {
            if ((inptr[1]=='g' || inptr[1]=='G') && (inptr[2]=='e' || inptr[2]=='E') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sge;
                return token = tk_sge;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') && (inptr[2]=='e' || inptr[2]=='E') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='g' || inptr[1]=='G') && (inptr[2]=='e' || inptr[2]=='E') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_sgei;
                return token = tk_sgei;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') && (inptr[2]=='t' || inptr[2]=='T') && isspace(inptr[3])) {
            if ((inptr[1]=='g' || inptr[1]=='G') && (inptr[2]=='t' || inptr[2]=='T') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sgt;
                return token = tk_sgt;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') && (inptr[2]=='t' || inptr[2]=='T') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='g' || inptr[1]=='G') && (inptr[2]=='t' || inptr[2]=='T') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_sgti;
                return token = tk_sgti;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='e' || inptr[2]=='E') && isspace(inptr[3])) {
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='e' || inptr[2]=='E') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sle;
                return token = tk_sle;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='e' || inptr[2]=='E') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='e' || inptr[2]=='E') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_slei;
                return token = tk_slei;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='t' || inptr[2]=='T') && isspace(inptr[3])) {
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='t' || inptr[2]=='T') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_slt;
                return token = tk_slt;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='t' || inptr[2]=='T') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='l' || inptr[1]=='L') && (inptr[2]=='t' || inptr[2]=='T') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_slti;
                return token = tk_slti;
            }
            }
 
 
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_sgeu;
                return token = tk_sgeu;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_sgeui;
                return token = tk_sgeui;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_sgtu;
                return token = tk_sgtu;
            }
            }
            if ((inptr[1]=='g' || inptr[1]=='G') &&
            if ((inptr[1]=='g' || inptr[1]=='G') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_sgtui;
                return token = tk_sgtui;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_sleu;
                return token = tk_sleu;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[2]=='e' || inptr[2]=='E') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_sleui;
                return token = tk_sleui;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_sltu;
                return token = tk_sltu;
            }
            }
            if ((inptr[1]=='l' || inptr[1]=='L') &&
            if ((inptr[1]=='l' || inptr[1]=='L') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[2]=='t' || inptr[2]=='T') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[3]=='u' || inptr[3]=='U') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                (inptr[4]=='i' || inptr[4]=='I') &&
                isspace(inptr[5])) {
                isspace(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_sltui;
                return token = tk_sltui;
            }
            }
             if ((inptr[1]=='s' || inptr[1]=='S') &&
             if ((inptr[1]=='s' || inptr[1]=='S') &&
                 (inptr[2]==':')) {
                 (inptr[2]==':')) {
                 inptr+=3;
                 inptr+=3;
                 return token = tk_ss;
                 return token = tk_ss;
             }
             }
            if ((inptr[1]=='w' || inptr[1]=='W') &&
            if ((inptr[1]=='w' || inptr[1]=='W') &&
                (inptr[2]=='a' || inptr[2]=='A') &&
                (inptr[2]=='a' || inptr[2]=='A') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                (inptr[3]=='p' || inptr[3]=='P') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_swap;
                return token = tk_swap;
            }
            }
            if ((inptr[1]=='t' || inptr[1]=='T') && isspace(inptr[2])) {
            if ((inptr[1]=='t' || inptr[1]=='T') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_sw;
                return token = tk_sw;
            }
            }
            if ((inptr[1]=='v' || inptr[1]=='V') && isspace(inptr[2])) {
            if ((inptr[1]=='v' || inptr[1]=='V') && isspace(inptr[2])) {
                inptr += 2;
                inptr += 2;
                return token = tk_sv;
                return token = tk_sv;
            }
            }
            if ((inptr[1]=='y' || inptr[1]=='Y') &&
            if ((inptr[1]=='y' || inptr[1]=='Y') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                (inptr[2]=='s' || inptr[2]=='S') &&
                isspace(inptr[3])) {
                isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_sys;
                return token = tk_sys;
            }
            }
            if ((inptr[1]=='t' || inptr[1]=='T') &&
            if ((inptr[1]=='t' || inptr[1]=='T') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                (inptr[2]=='p' || inptr[2]=='P') &&
                isspace(inptr[3])) {
                isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_stp;
                return token = tk_stp;
            }
            }
                        if (gCpu == 'F') {
                        if (gCpu == 'F') {
                                if ((inptr[1] == 'w' || inptr[1] == 'W') &&
                                if ((inptr[1] == 'w' || inptr[1] == 'W') &&
                                        (inptr[2] == 'p' || inptr[2] == 'P') &&
                                        (inptr[2] == 'p' || inptr[2] == 'P') &&
                                        isspace(inptr[3])) {
                                        isspace(inptr[3])) {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_swp;
                                        return token = tk_swp;
                                }
                                }
                        }
                        }
            if (gCpu==4) {
            if (gCpu==4) {
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[3]=='b' || inptr[3]=='B') &&
                    (inptr[3]=='b' || inptr[3]=='B') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_stsb;
                    return token = tk_stsb;
                }
                }
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[3]=='c' || inptr[3]=='C') &&
                    (inptr[3]=='c' || inptr[3]=='C') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_stsc;
                    return token = tk_stsc;
                }
                }
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[3]=='h' || inptr[3]=='H') &&
                    (inptr[3]=='h' || inptr[3]=='H') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_stsh;
                    return token = tk_stsh;
                }
                }
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[3]=='w' || inptr[3]=='W') &&
                    (inptr[3]=='w' || inptr[3]=='W') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_stsw;
                    return token = tk_stsw;
                }
                }
                if ((inptr[1]=='w' || inptr[1]=='W') &&
                if ((inptr[1]=='w' || inptr[1]=='W') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    isspace(inptr[3])) {
                    isspace(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_sws;
                    return token = tk_sws;
                }
                }
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                    (inptr[2]=='c' || inptr[2]=='C') &&
                    (inptr[2]=='c' || inptr[2]=='C') &&
                    (inptr[3]=='m' || inptr[3]=='M') &&
                    (inptr[3]=='m' || inptr[3]=='M') &&
                    (inptr[4]=='p' || inptr[4]=='P') &&
                    (inptr[4]=='p' || inptr[4]=='P') &&
                    inptr[5]=='.') {
                    inptr[5]=='.') {
                    inptr += 6;
                    inptr += 6;
                    return token = tk_stcmp;
                    return token = tk_stcmp;
                }
                }
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                    (inptr[2]=='m' || inptr[2]=='M') &&
                    (inptr[2]=='m' || inptr[2]=='M') &&
                    (inptr[3]=='o' || inptr[3]=='O') &&
                    (inptr[3]=='o' || inptr[3]=='O') &&
                    (inptr[4]=='v' || inptr[4]=='V') &&
                    (inptr[4]=='v' || inptr[4]=='V') &&
                    inptr[5]=='.') {
                    inptr[5]=='.') {
                    inptr += 6;
                    inptr += 6;
                    return token = tk_stmov;
                    return token = tk_stmov;
                }
                }
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                if ((inptr[1]=='t' || inptr[1]=='T') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[2]=='s' || inptr[2]=='S') &&
                    (inptr[3]=='e' || inptr[3]=='E') &&
                    (inptr[3]=='e' || inptr[3]=='E') &&
                    (inptr[4]=='t' || inptr[4]=='T') &&
                    (inptr[4]=='t' || inptr[4]=='T') &&
                    inptr[5]=='.') {
                    inptr[5]=='.') {
                    inptr += 6;
                    inptr += 6;
                    return token = tk_stset;
                    return token = tk_stset;
                }
                }
                if ((inptr[1]=='h' || inptr[1]=='H') &&
                if ((inptr[1]=='h' || inptr[1]=='H') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[3]=='i' || inptr[3]=='I') &&
                    (inptr[3]=='i' || inptr[3]=='I') &&
                    isspace(inptr[4])) {
                    isspace(inptr[4])) {
                    inptr += 4;
                    inptr += 4;
                    return token = tk_shri;
                    return token = tk_shri;
                }
                }
                if ((inptr[1]=='h' || inptr[1]=='H') &&
                if ((inptr[1]=='h' || inptr[1]=='H') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    (inptr[2]=='r' || inptr[2]=='R') &&
                    isspaceOrDot(inptr[3])) {
                    isspaceOrDot(inptr[3])) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_shr;
                    return token = tk_shr;
                }
                }
            }
            }
            if ((inptr[1]=='y' || inptr[1]=='Y') &&
            if ((inptr[1]=='y' || inptr[1]=='Y') &&
                (inptr[2]=='n' || inptr[2]=='N') &&
                (inptr[2]=='n' || inptr[2]=='N') &&
                (inptr[3]=='c' || inptr[3]=='C') &&
                (inptr[3]=='c' || inptr[3]=='C') &&
                isspace(inptr[4])) {
                isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_sync;
                return token = tk_sync;
            }
            }
            if ((inptr[1]=='w' || inptr[1]=='W') && (inptr[2]=='c' || inptr[2]=='C') && (inptr[3]=='r' || inptr[3]=='R') && isspace(inptr[4])) {
            if ((inptr[1]=='w' || inptr[1]=='W') && (inptr[2]=='c' || inptr[2]=='C') && (inptr[3]=='r' || inptr[3]=='R') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_swcr;
                return token = tk_swcr;
            }
            }
            if ((inptr[1]=='w' || inptr[1]=='W') && (inptr[2]=='c' || inptr[2]=='C') && isspace(inptr[3])) {
            if ((inptr[1]=='w' || inptr[1]=='W') && (inptr[2]=='c' || inptr[2]=='C') && isspace(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_swc;
                return token = tk_swc;
            }
            }
            // RiSC-V opcodes
            // RiSC-V opcodes
            // slli srli srai
            // slli srli srai
            if (gCpu==5) {
            if (gCpu==5) {
              if ((inptr[1]=='l' || inptr[1]=='L') &&
              if ((inptr[1]=='l' || inptr[1]=='L') &&
                  (inptr[2]=='l' || inptr[2]=='L') &&
                  (inptr[2]=='l' || inptr[2]=='L') &&
                  (inptr[3]=='i' || inptr[3]=='I') &&
                  (inptr[3]=='i' || inptr[3]=='I') &&
                  isspaceOrDot(inptr[4])) {
                  isspaceOrDot(inptr[4])) {
                  inptr += 4;
                  inptr += 4;
                  return token = tk_slli;
                  return token = tk_slli;
              }
              }
              if ((inptr[1]=='r' || inptr[1]=='R') &&
              if ((inptr[1]=='r' || inptr[1]=='R') &&
                  (inptr[2]=='a' || inptr[2]=='A') &&
                  (inptr[2]=='a' || inptr[2]=='A') &&
                  (inptr[3]=='i' || inptr[3]=='I') &&
                  (inptr[3]=='i' || inptr[3]=='I') &&
                  isspaceOrDot(inptr[4])) {
                  isspaceOrDot(inptr[4])) {
                  inptr += 4;
                  inptr += 4;
                  return token = tk_srai;
                  return token = tk_srai;
              }
              }
              if ((inptr[1]=='r' || inptr[1]=='R') &&
              if ((inptr[1]=='r' || inptr[1]=='R') &&
                  (inptr[2]=='l' || inptr[2]=='L') &&
                  (inptr[2]=='l' || inptr[2]=='L') &&
                  (inptr[3]=='i' || inptr[3]=='I') &&
                  (inptr[3]=='i' || inptr[3]=='I') &&
                  isspaceOrDot(inptr[4])) {
                  isspaceOrDot(inptr[4])) {
                  inptr += 4;
                  inptr += 4;
                  return token = tk_srli;
                  return token = tk_srli;
              }
              }
            }
            }
                        // DSD7
                        // DSD7
                        if (gCpu==7) {
                        if (gCpu==7) {
                                if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='c' || inptr[2]=='C') && (inptr[3]=='b' || inptr[3]=='B') && isspace(inptr[4])) {
                                if ((inptr[1]=='t' || inptr[1]=='T') && (inptr[2]=='c' || inptr[2]=='C') && (inptr[3]=='b' || inptr[3]=='B') && isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return token = tk_stcb;
                                        return token = tk_stcb;
                                }
                                }
                        }
                        }
                        if (gCpu == 'F') {
                        if (gCpu == 'F') {
                                if ((inptr[1] == 'p' || inptr[1] == 'P')
                                if ((inptr[1] == 'p' || inptr[1] == 'P')
                                        && (inptr[2] == 't' || inptr[2] == 'T')
                                        && (inptr[2] == 't' || inptr[2] == 'T')
                                        && (inptr[3] == 'r' || inptr[3] == 'R')
                                        && (inptr[3] == 'r' || inptr[3] == 'R')
                                        && isspace(inptr[4])) {
                                        && isspace(inptr[4])) {
                                        inptr += 4;
                                        inptr += 4;
                                        return (token = tk_sptr);
                                        return (token = tk_sptr);
                                }
                                }
                        }
                        }
            break;
            break;
 
 
        // tgt to tlbdis tlben tlbpb tlbrd tlbrdreg tlbwi tlbwr tlbwrreg
        // tgt to tlbdis tlben tlbpb tlbrd tlbrdreg tlbwi tlbwr tlbwrreg
        case 't': case 'T':
        case 't': case 'T':
             if ((inptr[1]=='o' || inptr[1]=='O') &&
             if ((inptr[1]=='o' || inptr[1]=='O') &&
                 isspace(inptr[2])) {
                 isspace(inptr[2])) {
                 inptr += 2;
                 inptr += 2;
                 return token = tk_to;
                 return token = tk_to;
             }
             }
                         if (gCpu=='A') {
                         if (gCpu=='A') {
                 if ((inptr[1]=='g' || inptr[1]=='G') &&
                 if ((inptr[1]=='g' || inptr[1]=='G') &&
                     (inptr[2]=='t' || inptr[2]=='T') &&
                     (inptr[2]=='t' || inptr[2]=='T') &&
                     isspace(inptr[3])) {
                     isspace(inptr[3])) {
                     inptr += 3;
                     inptr += 3;
                     return token = tk_tgt;
                     return token = tk_tgt;
                 }
                 }
                         }
                         }
             if (gCpu==4) {
             if (gCpu==4) {
                 if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='t' || inptr[2]=='T') &&
                 if ((inptr[1]=='s' || inptr[1]=='S') && (inptr[2]=='t' || inptr[2]=='T') &&
                     isspace(inptr[3])) {
                     isspace(inptr[3])) {
                     inptr += 3;
                     inptr += 3;
                     return token = tk_tst;
                     return token = tk_tst;
                 }
                 }
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[3]=='d' || inptr[3]=='D') &&
                     (inptr[3]=='d' || inptr[3]=='D') &&
                     (inptr[4]=='i' || inptr[4]=='I') &&
                     (inptr[4]=='i' || inptr[4]=='I') &&
                     (inptr[5]=='s' || inptr[5]=='S') &&
                     (inptr[5]=='s' || inptr[5]=='S') &&
                     isspace(inptr[6])) {
                     isspace(inptr[6])) {
                     inptr += 6;
                     inptr += 6;
                     return token = tk_tlbdis;
                     return token = tk_tlbdis;
                 }
                 }
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[3]=='e' || inptr[3]=='E') &&
                     (inptr[3]=='e' || inptr[3]=='E') &&
                     (inptr[4]=='n' || inptr[4]=='N') &&
                     (inptr[4]=='n' || inptr[4]=='N') &&
                     isspace(inptr[5])) {
                     isspace(inptr[5])) {
                     inptr += 5;
                     inptr += 5;
                     return token = tk_tlben;
                     return token = tk_tlben;
                 }
                 }
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[3]=='p' || inptr[3]=='P') &&
                     (inptr[3]=='p' || inptr[3]=='P') &&
                     (inptr[4]=='b' || inptr[4]=='B') &&
                     (inptr[4]=='b' || inptr[4]=='B') &&
                     isspace(inptr[5])) {
                     isspace(inptr[5])) {
                     inptr += 5;
                     inptr += 5;
                     return token = tk_tlbpb;
                     return token = tk_tlbpb;
                 }
                 }
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[3]=='r' || inptr[3]=='R') &&
                     (inptr[3]=='r' || inptr[3]=='R') &&
                     (inptr[4]=='d' || inptr[4]=='D') &&
                     (inptr[4]=='d' || inptr[4]=='D') &&
                     isspace(inptr[5])) {
                     isspace(inptr[5])) {
                     inptr += 5;
                     inptr += 5;
                     return token = tk_tlbrd;
                     return token = tk_tlbrd;
                 }
                 }
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[3]=='r' || inptr[3]=='R') &&
                     (inptr[3]=='r' || inptr[3]=='R') &&
                     (inptr[4]=='d' || inptr[4]=='D') &&
                     (inptr[4]=='d' || inptr[4]=='D') &&
                     (inptr[5]=='r' || inptr[5]=='R') &&
                     (inptr[5]=='r' || inptr[5]=='R') &&
                     (inptr[6]=='e' || inptr[6]=='E') &&
                     (inptr[6]=='e' || inptr[6]=='E') &&
                     (inptr[7]=='g' || inptr[7]=='G') &&
                     (inptr[7]=='g' || inptr[7]=='G') &&
                     isspace(inptr[8])) {
                     isspace(inptr[8])) {
                     inptr += 8;
                     inptr += 8;
                     return token = tk_tlbrdreg;
                     return token = tk_tlbrdreg;
                 }
                 }
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[3]=='w' || inptr[3]=='W') &&
                     (inptr[3]=='w' || inptr[3]=='W') &&
                     (inptr[4]=='i' || inptr[4]=='I') &&
                     (inptr[4]=='i' || inptr[4]=='I') &&
                     isspace(inptr[5])) {
                     isspace(inptr[5])) {
                     inptr += 5;
                     inptr += 5;
                     return token = tk_tlbwi;
                     return token = tk_tlbwi;
                 }
                 }
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[3]=='w' || inptr[3]=='W') &&
                     (inptr[3]=='w' || inptr[3]=='W') &&
                     (inptr[4]=='r' || inptr[4]=='R') &&
                     (inptr[4]=='r' || inptr[4]=='R') &&
                     isspace(inptr[5])) {
                     isspace(inptr[5])) {
                     inptr += 5;
                     inptr += 5;
                     return token = tk_tlbwr;
                     return token = tk_tlbwr;
                 }
                 }
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                 if ((inptr[1]=='l' || inptr[1]=='L') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[2]=='b' || inptr[2]=='B') &&
                     (inptr[3]=='w' || inptr[3]=='W') &&
                     (inptr[3]=='w' || inptr[3]=='W') &&
                     (inptr[4]=='r' || inptr[4]=='R') &&
                     (inptr[4]=='r' || inptr[4]=='R') &&
                     (inptr[5]=='r' || inptr[5]=='R') &&
                     (inptr[5]=='r' || inptr[5]=='R') &&
                     (inptr[6]=='e' || inptr[6]=='E') &&
                     (inptr[6]=='e' || inptr[6]=='E') &&
                     (inptr[7]=='g' || inptr[7]=='G') &&
                     (inptr[7]=='g' || inptr[7]=='G') &&
                     isspace(inptr[8])) {
                     isspace(inptr[8])) {
                     inptr += 8;
                     inptr += 8;
                     return token = tk_tlbwrreg;
                     return token = tk_tlbwrreg;
                 }
                 }
             }
             }
             break;
             break;
 
 
                // unlink
                // unlink
                case 'u': case 'U':
                case 'u': case 'U':
            if ((inptr[1]=='n' || inptr[1]=='N') &&
            if ((inptr[1]=='n' || inptr[1]=='N') &&
                                (inptr[2]=='l' || inptr[2]=='L') &&
                                (inptr[2]=='l' || inptr[2]=='L') &&
                                (inptr[3]=='i' || inptr[3]=='I') &&
                                (inptr[3]=='i' || inptr[3]=='I') &&
                                (inptr[4]=='n' || inptr[4]=='N') &&
                                (inptr[4]=='n' || inptr[4]=='N') &&
                                (inptr[5]=='k' || inptr[5]=='K') &&
                                (inptr[5]=='k' || inptr[5]=='K') &&
                                isspace(inptr[6])) {
                                isspace(inptr[6])) {
                inptr += 6;
                inptr += 6;
                return token = tk_unlink;
                return token = tk_unlink;
            }
            }
                        break;
                        break;
 
 
                // vadd vdiv vmul vsub
                // vadd vdiv vmul vsub
                case 'v': case 'V':
                case 'v': case 'V':
            if ((inptr[1]=='a' || inptr[1]=='A') &&
            if ((inptr[1]=='a' || inptr[1]=='A') &&
                                (inptr[2]=='d' || inptr[2]=='D') &&
                                (inptr[2]=='d' || inptr[2]=='D') &&
                                (inptr[3]=='d' || inptr[3]=='D') &&
                                (inptr[3]=='d' || inptr[3]=='D') &&
                                isspaceOrDot(inptr[4])) {
                                isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_vadd;
                return token = tk_vadd;
            }
            }
            if ((inptr[1]=='a' || inptr[1]=='A') &&
            if ((inptr[1]=='a' || inptr[1]=='A') &&
                                (inptr[2]=='d' || inptr[2]=='D') &&
                                (inptr[2]=='d' || inptr[2]=='D') &&
                                (inptr[3]=='d' || inptr[3]=='D') &&
                                (inptr[3]=='d' || inptr[3]=='D') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                isspaceOrDot(inptr[5])) {
                                isspaceOrDot(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_vadds;
                return token = tk_vadds;
            }
            }
            if ((inptr[1]=='a' || inptr[1]=='A') &&
            if ((inptr[1]=='a' || inptr[1]=='A') &&
                                (inptr[2]=='n' || inptr[2]=='N') &&
                                (inptr[2]=='n' || inptr[2]=='N') &&
                                (inptr[3]=='d' || inptr[3]=='D') &&
                                (inptr[3]=='d' || inptr[3]=='D') &&
                                isspaceOrDot(inptr[4])) {
                                isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_vand;
                return token = tk_vand;
            }
            }
            if ((inptr[1]=='a' || inptr[1]=='A') &&
            if ((inptr[1]=='a' || inptr[1]=='A') &&
                                (inptr[2]=='n' || inptr[2]=='N') &&
                                (inptr[2]=='n' || inptr[2]=='N') &&
                                (inptr[3]=='d' || inptr[3]=='D') &&
                                (inptr[3]=='d' || inptr[3]=='D') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                isspaceOrDot(inptr[5])) {
                                isspaceOrDot(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_vands;
                return token = tk_vands;
            }
            }
            if ((inptr[1]=='d' || inptr[1]=='D') &&
            if ((inptr[1]=='d' || inptr[1]=='D') &&
                                (inptr[2]=='i' || inptr[2]=='I') &&
                                (inptr[2]=='i' || inptr[2]=='I') &&
                                (inptr[3]=='v' || inptr[3]=='V') &&
                                (inptr[3]=='v' || inptr[3]=='V') &&
                                isspaceOrDot(inptr[4])) {
                                isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_vdiv;
                return token = tk_vdiv;
            }
            }
            if ((inptr[1]=='d' || inptr[1]=='D') &&
            if ((inptr[1]=='d' || inptr[1]=='D') &&
                                (inptr[2]=='i' || inptr[2]=='I') &&
                                (inptr[2]=='i' || inptr[2]=='I') &&
                                (inptr[3]=='v' || inptr[3]=='V') &&
                                (inptr[3]=='v' || inptr[3]=='V') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                isspaceOrDot(inptr[5])) {
                                isspaceOrDot(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_vdivs;
                return token = tk_vdivs;
            }
            }
            if ((inptr[1]=='m' || inptr[1]=='M') &&
            if ((inptr[1]=='m' || inptr[1]=='M') &&
                                (inptr[2]=='o' || inptr[2]=='O') &&
                                (inptr[2]=='o' || inptr[2]=='O') &&
                                (inptr[3]=='v' || inptr[3]=='V') &&
                                (inptr[3]=='v' || inptr[3]=='V') &&
                                isspaceOrDot(inptr[4])) {
                                isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_vmov;
                return token = tk_vmov;
            }
            }
            if ((inptr[1]=='m' || inptr[1]=='M') &&
            if ((inptr[1]=='m' || inptr[1]=='M') &&
                                (inptr[2]=='u' || inptr[2]=='U') &&
                                (inptr[2]=='u' || inptr[2]=='U') &&
                                (inptr[3]=='l' || inptr[3]=='L') &&
                                (inptr[3]=='l' || inptr[3]=='L') &&
                                isspaceOrDot(inptr[4])) {
                                isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_vmul;
                return token = tk_vmul;
            }
            }
            if ((inptr[1]=='m' || inptr[1]=='M') &&
            if ((inptr[1]=='m' || inptr[1]=='M') &&
                                (inptr[2]=='u' || inptr[2]=='U') &&
                                (inptr[2]=='u' || inptr[2]=='U') &&
                                (inptr[3]=='l' || inptr[3]=='L') &&
                                (inptr[3]=='l' || inptr[3]=='L') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                isspaceOrDot(inptr[5])) {
                                isspaceOrDot(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_vmuls;
                return token = tk_vmuls;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') &&
            if ((inptr[1]=='o' || inptr[1]=='O') &&
                                (inptr[2]=='r' || inptr[2]=='R') &&
                                (inptr[2]=='r' || inptr[2]=='R') &&
                                isspaceOrDot(inptr[3])) {
                                isspaceOrDot(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return token = tk_vor;
                return token = tk_vor;
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') &&
            if ((inptr[1]=='o' || inptr[1]=='O') &&
                                (inptr[2]=='r' || inptr[2]=='R') &&
                                (inptr[2]=='r' || inptr[2]=='R') &&
                                (inptr[3]=='s' || inptr[3]=='S') &&
                                (inptr[3]=='s' || inptr[3]=='S') &&
                                isspaceOrDot(inptr[4])) {
                                isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_vors;
                return token = tk_vors;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') &&
            if ((inptr[1]=='s' || inptr[1]=='S') &&
                                (inptr[2]=='u' || inptr[2]=='U') &&
                                (inptr[2]=='u' || inptr[2]=='U') &&
                                (inptr[3]=='b' || inptr[3]=='B') &&
                                (inptr[3]=='b' || inptr[3]=='B') &&
                                isspaceOrDot(inptr[4])) {
                                isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_vsub;
                return token = tk_vsub;
            }
            }
            if ((inptr[1]=='s' || inptr[1]=='S') &&
            if ((inptr[1]=='s' || inptr[1]=='S') &&
                                (inptr[2]=='u' || inptr[2]=='U') &&
                                (inptr[2]=='u' || inptr[2]=='U') &&
                                (inptr[3]=='b' || inptr[3]=='B') &&
                                (inptr[3]=='b' || inptr[3]=='B') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                isspaceOrDot(inptr[5])) {
                                isspaceOrDot(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_vsubs;
                return token = tk_vsubs;
            }
            }
            if ((inptr[1]=='x' || inptr[1]=='X') &&
            if ((inptr[1]=='x' || inptr[1]=='X') &&
                                (inptr[2]=='o' || inptr[2]=='O') &&
                                (inptr[2]=='o' || inptr[2]=='O') &&
                                (inptr[3]=='r' || inptr[3]=='R') &&
                                (inptr[3]=='r' || inptr[3]=='R') &&
                                isspaceOrDot(inptr[4])) {
                                isspaceOrDot(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = tk_vxor;
                return token = tk_vxor;
            }
            }
            if ((inptr[1]=='x' || inptr[1]=='X') &&
            if ((inptr[1]=='x' || inptr[1]=='X') &&
                                (inptr[2]=='o' || inptr[2]=='O') &&
                                (inptr[2]=='o' || inptr[2]=='O') &&
                                (inptr[3]=='r' || inptr[3]=='R') &&
                                (inptr[3]=='r' || inptr[3]=='R') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                (inptr[4]=='s' || inptr[4]=='S') &&
                                isspaceOrDot(inptr[5])) {
                                isspaceOrDot(inptr[5])) {
                inptr += 5;
                inptr += 5;
                return token = tk_vxors;
                return token = tk_vxors;
            }
            }
                        break;
                        break;
 
 
        // wai
        // wai
        case 'w': case 'W':
        case 'w': case 'W':
             if ((inptr[1]=='a' || inptr[1]=='A') &&
             if ((inptr[1]=='a' || inptr[1]=='A') &&
                 (inptr[2]=='i' || inptr[2]=='I') &&
                 (inptr[2]=='i' || inptr[2]=='I') &&
                 isspace(inptr[3])) {
                 isspace(inptr[3])) {
                 inptr += 3;
                 inptr += 3;
                 return token = tk_wai;
                 return token = tk_wai;
             }
             }
             break;
             break;
 
 
        // xnor xor xori
        // xnor xor xori
        case 'x': case 'X':
        case 'x': case 'X':
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='r' || inptr[2]=='R') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='r' || inptr[2]=='R') && (inptr[3]=='i' || inptr[3]=='I') && isspace(inptr[4])) {
                inptr += 4;
                inptr += 4;
                return token = (tk_xori);
                return token = (tk_xori);
            }
            }
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='r' || inptr[2]=='R') && isspaceOrDot(inptr[3])) {
            if ((inptr[1]=='o' || inptr[1]=='O') && (inptr[2]=='r' || inptr[2]=='R') && isspaceOrDot(inptr[3])) {
                inptr += 3;
                inptr += 3;
                return (token = tk_xor);
                return (token = tk_xor);
            }
            }
                        if (
                        if (
                                (inptr[1] == 'n' || inptr[1] == 'N')
                                (inptr[1] == 'n' || inptr[1] == 'N')
                                && (inptr[2] == 'o' || inptr[2] == 'O')
                                && (inptr[2] == 'o' || inptr[2] == 'O')
                                && (inptr[3] == 'r' || inptr[3] == 'R')
                                && (inptr[3] == 'r' || inptr[3] == 'R')
                                && isspaceOrDot(inptr[4])) {
                                && isspaceOrDot(inptr[4])) {
                                inptr += 4;
                                inptr += 4;
                                return (token = tk_xnor);
                                return (token = tk_xnor);
                        }
                        }
                        break;
                        break;
 
 
        // zs:
        // zs:
        case 'z': case 'Z':
        case 'z': case 'Z':
                        if (gCpu == 4 || gCpu == 'F') {
                        if (gCpu == 4 || gCpu == 'F') {
                                if ((inptr[1] == 's' || inptr[1] == 'S') && inptr[2] == ':') {
                                if ((inptr[1] == 's' || inptr[1] == 'S') && inptr[2] == ':') {
                                        inptr += 3;
                                        inptr += 3;
                                        return token = tk_zs;
                                        return token = tk_zs;
                                }
                                }
                        }
                        }
                        if (gCpu == 4 || gCpu == 'F') {
                        if (gCpu == 4 || gCpu == 'F') {
                                if ((inptr[1]=='x' || inptr[1]=='X') &&
                                if ((inptr[1]=='x' || inptr[1]=='X') &&
                    (inptr[2]=='b' || inptr[2]=='B') &&
                    (inptr[2]=='b' || inptr[2]=='B') &&
                    isspace(inptr[3])
                    isspace(inptr[3])
                    ) {
                    ) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_zxb;
                    return token = tk_zxb;
                }
                }
                if ((inptr[1]=='x' || inptr[1]=='X') &&
                if ((inptr[1]=='x' || inptr[1]=='X') &&
                    (inptr[2]=='c' || inptr[2]=='C') &&
                    (inptr[2]=='c' || inptr[2]=='C') &&
                    isspace(inptr[3])
                    isspace(inptr[3])
                    ) {
                    ) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_zxc;
                    return token = tk_zxc;
                }
                }
                if ((inptr[1]=='x' || inptr[1]=='X') &&
                if ((inptr[1]=='x' || inptr[1]=='X') &&
                    (inptr[2]=='h' || inptr[2]=='h') &&
                    (inptr[2]=='h' || inptr[2]=='h') &&
                    isspace(inptr[3])
                    isspace(inptr[3])
                    ) {
                    ) {
                    inptr += 3;
                    inptr += 3;
                    return token = tk_zxh;
                    return token = tk_zxh;
                }
                }
            }
            }
        }
        }
        // The text wasn't recognized as any of the above tokens. So try for an
        // The text wasn't recognized as any of the above tokens. So try for an
        // identifier name.
        // identifier name.
 
                                p = inptr;
        if (getIdentifier()) {
        if (getIdentifier()) {
            return token = tk_id;
                                        SYM *sym;
 
                                        char *q;
 
                                        if (sym = find_symbol(lastid)) {
 
                                                if (sym->isMacro) {
 
                                                        Arglist args;
 
                                                        args.Get();
 
                                                        q = sym->macro->SubArgs(&args);
 
                                                        Macro::Substitute(q, inptr-p);
 
                                                        inptr = p;
 
                                                        continue;
 
                                                }
 
                                        }
 
            return (token = tk_id);
        }
        }
        inptr++;
        inptr++;
    } while (*inptr);
    } while (*inptr);
    return token = tk_eof;
    return (token = tk_eof);
}
}
 
 
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Return the register number or -1 if not a register.
// Return the register number or -1 if not a register.
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
 
 
int getRegister()
int getRegister()
{
{
    int reg;
    int reg;
 
 
    while(isspace(*inptr)) inptr++;
    while(isspace(*inptr)) inptr++;
    switch(*inptr) {
    switch(*inptr) {
    case 'r': case 'R':
    case 'r': case 'R':
         if (isdigit(inptr[1])) {
         if (isdigit(inptr[1])) {
             reg = inptr[1]-'0';
             reg = inptr[1]-'0';
             if (isdigit(inptr[2])) {
             if (isdigit(inptr[2])) {
                 reg = 10 * reg + (inptr[2]-'0');
                 reg = 10 * reg + (inptr[2]-'0');
                 if (isdigit(inptr[3])) {
                 if (isdigit(inptr[3])) {
                     reg = 10 * reg + (inptr[3]-'0');
                     reg = 10 * reg + (inptr[3]-'0');
                     if (isIdentChar(inptr[4]))
                     if (isIdentChar(inptr[4]))
                         return -1;
                         return -1;
                     inptr += 4;
                     inptr += 4;
                     NextToken();
                     NextToken();
                     return reg;
                     return reg;
                 }
                 }
                 else if (isIdentChar(inptr[3]))
                 else if (isIdentChar(inptr[3]))
                     return -1;
                     return -1;
                 else {
                 else {
                     inptr += 3;
                     inptr += 3;
                     NextToken();
                     NextToken();
                     return reg;
                     return reg;
                 }
                 }
             }
             }
             else if (isIdentChar(inptr[2]))
             else if (isIdentChar(inptr[2]))
                 return -1;
                 return -1;
             else {
             else {
                 inptr += 2;
                 inptr += 2;
                 NextToken();
                 NextToken();
                 return reg;
                 return reg;
             }
             }
         }
         }
         else return -1;
         else return -1;
    case 'b': case 'B':
    case 'b': case 'B':
        if ((inptr[1]=='P' || inptr[1]=='p') && !isIdentChar(inptr[2])) {
        if ((inptr[1]=='P' || inptr[1]=='p') && !isIdentChar(inptr[2])) {
            inptr += 2;
            inptr += 2;
            NextToken();
            NextToken();
            return 253;
            return 253;
        }
        }
        break;
        break;
    case 'g': case 'G':
    case 'g': case 'G':
        if ((inptr[1]=='P' || inptr[1]=='p') && !isIdentChar(inptr[2])) {
        if ((inptr[1]=='P' || inptr[1]=='p') && !isIdentChar(inptr[2])) {
            inptr += 2;
            inptr += 2;
            NextToken();
            NextToken();
            return 249;
            return 249;
        }
        }
        break;
        break;
    case 's': case 'S':
    case 's': case 'S':
        if ((inptr[1]=='P' || inptr[1]=='p') && !isIdentChar(inptr[2])) {
        if ((inptr[1]=='P' || inptr[1]=='p') && !isIdentChar(inptr[2])) {
            inptr += 2;
            inptr += 2;
            NextToken();
            NextToken();
            return 255;
            return 255;
        }
        }
        break;
        break;
    case 't': case 'T':
    case 't': case 'T':
        if ((inptr[1]=='R' || inptr[1]=='r') && !isIdentChar(inptr[2])) {
        if ((inptr[1]=='R' || inptr[1]=='r') && !isIdentChar(inptr[2])) {
            inptr += 2;
            inptr += 2;
            NextToken();
            NextToken();
            return 252;
            return 252;
        }
        }
        break;
        break;
    case 'f': case 'F':
    case 'f': case 'F':
        if ((inptr[1]=='l' || inptr[1]=='L') &&
        if ((inptr[1]=='l' || inptr[1]=='L') &&
            (inptr[2]=='g' || inptr[2]=='G') &&
            (inptr[2]=='g' || inptr[2]=='G') &&
            isdigit(inptr[3]) &&
            isdigit(inptr[3]) &&
            !isIdentChar(inptr[4])) {
            !isIdentChar(inptr[4])) {
            reg = inptr[3]-'0' + 244;
            reg = inptr[3]-'0' + 244;
            inptr += 4;
            inptr += 4;
            NextToken();
            NextToken();
            return reg;
            return reg;
        }
        }
        if ((inptr[1]=='l' || inptr[1]=='L') &&
        if ((inptr[1]=='l' || inptr[1]=='L') &&
            isdigit(inptr[2]) &&
            isdigit(inptr[2]) &&
            !isIdentChar(inptr[3])) {
            !isIdentChar(inptr[3])) {
            reg = inptr[2]-'0' + 244;
            reg = inptr[2]-'0' + 244;
            inptr += 3;
            inptr += 3;
            NextToken();
            NextToken();
            return reg;
            return reg;
        }
        }
        break;
        break;
    case 'p': case 'P':
    case 'p': case 'P':
        if ((inptr[1]=='c' || inptr[1]=='C') && !isIdentChar(inptr[2])) {
        if ((inptr[1]=='c' || inptr[1]=='C') && !isIdentChar(inptr[2])) {
            inptr += 2;
            inptr += 2;
            NextToken();
            NextToken();
            return 254;
            return 254;
        }
        }
        break;
        break;
    default:
    default:
        return -1;
        return -1;
    }
    }
    return -1;
    return -1;
}
}
 
 
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Return the register number or -1 if not a register.
// Return the register number or -1 if not a register.
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
 
 
int getFPRegister()
int getFPRegister()
{
{
    int reg;
    int reg;
 
 
    while(isspace(*inptr)) inptr++;
    while(isspace(*inptr)) inptr++;
        if (*inptr=='$')
        if (*inptr=='$')
                inptr++;
                inptr++;
    switch(*inptr) {
    switch(*inptr) {
    case 'f': case 'F':
    case 'f': case 'F':
         if (inptr[1]=='p' || inptr[1]=='P') {
         if (inptr[1]=='p' || inptr[1]=='P') {
         if (isdigit(inptr[2])) {
         if (isdigit(inptr[2])) {
             reg = inptr[2]-'0';
             reg = inptr[2]-'0';
             if (isdigit(inptr[3])) {
             if (isdigit(inptr[3])) {
                 reg = 10 * reg + (inptr[3]-'0');
                 reg = 10 * reg + (inptr[3]-'0');
                 if (isdigit(inptr[4])) {
                 if (isdigit(inptr[4])) {
                     reg = 10 * reg + (inptr[4]-'0');
                     reg = 10 * reg + (inptr[4]-'0');
                     if (isIdentChar(inptr[5]))
                     if (isIdentChar(inptr[5]))
                         return -1;
                         return -1;
                     inptr += 5;
                     inptr += 5;
                     NextToken();
                     NextToken();
                     return reg;
                     return reg;
                 }
                 }
                 else if (isIdentChar(inptr[4]))
                 else if (isIdentChar(inptr[4]))
                     return -1;
                     return -1;
                 else {
                 else {
                     inptr += 4;
                     inptr += 4;
                     NextToken();
                     NextToken();
                     return reg;
                     return reg;
                 }
                 }
             }
             }
             else if (isIdentChar(inptr[3]))
             else if (isIdentChar(inptr[3]))
                 return -1;
                 return -1;
             else {
             else {
                 inptr += 3;
                 inptr += 3;
                 NextToken();
                 NextToken();
                 return reg;
                 return reg;
             }
             }
         }
         }
         else return -1;
         else return -1;
         }
         }
         else return -1;
         else return -1;
    default:
    default:
        return -1;
        return -1;
    }
    }
    return -1;
    return -1;
}
}
 
 
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Return the FP round mode.
// Return the FP round mode.
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
 
 
int getFPRoundMode()
int getFPRoundMode()
{
{
    while(isspace(*inptr) || *inptr==',') inptr++;
    while(isspace(*inptr) || *inptr==',') inptr++;
    switch(*inptr) {
    switch(*inptr) {
    case 'r': case 'R':
    case 'r': case 'R':
         if ((inptr[1]=='n' || inptr[1]=='N') &&
         if ((inptr[1]=='n' || inptr[1]=='N') &&
             (inptr[2]=='e' || inptr[2]=='E') &&
             (inptr[2]=='e' || inptr[2]=='E') &&
             !isIdentChar(inptr[3]))
             !isIdentChar(inptr[3]))
         {
         {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 0;
             return 0;
         }
         }
         if ((inptr[1]=='t' || inptr[1]=='T') &&
         if ((inptr[1]=='t' || inptr[1]=='T') &&
             (inptr[2]=='z' || inptr[2]=='Z') &&
             (inptr[2]=='z' || inptr[2]=='Z') &&
             !isIdentChar(inptr[3]))
             !isIdentChar(inptr[3]))
         {
         {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 1;
             return 1;
         }
         }
         if ((inptr[1]=='d' || inptr[1]=='D') &&
         if ((inptr[1]=='d' || inptr[1]=='D') &&
             (inptr[2]=='n' || inptr[2]=='N') &&
             (inptr[2]=='n' || inptr[2]=='N') &&
             !isIdentChar(inptr[3]))
             !isIdentChar(inptr[3]))
         {
         {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 2;
             return 2;
         }
         }
         if ((inptr[1]=='u' || inptr[1]=='U') &&
         if ((inptr[1]=='u' || inptr[1]=='U') &&
             (inptr[2]=='p' || inptr[2]=='P') &&
             (inptr[2]=='p' || inptr[2]=='P') &&
             !isIdentChar(inptr[3]))
             !isIdentChar(inptr[3]))
         {
         {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 3;
             return 3;
         }
         }
         if ((inptr[1]=='m' || inptr[1]=='M') &&
         if ((inptr[1]=='m' || inptr[1]=='M') &&
             (inptr[2]=='m' || inptr[2]=='M') &&
             (inptr[2]=='m' || inptr[2]=='M') &&
             !isIdentChar(inptr[3]))
             !isIdentChar(inptr[3]))
         {
         {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 4;
             return 4;
         }
         }
         if ((inptr[1]=='f' || inptr[1]=='F') &&
         if ((inptr[1]=='f' || inptr[1]=='F') &&
             (inptr[2]=='c' || inptr[2]=='C') &&
             (inptr[2]=='c' || inptr[2]=='C') &&
             !isIdentChar(inptr[3]))
             !isIdentChar(inptr[3]))
         {
         {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 7;
             return 7;
         }
         }
    default:
    default:
        return 7;
        return 7;
    }
    }
    return 7;
    return 7;
}
}
 
 
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Get the friendly name of a special purpose register.
// Get the friendly name of a special purpose register.
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
 
 
int getSprRegister()
int getSprRegister()
{
{
    while(isspace(*inptr)) inptr++;
    while(isspace(*inptr)) inptr++;
    switch(*inptr) {
    switch(*inptr) {
 
 
    // bithist biterr
    // bithist biterr
    case 'b': case 'B':
    case 'b': case 'B':
         if ((inptr[1]=='i' || inptr[1]=='I') &&
         if ((inptr[1]=='i' || inptr[1]=='I') &&
             (inptr[2]=='t' || inptr[2]=='T') &&
             (inptr[2]=='t' || inptr[2]=='T') &&
             (inptr[3]=='e' || inptr[3]=='E') &&
             (inptr[3]=='e' || inptr[3]=='E') &&
             (inptr[4]=='r' || inptr[4]=='R') &&
             (inptr[4]=='r' || inptr[4]=='R') &&
             (inptr[5]=='r' || inptr[5]=='R') &&
             (inptr[5]=='r' || inptr[5]=='R') &&
             !isIdentChar(inptr[6])) {
             !isIdentChar(inptr[6])) {
             inptr += 6;
             inptr += 6;
             NextToken();
             NextToken();
             return 0x0E;
             return 0x0E;
         }
         }
         if ((inptr[1]=='i' || inptr[1]=='I') &&
         if ((inptr[1]=='i' || inptr[1]=='I') &&
             (inptr[2]=='t' || inptr[2]=='T') &&
             (inptr[2]=='t' || inptr[2]=='T') &&
             (inptr[3]=='h' || inptr[3]=='H') &&
             (inptr[3]=='h' || inptr[3]=='H') &&
             (inptr[4]=='i' || inptr[4]=='I') &&
             (inptr[4]=='i' || inptr[4]=='I') &&
             (inptr[5]=='s' || inptr[5]=='S') &&
             (inptr[5]=='s' || inptr[5]=='S') &&
             (inptr[6]=='t' || inptr[6]=='T') &&
             (inptr[6]=='t' || inptr[6]=='T') &&
             !isIdentChar(inptr[7])) {
             !isIdentChar(inptr[7])) {
             inptr += 7;
             inptr += 7;
             NextToken();
             NextToken();
             return 0x0F;
             return 0x0F;
         }
         }
         break;
         break;
 
 
    // cs clk cr0 cr3
    // cs clk cr0 cr3
    case 'c': case 'C':
    case 'c': case 'C':
         if ((inptr[1]=='s' || inptr[1]=='S') &&
         if ((inptr[1]=='s' || inptr[1]=='S') &&
             !isIdentChar(inptr[2])) {
             !isIdentChar(inptr[2])) {
             inptr += 2;
             inptr += 2;
             NextToken();
             NextToken();
             if (gCpu==889)
             if (gCpu==889)
                return 0x2F;
                return 0x2F;
             return 0x20;
             return 0x20;
         }
         }
         if ((inptr[1]=='l' || inptr[1]=='L') &&
         if ((inptr[1]=='l' || inptr[1]=='L') &&
             (inptr[2]=='k' || inptr[2]=='K') &&
             (inptr[2]=='k' || inptr[2]=='K') &&
             !isIdentChar(inptr[3])) {
             !isIdentChar(inptr[3])) {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 0x06;
             return 0x06;
         }
         }
         if ((inptr[1]=='r' || inptr[1]=='R') &&
         if ((inptr[1]=='r' || inptr[1]=='R') &&
             (inptr[2]=='0') &&
             (inptr[2]=='0') &&
             !isIdentChar(inptr[3])) {
             !isIdentChar(inptr[3])) {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 0x05;
             return 0x05;
         }
         }
         if ((inptr[1]=='r' || inptr[1]=='R') &&
         if ((inptr[1]=='r' || inptr[1]=='R') &&
             (inptr[2]=='3') &&
             (inptr[2]=='3') &&
             !isIdentChar(inptr[3])) {
             !isIdentChar(inptr[3])) {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 0x04;
             return 0x04;
         }
         }
         break;
         break;
 
 
    // ds
    // ds
    case 'd': case 'D':
    case 'd': case 'D':
         if ((inptr[1]=='s' || inptr[1]=='S') &&
         if ((inptr[1]=='s' || inptr[1]=='S') &&
             !isIdentChar(inptr[2])) {
             !isIdentChar(inptr[2])) {
             inptr += 2;
             inptr += 2;
             NextToken();
             NextToken();
             return 0x21;
             return 0x21;
         }
         }
         break;
         break;
 
 
    // es
    // es
    case 'e': case 'E':
    case 'e': case 'E':
         if ((inptr[1]=='s' || inptr[1]=='S') &&
         if ((inptr[1]=='s' || inptr[1]=='S') &&
             !isIdentChar(inptr[2])) {
             !isIdentChar(inptr[2])) {
             inptr += 2;
             inptr += 2;
             NextToken();
             NextToken();
             return 0x25;
             return 0x25;
         }
         }
         break;
         break;
 
 
    // fs
    // fs
    case 'f': case 'F':
    case 'f': case 'F':
         if ((inptr[1]=='s' || inptr[1]=='S') &&
         if ((inptr[1]=='s' || inptr[1]=='S') &&
             !isIdentChar(inptr[2])) {
             !isIdentChar(inptr[2])) {
             inptr += 2;
             inptr += 2;
             NextToken();
             NextToken();
             return 0x26;
             return 0x26;
         }
         }
         if ((inptr[1]=='a' || inptr[1]=='A') &&
         if ((inptr[1]=='a' || inptr[1]=='A') &&
             (inptr[2]=='u' || inptr[2]=='U') &&
             (inptr[2]=='u' || inptr[2]=='U') &&
             (inptr[3]=='l' || inptr[3]=='L') &&
             (inptr[3]=='l' || inptr[3]=='L') &&
             (inptr[4]=='t' || inptr[4]=='T') &&
             (inptr[4]=='t' || inptr[4]=='T') &&
             (inptr[5]=='_' || inptr[5]=='_') &&
             (inptr[5]=='_' || inptr[5]=='_') &&
             (inptr[6]=='p' || inptr[6]=='P') &&
             (inptr[6]=='p' || inptr[6]=='P') &&
             (inptr[7]=='c' || inptr[7]=='C') &&
             (inptr[7]=='c' || inptr[7]=='C') &&
             !isIdentChar(inptr[8])) {
             !isIdentChar(inptr[8])) {
             inptr += 8;
             inptr += 8;
             NextToken();
             NextToken();
             return 0x08;
             return 0x08;
         }
         }
         break;
         break;
 
 
    // GDT gs
    // GDT gs
    case 'g': case 'G':
    case 'g': case 'G':
         if ((inptr[1]=='d' || inptr[1]=='D') &&
         if ((inptr[1]=='d' || inptr[1]=='D') &&
             (inptr[2]=='t' || inptr[2]=='T') &&
             (inptr[2]=='t' || inptr[2]=='T') &&
             !isIdentChar(inptr[3])) {
             !isIdentChar(inptr[3])) {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 0x19;
             return 0x19;
         }
         }
         if ((inptr[1]=='s' || inptr[1]=='S') &&
         if ((inptr[1]=='s' || inptr[1]=='S') &&
             !isIdentChar(inptr[2])) {
             !isIdentChar(inptr[2])) {
             inptr += 2;
             inptr += 2;
             NextToken();
             NextToken();
             return 0x27;
             return 0x27;
         }
         }
         break;
         break;
 
 
    // history
    // history
    case 'h': case 'H':
    case 'h': case 'H':
         if ((inptr[1]=='i' || inptr[1]=='I') &&
         if ((inptr[1]=='i' || inptr[1]=='I') &&
             (inptr[2]=='s' || inptr[2]=='S') &&
             (inptr[2]=='s' || inptr[2]=='S') &&
             (inptr[3]=='t' || inptr[3]=='T') &&
             (inptr[3]=='t' || inptr[3]=='T') &&
             (inptr[4]=='o' || inptr[4]=='O') &&
             (inptr[4]=='o' || inptr[4]=='O') &&
             (inptr[5]=='r' || inptr[5]=='R') &&
             (inptr[5]=='r' || inptr[5]=='R') &&
             (inptr[6]=='y' || inptr[6]=='Y') &&
             (inptr[6]=='y' || inptr[6]=='Y') &&
             !isIdentChar(inptr[7])) {
             !isIdentChar(inptr[7])) {
             inptr += 7;
             inptr += 7;
             NextToken();
             NextToken();
             return 0x0D;
             return 0x0D;
         }
         }
         break;
         break;
 
 
    // ios ivno
    // ios ivno
    case 'i': case 'I':
    case 'i': case 'I':
         if ((inptr[1]=='o' || inptr[1]=='O') &&
         if ((inptr[1]=='o' || inptr[1]=='O') &&
             (inptr[2]=='s' || inptr[2]=='S') &&
             (inptr[2]=='s' || inptr[2]=='S') &&
             !isIdentChar(inptr[3])) {
             !isIdentChar(inptr[3])) {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 0x2B;
             return 0x2B;
         }
         }
         if ((inptr[1]=='v' || inptr[1]=='V') &&
         if ((inptr[1]=='v' || inptr[1]=='V') &&
             (inptr[2]=='n' || inptr[2]=='N') &&
             (inptr[2]=='n' || inptr[2]=='N') &&
             (inptr[3]=='o' || inptr[3]=='O') &&
             (inptr[3]=='o' || inptr[3]=='O') &&
             !isIdentChar(inptr[4])) {
             !isIdentChar(inptr[4])) {
             inptr += 4;
             inptr += 4;
             NextToken();
             NextToken();
             return 0x0C;
             return 0x0C;
         }
         }
         break;
         break;
 
 
    // LDT
    // LDT
    case 'l': case 'L':
    case 'l': case 'L':
         if ((inptr[1]=='d' || inptr[1]=='D') &&
         if ((inptr[1]=='d' || inptr[1]=='D') &&
             (inptr[2]=='t' || inptr[2]=='T') &&
             (inptr[2]=='t' || inptr[2]=='T') &&
             !isIdentChar(inptr[3])) {
             !isIdentChar(inptr[3])) {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 0x18;
             return 0x18;
         }
         }
         break;
         break;
 
 
    // pta
    // pta
    case 'p': case 'P':
    case 'p': case 'P':
         if ((inptr[1]=='t' || inptr[1]=='T') &&
         if ((inptr[1]=='t' || inptr[1]=='T') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             !isIdentChar(inptr[3])) {
             !isIdentChar(inptr[3])) {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 0x04;
             return 0x04;
         }
         }
         break;
         break;
 
 
    // rand
    // rand
    case 'r': case 'R':
    case 'r': case 'R':
         if ((inptr[1]=='a' || inptr[1]=='A') &&
         if ((inptr[1]=='a' || inptr[1]=='A') &&
             (inptr[2]=='n' || inptr[2]=='N') &&
             (inptr[2]=='n' || inptr[2]=='N') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             (inptr[3]=='d' || inptr[3]=='D') &&
             !isIdentChar(inptr[4])) {
             !isIdentChar(inptr[4])) {
             inptr += 4;
             inptr += 4;
             NextToken();
             NextToken();
             return 0x12;
             return 0x12;
         }
         }
         break;
         break;
    // ss ss_ll srand1 srand2
    // ss ss_ll srand1 srand2
    case 's': case 'S':
    case 's': case 'S':
         if ((inptr[1]=='s' || inptr[1]=='S') &&
         if ((inptr[1]=='s' || inptr[1]=='S') &&
             (inptr[2]=='_' || inptr[2]=='_') &&
             (inptr[2]=='_' || inptr[2]=='_') &&
             (inptr[3]=='l' || inptr[3]=='L') &&
             (inptr[3]=='l' || inptr[3]=='L') &&
             (inptr[4]=='l' || inptr[4]=='L') &&
             (inptr[4]=='l' || inptr[4]=='L') &&
             !isIdentChar(inptr[5])) {
             !isIdentChar(inptr[5])) {
             inptr += 5;
             inptr += 5;
             NextToken();
             NextToken();
             return 0x1A;
             return 0x1A;
         }
         }
         if ((inptr[1]=='s' || inptr[1]=='S') &&
         if ((inptr[1]=='s' || inptr[1]=='S') &&
             !isIdentChar(inptr[2])) {
             !isIdentChar(inptr[2])) {
             inptr += 2;
             inptr += 2;
             NextToken();
             NextToken();
             if (gCpu==889)
             if (gCpu==889)
                return 0x2E;
                return 0x2E;
             return 0x22;
             return 0x22;
         }
         }
         if ((inptr[1]=='r' || inptr[1]=='R') &&
         if ((inptr[1]=='r' || inptr[1]=='R') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[3]=='n' || inptr[3]=='N') &&
             (inptr[3]=='n' || inptr[3]=='N') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='1') &&
             (inptr[5]=='1') &&
             !isIdentChar(inptr[6])) {
             !isIdentChar(inptr[6])) {
             inptr += 6;
             inptr += 6;
             NextToken();
             NextToken();
             return 0x10;
             return 0x10;
         }
         }
         if ((inptr[1]=='r' || inptr[1]=='R') &&
         if ((inptr[1]=='r' || inptr[1]=='R') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[2]=='a' || inptr[2]=='A') &&
             (inptr[3]=='n' || inptr[3]=='N') &&
             (inptr[3]=='n' || inptr[3]=='N') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[4]=='d' || inptr[4]=='D') &&
             (inptr[5]=='2') &&
             (inptr[5]=='2') &&
             !isIdentChar(inptr[6])) {
             !isIdentChar(inptr[6])) {
             inptr += 6;
             inptr += 6;
             NextToken();
             NextToken();
             return 0x11;
             return 0x11;
         }
         }
         if ((inptr[1]=='p' || inptr[1]=='P') &&
         if ((inptr[1]=='p' || inptr[1]=='P') &&
             (inptr[2]=='r' || inptr[2]=='R') &&
             (inptr[2]=='r' || inptr[2]=='R') &&
             isdigit(inptr[3]) && isdigit(inptr[4]) &&
             isdigit(inptr[3]) && isdigit(inptr[4]) &&
             !isIdentChar(inptr[5])) {
             !isIdentChar(inptr[5])) {
             inptr += 5;
             inptr += 5;
             NextToken();
             NextToken();
             return (inptr[3]-'0')*10 + (inptr[4]-'0');
             return (inptr[3]-'0')*10 + (inptr[4]-'0');
         }
         }
         break;
         break;
 
 
    // tick ts
    // tick ts
    case 't': case 'T':
    case 't': case 'T':
         if ((inptr[1]=='i' || inptr[1]=='I') &&
         if ((inptr[1]=='i' || inptr[1]=='I') &&
             (inptr[2]=='c' || inptr[2]=='C') &&
             (inptr[2]=='c' || inptr[2]=='C') &&
             (inptr[3]=='k' || inptr[3]=='K') &&
             (inptr[3]=='k' || inptr[3]=='K') &&
             !isIdentChar(inptr[4])) {
             !isIdentChar(inptr[4])) {
             inptr += 4;
             inptr += 4;
             NextToken();
             NextToken();
             return 0x00;
             return 0x00;
         }
         }
         if ((inptr[1]=='s' || inptr[1]=='S') &&
         if ((inptr[1]=='s' || inptr[1]=='S') &&
             !isIdentChar(inptr[2])) {
             !isIdentChar(inptr[2])) {
             inptr += 2;
             inptr += 2;
             NextToken();
             NextToken();
             return 0x2C;
             return 0x2C;
         }
         }
         break;
         break;
 
 
    // vbr
    // vbr
    case 'v': case 'V':
    case 'v': case 'V':
         if ((inptr[1]=='b' || inptr[1]=='B') &&
         if ((inptr[1]=='b' || inptr[1]=='B') &&
             (inptr[2]=='r' || inptr[2]=='R') &&
             (inptr[2]=='r' || inptr[2]=='R') &&
             !isIdentChar(inptr[3])) {
             !isIdentChar(inptr[3])) {
             inptr += 3;
             inptr += 3;
             NextToken();
             NextToken();
             return 0x01;
             return 0x01;
         }
         }
         break;
         break;
    }
    }
    return -1;
    return -1;
}
}
 
 
 
 

powered by: WebSVN 2.1.0

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