From 8c2a8dbc9832d7774fafbd801399ba808f015975 Mon Sep 17 00:00:00 2001 From: helly Date: Fri, 28 Nov 2008 11:19:45 +0000 Subject: [PATCH] - Fix issues with \a, \b, \f, \n, \r, \t, \v in -e mode --- re2c/actions.cc | 14 +- re2c/test/{bug2102138c.i.c => bug2102138.i.c} | 0 .../{bug2102138c.i.re => bug2102138.i.re} | 0 .../{bug2102138c.i.txt => bug2102138.i.txt} | 0 re2c/test/bug2102138c.ei.c | 1067 +++++++++++++++++ re2c/test/bug2102138c.ei.re | 314 +++++ re2c/test/bug2102138c.ei.txt | 19 + 7 files changed, 1407 insertions(+), 7 deletions(-) rename re2c/test/{bug2102138c.i.c => bug2102138.i.c} (100%) rename re2c/test/{bug2102138c.i.re => bug2102138.i.re} (100%) rename re2c/test/{bug2102138c.i.txt => bug2102138.i.txt} (100%) create mode 100755 re2c/test/bug2102138c.ei.c create mode 100755 re2c/test/bug2102138c.ei.re create mode 100755 re2c/test/bug2102138c.ei.txt diff --git a/re2c/actions.cc b/re2c/actions.cc index 2e38afe4..f41fedc2 100644 --- a/re2c/actions.cc +++ b/re2c/actions.cc @@ -535,13 +535,13 @@ uint Scanner::unescape(SubStr &s) const switch (c = *s.str++) { - case 'n': return xlat('\n'); - case 't': return xlat('\t'); - case 'v': return xlat('\v'); - case 'b': return xlat('\b'); - case 'r': return xlat('\r'); - case 'f': return xlat('\f'); - case 'a': return xlat('\a'); + case 'n': return '\n'; + case 't': return '\t'; + case 'v': return '\v'; + case 'b': return '\b'; + case 'r': return '\r'; + case 'f': return '\f'; + case 'a': return '\a'; case 'x': { diff --git a/re2c/test/bug2102138c.i.c b/re2c/test/bug2102138.i.c similarity index 100% rename from re2c/test/bug2102138c.i.c rename to re2c/test/bug2102138.i.c diff --git a/re2c/test/bug2102138c.i.re b/re2c/test/bug2102138.i.re similarity index 100% rename from re2c/test/bug2102138c.i.re rename to re2c/test/bug2102138.i.re diff --git a/re2c/test/bug2102138c.i.txt b/re2c/test/bug2102138.i.txt similarity index 100% rename from re2c/test/bug2102138c.i.txt rename to re2c/test/bug2102138.i.txt diff --git a/re2c/test/bug2102138c.ei.c b/re2c/test/bug2102138c.ei.c new file mode 100755 index 00000000..1324fde5 --- /dev/null +++ b/re2c/test/bug2102138c.ei.c @@ -0,0 +1,1067 @@ +/* Generated by re2c */ +#include + +int scan(const unsigned char *cr) +{ + unsigned char ch; + +{ + unsigned char ch; + + ch = *cr; + switch (ch) { + case 0x00: goto yy2; + case 0x01: goto yy4; + case 0x02: goto yy6; + case 0x03: goto yy8; + case 0x04: goto yy314; + case 0x05: goto yy20; + case 0x06: goto yy270; + case 0x07: goto yy256; + case 0x08: goto yy304; + case 0x09: goto yy284; + case 0x0A: goto yy286; + case 0x0B: goto yy24; + case 0x0C: goto yy26; + case 0x0D: goto yy28; + case 0x0E: goto yy30; + case 0x0F: goto yy32; + case 0x10: goto yy34; + case 0x11: goto yy36; + case 0x12: goto yy38; + case 0x13: goto yy40; + case 0x14: goto yy316; + case 0x15: goto yy268; + case 0x16: goto yy18; + case 0x17: goto yy272; + case 0x18: goto yy50; + case 0x19: goto yy52; + case 0x1A: goto yy294; + case 0x1B: goto yy288; + case 0x1C: goto yy58; + case 0x1D: goto yy60; + case 0x1E: goto yy62; + case 0x1F: goto yy64; + case 0x20: goto yy258; + case 0x21: goto yy260; + case 0x22: goto yy262; + case 0x23: goto yy264; + case 0x24: goto yy266; + case 0x25: goto yy22; + case 0x26: goto yy48; + case 0x27: goto yy56; + case 0x28: goto yy274; + case 0x29: goto yy276; + case 0x2A: goto yy278; + case 0x2B: goto yy280; + case 0x2C: goto yy282; + case 0x2D: goto yy12; + case 0x2E: goto yy14; + case 0x2F: goto yy16; + case 0x30: goto yy290; + case 0x31: goto yy292; + case 0x32: goto yy46; + case 0x33: goto yy296; + case 0x34: goto yy298; + case 0x35: goto yy300; + case 0x36: goto yy302; + case 0x37: goto yy10; + case 0x38: goto yy306; + case 0x39: goto yy308; + case 0x3A: goto yy310; + case 0x3B: goto yy312; + case 0x3C: goto yy42; + case 0x3D: goto yy44; + case 0x3E: goto yy318; + case 0x3F: goto yy54; + case 0x40: goto yy66; + case 0x41: goto yy322; + case 0x42: goto yy454; + case 0x43: goto yy458; + case 0x44: goto yy450; + case 0x45: goto yy452; + case 0x46: goto yy456; + case 0x47: goto yy460; + case 0x48: goto yy464; + case 0x49: goto yy484; + case 0x4A: goto yy326; + case 0x4B: goto yy94; + case 0x4C: goto yy122; + case 0x4D: goto yy82; + case 0x4E: goto yy88; + case 0x4F: goto yy250; + case 0x50: goto yy78; + case 0x51: goto yy468; + case 0x52: goto yy470; + case 0x53: goto yy472; + case 0x54: goto yy466; + case 0x55: goto yy476; + case 0x56: goto yy478; + case 0x57: goto yy480; + case 0x58: goto yy474; + case 0x59: goto yy448; + case 0x5A: goto yy68; + case 0x5B: goto yy74; + case 0x5C: goto yy86; + case 0x5D: goto yy84; + case 0x5E: goto yy120; + case 0x5F: goto yy346; + case 0x60: goto yy92; + case 0x61: goto yy96; + case 0x62: goto yy390; + case 0x63: goto yy394; + case 0x64: goto yy386; + case 0x65: goto yy388; + case 0x66: goto yy392; + case 0x67: goto yy396; + case 0x68: goto yy400; + case 0x69: goto yy420; + case 0x6A: goto yy334; + case 0x6B: goto yy90; + case 0x6C: goto yy76; + case 0x6D: goto yy192; + case 0x6E: goto yy126; + case 0x6F: goto yy128; + case 0x70: goto yy498; + case 0x71: goto yy404; + case 0x72: goto yy406; + case 0x73: goto yy408; + case 0x74: goto yy402; + case 0x75: goto yy412; + case 0x76: goto yy414; + case 0x77: goto yy416; + case 0x78: goto yy410; + case 0x79: goto yy194; + case 0x7A: goto yy118; + case 0x7B: goto yy72; + case 0x7C: goto yy130; + case 0x7D: goto yy80; + case 0x7E: goto yy124; + case 0x7F: goto yy70; + case 0x80: goto yy434; + case 0x81: goto yy196; + case 0x82: goto yy198; + case 0x83: goto yy200; + case 0x84: goto yy202; + case 0x85: goto yy204; + case 0x86: goto yy206; + case 0x87: goto yy208; + case 0x88: goto yy210; + case 0x89: goto yy212; + case 0x8A: goto yy344; + case 0x8B: goto yy376; + case 0x8C: goto yy482; + case 0x8D: goto yy508; + case 0x8E: goto yy446; + case 0x8F: goto yy356; + case 0x90: goto yy354; + case 0x91: goto yy214; + case 0x92: goto yy216; + case 0x93: goto yy218; + case 0x94: goto yy220; + case 0x95: goto yy222; + case 0x96: goto yy224; + case 0x97: goto yy226; + case 0x98: goto yy228; + case 0x99: goto yy230; + case 0x9A: goto yy342; + case 0x9B: goto yy374; + case 0x9C: goto yy462; + case 0x9D: goto yy370; + case 0x9E: goto yy398; + case 0x9F: goto yy330; + case 0xA0: goto yy364; + case 0xA1: goto yy254; + case 0xA2: goto yy232; + case 0xA3: goto yy234; + case 0xA4: goto yy236; + case 0xA5: goto yy238; + case 0xA6: goto yy240; + case 0xA7: goto yy242; + case 0xA8: goto yy244; + case 0xA9: goto yy246; + case 0xAA: goto yy324; + case 0xAB: goto yy384; + case 0xAC: goto yy418; + case 0xAD: goto yy444; + case 0xAE: goto yy510; + case 0xAF: goto yy350; + case 0xB0: goto yy190; + case 0xB1: goto yy328; + case 0xB2: goto yy332; + case 0xB3: goto yy368; + case 0xB4: goto yy340; + case 0xB5: goto yy336; + case 0xB6: goto yy366; + case 0xB7: goto yy378; + case 0xB8: goto yy380; + case 0xB9: goto yy382; + case 0xBA: goto yy184; + case 0xBB: goto yy188; + case 0xBC: goto yy352; + case 0xBD: goto yy338; + case 0xBE: goto yy362; + case 0xBF: goto yy432; + case 0xC0: goto yy248; + case 0xC1: goto yy132; + case 0xC2: goto yy134; + case 0xC3: goto yy136; + case 0xC4: goto yy138; + case 0xC5: goto yy140; + case 0xC6: goto yy142; + case 0xC7: goto yy144; + case 0xC8: goto yy146; + case 0xC9: goto yy148; + case 0xCA: goto yy348; + case 0xCB: goto yy490; + case 0xCC: goto yy494; + case 0xCD: goto yy486; + case 0xCE: goto yy488; + case 0xCF: goto yy492; + case 0xD0: goto yy252; + case 0xD1: goto yy150; + case 0xD2: goto yy152; + case 0xD3: goto yy154; + case 0xD4: goto yy156; + case 0xD5: goto yy158; + case 0xD6: goto yy160; + case 0xD7: goto yy162; + case 0xD8: goto yy164; + case 0xD9: goto yy166; + case 0xDA: goto yy372; + case 0xDB: goto yy504; + case 0xDC: goto yy506; + case 0xDD: goto yy500; + case 0xDE: goto yy502; + case 0xDF: goto yy512; + case 0xE0: goto yy186; + case 0xE1: goto yy496; + case 0xE2: goto yy168; + case 0xE3: goto yy170; + case 0xE4: goto yy172; + case 0xE5: goto yy174; + case 0xE6: goto yy176; + case 0xE7: goto yy178; + case 0xE8: goto yy180; + case 0xE9: goto yy182; + case 0xEA: goto yy358; + case 0xEB: goto yy426; + case 0xEC: goto yy430; + case 0xED: goto yy422; + case 0xEE: goto yy424; + case 0xEF: goto yy428; + case 0xF0: goto yy98; + case 0xF1: goto yy100; + case 0xF2: goto yy102; + case 0xF3: goto yy104; + case 0xF4: goto yy106; + case 0xF5: goto yy108; + case 0xF6: goto yy110; + case 0xF7: goto yy112; + case 0xF8: goto yy114; + case 0xF9: goto yy116; + case 0xFA: goto yy360; + case 0xFB: goto yy440; + case 0xFC: goto yy442; + case 0xFD: goto yy436; + case 0xFE: goto yy438; + default: goto yy320; + } +yy2: + ++cr; + return 0x00; +yy4: + ++cr; + return 0x01; +yy6: + ++cr; + return 0x02; +yy8: + ++cr; + return 0x03; +yy10: + ++cr; + return 0x04; +yy12: + ++cr; + return 0x05; +yy14: + ++cr; + return 0x06; +yy16: + ++cr; + return 0x07; +yy18: + ++cr; + return 0x08; +yy20: + ++cr; + return 0x09; +yy22: + ++cr; + return 0x0A; +yy24: + ++cr; + return 0x0B; +yy26: + ++cr; + return 0x0C; +yy28: + ++cr; + return 0x0D; +yy30: + ++cr; + return 0x0E; +yy32: + ++cr; + return 0x0F; +yy34: + ++cr; + return 0x10; +yy36: + ++cr; + return 0x11; +yy38: + ++cr; + return 0x12; +yy40: + ++cr; + return 0x13; +yy42: + ++cr; + return 0x14; +yy44: + ++cr; + return 0x15; +yy46: + ++cr; + return 0x16; +yy48: + ++cr; + return 0x17; +yy50: + ++cr; + return 0x18; +yy52: + ++cr; + return 0x19; +yy54: + ++cr; + return 0x1A; +yy56: + ++cr; + return 0x1B; +yy58: + ++cr; + return 0x1C; +yy60: + ++cr; + return 0x1D; +yy62: + ++cr; + return 0x1E; +yy64: + ++cr; + return 0x1F; +yy66: + ++cr; + return 0x20; +yy68: + ++cr; + return 0x21; +yy70: + ++cr; + return 0x22; +yy72: + ++cr; + return 0x23; +yy74: + ++cr; + return 0x24; +yy76: + ++cr; + return 0x25; +yy78: + ++cr; + return 0x26; +yy80: + ++cr; + return 0x27; +yy82: + ++cr; + return 0x28; +yy84: + ++cr; + return 0x29; +yy86: + ++cr; + return 0x2A; +yy88: + ++cr; + return 0x2B; +yy90: + ++cr; + return 0x2C; +yy92: + ++cr; + return 0x2D; +yy94: + ++cr; + return 0x2E; +yy96: + ++cr; + return 0x2F; +yy98: + ++cr; + return 0x30; +yy100: + ++cr; + return 0x31; +yy102: + ++cr; + return 0x32; +yy104: + ++cr; + return 0x33; +yy106: + ++cr; + return 0x34; +yy108: + ++cr; + return 0x35; +yy110: + ++cr; + return 0x36; +yy112: + ++cr; + return 0x37; +yy114: + ++cr; + return 0x38; +yy116: + ++cr; + return 0x39; +yy118: + ++cr; + return 0x3A; +yy120: + ++cr; + return 0x3B; +yy122: + ++cr; + return 0x3C; +yy124: + ++cr; + return 0x3D; +yy126: + ++cr; + return 0x3E; +yy128: + ++cr; + return 0x3F; +yy130: + ++cr; + return 0x40; +yy132: + ++cr; + return 0x41; +yy134: + ++cr; + return 0x42; +yy136: + ++cr; + return 0x43; +yy138: + ++cr; + return 0x44; +yy140: + ++cr; + return 0x45; +yy142: + ++cr; + return 0x46; +yy144: + ++cr; + return 0x47; +yy146: + ++cr; + return 0x48; +yy148: + ++cr; + return 0x49; +yy150: + ++cr; + return 0x4A; +yy152: + ++cr; + return 0x4B; +yy154: + ++cr; + return 0x4C; +yy156: + ++cr; + return 0x4D; +yy158: + ++cr; + return 0x4E; +yy160: + ++cr; + return 0x4F; +yy162: + ++cr; + return 0x50; +yy164: + ++cr; + return 0x51; +yy166: + ++cr; + return 0x52; +yy168: + ++cr; + return 0x53; +yy170: + ++cr; + return 0x54; +yy172: + ++cr; + return 0x55; +yy174: + ++cr; + return 0x56; +yy176: + ++cr; + return 0x57; +yy178: + ++cr; + return 0x58; +yy180: + ++cr; + return 0x59; +yy182: + ++cr; + return 0x5A; +yy184: + ++cr; + return 0x5B; +yy186: + ++cr; + return 0x5C; +yy188: + ++cr; + return 0x5D; +yy190: + ++cr; + return 0x5E; +yy192: + ++cr; + return 0x5F; +yy194: + ++cr; + return 0x60; +yy196: + ++cr; + return 0x61; +yy198: + ++cr; + return 0x62; +yy200: + ++cr; + return 0x63; +yy202: + ++cr; + return 0x64; +yy204: + ++cr; + return 0x65; +yy206: + ++cr; + return 0x66; +yy208: + ++cr; + return 0x67; +yy210: + ++cr; + return 0x68; +yy212: + ++cr; + return 0x69; +yy214: + ++cr; + return 0x6A; +yy216: + ++cr; + return 0x6B; +yy218: + ++cr; + return 0x6C; +yy220: + ++cr; + return 0x6D; +yy222: + ++cr; + return 0x6E; +yy224: + ++cr; + return 0x6F; +yy226: + ++cr; + return 0x70; +yy228: + ++cr; + return 0x71; +yy230: + ++cr; + return 0x72; +yy232: + ++cr; + return 0x73; +yy234: + ++cr; + return 0x74; +yy236: + ++cr; + return 0x75; +yy238: + ++cr; + return 0x76; +yy240: + ++cr; + return 0x77; +yy242: + ++cr; + return 0x78; +yy244: + ++cr; + return 0x79; +yy246: + ++cr; + return 0x7A; +yy248: + ++cr; + return 0x7B; +yy250: + ++cr; + return 0x7C; +yy252: + ++cr; + return 0x7D; +yy254: + ++cr; + return 0x7E; +yy256: + ++cr; + return 0x7F; +yy258: + ++cr; + return 0x80; +yy260: + ++cr; + return 0x81; +yy262: + ++cr; + return 0x82; +yy264: + ++cr; + return 0x83; +yy266: + ++cr; + return 0x84; +yy268: + ++cr; + return 0x85; +yy270: + ++cr; + return 0x86; +yy272: + ++cr; + return 0x87; +yy274: + ++cr; + return 0x88; +yy276: + ++cr; + return 0x89; +yy278: + ++cr; + return 0x8A; +yy280: + ++cr; + return 0x8B; +yy282: + ++cr; + return 0x8C; +yy284: + ++cr; + return 0x8D; +yy286: + ++cr; + return 0x8E; +yy288: + ++cr; + return 0x8F; +yy290: + ++cr; + return 0x90; +yy292: + ++cr; + return 0x91; +yy294: + ++cr; + return 0x92; +yy296: + ++cr; + return 0x93; +yy298: + ++cr; + return 0x94; +yy300: + ++cr; + return 0x95; +yy302: + ++cr; + return 0x96; +yy304: + ++cr; + return 0x97; +yy306: + ++cr; + return 0x98; +yy308: + ++cr; + return 0x99; +yy310: + ++cr; + return 0x9A; +yy312: + ++cr; + return 0x9B; +yy314: + ++cr; + return 0x9C; +yy316: + ++cr; + return 0x9D; +yy318: + ++cr; + return 0x9E; +yy320: + ++cr; + return 0x9F; +yy322: + ++cr; + return 0xA0; +yy324: + ++cr; + return 0xA1; +yy326: + ++cr; + return 0xA2; +yy328: + ++cr; + return 0xA3; +yy330: + ++cr; + return 0xA4; +yy332: + ++cr; + return 0xA5; +yy334: + ++cr; + return 0xA6; +yy336: + ++cr; + return 0xA7; +yy338: + ++cr; + return 0xA8; +yy340: + ++cr; + return 0xA9; +yy342: + ++cr; + return 0xAA; +yy344: + ++cr; + return 0xAB; +yy346: + ++cr; + return 0xAC; +yy348: + ++cr; + return 0xAD; +yy350: + ++cr; + return 0xAE; +yy352: + ++cr; + return 0xAF; +yy354: + ++cr; + return 0xB0; +yy356: + ++cr; + return 0xB1; +yy358: + ++cr; + return 0xB2; +yy360: + ++cr; + return 0xB3; +yy362: + ++cr; + return 0xB4; +yy364: + ++cr; + return 0xB5; +yy366: + ++cr; + return 0xB6; +yy368: + ++cr; + return 0xB7; +yy370: + ++cr; + return 0xB8; +yy372: + ++cr; + return 0xB9; +yy374: + ++cr; + return 0xBA; +yy376: + ++cr; + return 0xBB; +yy378: + ++cr; + return 0xBC; +yy380: + ++cr; + return 0xBD; +yy382: + ++cr; + return 0xBE; +yy384: + ++cr; + return 0xBF; +yy386: + ++cr; + return 0xC0; +yy388: + ++cr; + return 0xC1; +yy390: + ++cr; + return 0xC2; +yy392: + ++cr; + return 0xC3; +yy394: + ++cr; + return 0xC4; +yy396: + ++cr; + return 0xC5; +yy398: + ++cr; + return 0xC6; +yy400: + ++cr; + return 0xC7; +yy402: + ++cr; + return 0xC8; +yy404: + ++cr; + return 0xC9; +yy406: + ++cr; + return 0xCA; +yy408: + ++cr; + return 0xCB; +yy410: + ++cr; + return 0xCC; +yy412: + ++cr; + return 0xCD; +yy414: + ++cr; + return 0xCE; +yy416: + ++cr; + return 0xCF; +yy418: + ++cr; + return 0xD0; +yy420: + ++cr; + return 0xD1; +yy422: + ++cr; + return 0xD2; +yy424: + ++cr; + return 0xD3; +yy426: + ++cr; + return 0xD4; +yy428: + ++cr; + return 0xD5; +yy430: + ++cr; + return 0xD6; +yy432: + ++cr; + return 0xD7; +yy434: + ++cr; + return 0xD8; +yy436: + ++cr; + return 0xD9; +yy438: + ++cr; + return 0xDA; +yy440: + ++cr; + return 0xDB; +yy442: + ++cr; + return 0xDC; +yy444: + ++cr; + return 0xDD; +yy446: + ++cr; + return 0xDE; +yy448: + ++cr; + return 0xDF; +yy450: + ++cr; + return 0xE0; +yy452: + ++cr; + return 0xE1; +yy454: + ++cr; + return 0xE2; +yy456: + ++cr; + return 0xE3; +yy458: + ++cr; + return 0xE4; +yy460: + ++cr; + return 0xE5; +yy462: + ++cr; + return 0xE6; +yy464: + ++cr; + return 0xE7; +yy466: + ++cr; + return 0xE8; +yy468: + ++cr; + return 0xE9; +yy470: + ++cr; + return 0xEA; +yy472: + ++cr; + return 0xEB; +yy474: + ++cr; + return 0xEC; +yy476: + ++cr; + return 0xED; +yy478: + ++cr; + return 0xEE; +yy480: + ++cr; + return 0xEF; +yy482: + ++cr; + return 0xF0; +yy484: + ++cr; + return 0xF1; +yy486: + ++cr; + return 0xF2; +yy488: + ++cr; + return 0xF3; +yy490: + ++cr; + return 0xF4; +yy492: + ++cr; + return 0xF5; +yy494: + ++cr; + return 0xF6; +yy496: + ++cr; + return 0xF7; +yy498: + ++cr; + return 0xF8; +yy500: + ++cr; + return 0xF9; +yy502: + ++cr; + return 0xFA; +yy504: + ++cr; + return 0xFB; +yy506: + ++cr; + return 0xFC; +yy508: + ++cr; + return 0xFD; +yy510: + ++cr; + return 0xFE; +yy512: + ++cr; + return 0xFF; +} + +} + +int main(int argc, char** argv) { + unsigned char buf[2]; + unsigned int ch = 0; + buf[1] = 0u; + + printf("const uint ebc2asc[256] =\n"); + printf(" { /* Based on ISO 8859/1 and Code Page 37 */\n"); + for (;;) { + if (ch % 16 == 0) { + printf(" "); + } + buf[0] = ch++; + printf("0x%02x", scan(buf)); + if (ch == 256) { + printf("\n"); + break; + } + if (ch % 16 == 0) { + printf(",\n"); + } else { + printf(", "); + } + } + printf(" };\n"); + return 0; +} diff --git a/re2c/test/bug2102138c.ei.re b/re2c/test/bug2102138c.ei.re new file mode 100755 index 00000000..fd4c22af --- /dev/null +++ b/re2c/test/bug2102138c.ei.re @@ -0,0 +1,314 @@ +#include + +int scan(const unsigned char *cr) +{ + unsigned char ch; +/*!re2c + +re2c:define:YYCTYPE = "unsigned char"; +re2c:define:YYCURSOR = cr; +re2c:define:YYFILL = fill; +re2c:variable:yych = ch; +re2c:yyfill:enable = 0; + +"\x00" := return 0x00; +"\x01" := return 0x01; +"\x02" := return 0x02; +"\x03" := return 0x03; +"\x04" := return 0x04; +"\x05" := return 0x05; +"\x06" := return 0x06; +"\a" := return 0x07; +"\b" := return 0x08; +"\t" := return 0x09; +"\n" := return 0x0A; +"\v" := return 0x0B; +"\f" := return 0x0C; +"\r" := return 0x0D; +"\x0E" := return 0x0E; +"\x0F" := return 0x0F; + +"\x10" := return 0x10; +"\x11" := return 0x11; +"\x12" := return 0x12; +"\x13" := return 0x13; +"\x14" := return 0x14; +"\x15" := return 0x15; +"\x16" := return 0x16; +"\x17" := return 0x17; +"\x18" := return 0x18; +"\x19" := return 0x19; +"\x1A" := return 0x1A; +"\x1B" := return 0x1B; +"\x1C" := return 0x1C; +"\x1D" := return 0x1D; +"\x1E" := return 0x1E; +"\x1F" := return 0x1F; + +"\x20" := return 0x20; +"\x21" := return 0x21; +"\x22" := return 0x22; +"\x23" := return 0x23; +"\x24" := return 0x24; +"\x25" := return 0x25; +"\x26" := return 0x26; +"\x27" := return 0x27; +"\x28" := return 0x28; +"\x29" := return 0x29; +"\x2A" := return 0x2A; +"\x2B" := return 0x2B; +"\x2C" := return 0x2C; +"\x2D" := return 0x2D; +"\x2E" := return 0x2E; +"\x2F" := return 0x2F; + +"\x30" := return 0x30; +"\x31" := return 0x31; +"\x32" := return 0x32; +"\x33" := return 0x33; +"\x34" := return 0x34; +"\x35" := return 0x35; +"\x36" := return 0x36; +"\x37" := return 0x37; +"\x38" := return 0x38; +"\x39" := return 0x39; +"\x3A" := return 0x3A; +"\x3B" := return 0x3B; +"\x3C" := return 0x3C; +"\x3D" := return 0x3D; +"\x3E" := return 0x3E; +"\x3F" := return 0x3F; + +"\x40" := return 0x40; +"\x41" := return 0x41; +"\x42" := return 0x42; +"\x43" := return 0x43; +"\x44" := return 0x44; +"\x45" := return 0x45; +"\x46" := return 0x46; +"\x47" := return 0x47; +"\x48" := return 0x48; +"\x49" := return 0x49; +"\x4A" := return 0x4A; +"\x4B" := return 0x4B; +"\x4C" := return 0x4C; +"\x4D" := return 0x4D; +"\x4E" := return 0x4E; +"\x4F" := return 0x4F; + +"\x50" := return 0x50; +"\x51" := return 0x51; +"\x52" := return 0x52; +"\x53" := return 0x53; +"\x54" := return 0x54; +"\x55" := return 0x55; +"\x56" := return 0x56; +"\x57" := return 0x57; +"\x58" := return 0x58; +"\x59" := return 0x59; +"\x5A" := return 0x5A; +"\x5B" := return 0x5B; +"\x5C" := return 0x5C; +"\x5D" := return 0x5D; +"\x5E" := return 0x5E; +"\x5F" := return 0x5F; + +"\x60" := return 0x60; +"\x61" := return 0x61; +"\x62" := return 0x62; +"\x63" := return 0x63; +"\x64" := return 0x64; +"\x65" := return 0x65; +"\x66" := return 0x66; +"\x67" := return 0x67; +"\x68" := return 0x68; +"\x69" := return 0x69; +"\x6A" := return 0x6A; +"\x6B" := return 0x6B; +"\x6C" := return 0x6C; +"\x6D" := return 0x6D; +"\x6E" := return 0x6E; +"\x6F" := return 0x6F; + +"\x70" := return 0x70; +"\x71" := return 0x71; +"\x72" := return 0x72; +"\x73" := return 0x73; +"\x74" := return 0x74; +"\x75" := return 0x75; +"\x76" := return 0x76; +"\x77" := return 0x77; +"\x78" := return 0x78; +"\x79" := return 0x79; +"\x7A" := return 0x7A; +"\x7B" := return 0x7B; +"\x7C" := return 0x7C; +"\x7D" := return 0x7D; +"\x7E" := return 0x7E; +"\x7F" := return 0x7F; + +"\x80" := return 0x80; +"\x81" := return 0x81; +"\x82" := return 0x82; +"\x83" := return 0x83; +"\x84" := return 0x84; +"\x85" := return 0x85; +"\x86" := return 0x86; +"\x87" := return 0x87; +"\x88" := return 0x88; +"\x89" := return 0x89; +"\x8A" := return 0x8A; +"\x8B" := return 0x8B; +"\x8C" := return 0x8C; +"\x8D" := return 0x8D; +"\x8E" := return 0x8E; +"\x8F" := return 0x8F; + +"\x90" := return 0x90; +"\x91" := return 0x91; +"\x92" := return 0x92; +"\x93" := return 0x93; +"\x94" := return 0x94; +"\x95" := return 0x95; +"\x96" := return 0x96; +"\x97" := return 0x97; +"\x98" := return 0x98; +"\x99" := return 0x99; +"\x9A" := return 0x9A; +"\x9B" := return 0x9B; +"\x9C" := return 0x9C; +"\x9D" := return 0x9D; +"\x9E" := return 0x9E; +"\x9F" := return 0x9F; + +"\xA0" := return 0xA0; +"\xA1" := return 0xA1; +"\xA2" := return 0xA2; +"\xA3" := return 0xA3; +"\xA4" := return 0xA4; +"\xA5" := return 0xA5; +"\xA6" := return 0xA6; +"\xA7" := return 0xA7; +"\xA8" := return 0xA8; +"\xA9" := return 0xA9; +"\xAA" := return 0xAA; +"\xAB" := return 0xAB; +"\xAC" := return 0xAC; +"\xAD" := return 0xAD; +"\xAE" := return 0xAE; +"\xAF" := return 0xAF; + +"\xB0" := return 0xB0; +"\xB1" := return 0xB1; +"\xB2" := return 0xB2; +"\xB3" := return 0xB3; +"\xB4" := return 0xB4; +"\xB5" := return 0xB5; +"\xB6" := return 0xB6; +"\xB7" := return 0xB7; +"\xB8" := return 0xB8; +"\xB9" := return 0xB9; +"\xBA" := return 0xBA; +"\xBB" := return 0xBB; +"\xBC" := return 0xBC; +"\xBD" := return 0xBD; +"\xBE" := return 0xBE; +"\xBF" := return 0xBF; + +"\xC0" := return 0xC0; +"\xC1" := return 0xC1; +"\xC2" := return 0xC2; +"\xC3" := return 0xC3; +"\xC4" := return 0xC4; +"\xC5" := return 0xC5; +"\xC6" := return 0xC6; +"\xC7" := return 0xC7; +"\xC8" := return 0xC8; +"\xC9" := return 0xC9; +"\xCA" := return 0xCA; +"\xCB" := return 0xCB; +"\xCC" := return 0xCC; +"\xCD" := return 0xCD; +"\xCE" := return 0xCE; +"\xCF" := return 0xCF; + +"\xD0" := return 0xD0; +"\xD1" := return 0xD1; +"\xD2" := return 0xD2; +"\xD3" := return 0xD3; +"\xD4" := return 0xD4; +"\xD5" := return 0xD5; +"\xD6" := return 0xD6; +"\xD7" := return 0xD7; +"\xD8" := return 0xD8; +"\xD9" := return 0xD9; +"\xDA" := return 0xDA; +"\xDB" := return 0xDB; +"\xDC" := return 0xDC; +"\xDD" := return 0xDD; +"\xDE" := return 0xDE; +"\xDF" := return 0xDF; + +"\xE0" := return 0xE0; +"\xE1" := return 0xE1; +"\xE2" := return 0xE2; +"\xE3" := return 0xE3; +"\xE4" := return 0xE4; +"\xE5" := return 0xE5; +"\xE6" := return 0xE6; +"\xE7" := return 0xE7; +"\xE8" := return 0xE8; +"\xE9" := return 0xE9; +"\xEA" := return 0xEA; +"\xEB" := return 0xEB; +"\xEC" := return 0xEC; +"\xED" := return 0xED; +"\xEE" := return 0xEE; +"\xEF" := return 0xEF; + +"\xF0" := return 0xF0; +"\xF1" := return 0xF1; +"\xF2" := return 0xF2; +"\xF3" := return 0xF3; +"\xF4" := return 0xF4; +"\xF5" := return 0xF5; +"\xF6" := return 0xF6; +"\xF7" := return 0xF7; +"\xF8" := return 0xF8; +"\xF9" := return 0xF9; +"\xFA" := return 0xFA; +"\xFB" := return 0xFB; +"\xFC" := return 0xFC; +"\xFD" := return 0xFD; +"\xFE" := return 0xFE; +"\xFF" := return 0xFF; + +*/ +} + +int main(int argc, char** argv) { + unsigned char buf[2]; + unsigned int ch = 0; + buf[1] = 0u; + + printf("const uint ebc2asc[256] =\n"); + printf(" { /* Based on ISO 8859/1 and Code Page 37 */\n"); + for (;;) { + if (ch % 16 == 0) { + printf(" "); + } + buf[0] = ch++; + printf("0x%02x", scan(buf)); + if (ch == 256) { + printf("\n"); + break; + } + if (ch % 16 == 0) { + printf(",\n"); + } else { + printf(", "); + } + } + printf(" };\n"); + return 0; +} diff --git a/re2c/test/bug2102138c.ei.txt b/re2c/test/bug2102138c.ei.txt new file mode 100755 index 00000000..e952201b --- /dev/null +++ b/re2c/test/bug2102138c.ei.txt @@ -0,0 +1,19 @@ +const uint ebc2asc[256] = + { /* Based on ISO 8859/1 and Code Page 37 */ + 0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f, 0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x9d, 0x85, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x0a, 0x17, 0x1b, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, + 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, + 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, + 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, + 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, + 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, + 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xde, 0xb1, + 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, + 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xfe, 0xae, + 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, + 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, + 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, + 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f + }; -- 2.40.0