]> granicus.if.org Git - re2c/commitdiff
Fixed missprint in EBCDIC range expansion and updated broken tests.
authorUlya Fokanova <skvadrik@gmail.com>
Mon, 30 Dec 2013 22:24:15 +0000 (01:24 +0300)
committerUlya Fokanova <skvadrik@gmail.com>
Mon, 30 Dec 2013 22:24:15 +0000 (01:24 +0300)
re2c/actions.cc
re2c/test/bug1711240.ei.c [changed mode: 0755->0644]
re2c/test/bug1711240.eis.c
re2c/test/calc_001.dei.c [changed mode: 0755->0644]
re2c/test/calc_001.ei.c [changed mode: 0755->0644]

index 619d7c7474252f2afdb3070ab8ae66517017e62f..846dd8c5029ea93a858f2ee3e648dca3b5713b6d 100644 (file)
@@ -759,7 +759,7 @@ Range * Scanner::getRange(SubStr &s) const
                
                for(c = lb; c <= ub; c++)
                {
-                       if (!(xlb <= xlat(c) && xlat(c) <= ub))
+                       if (!(xlb <= xlat(c) && xlat(c) <= xub))
                        {
                                /* range doesn't work */
                                Range * r = new Range(xlb, xlb + 1);
old mode 100755 (executable)
new mode 100644 (file)
index 93a6d12..e16e1a4
@@ -8,249 +8,27 @@ char scan(const unsigned char *s)
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        switch (yych) {
-       case 0x00:
-       case 0x01:
-       case 0x02:
-       case 0x03:
-       case 0x04:
-       case 0x05:
-       case 0x06:
-       case 0x08:
-       case 0x09:
-       case 0x0A:
-       case 0x0B:
-       case 0x0C:
-       case 0x0D:
-       case 0x0E:
-       case 0x0F:
-       case 0x10:
-       case 0x11:
-       case 0x12:
-       case 0x13:
-       case 0x14:
-       case 0x15:
-       case 0x16:
-       case 0x17:
-       case 0x18:
-       case 0x19:
-       case 0x1A:
-       case 0x1B:
-       case 0x1C:
-       case 0x1D:
-       case 0x1E:
-       case 0x1F:
-       case 0x20:
-       case 0x21:
-       case 0x22:
-       case 0x23:
-       case 0x24:
-       case 0x25:
-       case 0x26:
-       case 0x27:
-       case 0x28:
-       case 0x29:
-       case 0x2A:
-       case 0x2B:
-       case 0x2C:
-       case 0x2D:
-       case 0x2E:
-       case 0x2F:
-       case 0x30:
-       case 0x31:
-       case 0x32:
-       case 0x33:
-       case 0x34:
-       case 0x35:
-       case 0x36:
-       case 0x37:
-       case 0x38:
-       case 0x39:
-       case 0x3A:
-       case 0x3B:
-       case 0x3C:
-       case 0x3D:
-       case 0x3E:
-       case 0x3F:
-       case 0x40:
-       case 0x41:
-       case 0x42:
-       case 0x43:
-       case 0x44:
-       case 0x45:
-       case 0x46:
-       case 0x47:
-       case 0x48:
-       case 0x49:
-       case 0x4A:
-       case 0x4B:
-       case 0x4C:
-       case 0x4D:
-       case 0x4E:
-       case 0x4F:
-       case 0x50:
-       case 0x51:
-       case 0x52:
-       case 0x53:
-       case 0x54:
-       case 0x55:
-       case 0x56:
-       case 0x57:
-       case 0x58:
-       case 0x59:
-       case 0x5A:
-       case 0x5B:
-       case 0x5C:
-       case 0x5D:
-       case 0x5E:
-       case 0x5F:
-       case 0x60:
-       case 0x62:
-       case 0x63:
-       case 0x64:
-       case 0x65:
-       case 0x66:
-       case 0x67:
-       case 0x68:
-       case 0x69:
-       case 0x6A:
-       case 0x6B:
-       case 0x6C:
-       case 0x6D:
-       case 0x6E:
-       case 0x6F:
-       case 0x70:
-       case 0x71:
-       case 0x72:
-       case 0x73:
-       case 0x74:
-       case 0x75:
-       case 0x76:
-       case 0x77:
-       case 0x78:
-       case 0x79:
-       case 0x7A:
-       case 0x7B:
-       case 0x7C:
-       case 0x7D:
-       case 0x7E:
-       case 0x80:
-       case 0x81:
-       case 0x82:
-       case 0x83:
-       case 0x84:
-       case 0x85:
-       case 0x86:
-       case 0x87:
-       case 0x88:
-       case 0x89:
-       case 0x8A:
-       case 0x8B:
-       case 0x8C:
-       case 0x8D:
-       case 0x8E:
-       case 0x8F:
-       case 0x90:
-       case 0x91:
-       case 0x92:
-       case 0x93:
-       case 0x94:
-       case 0x95:
-       case 0x96:
-       case 0x97:
-       case 0x98:
-       case 0x99:
-       case 0x9A:
-       case 0x9B:
-       case 0x9C:
-       case 0x9D:
-       case 0x9E:
-       case 0x9F:
-       case 0xA0:
-       case 0xA1:
-       case 0xA2:
-       case 0xA3:
-       case 0xA4:
-       case 0xA5:
-       case 0xA6:
-       case 0xA7:
-       case 0xA8:
-       case 0xA9:
-       case 0xAA:
-       case 0xAB:
-       case 0xAC:
-       case 0xAD:
-       case 0xAE:
-       case 0xAF:
-       case 0xB0:
-       case 0xB1:
-       case 0xB2:
-       case 0xB3:
-       case 0xB4:
-       case 0xB5:
-       case 0xB6:
-       case 0xB7:
-       case 0xB8:
-       case 0xB9:
-       case 0xBA:
-       case 0xBB:
-       case 0xBC:
-       case 0xBD:
-       case 0xBE:
-       case 0xBF:
-       case 0xC0:
-       case 0xC1:
-       case 0xC2:
-       case 0xC3:
-       case 0xC4:
-       case 0xC5:
-       case 0xC6:
-       case 0xC7:
-       case 0xC8:
-       case 0xC9:
-       case 0xCA:
-       case 0xCB:
-       case 0xCC:
-       case 0xCD:
-       case 0xCE:
-       case 0xCF:
-       case 0xD0:
-       case 0xD1:
-       case 0xD2:
-       case 0xD3:
-       case 0xD4:
-       case 0xD5:
-       case 0xD6:
-       case 0xD7:
-       case 0xD8:
-       case 0xD9:
-       case 0xDA:
-       case 0xDB:
-       case 0xDC:
-       case 0xDD:
-       case 0xDE:
-       case 0xDF:      goto yy9;
-       case 0x07:      goto yy7;
-       case 0x61:      goto yy5;
-       case 0x7F:      goto yy3;
-       default:        goto yy2;
+       case 0x07:      goto yy6;
+       case 0x61:      goto yy4;
+       case 0x7F:      goto yy2;
+       default:        goto yy8;
        }
 yy2:
-yy3:
        ++YYCURSOR;
        {
                return '"';
        }
-yy5:
+yy4:
        ++YYCURSOR;
        {
                return '\x2F';
        }
-yy7:
+yy6:
        ++YYCURSOR;
        {
                return '\x7F';
        }
-yy9:
+yy8:
        ++YYCURSOR;
        {
                return '\0';
index bef2a48ac3177468c8740f295a7e6b40ebd9595c..e0b614265c4dae5875873edb8ca48325565ba887 100644 (file)
@@ -7,30 +7,28 @@ char scan(const unsigned char *s)
 
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-       if (yych <= 0x61) {
-               if (yych == 0x07) goto yy7;
-               if (yych <= 0x60) goto yy9;
-               goto yy5;
+       if (yych <= 0x60) {
+               if (yych == 0x07) goto yy6;
+               goto yy8;
        } else {
-               if (yych == 0x7F) goto yy3;
-               if (yych <= 0xDF) goto yy9;
+               if (yych <= 0x61) goto yy4;
+               if (yych != 0x7F) goto yy8;
        }
-yy3:
        ++YYCURSOR;
        {
                return '"';
        }
-yy5:
+yy4:
        ++YYCURSOR;
        {
                return '\x2F';
        }
-yy7:
+yy6:
        ++YYCURSOR;
        {
                return '\x7F';
        }
-yy9:
+yy8:
        ++YYCURSOR;
        {
                return '\0';
old mode 100755 (executable)
new mode 100644 (file)
index 736cfc6..b5397dc
@@ -26,231 +26,10 @@ int scan(char *s, int l)
                        yych = *YYCURSOR;
                        YYDEBUG(-1, yych);
                        switch (yych) {
-                       case 0x00:      goto yy12;
-                       case 0x01:
-                       case 0x02:
-                       case 0x03:
-                       case 0x04:
-                       case 0x05:
-                       case 0x06:
-                       case 0x07:
-                       case 0x08:
-                       case 0x09:
-                       case 0x0A:
-                       case 0x0B:
-                       case 0x0C:
-                       case 0x0D:
-                       case 0x0E:
-                       case 0x0F:
-                       case 0x10:
-                       case 0x11:
-                       case 0x12:
-                       case 0x13:
-                       case 0x14:
-                       case 0x15:
-                       case 0x16:
-                       case 0x17:
-                       case 0x18:
-                       case 0x19:
-                       case 0x1A:
-                       case 0x1B:
-                       case 0x1C:
-                       case 0x1D:
-                       case 0x1E:
-                       case 0x1F:
-                       case 0x20:
-                       case 0x21:
-                       case 0x22:
-                       case 0x23:
-                       case 0x24:
-                       case 0x25:
-                       case 0x26:
-                       case 0x27:
-                       case 0x28:
-                       case 0x29:
-                       case 0x2A:
-                       case 0x2B:
-                       case 0x2C:
-                       case 0x2D:
-                       case 0x2E:
-                       case 0x2F:
-                       case 0x30:
-                       case 0x31:
-                       case 0x32:
-                       case 0x33:
-                       case 0x34:
-                       case 0x35:
-                       case 0x36:
-                       case 0x37:
-                       case 0x38:
-                       case 0x39:
-                       case 0x3A:
-                       case 0x3B:
-                       case 0x3C:
-                       case 0x3D:
-                       case 0x3E:
-                       case 0x3F:
-                       case 0x40: /*   */
-                       case 0x41:
-                       case 0x42:
-                       case 0x43:
-                       case 0x44:
-                       case 0x45:
-                       case 0x46:
-                       case 0x47:
-                       case 0x48:
-                       case 0x49:
-                       case 0x4A:
-                       case 0x4B: /* . */
-                       case 0x4C: /* < */
-                       case 0x4D: /* ( */
-                       case 0x4F: /* | */
-                       case 0x50: /* & */
-                       case 0x51:
-                       case 0x52:
-                       case 0x53:
-                       case 0x54:
-                       case 0x55:
-                       case 0x56:
-                       case 0x57:
-                       case 0x58:
-                       case 0x59:
-                       case 0x5A: /* ! */
-                       case 0x5B: /* $ */
-                       case 0x5C: /* * */
-                       case 0x5D: /* ) */
-                       case 0x5E: /* ; */
-                       case 0x5F:
-                       case 0x61: /* / */
-                       case 0x62:
-                       case 0x63:
-                       case 0x64:
-                       case 0x65:
-                       case 0x66:
-                       case 0x67:
-                       case 0x68:
-                       case 0x69:
-                       case 0x6A:
-                       case 0x6B: /* , */
-                       case 0x6C: /* % */
-                       case 0x6D: /* _ */
-                       case 0x6E: /* > */
-                       case 0x6F: /* ? */
-                       case 0x70:
-                       case 0x71:
-                       case 0x72:
-                       case 0x73:
-                       case 0x74:
-                       case 0x75:
-                       case 0x76:
-                       case 0x77:
-                       case 0x78:
-                       case 0x79: /* ` */
-                       case 0x7A: /* : */
-                       case 0x7B: /* # */
-                       case 0x7C: /* @ */
-                       case 0x7D: /* ' */
-                       case 0x7E: /* = */
-                       case 0x7F: /* " */
-                       case 0x80:
-                       case 0x81: /* a */
-                       case 0x82: /* b */
-                       case 0x83: /* c */
-                       case 0x84: /* d */
-                       case 0x85: /* e */
-                       case 0x86: /* f */
-                       case 0x87: /* g */
-                       case 0x88: /* h */
-                       case 0x89: /* i */
-                       case 0x8A:
-                       case 0x8B:
-                       case 0x8C:
-                       case 0x8D:
-                       case 0x8E:
-                       case 0x8F:
-                       case 0x90:
-                       case 0x91: /* j */
-                       case 0x92: /* k */
-                       case 0x93: /* l */
-                       case 0x94: /* m */
-                       case 0x95: /* n */
-                       case 0x96: /* o */
-                       case 0x97: /* p */
-                       case 0x98: /* q */
-                       case 0x99: /* r */
-                       case 0x9A:
-                       case 0x9B:
-                       case 0x9C:
-                       case 0x9D:
-                       case 0x9E:
-                       case 0x9F:
-                       case 0xA0:
-                       case 0xA1: /* ~ */
-                       case 0xA2: /* s */
-                       case 0xA3: /* t */
-                       case 0xA4: /* u */
-                       case 0xA5: /* v */
-                       case 0xA6: /* w */
-                       case 0xA7: /* x */
-                       case 0xA8: /* y */
-                       case 0xA9: /* z */
-                       case 0xAA:
-                       case 0xAB:
-                       case 0xAC:
-                       case 0xAD:
-                       case 0xAE:
-                       case 0xAF:
-                       case 0xB0: /* ^ */
-                       case 0xB1:
-                       case 0xB2:
-                       case 0xB3:
-                       case 0xB4:
-                       case 0xB5:
-                       case 0xB6:
-                       case 0xB7:
-                       case 0xB8:
-                       case 0xB9:
-                       case 0xBA: /* [ */
-                       case 0xBB: /* ] */
-                       case 0xBC:
-                       case 0xBD:
-                       case 0xBE:
-                       case 0xBF:
-                       case 0xC0: /* { */
-                       case 0xC1: /* A */
-                       case 0xC2: /* B */
-                       case 0xC3: /* C */
-                       case 0xC4: /* D */
-                       case 0xC5: /* E */
-                       case 0xC6: /* F */
-                       case 0xC7: /* G */
-                       case 0xC8: /* H */
-                       case 0xC9: /* I */
-                       case 0xCA:
-                       case 0xCB:
-                       case 0xCC:
-                       case 0xCD:
-                       case 0xCE:
-                       case 0xCF:
-                       case 0xD0: /* } */
-                       case 0xD1: /* J */
-                       case 0xD2: /* K */
-                       case 0xD3: /* L */
-                       case 0xD4: /* M */
-                       case 0xD5: /* N */
-                       case 0xD6: /* O */
-                       case 0xD7: /* P */
-                       case 0xD8: /* Q */
-                       case 0xD9: /* R */
-                       case 0xDA:
-                       case 0xDB:
-                       case 0xDC:
-                       case 0xDD:
-                       case 0xDE:
-                       case 0xDF:      goto yy14;
-                       case 0x4E: /* + */      goto yy8;
-                       case 0x60: /* - */      goto yy10;
-                       case 0xF0: /* 0 */      goto yy3;
+                       case 0x00:      goto yy10;
+                       case 0x4E: /* + */      goto yy6;
+                       case 0x60: /* - */      goto yy8;
+                       case 0xF0: /* 0 */      goto yy2;
                        case 0xF1: /* 1 */
                        case 0xF2: /* 2 */
                        case 0xF3: /* 3 */
@@ -259,13 +38,11 @@ int scan(char *s, int l)
                        case 0xF6: /* 6 */
                        case 0xF7: /* 7 */
                        case 0xF8: /* 8 */
-                       case 0xF9: /* 9 */      goto yy5;
-                       default:        goto yy2;
+                       case 0xF9: /* 9 */      goto yy4;
+                       default:        goto yy12;
                        }
 yy2:
                        YYDEBUG(2, *YYCURSOR);
-yy3:
-                       YYDEBUG(3, *YYCURSOR);
                        ++YYCURSOR;
                        YYDEBUG(-1, yych);
                        switch ((yych = *YYCURSOR)) {
@@ -279,54 +56,60 @@ yy3:
                        case 0xF7: /* 7 */
                        case 0xF8: /* 8 */
                        case 0xF9: /* 9 */      goto yy16;
-                       default:        goto yy4;
+                       default:        goto yy3;
                        }
+yy3:
+                       YYDEBUG(3, *YYCURSOR);
+                       { printf("Num\n");      continue; }
 yy4:
                        YYDEBUG(4, *YYCURSOR);
-                       { printf("Num\n");      continue; }
-yy5:
-                       YYDEBUG(5, *YYCURSOR);
                        ++YYCURSOR;
-                       if (YYLIMIT <= YYCURSOR) YYFILL(1);
                        yych = *YYCURSOR;
+                       goto yy15;
+yy5:
+                       YYDEBUG(5, *YYCURSOR);
+                       { printf("Num\n");      continue; }
+yy6:
                        YYDEBUG(6, *YYCURSOR);
-                       YYDEBUG(-1, yych);
-                       switch (yych) {
-                       case 0xF0: /* 0 */
-                       case 0xF1: /* 1 */
-                       case 0xF2: /* 2 */
-                       case 0xF3: /* 3 */
-                       case 0xF4: /* 4 */
-                       case 0xF5: /* 5 */
-                       case 0xF6: /* 6 */
-                       case 0xF7: /* 7 */
-                       case 0xF8: /* 8 */
-                       case 0xF9: /* 9 */      goto yy5;
-                       default:        goto yy7;
-                       }
-yy7:
+                       ++YYCURSOR;
                        YYDEBUG(7, *YYCURSOR);
-                       { printf("Num\n");      continue; }
+                       { printf("+\n");        continue; }
 yy8:
                        YYDEBUG(8, *YYCURSOR);
                        ++YYCURSOR;
                        YYDEBUG(9, *YYCURSOR);
-                       { printf("+\n");        continue; }
+                       { printf("-\n");        continue; }
 yy10:
                        YYDEBUG(10, *YYCURSOR);
                        ++YYCURSOR;
                        YYDEBUG(11, *YYCURSOR);
-                       { printf("-\n");        continue; }
+                       { printf("EOF\n");      return 0; }
 yy12:
                        YYDEBUG(12, *YYCURSOR);
                        ++YYCURSOR;
                        YYDEBUG(13, *YYCURSOR);
-                       { printf("EOF\n");      return 0; }
+                       { printf("ERR\n");      return 1; }
 yy14:
                        YYDEBUG(14, *YYCURSOR);
                        ++YYCURSOR;
+                       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+                       yych = *YYCURSOR;
+yy15:
                        YYDEBUG(15, *YYCURSOR);
-                       { printf("ERR\n");      return 1; }
+                       YYDEBUG(-1, yych);
+                       switch (yych) {
+                       case 0xF0: /* 0 */
+                       case 0xF1: /* 1 */
+                       case 0xF2: /* 2 */
+                       case 0xF3: /* 3 */
+                       case 0xF4: /* 4 */
+                       case 0xF5: /* 5 */
+                       case 0xF6: /* 6 */
+                       case 0xF7: /* 7 */
+                       case 0xF8: /* 8 */
+                       case 0xF9: /* 9 */      goto yy14;
+                       default:        goto yy5;
+                       }
 yy16:
                        YYDEBUG(16, *YYCURSOR);
                        ++YYCURSOR;
old mode 100755 (executable)
new mode 100644 (file)
index e890414..734d369
@@ -24,231 +24,10 @@ int scan(char *s, int l)
                        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
                        yych = *YYCURSOR;
                        switch (yych) {
-                       case 0x00:      goto yy12;
-                       case 0x01:
-                       case 0x02:
-                       case 0x03:
-                       case 0x04:
-                       case 0x05:
-                       case 0x06:
-                       case 0x07:
-                       case 0x08:
-                       case 0x09:
-                       case 0x0A:
-                       case 0x0B:
-                       case 0x0C:
-                       case 0x0D:
-                       case 0x0E:
-                       case 0x0F:
-                       case 0x10:
-                       case 0x11:
-                       case 0x12:
-                       case 0x13:
-                       case 0x14:
-                       case 0x15:
-                       case 0x16:
-                       case 0x17:
-                       case 0x18:
-                       case 0x19:
-                       case 0x1A:
-                       case 0x1B:
-                       case 0x1C:
-                       case 0x1D:
-                       case 0x1E:
-                       case 0x1F:
-                       case 0x20:
-                       case 0x21:
-                       case 0x22:
-                       case 0x23:
-                       case 0x24:
-                       case 0x25:
-                       case 0x26:
-                       case 0x27:
-                       case 0x28:
-                       case 0x29:
-                       case 0x2A:
-                       case 0x2B:
-                       case 0x2C:
-                       case 0x2D:
-                       case 0x2E:
-                       case 0x2F:
-                       case 0x30:
-                       case 0x31:
-                       case 0x32:
-                       case 0x33:
-                       case 0x34:
-                       case 0x35:
-                       case 0x36:
-                       case 0x37:
-                       case 0x38:
-                       case 0x39:
-                       case 0x3A:
-                       case 0x3B:
-                       case 0x3C:
-                       case 0x3D:
-                       case 0x3E:
-                       case 0x3F:
-                       case 0x40:
-                       case 0x41:
-                       case 0x42:
-                       case 0x43:
-                       case 0x44:
-                       case 0x45:
-                       case 0x46:
-                       case 0x47:
-                       case 0x48:
-                       case 0x49:
-                       case 0x4A:
-                       case 0x4B:
-                       case 0x4C:
-                       case 0x4D:
-                       case 0x4F:
-                       case 0x50:
-                       case 0x51:
-                       case 0x52:
-                       case 0x53:
-                       case 0x54:
-                       case 0x55:
-                       case 0x56:
-                       case 0x57:
-                       case 0x58:
-                       case 0x59:
-                       case 0x5A:
-                       case 0x5B:
-                       case 0x5C:
-                       case 0x5D:
-                       case 0x5E:
-                       case 0x5F:
-                       case 0x61:
-                       case 0x62:
-                       case 0x63:
-                       case 0x64:
-                       case 0x65:
-                       case 0x66:
-                       case 0x67:
-                       case 0x68:
-                       case 0x69:
-                       case 0x6A:
-                       case 0x6B:
-                       case 0x6C:
-                       case 0x6D:
-                       case 0x6E:
-                       case 0x6F:
-                       case 0x70:
-                       case 0x71:
-                       case 0x72:
-                       case 0x73:
-                       case 0x74:
-                       case 0x75:
-                       case 0x76:
-                       case 0x77:
-                       case 0x78:
-                       case 0x79:
-                       case 0x7A:
-                       case 0x7B:
-                       case 0x7C:
-                       case 0x7D:
-                       case 0x7E:
-                       case 0x7F:
-                       case 0x80:
-                       case 0x81:
-                       case 0x82:
-                       case 0x83:
-                       case 0x84:
-                       case 0x85:
-                       case 0x86:
-                       case 0x87:
-                       case 0x88:
-                       case 0x89:
-                       case 0x8A:
-                       case 0x8B:
-                       case 0x8C:
-                       case 0x8D:
-                       case 0x8E:
-                       case 0x8F:
-                       case 0x90:
-                       case 0x91:
-                       case 0x92:
-                       case 0x93:
-                       case 0x94:
-                       case 0x95:
-                       case 0x96:
-                       case 0x97:
-                       case 0x98:
-                       case 0x99:
-                       case 0x9A:
-                       case 0x9B:
-                       case 0x9C:
-                       case 0x9D:
-                       case 0x9E:
-                       case 0x9F:
-                       case 0xA0:
-                       case 0xA1:
-                       case 0xA2:
-                       case 0xA3:
-                       case 0xA4:
-                       case 0xA5:
-                       case 0xA6:
-                       case 0xA7:
-                       case 0xA8:
-                       case 0xA9:
-                       case 0xAA:
-                       case 0xAB:
-                       case 0xAC:
-                       case 0xAD:
-                       case 0xAE:
-                       case 0xAF:
-                       case 0xB0:
-                       case 0xB1:
-                       case 0xB2:
-                       case 0xB3:
-                       case 0xB4:
-                       case 0xB5:
-                       case 0xB6:
-                       case 0xB7:
-                       case 0xB8:
-                       case 0xB9:
-                       case 0xBA:
-                       case 0xBB:
-                       case 0xBC:
-                       case 0xBD:
-                       case 0xBE:
-                       case 0xBF:
-                       case 0xC0:
-                       case 0xC1:
-                       case 0xC2:
-                       case 0xC3:
-                       case 0xC4:
-                       case 0xC5:
-                       case 0xC6:
-                       case 0xC7:
-                       case 0xC8:
-                       case 0xC9:
-                       case 0xCA:
-                       case 0xCB:
-                       case 0xCC:
-                       case 0xCD:
-                       case 0xCE:
-                       case 0xCF:
-                       case 0xD0:
-                       case 0xD1:
-                       case 0xD2:
-                       case 0xD3:
-                       case 0xD4:
-                       case 0xD5:
-                       case 0xD6:
-                       case 0xD7:
-                       case 0xD8:
-                       case 0xD9:
-                       case 0xDA:
-                       case 0xDB:
-                       case 0xDC:
-                       case 0xDD:
-                       case 0xDE:
-                       case 0xDF:      goto yy14;
-                       case 0x4E:      goto yy8;
-                       case 0x60:      goto yy10;
-                       case 0xF0:      goto yy3;
+                       case 0x00:      goto yy10;
+                       case 0x4E:      goto yy6;
+                       case 0x60:      goto yy8;
+                       case 0xF0:      goto yy2;
                        case 0xF1:
                        case 0xF2:
                        case 0xF3:
@@ -257,11 +36,10 @@ int scan(char *s, int l)
                        case 0xF6:
                        case 0xF7:
                        case 0xF8:
-                       case 0xF9:      goto yy5;
-                       default:        goto yy2;
+                       case 0xF9:      goto yy4;
+                       default:        goto yy12;
                        }
 yy2:
-yy3:
                        ++YYCURSOR;
                        switch ((yych = *YYCURSOR)) {
                        case 0xF0:
@@ -274,14 +52,33 @@ yy3:
                        case 0xF7:
                        case 0xF8:
                        case 0xF9:      goto yy16;
-                       default:        goto yy4;
+                       default:        goto yy3;
                        }
-yy4:
+yy3:
                        { printf("Num\n");      continue; }
+yy4:
+                       ++YYCURSOR;
+                       yych = *YYCURSOR;
+                       goto yy15;
 yy5:
+                       { printf("Num\n");      continue; }
+yy6:
+                       ++YYCURSOR;
+                       { printf("+\n");        continue; }
+yy8:
+                       ++YYCURSOR;
+                       { printf("-\n");        continue; }
+yy10:
+                       ++YYCURSOR;
+                       { printf("EOF\n");      return 0; }
+yy12:
+                       ++YYCURSOR;
+                       { printf("ERR\n");      return 1; }
+yy14:
                        ++YYCURSOR;
                        if (YYLIMIT <= YYCURSOR) YYFILL(1);
                        yych = *YYCURSOR;
+yy15:
                        switch (yych) {
                        case 0xF0:
                        case 0xF1:
@@ -292,23 +89,9 @@ yy5:
                        case 0xF6:
                        case 0xF7:
                        case 0xF8:
-                       case 0xF9:      goto yy5;
-                       default:        goto yy7;
+                       case 0xF9:      goto yy14;
+                       default:        goto yy5;
                        }
-yy7:
-                       { printf("Num\n");      continue; }
-yy8:
-                       ++YYCURSOR;
-                       { printf("+\n");        continue; }
-yy10:
-                       ++YYCURSOR;
-                       { printf("-\n");        continue; }
-yy12:
-                       ++YYCURSOR;
-                       { printf("EOF\n");      return 0; }
-yy14:
-                       ++YYCURSOR;
-                       { printf("ERR\n");      return 1; }
 yy16:
                        ++YYCURSOR;
                        if (YYLIMIT <= YYCURSOR) YYFILL(1);