1*e0680481Safresh1 /* -*- mode: C; buffer-read-only: t -*- 2b8851fccSafresh1 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! 3b8851fccSafresh1 * This file is built by regen/ebcdic.pl. 4b8851fccSafresh1 * Any changes made here will be lost! 5b8851fccSafresh1 */ 6b8851fccSafresh1 7b8851fccSafresh1 85759b3d2Safresh1 #ifndef PERL_EBCDIC_TABLES_H_ /* Guard against nested #includes */ 95759b3d2Safresh1 #define PERL_EBCDIC_TABLES_H_ 1 10b8851fccSafresh1 11b8851fccSafresh1 /* This file contains definitions for various tables used in EBCDIC handling. 12b46d8ef2Safresh1 * More info is in utfebcdic.h 13b46d8ef2Safresh1 * 14b46d8ef2Safresh1 * Some of the tables are adapted from 1556d68f1eSafresh1 * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ 16b46d8ef2Safresh1 * which requires this copyright notice: 17b46d8ef2Safresh1 18b46d8ef2Safresh1 Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de> 19b46d8ef2Safresh1 20b46d8ef2Safresh1 Permission is hereby granted, free of charge, to any person obtaining a copy of 21b46d8ef2Safresh1 this software and associated documentation files (the "Software"), to deal in 22b46d8ef2Safresh1 the Software without restriction, including without limitation the rights to 23b46d8ef2Safresh1 use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 24b46d8ef2Safresh1 of the Software, and to permit persons to whom the Software is furnished to do 25b46d8ef2Safresh1 so, subject to the following conditions: 26b46d8ef2Safresh1 27b46d8ef2Safresh1 The above copyright notice and this permission notice shall be included in all 28b46d8ef2Safresh1 copies or substantial portions of the Software. 29b46d8ef2Safresh1 30b46d8ef2Safresh1 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 31b46d8ef2Safresh1 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 32b46d8ef2Safresh1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 33b46d8ef2Safresh1 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 34b46d8ef2Safresh1 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 35b46d8ef2Safresh1 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 36b46d8ef2Safresh1 SOFTWARE. 37b46d8ef2Safresh1 38b46d8ef2Safresh1 */ 39b8851fccSafresh1 40b8851fccSafresh1 #if 'A' == 193 /* EBCDIC 1047 */ \ 41b8851fccSafresh1 && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \ 42b8851fccSafresh1 && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ 43b46d8ef2Safresh1 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21 44b8851fccSafresh1 45b8851fccSafresh1 /* Index is ASCII platform code point; value is EBCDIC 1047 equivalent */ 46b46d8ef2Safresh1 # ifndef DOINIT 47eac174f2Safresh1 EXTCONST U8 PL_a2e[256]; 48b46d8ef2Safresh1 # else 49eac174f2Safresh1 EXTCONST U8 PL_a2e[256] = { 50b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 51b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x37,0x2D,0x2E,0x2F,0x16,0x05,0x15,0x0B,0x0C,0x0D,0x0E,0x0F, 52b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x3C,0x3D,0x32,0x26,0x18,0x19,0x3F,0x27,0x1C,0x1D,0x1E,0x1F, 53b46d8ef2Safresh1 /*2_*/0x40,0x5A,0x7F,0x7B,0x5B,0x6C,0x50,0x7D,0x4D,0x5D,0x5C,0x4E,0x6B,0x60,0x4B,0x61, 54b46d8ef2Safresh1 /*3_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0x7A,0x5E,0x4C,0x7E,0x6E,0x6F, 55b46d8ef2Safresh1 /*4_*/0x7C,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6, 56b46d8ef2Safresh1 /*5_*/0xD7,0xD8,0xD9,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAD,0xE0,0xBD,0x5F,0x6D, 57b46d8ef2Safresh1 /*6_*/0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, 58b46d8ef2Safresh1 /*7_*/0x97,0x98,0x99,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xC0,0x4F,0xD0,0xA1,0x07, 59b46d8ef2Safresh1 /*8_*/0x20,0x21,0x22,0x23,0x24,0x25,0x06,0x17,0x28,0x29,0x2A,0x2B,0x2C,0x09,0x0A,0x1B, 60b46d8ef2Safresh1 /*9_*/0x30,0x31,0x1A,0x33,0x34,0x35,0x36,0x08,0x38,0x39,0x3A,0x3B,0x04,0x14,0x3E,0xFF, 61b46d8ef2Safresh1 /*A_*/0x41,0xAA,0x4A,0xB1,0x9F,0xB2,0x6A,0xB5,0xBB,0xB4,0x9A,0x8A,0xB0,0xCA,0xAF,0xBC, 62b46d8ef2Safresh1 /*B_*/0x90,0x8F,0xEA,0xFA,0xBE,0xA0,0xB6,0xB3,0x9D,0xDA,0x9B,0x8B,0xB7,0xB8,0xB9,0xAB, 63b46d8ef2Safresh1 /*C_*/0x64,0x65,0x62,0x66,0x63,0x67,0x9E,0x68,0x74,0x71,0x72,0x73,0x78,0x75,0x76,0x77, 64b46d8ef2Safresh1 /*D_*/0xAC,0x69,0xED,0xEE,0xEB,0xEF,0xEC,0xBF,0x80,0xFD,0xFE,0xFB,0xFC,0xBA,0xAE,0x59, 65b46d8ef2Safresh1 /*E_*/0x44,0x45,0x42,0x46,0x43,0x47,0x9C,0x48,0x54,0x51,0x52,0x53,0x58,0x55,0x56,0x57, 66b46d8ef2Safresh1 /*F_*/0x8C,0x49,0xCD,0xCE,0xCB,0xCF,0xCC,0xE1,0x70,0xDD,0xDE,0xDB,0xDC,0x8D,0x8E,0xDF 67b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 68b8851fccSafresh1 }; 69b46d8ef2Safresh1 # endif 70b8851fccSafresh1 71b8851fccSafresh1 /* Index is EBCDIC 1047 code point; value is ASCII platform equivalent */ 72b46d8ef2Safresh1 # ifndef DOINIT 73eac174f2Safresh1 EXTCONST U8 PL_e2a[256]; 74b46d8ef2Safresh1 # else 75eac174f2Safresh1 EXTCONST U8 PL_e2a[256] = { 76b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 77b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x9C,0x09,0x86,0x7F,0x97,0x8D,0x8E,0x0B,0x0C,0x0D,0x0E,0x0F, 78b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x9D,0x0A,0x08,0x87,0x18,0x19,0x92,0x8F,0x1C,0x1D,0x1E,0x1F, 79b46d8ef2Safresh1 /*2_*/0x80,0x81,0x82,0x83,0x84,0x85,0x17,0x1B,0x88,0x89,0x8A,0x8B,0x8C,0x05,0x06,0x07, 80b46d8ef2Safresh1 /*3_*/0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9A,0x9B,0x14,0x15,0x9E,0x1A, 81b46d8ef2Safresh1 /*4_*/0x20,0xA0,0xE2,0xE4,0xE0,0xE1,0xE3,0xE5,0xE7,0xF1,0xA2,0x2E,0x3C,0x28,0x2B,0x7C, 82b46d8ef2Safresh1 /*5_*/0x26,0xE9,0xEA,0xEB,0xE8,0xED,0xEE,0xEF,0xEC,0xDF,0x21,0x24,0x2A,0x29,0x3B,0x5E, 83b46d8ef2Safresh1 /*6_*/0x2D,0x2F,0xC2,0xC4,0xC0,0xC1,0xC3,0xC5,0xC7,0xD1,0xA6,0x2C,0x25,0x5F,0x3E,0x3F, 84b46d8ef2Safresh1 /*7_*/0xF8,0xC9,0xCA,0xCB,0xC8,0xCD,0xCE,0xCF,0xCC,0x60,0x3A,0x23,0x40,0x27,0x3D,0x22, 85b46d8ef2Safresh1 /*8_*/0xD8,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xAB,0xBB,0xF0,0xFD,0xFE,0xB1, 86b46d8ef2Safresh1 /*9_*/0xB0,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0xAA,0xBA,0xE6,0xB8,0xC6,0xA4, 87b46d8ef2Safresh1 /*A_*/0xB5,0x7E,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0xA1,0xBF,0xD0,0x5B,0xDE,0xAE, 88b46d8ef2Safresh1 /*B_*/0xAC,0xA3,0xA5,0xB7,0xA9,0xA7,0xB6,0xBC,0xBD,0xBE,0xDD,0xA8,0xAF,0x5D,0xB4,0xD7, 89b46d8ef2Safresh1 /*C_*/0x7B,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xAD,0xF4,0xF6,0xF2,0xF3,0xF5, 90b46d8ef2Safresh1 /*D_*/0x7D,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0xB9,0xFB,0xFC,0xF9,0xFA,0xFF, 91b46d8ef2Safresh1 /*E_*/0x5C,0xF7,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0xB2,0xD4,0xD6,0xD2,0xD3,0xD5, 92b46d8ef2Safresh1 /*F_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xB3,0xDB,0xDC,0xD9,0xDA,0x9F 93b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 94b8851fccSafresh1 }; 95b46d8ef2Safresh1 # endif 96b8851fccSafresh1 97b8851fccSafresh1 /* (Confusingly named) Index is EBCDIC 1047 I8 byte; value is 98b8851fccSafresh1 * EBCDIC 1047 UTF-EBCDIC equivalent */ 99b46d8ef2Safresh1 # ifndef DOINIT 100eac174f2Safresh1 EXTCONST U8 PL_utf2e[256]; 101b46d8ef2Safresh1 # else 102eac174f2Safresh1 EXTCONST U8 PL_utf2e[256] = { 103b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 104b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x37,0x2D,0x2E,0x2F,0x16,0x05,0x15,0x0B,0x0C,0x0D,0x0E,0x0F, 105b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x3C,0x3D,0x32,0x26,0x18,0x19,0x3F,0x27,0x1C,0x1D,0x1E,0x1F, 106b46d8ef2Safresh1 /*2_*/0x40,0x5A,0x7F,0x7B,0x5B,0x6C,0x50,0x7D,0x4D,0x5D,0x5C,0x4E,0x6B,0x60,0x4B,0x61, 107b46d8ef2Safresh1 /*3_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0x7A,0x5E,0x4C,0x7E,0x6E,0x6F, 108b46d8ef2Safresh1 /*4_*/0x7C,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6, 109b46d8ef2Safresh1 /*5_*/0xD7,0xD8,0xD9,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAD,0xE0,0xBD,0x5F,0x6D, 110b46d8ef2Safresh1 /*6_*/0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, 111b46d8ef2Safresh1 /*7_*/0x97,0x98,0x99,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xC0,0x4F,0xD0,0xA1,0x07, 112b46d8ef2Safresh1 /*8_*/0x20,0x21,0x22,0x23,0x24,0x25,0x06,0x17,0x28,0x29,0x2A,0x2B,0x2C,0x09,0x0A,0x1B, 113b46d8ef2Safresh1 /*9_*/0x30,0x31,0x1A,0x33,0x34,0x35,0x36,0x08,0x38,0x39,0x3A,0x3B,0x04,0x14,0x3E,0xFF, 114b46d8ef2Safresh1 /*A_*/0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x51,0x52,0x53,0x54,0x55,0x56, 115b46d8ef2Safresh1 /*B_*/0x57,0x58,0x59,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x70,0x71,0x72,0x73, 116b46d8ef2Safresh1 /*C_*/0x74,0x75,0x76,0x77,0x78,0x80,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x9A,0x9B,0x9C, 117b46d8ef2Safresh1 /*D_*/0x9D,0x9E,0x9F,0xA0,0xAA,0xAB,0xAC,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6, 118b46d8ef2Safresh1 /*E_*/0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBF,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xDA,0xDB, 119b46d8ef2Safresh1 /*F_*/0xDC,0xDD,0xDE,0xDF,0xE1,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xFA,0xFB,0xFC,0xFD,0xFE 120b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 121b8851fccSafresh1 }; 122b46d8ef2Safresh1 # endif 123b8851fccSafresh1 124b8851fccSafresh1 /* (Confusingly named) Index is EBCDIC 1047 UTF-EBCDIC byte; value is 125b8851fccSafresh1 * EBCDIC 1047 I8 equivalent */ 126b46d8ef2Safresh1 # ifndef DOINIT 127eac174f2Safresh1 EXTCONST U8 PL_e2utf[256]; 128b46d8ef2Safresh1 # else 129eac174f2Safresh1 EXTCONST U8 PL_e2utf[256] = { 130b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 131b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x9C,0x09,0x86,0x7F,0x97,0x8D,0x8E,0x0B,0x0C,0x0D,0x0E,0x0F, 132b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x9D,0x0A,0x08,0x87,0x18,0x19,0x92,0x8F,0x1C,0x1D,0x1E,0x1F, 133b46d8ef2Safresh1 /*2_*/0x80,0x81,0x82,0x83,0x84,0x85,0x17,0x1B,0x88,0x89,0x8A,0x8B,0x8C,0x05,0x06,0x07, 134b46d8ef2Safresh1 /*3_*/0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9A,0x9B,0x14,0x15,0x9E,0x1A, 135b46d8ef2Safresh1 /*4_*/0x20,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0x2E,0x3C,0x28,0x2B,0x7C, 136b46d8ef2Safresh1 /*5_*/0x26,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0x21,0x24,0x2A,0x29,0x3B,0x5E, 137b46d8ef2Safresh1 /*6_*/0x2D,0x2F,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0x2C,0x25,0x5F,0x3E,0x3F, 138b46d8ef2Safresh1 /*7_*/0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0x60,0x3A,0x23,0x40,0x27,0x3D,0x22, 139b46d8ef2Safresh1 /*8_*/0xC5,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB, 140b46d8ef2Safresh1 /*9_*/0xCC,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2, 141b46d8ef2Safresh1 /*A_*/0xD3,0x7E,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0xD4,0xD5,0xD6,0x5B,0xD7,0xD8, 142b46d8ef2Safresh1 /*B_*/0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0x5D,0xE6,0xE7, 143b46d8ef2Safresh1 /*C_*/0x7B,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xE8,0xE9,0xEA,0xEB,0xEC,0xED, 144b46d8ef2Safresh1 /*D_*/0x7D,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3, 145b46d8ef2Safresh1 /*E_*/0x5C,0xF4,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA, 146b46d8ef2Safresh1 /*F_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xFB,0xFC,0xFD,0xFE,0xFF,0x9F 147b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 148b8851fccSafresh1 }; 149b46d8ef2Safresh1 # endif 150b8851fccSafresh1 151b46d8ef2Safresh1 /* Index is EBCDIC 1047 UTF-EBCDIC byte; value is UTF8SKIP for start bytes 152b46d8ef2Safresh1 * (including for overlongs); 1 for continuation. Adapted from the shadow 153b46d8ef2Safresh1 * flags table in tr16. The entries marked 9 in tr16 are continuation bytes 154b46d8ef2Safresh1 * and are marked as length 1 here so that we can recover. */ 155b46d8ef2Safresh1 # ifndef DOINIT 156eac174f2Safresh1 EXTCONST U8 PL_utf8skip[256]; 157b46d8ef2Safresh1 # else 158eac174f2Safresh1 EXTCONST U8 PL_utf8skip[256] = { 159b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 160b46d8ef2Safresh1 /*0_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 161b46d8ef2Safresh1 /*1_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 162b46d8ef2Safresh1 /*2_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 163b46d8ef2Safresh1 /*3_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 164b46d8ef2Safresh1 /*4_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 165b46d8ef2Safresh1 /*5_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 166b46d8ef2Safresh1 /*6_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 167b46d8ef2Safresh1 /*7_*/ 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 168b46d8ef2Safresh1 /*8_*/ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 169b46d8ef2Safresh1 /*9_*/ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 170b46d8ef2Safresh1 /*A_*/ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 171b46d8ef2Safresh1 /*B_*/ 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 1, 3, 3, 172b46d8ef2Safresh1 /*C_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 173b46d8ef2Safresh1 /*D_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 4, 174b46d8ef2Safresh1 /*E_*/ 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 5, 5, 5, 175b46d8ef2Safresh1 /*F_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 6, 7, 14, 1 176b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 177b8851fccSafresh1 }; 178b46d8ef2Safresh1 # endif 179b8851fccSafresh1 180b8851fccSafresh1 /* Index is EBCDIC 1047 code point; value is its lowercase equivalent */ 181b46d8ef2Safresh1 # ifndef DOINIT 182eac174f2Safresh1 EXTCONST U8 PL_latin1_lc[256]; 183b46d8ef2Safresh1 # else 184eac174f2Safresh1 EXTCONST U8 PL_latin1_lc[256] = { 185b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 186b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 187b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 188b46d8ef2Safresh1 /*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 189b46d8ef2Safresh1 /*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 190b46d8ef2Safresh1 /*4_*/0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 191b46d8ef2Safresh1 /*5_*/0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 192b46d8ef2Safresh1 /*6_*/0x60,0x61,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 193b46d8ef2Safresh1 /*7_*/0x70,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 194b46d8ef2Safresh1 /*8_*/0x70,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, 195b46d8ef2Safresh1 /*9_*/0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9C,0x9F, 196b46d8ef2Safresh1 /*A_*/0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0x8C,0xAD,0x8E,0xAF, 197b46d8ef2Safresh1 /*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0x8D,0xBB,0xBC,0xBD,0xBE,0xBF, 198b46d8ef2Safresh1 /*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, 199b46d8ef2Safresh1 /*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, 200b46d8ef2Safresh1 /*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xCB,0xCC,0xCD,0xCE,0xCF, 201b46d8ef2Safresh1 /*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xDB,0xDC,0xDD,0xDE,0xFF 202b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 203b8851fccSafresh1 }; 204b46d8ef2Safresh1 # endif 205b8851fccSafresh1 206b8851fccSafresh1 /* Index is EBCDIC 1047 code point; value is its uppercase equivalent. 207b8851fccSafresh1 * The 'mod' in the name means that codepoints whose uppercase is above 255 or 208b8851fccSafresh1 * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */ 209b46d8ef2Safresh1 # ifndef DOINIT 210eac174f2Safresh1 EXTCONST U8 PL_mod_latin1_uc[256]; 211b46d8ef2Safresh1 # else 212eac174f2Safresh1 EXTCONST U8 PL_mod_latin1_uc[256] = { 213b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 214b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 215b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 216b46d8ef2Safresh1 /*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 217b46d8ef2Safresh1 /*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 218b46d8ef2Safresh1 /*4_*/0x40,0x41,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 219b46d8ef2Safresh1 /*5_*/0x50,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0xDF,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 220b46d8ef2Safresh1 /*6_*/0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 221b46d8ef2Safresh1 /*7_*/0x80,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 222b46d8ef2Safresh1 /*8_*/0x80,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0xAC,0xBA,0xAE,0x8F, 223b46d8ef2Safresh1 /*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9E,0x9D,0x9E,0x9F, 224b46d8ef2Safresh1 /*A_*/0xDF,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 225b46d8ef2Safresh1 /*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, 226b46d8ef2Safresh1 /*C_*/0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xEB,0xEC,0xED,0xEE,0xEF, 227b46d8ef2Safresh1 /*D_*/0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xFB,0xFC,0xFD,0xFE,0xDF, 228b46d8ef2Safresh1 /*E_*/0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, 229b46d8ef2Safresh1 /*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF 230b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 231b8851fccSafresh1 }; 232b46d8ef2Safresh1 # endif 233b8851fccSafresh1 234b8851fccSafresh1 /* Index is EBCDIC 1047 code point; For A-Z, value is a-z; for a-z, value 235b8851fccSafresh1 * is A-Z; all other code points map to themselves */ 236b46d8ef2Safresh1 # ifndef DOINIT 237eac174f2Safresh1 EXTCONST U8 PL_fold[256]; 238b46d8ef2Safresh1 # else 239eac174f2Safresh1 EXTCONST U8 PL_fold[256] = { 240eac174f2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 241eac174f2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 242eac174f2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 243eac174f2Safresh1 /*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 244eac174f2Safresh1 /*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 245eac174f2Safresh1 /*4_*/0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 246eac174f2Safresh1 /*5_*/0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 247eac174f2Safresh1 /*6_*/0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 248eac174f2Safresh1 /*7_*/0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 249eac174f2Safresh1 /*8_*/0x80,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, 250eac174f2Safresh1 /*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, 251eac174f2Safresh1 /*A_*/0xA0,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 252eac174f2Safresh1 /*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, 253eac174f2Safresh1 /*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, 254eac174f2Safresh1 /*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, 255eac174f2Safresh1 /*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, 256eac174f2Safresh1 /*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF 257eac174f2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 258eac174f2Safresh1 }; 259eac174f2Safresh1 # endif 260eac174f2Safresh1 261b8851fccSafresh1 /* Index is EBCDIC 1047 code point; value is its other fold-pair equivalent 262b8851fccSafresh1 * (A => a; a => A, etc) in the 0-255 range. If no such equivalent, value is 263b8851fccSafresh1 * the code point itself */ 264b46d8ef2Safresh1 # ifndef DOINIT 265eac174f2Safresh1 EXTCONST U8 PL_fold_latin1[256]; 266b46d8ef2Safresh1 # else 267eac174f2Safresh1 EXTCONST U8 PL_fold_latin1[256] = { 268b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 269b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 270b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 271b46d8ef2Safresh1 /*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 272b46d8ef2Safresh1 /*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 273b46d8ef2Safresh1 /*4_*/0x40,0x41,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 274b46d8ef2Safresh1 /*5_*/0x50,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 275b46d8ef2Safresh1 /*6_*/0x60,0x61,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 276b46d8ef2Safresh1 /*7_*/0x80,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 277b46d8ef2Safresh1 /*8_*/0x70,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0xAC,0xBA,0xAE,0x8F, 278b46d8ef2Safresh1 /*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9E,0x9D,0x9C,0x9F, 279b46d8ef2Safresh1 /*A_*/0xA0,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0x8C,0xAD,0x8E,0xAF, 280b46d8ef2Safresh1 /*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0x8D,0xBB,0xBC,0xBD,0xBE,0xBF, 281b46d8ef2Safresh1 /*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xEB,0xEC,0xED,0xEE,0xEF, 282b46d8ef2Safresh1 /*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xFB,0xFC,0xFD,0xFE,0xDF, 283b46d8ef2Safresh1 /*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xCB,0xCC,0xCD,0xCE,0xCF, 284b46d8ef2Safresh1 /*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xDB,0xDC,0xDD,0xDE,0xFF 285b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 286b8851fccSafresh1 }; 287b46d8ef2Safresh1 # endif 288b46d8ef2Safresh1 289b46d8ef2Safresh1 290b46d8ef2Safresh1 /* The table below is adapted from 29156d68f1eSafresh1 * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ 292b46d8ef2Safresh1 * See copyright notice at the beginning of this file. 293b46d8ef2Safresh1 */ 294b46d8ef2Safresh1 295b46d8ef2Safresh1 # ifndef DOINIT 296eac174f2Safresh1 EXTCONST U8 PL_extended_utf8_dfa_tab[416]; 297b46d8ef2Safresh1 # else 298eac174f2Safresh1 EXTCONST U8 PL_extended_utf8_dfa_tab[416] = { 299b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 300b46d8ef2Safresh1 /*0_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301b46d8ef2Safresh1 /*1_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302b46d8ef2Safresh1 /*2_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303b46d8ef2Safresh1 /*3_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304b46d8ef2Safresh1 /*4_ */ 0, 7, 7, 8, 8, 9, 9, 9, 9, 10, 10, 0, 0, 0, 0, 0, 305b46d8ef2Safresh1 /*5_ */ 0, 10, 10, 10, 10, 10, 10, 11, 11, 11, 0, 0, 0, 0, 0, 0, 306b46d8ef2Safresh1 /*6_ */ 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 307b46d8ef2Safresh1 /*7_ */ 11, 11, 11, 11, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 308b46d8ef2Safresh1 /*8_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 309b46d8ef2Safresh1 /*9_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 310b46d8ef2Safresh1 /*A_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 311b46d8ef2Safresh1 /*B_ */ 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 3, 3, 0, 3, 3, 312b46d8ef2Safresh1 /*C_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 313b46d8ef2Safresh1 /*D_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 12, 4, 4, 4, 314b46d8ef2Safresh1 /*E_ */ 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 13, 5, 5, 315b46d8ef2Safresh1 /*F_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 14, 6, 15, 1, 0, 316b46d8ef2Safresh1 /*N0= 0*/ 0, 1, 16, 32, 48, 64, 80, 1, 1, 1, 1, 1, 96,112,128,144, 317b46d8ef2Safresh1 /*N1= 16*/ 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 318b46d8ef2Safresh1 /*N2= 32*/ 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, 1, 1, 1, 1, 319b46d8ef2Safresh1 /*N3= 48*/ 1, 1, 1, 1, 1, 1, 1, 32, 32, 32, 32, 32, 1, 1, 1, 1, 320b46d8ef2Safresh1 /*N4= 64*/ 1, 1, 1, 1, 1, 1, 1, 48, 48, 48, 48, 48, 1, 1, 1, 1, 321b46d8ef2Safresh1 /*N5= 80*/ 1, 1, 1, 1, 1, 1, 1, 64, 64, 64, 64, 64, 1, 1, 1, 1, 322b46d8ef2Safresh1 /*N6= 96*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 32, 1, 1, 1, 1, 323b46d8ef2Safresh1 /*N7=112*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48, 48, 1, 1, 1, 1, 324b46d8ef2Safresh1 /*N8=128*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 64, 64, 64, 1, 1, 1, 1, 325b46d8ef2Safresh1 /*N9=144*/ 1, 1, 1, 1, 1, 1, 1, 1, 80, 80, 80, 80, 1, 1, 1, 1 326b46d8ef2Safresh1 /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15*/ 327b46d8ef2Safresh1 }; 328b46d8ef2Safresh1 # endif 329b46d8ef2Safresh1 330b46d8ef2Safresh1 331b46d8ef2Safresh1 /* The table below is adapted from 33256d68f1eSafresh1 * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ 333b46d8ef2Safresh1 * See copyright notice at the beginning of this file. 334b46d8ef2Safresh1 */ 335b46d8ef2Safresh1 336b46d8ef2Safresh1 # ifndef DOINIT 337eac174f2Safresh1 EXTCONST U16 PL_strict_utf8_dfa_tab[624]; 338b46d8ef2Safresh1 # else 339eac174f2Safresh1 EXTCONST U16 PL_strict_utf8_dfa_tab[624] = { 340b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 341b46d8ef2Safresh1 /*0_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 342b46d8ef2Safresh1 /*1_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343b46d8ef2Safresh1 /*2_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 344b46d8ef2Safresh1 /*3_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 345b46d8ef2Safresh1 /*4_ */ 0, 10, 11, 12, 12, 12, 12, 12, 12, 13, 14, 0, 0, 0, 0, 0, 346b46d8ef2Safresh1 /*5_ */ 0, 13, 14, 13, 14, 15, 16, 17, 18, 17, 0, 0, 0, 0, 0, 0, 347b46d8ef2Safresh1 /*6_ */ 0, 0, 18, 17, 18, 19, 20, 17, 18, 17, 18, 0, 0, 0, 0, 0, 348b46d8ef2Safresh1 /*7_ */ 17, 18, 21, 22, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 349b46d8ef2Safresh1 /*8_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 350b46d8ef2Safresh1 /*9_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 351b46d8ef2Safresh1 /*A_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 352b46d8ef2Safresh1 /*B_ */ 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 3, 3, 0, 3, 3, 353b46d8ef2Safresh1 /*C_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 354b46d8ef2Safresh1 /*D_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 8, 6, 4, 5, 355b46d8ef2Safresh1 /*E_ */ 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 5, 9, 7, 1, 356b46d8ef2Safresh1 /*F_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 357b46d8ef2Safresh1 /*N0 = 0*/ 0, 1, 23, 46, 69,138,115,184, 92,161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 358b46d8ef2Safresh1 /*N1 = 23*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 359b46d8ef2Safresh1 /*N2 = 46*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 360b46d8ef2Safresh1 /*N3 = 69*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 361b46d8ef2Safresh1 /*N4 = 92*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 362b46d8ef2Safresh1 /*N5 =115*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 46,207, 363b46d8ef2Safresh1 /*N6 =138*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,276, 364b46d8ef2Safresh1 /*N7 =161*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 69,322, 69,322, 69,322, 69,322, 69,322, 365b46d8ef2Safresh1 /*N8 =184*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 69,322, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 366b46d8ef2Safresh1 /*N9 =207*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 23, 23, 23, 23,230,253, 23, 23, 23, 23, 23,299, 367b46d8ef2Safresh1 /*N10=230*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 368b46d8ef2Safresh1 /*N11=253*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 369b46d8ef2Safresh1 /*N12=276*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,299, 370b46d8ef2Safresh1 /*N13=299*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 37156d68f1eSafresh1 /*N14=322*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,345, 37256d68f1eSafresh1 /*N15=345*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,299 373b46d8ef2Safresh1 /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22*/ 374b46d8ef2Safresh1 }; 375b46d8ef2Safresh1 # endif 376b46d8ef2Safresh1 377b46d8ef2Safresh1 378b46d8ef2Safresh1 /* The table below is adapted from 37956d68f1eSafresh1 * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ 380b46d8ef2Safresh1 * See copyright notice at the beginning of this file. 381b46d8ef2Safresh1 */ 382b46d8ef2Safresh1 383b46d8ef2Safresh1 # ifndef DOINIT 384eac174f2Safresh1 EXTCONST U8 PL_c9_utf8_dfa_tab[368]; 385b46d8ef2Safresh1 # else 386eac174f2Safresh1 EXTCONST U8 PL_c9_utf8_dfa_tab[368] = { 387b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 388b46d8ef2Safresh1 /*0_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 389b46d8ef2Safresh1 /*1_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390b46d8ef2Safresh1 /*2_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391b46d8ef2Safresh1 /*3_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392b46d8ef2Safresh1 /*4_ */ 0, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 0, 0, 0, 0, 0, 393b46d8ef2Safresh1 /*5_ */ 0, 11, 11, 11, 11, 11, 11, 12, 12, 12, 0, 0, 0, 0, 0, 0, 394b46d8ef2Safresh1 /*6_ */ 0, 0, 12, 12, 12, 13, 13, 12, 12, 12, 12, 0, 0, 0, 0, 0, 395b46d8ef2Safresh1 /*7_ */ 12, 12, 12, 12, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 396b46d8ef2Safresh1 /*8_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 397b46d8ef2Safresh1 /*9_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 398b46d8ef2Safresh1 /*A_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 399b46d8ef2Safresh1 /*B_ */ 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 3, 3, 0, 3, 3, 400b46d8ef2Safresh1 /*C_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 401b46d8ef2Safresh1 /*D_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 5, 4, 4, 402b46d8ef2Safresh1 /*E_ */ 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 8, 7, 1, 403b46d8ef2Safresh1 /*F_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 404b46d8ef2Safresh1 /*N0= 0*/ 0, 1, 14, 28, 42, 70, 56, 98, 84, 1, 1, 1, 1, 1, 405b46d8ef2Safresh1 /*N1=14*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 406b46d8ef2Safresh1 /*N2=28*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 14, 14, 14, 14, 14, 407b46d8ef2Safresh1 /*N3=42*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 28, 28, 28, 28, 28, 408b46d8ef2Safresh1 /*N4=56*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 28, 28, 409b46d8ef2Safresh1 /*N5=70*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 28, 28, 28, 28, 1, 410b46d8ef2Safresh1 /*N6=84*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42, 42, 42, 411b46d8ef2Safresh1 /*N7=98*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 42, 1, 1, 1, 1 412b46d8ef2Safresh1 /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13*/ 413b46d8ef2Safresh1 }; 414b46d8ef2Safresh1 # endif 415b8851fccSafresh1 416b8851fccSafresh1 #endif /* EBCDIC 1047 */ 417b8851fccSafresh1 418b8851fccSafresh1 #if 'A' == 193 /* EBCDIC 037 */ \ 419b8851fccSafresh1 && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \ 420b8851fccSafresh1 && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \ 421b46d8ef2Safresh1 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37 422b8851fccSafresh1 423b8851fccSafresh1 /* Index is ASCII platform code point; value is EBCDIC 037 equivalent */ 424b46d8ef2Safresh1 # ifndef DOINIT 425eac174f2Safresh1 EXTCONST U8 PL_a2e[256]; 426b46d8ef2Safresh1 # else 427eac174f2Safresh1 EXTCONST U8 PL_a2e[256] = { 428b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 429b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x37,0x2D,0x2E,0x2F,0x16,0x05,0x25,0x0B,0x0C,0x0D,0x0E,0x0F, 430b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x3C,0x3D,0x32,0x26,0x18,0x19,0x3F,0x27,0x1C,0x1D,0x1E,0x1F, 431b46d8ef2Safresh1 /*2_*/0x40,0x5A,0x7F,0x7B,0x5B,0x6C,0x50,0x7D,0x4D,0x5D,0x5C,0x4E,0x6B,0x60,0x4B,0x61, 432b46d8ef2Safresh1 /*3_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0x7A,0x5E,0x4C,0x7E,0x6E,0x6F, 433b46d8ef2Safresh1 /*4_*/0x7C,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6, 434b46d8ef2Safresh1 /*5_*/0xD7,0xD8,0xD9,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xBA,0xE0,0xBB,0xB0,0x6D, 435b46d8ef2Safresh1 /*6_*/0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, 436b46d8ef2Safresh1 /*7_*/0x97,0x98,0x99,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xC0,0x4F,0xD0,0xA1,0x07, 437b46d8ef2Safresh1 /*8_*/0x20,0x21,0x22,0x23,0x24,0x15,0x06,0x17,0x28,0x29,0x2A,0x2B,0x2C,0x09,0x0A,0x1B, 438b46d8ef2Safresh1 /*9_*/0x30,0x31,0x1A,0x33,0x34,0x35,0x36,0x08,0x38,0x39,0x3A,0x3B,0x04,0x14,0x3E,0xFF, 439b46d8ef2Safresh1 /*A_*/0x41,0xAA,0x4A,0xB1,0x9F,0xB2,0x6A,0xB5,0xBD,0xB4,0x9A,0x8A,0x5F,0xCA,0xAF,0xBC, 440b46d8ef2Safresh1 /*B_*/0x90,0x8F,0xEA,0xFA,0xBE,0xA0,0xB6,0xB3,0x9D,0xDA,0x9B,0x8B,0xB7,0xB8,0xB9,0xAB, 441b46d8ef2Safresh1 /*C_*/0x64,0x65,0x62,0x66,0x63,0x67,0x9E,0x68,0x74,0x71,0x72,0x73,0x78,0x75,0x76,0x77, 442b46d8ef2Safresh1 /*D_*/0xAC,0x69,0xED,0xEE,0xEB,0xEF,0xEC,0xBF,0x80,0xFD,0xFE,0xFB,0xFC,0xAD,0xAE,0x59, 443b46d8ef2Safresh1 /*E_*/0x44,0x45,0x42,0x46,0x43,0x47,0x9C,0x48,0x54,0x51,0x52,0x53,0x58,0x55,0x56,0x57, 444b46d8ef2Safresh1 /*F_*/0x8C,0x49,0xCD,0xCE,0xCB,0xCF,0xCC,0xE1,0x70,0xDD,0xDE,0xDB,0xDC,0x8D,0x8E,0xDF 445b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 446b8851fccSafresh1 }; 447b46d8ef2Safresh1 # endif 448b8851fccSafresh1 449b8851fccSafresh1 /* Index is EBCDIC 037 code point; value is ASCII platform equivalent */ 450b46d8ef2Safresh1 # ifndef DOINIT 451eac174f2Safresh1 EXTCONST U8 PL_e2a[256]; 452b46d8ef2Safresh1 # else 453eac174f2Safresh1 EXTCONST U8 PL_e2a[256] = { 454b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 455b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x9C,0x09,0x86,0x7F,0x97,0x8D,0x8E,0x0B,0x0C,0x0D,0x0E,0x0F, 456b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x9D,0x85,0x08,0x87,0x18,0x19,0x92,0x8F,0x1C,0x1D,0x1E,0x1F, 457b46d8ef2Safresh1 /*2_*/0x80,0x81,0x82,0x83,0x84,0x0A,0x17,0x1B,0x88,0x89,0x8A,0x8B,0x8C,0x05,0x06,0x07, 458b46d8ef2Safresh1 /*3_*/0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9A,0x9B,0x14,0x15,0x9E,0x1A, 459b46d8ef2Safresh1 /*4_*/0x20,0xA0,0xE2,0xE4,0xE0,0xE1,0xE3,0xE5,0xE7,0xF1,0xA2,0x2E,0x3C,0x28,0x2B,0x7C, 460b46d8ef2Safresh1 /*5_*/0x26,0xE9,0xEA,0xEB,0xE8,0xED,0xEE,0xEF,0xEC,0xDF,0x21,0x24,0x2A,0x29,0x3B,0xAC, 461b46d8ef2Safresh1 /*6_*/0x2D,0x2F,0xC2,0xC4,0xC0,0xC1,0xC3,0xC5,0xC7,0xD1,0xA6,0x2C,0x25,0x5F,0x3E,0x3F, 462b46d8ef2Safresh1 /*7_*/0xF8,0xC9,0xCA,0xCB,0xC8,0xCD,0xCE,0xCF,0xCC,0x60,0x3A,0x23,0x40,0x27,0x3D,0x22, 463b46d8ef2Safresh1 /*8_*/0xD8,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xAB,0xBB,0xF0,0xFD,0xFE,0xB1, 464b46d8ef2Safresh1 /*9_*/0xB0,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0xAA,0xBA,0xE6,0xB8,0xC6,0xA4, 465b46d8ef2Safresh1 /*A_*/0xB5,0x7E,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0xA1,0xBF,0xD0,0xDD,0xDE,0xAE, 466b46d8ef2Safresh1 /*B_*/0x5E,0xA3,0xA5,0xB7,0xA9,0xA7,0xB6,0xBC,0xBD,0xBE,0x5B,0x5D,0xAF,0xA8,0xB4,0xD7, 467b46d8ef2Safresh1 /*C_*/0x7B,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xAD,0xF4,0xF6,0xF2,0xF3,0xF5, 468b46d8ef2Safresh1 /*D_*/0x7D,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0xB9,0xFB,0xFC,0xF9,0xFA,0xFF, 469b46d8ef2Safresh1 /*E_*/0x5C,0xF7,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0xB2,0xD4,0xD6,0xD2,0xD3,0xD5, 470b46d8ef2Safresh1 /*F_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xB3,0xDB,0xDC,0xD9,0xDA,0x9F 471b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 472b8851fccSafresh1 }; 473b46d8ef2Safresh1 # endif 474b8851fccSafresh1 475b8851fccSafresh1 /* (Confusingly named) Index is EBCDIC 037 I8 byte; value is 476b8851fccSafresh1 * EBCDIC 037 UTF-EBCDIC equivalent */ 477b46d8ef2Safresh1 # ifndef DOINIT 478eac174f2Safresh1 EXTCONST U8 PL_utf2e[256]; 479b46d8ef2Safresh1 # else 480eac174f2Safresh1 EXTCONST U8 PL_utf2e[256] = { 481b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 482b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x37,0x2D,0x2E,0x2F,0x16,0x05,0x25,0x0B,0x0C,0x0D,0x0E,0x0F, 483b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x3C,0x3D,0x32,0x26,0x18,0x19,0x3F,0x27,0x1C,0x1D,0x1E,0x1F, 484b46d8ef2Safresh1 /*2_*/0x40,0x5A,0x7F,0x7B,0x5B,0x6C,0x50,0x7D,0x4D,0x5D,0x5C,0x4E,0x6B,0x60,0x4B,0x61, 485b46d8ef2Safresh1 /*3_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0x7A,0x5E,0x4C,0x7E,0x6E,0x6F, 486b46d8ef2Safresh1 /*4_*/0x7C,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6, 487b46d8ef2Safresh1 /*5_*/0xD7,0xD8,0xD9,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xBA,0xE0,0xBB,0xB0,0x6D, 488b46d8ef2Safresh1 /*6_*/0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, 489b46d8ef2Safresh1 /*7_*/0x97,0x98,0x99,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xC0,0x4F,0xD0,0xA1,0x07, 490b46d8ef2Safresh1 /*8_*/0x20,0x21,0x22,0x23,0x24,0x15,0x06,0x17,0x28,0x29,0x2A,0x2B,0x2C,0x09,0x0A,0x1B, 491b46d8ef2Safresh1 /*9_*/0x30,0x31,0x1A,0x33,0x34,0x35,0x36,0x08,0x38,0x39,0x3A,0x3B,0x04,0x14,0x3E,0xFF, 492b46d8ef2Safresh1 /*A_*/0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x51,0x52,0x53,0x54,0x55,0x56, 493b46d8ef2Safresh1 /*B_*/0x57,0x58,0x59,0x5F,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x70,0x71,0x72, 494b46d8ef2Safresh1 /*C_*/0x73,0x74,0x75,0x76,0x77,0x78,0x80,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x9A,0x9B, 495b46d8ef2Safresh1 /*D_*/0x9C,0x9D,0x9E,0x9F,0xA0,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB1,0xB2,0xB3,0xB4,0xB5, 496b46d8ef2Safresh1 /*E_*/0xB6,0xB7,0xB8,0xB9,0xBC,0xBD,0xBE,0xBF,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xDA,0xDB, 497b46d8ef2Safresh1 /*F_*/0xDC,0xDD,0xDE,0xDF,0xE1,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xFA,0xFB,0xFC,0xFD,0xFE 498b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 499b8851fccSafresh1 }; 500b46d8ef2Safresh1 # endif 501b8851fccSafresh1 502b8851fccSafresh1 /* (Confusingly named) Index is EBCDIC 037 UTF-EBCDIC byte; value is 503b8851fccSafresh1 * EBCDIC 037 I8 equivalent */ 504b46d8ef2Safresh1 # ifndef DOINIT 505eac174f2Safresh1 EXTCONST U8 PL_e2utf[256]; 506b46d8ef2Safresh1 # else 507eac174f2Safresh1 EXTCONST U8 PL_e2utf[256] = { 508b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 509b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x9C,0x09,0x86,0x7F,0x97,0x8D,0x8E,0x0B,0x0C,0x0D,0x0E,0x0F, 510b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x9D,0x85,0x08,0x87,0x18,0x19,0x92,0x8F,0x1C,0x1D,0x1E,0x1F, 511b46d8ef2Safresh1 /*2_*/0x80,0x81,0x82,0x83,0x84,0x0A,0x17,0x1B,0x88,0x89,0x8A,0x8B,0x8C,0x05,0x06,0x07, 512b46d8ef2Safresh1 /*3_*/0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9A,0x9B,0x14,0x15,0x9E,0x1A, 513b46d8ef2Safresh1 /*4_*/0x20,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0x2E,0x3C,0x28,0x2B,0x7C, 514b46d8ef2Safresh1 /*5_*/0x26,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0x21,0x24,0x2A,0x29,0x3B,0xB3, 515b46d8ef2Safresh1 /*6_*/0x2D,0x2F,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0x2C,0x25,0x5F,0x3E,0x3F, 516b46d8ef2Safresh1 /*7_*/0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x60,0x3A,0x23,0x40,0x27,0x3D,0x22, 517b46d8ef2Safresh1 /*8_*/0xC6,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC, 518b46d8ef2Safresh1 /*9_*/0xCD,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3, 519b46d8ef2Safresh1 /*A_*/0xD4,0x7E,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA, 520b46d8ef2Safresh1 /*B_*/0x5E,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0x5B,0x5D,0xE4,0xE5,0xE6,0xE7, 521b46d8ef2Safresh1 /*C_*/0x7B,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xE8,0xE9,0xEA,0xEB,0xEC,0xED, 522b46d8ef2Safresh1 /*D_*/0x7D,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3, 523b46d8ef2Safresh1 /*E_*/0x5C,0xF4,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA, 524b46d8ef2Safresh1 /*F_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xFB,0xFC,0xFD,0xFE,0xFF,0x9F 525b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 526b8851fccSafresh1 }; 527b46d8ef2Safresh1 # endif 528b8851fccSafresh1 529b46d8ef2Safresh1 /* Index is EBCDIC 037 UTF-EBCDIC byte; value is UTF8SKIP for start bytes 530b46d8ef2Safresh1 * (including for overlongs); 1 for continuation. Adapted from the shadow 531b46d8ef2Safresh1 * flags table in tr16. The entries marked 9 in tr16 are continuation bytes 532b46d8ef2Safresh1 * and are marked as length 1 here so that we can recover. */ 533b46d8ef2Safresh1 # ifndef DOINIT 534eac174f2Safresh1 EXTCONST U8 PL_utf8skip[256]; 535b46d8ef2Safresh1 # else 536eac174f2Safresh1 EXTCONST U8 PL_utf8skip[256] = { 537b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 538b46d8ef2Safresh1 /*0_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 539b46d8ef2Safresh1 /*1_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 540b46d8ef2Safresh1 /*2_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 541b46d8ef2Safresh1 /*3_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 542b46d8ef2Safresh1 /*4_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 543b46d8ef2Safresh1 /*5_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 544b46d8ef2Safresh1 /*6_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 545b46d8ef2Safresh1 /*7_*/ 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 546b46d8ef2Safresh1 /*8_*/ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 547b46d8ef2Safresh1 /*9_*/ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 548b46d8ef2Safresh1 /*A_*/ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 549b46d8ef2Safresh1 /*B_*/ 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 550b46d8ef2Safresh1 /*C_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 551b46d8ef2Safresh1 /*D_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 4, 552b46d8ef2Safresh1 /*E_*/ 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 5, 5, 5, 553b46d8ef2Safresh1 /*F_*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 6, 7, 14, 1 554b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 555b8851fccSafresh1 }; 556b46d8ef2Safresh1 # endif 557b8851fccSafresh1 558b8851fccSafresh1 /* Index is EBCDIC 037 code point; value is its lowercase equivalent */ 559b46d8ef2Safresh1 # ifndef DOINIT 560eac174f2Safresh1 EXTCONST U8 PL_latin1_lc[256]; 561b46d8ef2Safresh1 # else 562eac174f2Safresh1 EXTCONST U8 PL_latin1_lc[256] = { 563b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 564b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 565b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 566b46d8ef2Safresh1 /*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 567b46d8ef2Safresh1 /*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 568b46d8ef2Safresh1 /*4_*/0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 569b46d8ef2Safresh1 /*5_*/0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 570b46d8ef2Safresh1 /*6_*/0x60,0x61,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 571b46d8ef2Safresh1 /*7_*/0x70,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 572b46d8ef2Safresh1 /*8_*/0x70,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, 573b46d8ef2Safresh1 /*9_*/0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9C,0x9F, 574b46d8ef2Safresh1 /*A_*/0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0x8C,0x8D,0x8E,0xAF, 575b46d8ef2Safresh1 /*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, 576b46d8ef2Safresh1 /*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, 577b46d8ef2Safresh1 /*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, 578b46d8ef2Safresh1 /*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xCB,0xCC,0xCD,0xCE,0xCF, 579b46d8ef2Safresh1 /*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xDB,0xDC,0xDD,0xDE,0xFF 580b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 581b8851fccSafresh1 }; 582b46d8ef2Safresh1 # endif 583b8851fccSafresh1 584b8851fccSafresh1 /* Index is EBCDIC 037 code point; value is its uppercase equivalent. 585b8851fccSafresh1 * The 'mod' in the name means that codepoints whose uppercase is above 255 or 586b8851fccSafresh1 * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */ 587b46d8ef2Safresh1 # ifndef DOINIT 588eac174f2Safresh1 EXTCONST U8 PL_mod_latin1_uc[256]; 589b46d8ef2Safresh1 # else 590eac174f2Safresh1 EXTCONST U8 PL_mod_latin1_uc[256] = { 591b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 592b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 593b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 594b46d8ef2Safresh1 /*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 595b46d8ef2Safresh1 /*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 596b46d8ef2Safresh1 /*4_*/0x40,0x41,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 597b46d8ef2Safresh1 /*5_*/0x50,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0xDF,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 598b46d8ef2Safresh1 /*6_*/0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 599b46d8ef2Safresh1 /*7_*/0x80,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 600b46d8ef2Safresh1 /*8_*/0x80,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0xAC,0xAD,0xAE,0x8F, 601b46d8ef2Safresh1 /*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9E,0x9D,0x9E,0x9F, 602b46d8ef2Safresh1 /*A_*/0xDF,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 603b46d8ef2Safresh1 /*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, 604b46d8ef2Safresh1 /*C_*/0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xEB,0xEC,0xED,0xEE,0xEF, 605b46d8ef2Safresh1 /*D_*/0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xFB,0xFC,0xFD,0xFE,0xDF, 606b46d8ef2Safresh1 /*E_*/0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, 607b46d8ef2Safresh1 /*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF 608b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 609b8851fccSafresh1 }; 610b46d8ef2Safresh1 # endif 611b8851fccSafresh1 612b8851fccSafresh1 /* Index is EBCDIC 037 code point; For A-Z, value is a-z; for a-z, value 613b8851fccSafresh1 * is A-Z; all other code points map to themselves */ 614b46d8ef2Safresh1 # ifndef DOINIT 615eac174f2Safresh1 EXTCONST U8 PL_fold[256]; 616b46d8ef2Safresh1 # else 617eac174f2Safresh1 EXTCONST U8 PL_fold[256] = { 618eac174f2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 619eac174f2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 620eac174f2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 621eac174f2Safresh1 /*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 622eac174f2Safresh1 /*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 623eac174f2Safresh1 /*4_*/0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 624eac174f2Safresh1 /*5_*/0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 625eac174f2Safresh1 /*6_*/0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 626eac174f2Safresh1 /*7_*/0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 627eac174f2Safresh1 /*8_*/0x80,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, 628eac174f2Safresh1 /*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, 629eac174f2Safresh1 /*A_*/0xA0,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, 630eac174f2Safresh1 /*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, 631eac174f2Safresh1 /*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, 632eac174f2Safresh1 /*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, 633eac174f2Safresh1 /*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, 634eac174f2Safresh1 /*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF 635eac174f2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 636eac174f2Safresh1 }; 637eac174f2Safresh1 # endif 638eac174f2Safresh1 639b8851fccSafresh1 /* Index is EBCDIC 037 code point; value is its other fold-pair equivalent 640b8851fccSafresh1 * (A => a; a => A, etc) in the 0-255 range. If no such equivalent, value is 641b8851fccSafresh1 * the code point itself */ 642b46d8ef2Safresh1 # ifndef DOINIT 643eac174f2Safresh1 EXTCONST U8 PL_fold_latin1[256]; 644b46d8ef2Safresh1 # else 645eac174f2Safresh1 EXTCONST U8 PL_fold_latin1[256] = { 646b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 647b46d8ef2Safresh1 /*0_*/0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 648b46d8ef2Safresh1 /*1_*/0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 649b46d8ef2Safresh1 /*2_*/0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 650b46d8ef2Safresh1 /*3_*/0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 651b46d8ef2Safresh1 /*4_*/0x40,0x41,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 652b46d8ef2Safresh1 /*5_*/0x50,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 653b46d8ef2Safresh1 /*6_*/0x60,0x61,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 654b46d8ef2Safresh1 /*7_*/0x80,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 655b46d8ef2Safresh1 /*8_*/0x70,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0x8A,0x8B,0xAC,0xAD,0xAE,0x8F, 656b46d8ef2Safresh1 /*9_*/0x90,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x9A,0x9B,0x9E,0x9D,0x9C,0x9F, 657b46d8ef2Safresh1 /*A_*/0xA0,0xA1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xAA,0xAB,0x8C,0x8D,0x8E,0xAF, 658b46d8ef2Safresh1 /*B_*/0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, 659b46d8ef2Safresh1 /*C_*/0xC0,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0xCA,0xEB,0xEC,0xED,0xEE,0xEF, 660b46d8ef2Safresh1 /*D_*/0xD0,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xDA,0xFB,0xFC,0xFD,0xFE,0xDF, 661b46d8ef2Safresh1 /*E_*/0xE0,0xE1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xEA,0xCB,0xCC,0xCD,0xCE,0xCF, 662b46d8ef2Safresh1 /*F_*/0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xDB,0xDC,0xDD,0xDE,0xFF 663b8851fccSafresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 664b8851fccSafresh1 }; 665b46d8ef2Safresh1 # endif 666b46d8ef2Safresh1 667b46d8ef2Safresh1 668b46d8ef2Safresh1 /* The table below is adapted from 66956d68f1eSafresh1 * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ 670b46d8ef2Safresh1 * See copyright notice at the beginning of this file. 671b46d8ef2Safresh1 */ 672b46d8ef2Safresh1 673b46d8ef2Safresh1 # ifndef DOINIT 674eac174f2Safresh1 EXTCONST U8 PL_extended_utf8_dfa_tab[416]; 675b46d8ef2Safresh1 # else 676eac174f2Safresh1 EXTCONST U8 PL_extended_utf8_dfa_tab[416] = { 677b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 678b46d8ef2Safresh1 /*0_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679b46d8ef2Safresh1 /*1_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 680b46d8ef2Safresh1 /*2_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 681b46d8ef2Safresh1 /*3_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 682b46d8ef2Safresh1 /*4_ */ 0, 7, 7, 8, 8, 9, 9, 9, 9, 10, 10, 0, 0, 0, 0, 0, 683b46d8ef2Safresh1 /*5_ */ 0, 10, 10, 10, 10, 10, 10, 11, 11, 11, 0, 0, 0, 0, 0, 11, 684b46d8ef2Safresh1 /*6_ */ 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 685b46d8ef2Safresh1 /*7_ */ 11, 11, 11, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 686b46d8ef2Safresh1 /*8_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 687b46d8ef2Safresh1 /*9_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 688b46d8ef2Safresh1 /*A_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 689b46d8ef2Safresh1 /*B_ */ 0, 2, 2, 2, 2, 2, 1, 3, 3, 3, 0, 0, 3, 3, 3, 3, 690b46d8ef2Safresh1 /*C_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 691b46d8ef2Safresh1 /*D_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 12, 4, 4, 4, 692b46d8ef2Safresh1 /*E_ */ 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 13, 5, 5, 693b46d8ef2Safresh1 /*F_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 14, 6, 15, 1, 0, 694b46d8ef2Safresh1 /*N0= 0*/ 0, 1, 16, 32, 48, 64, 80, 1, 1, 1, 1, 1, 96,112,128,144, 695b46d8ef2Safresh1 /*N1= 16*/ 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 696b46d8ef2Safresh1 /*N2= 32*/ 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, 1, 1, 1, 1, 697b46d8ef2Safresh1 /*N3= 48*/ 1, 1, 1, 1, 1, 1, 1, 32, 32, 32, 32, 32, 1, 1, 1, 1, 698b46d8ef2Safresh1 /*N4= 64*/ 1, 1, 1, 1, 1, 1, 1, 48, 48, 48, 48, 48, 1, 1, 1, 1, 699b46d8ef2Safresh1 /*N5= 80*/ 1, 1, 1, 1, 1, 1, 1, 64, 64, 64, 64, 64, 1, 1, 1, 1, 700b46d8ef2Safresh1 /*N6= 96*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 32, 1, 1, 1, 1, 701b46d8ef2Safresh1 /*N7=112*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 48, 48, 1, 1, 1, 1, 702b46d8ef2Safresh1 /*N8=128*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 64, 64, 64, 1, 1, 1, 1, 703b46d8ef2Safresh1 /*N9=144*/ 1, 1, 1, 1, 1, 1, 1, 1, 80, 80, 80, 80, 1, 1, 1, 1 704b46d8ef2Safresh1 /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15*/ 705b46d8ef2Safresh1 }; 706b46d8ef2Safresh1 # endif 707b46d8ef2Safresh1 708b46d8ef2Safresh1 709b46d8ef2Safresh1 /* The table below is adapted from 71056d68f1eSafresh1 * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ 711b46d8ef2Safresh1 * See copyright notice at the beginning of this file. 712b46d8ef2Safresh1 */ 713b46d8ef2Safresh1 714b46d8ef2Safresh1 # ifndef DOINIT 715eac174f2Safresh1 EXTCONST U16 PL_strict_utf8_dfa_tab[624]; 716b46d8ef2Safresh1 # else 717eac174f2Safresh1 EXTCONST U16 PL_strict_utf8_dfa_tab[624] = { 718b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 719b46d8ef2Safresh1 /*0_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 720b46d8ef2Safresh1 /*1_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 721b46d8ef2Safresh1 /*2_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 722b46d8ef2Safresh1 /*3_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 723b46d8ef2Safresh1 /*4_ */ 0, 10, 11, 12, 12, 12, 12, 12, 12, 13, 14, 0, 0, 0, 0, 0, 724b46d8ef2Safresh1 /*5_ */ 0, 13, 14, 13, 14, 15, 16, 17, 18, 17, 0, 0, 0, 0, 0, 18, 725b46d8ef2Safresh1 /*6_ */ 0, 0, 17, 18, 19, 20, 17, 18, 17, 18, 17, 0, 0, 0, 0, 0, 726b46d8ef2Safresh1 /*7_ */ 18, 21, 22, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 727b46d8ef2Safresh1 /*8_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 728b46d8ef2Safresh1 /*9_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 729b46d8ef2Safresh1 /*A_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 730b46d8ef2Safresh1 /*B_ */ 0, 2, 2, 2, 2, 2, 1, 3, 3, 3, 0, 0, 3, 3, 3, 3, 731b46d8ef2Safresh1 /*C_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 732b46d8ef2Safresh1 /*D_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 8, 6, 4, 5, 733b46d8ef2Safresh1 /*E_ */ 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 5, 9, 7, 1, 734b46d8ef2Safresh1 /*F_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 735b46d8ef2Safresh1 /*N0 = 0*/ 0, 1, 23, 46, 69,138,115,184, 92,161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 736b46d8ef2Safresh1 /*N1 = 23*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 737b46d8ef2Safresh1 /*N2 = 46*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 738b46d8ef2Safresh1 /*N3 = 69*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 739b46d8ef2Safresh1 /*N4 = 92*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 740b46d8ef2Safresh1 /*N5 =115*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 46,207, 741b46d8ef2Safresh1 /*N6 =138*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,276, 742b46d8ef2Safresh1 /*N7 =161*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 69,322, 69,322, 69,322, 69,322, 69,322, 743b46d8ef2Safresh1 /*N8 =184*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 69,322, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 744b46d8ef2Safresh1 /*N9 =207*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 23, 23, 23, 23,230,253, 23, 23, 23, 23, 23,299, 745b46d8ef2Safresh1 /*N10=230*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 746b46d8ef2Safresh1 /*N11=253*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 747b46d8ef2Safresh1 /*N12=276*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,299, 748b46d8ef2Safresh1 /*N13=299*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 74956d68f1eSafresh1 /*N14=322*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,345, 75056d68f1eSafresh1 /*N15=345*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,299 751b46d8ef2Safresh1 /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22*/ 752b46d8ef2Safresh1 }; 753b46d8ef2Safresh1 # endif 754b46d8ef2Safresh1 755b46d8ef2Safresh1 756b46d8ef2Safresh1 /* The table below is adapted from 75756d68f1eSafresh1 * https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ 758b46d8ef2Safresh1 * See copyright notice at the beginning of this file. 759b46d8ef2Safresh1 */ 760b46d8ef2Safresh1 761b46d8ef2Safresh1 # ifndef DOINIT 762eac174f2Safresh1 EXTCONST U8 PL_c9_utf8_dfa_tab[368]; 763b46d8ef2Safresh1 # else 764eac174f2Safresh1 EXTCONST U8 PL_c9_utf8_dfa_tab[368] = { 765b46d8ef2Safresh1 /* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F*/ 766b46d8ef2Safresh1 /*0_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 767b46d8ef2Safresh1 /*1_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 768b46d8ef2Safresh1 /*2_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 769b46d8ef2Safresh1 /*3_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 770b46d8ef2Safresh1 /*4_ */ 0, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 0, 0, 0, 0, 0, 771b46d8ef2Safresh1 /*5_ */ 0, 11, 11, 11, 11, 11, 11, 12, 12, 12, 0, 0, 0, 0, 0, 12, 772b46d8ef2Safresh1 /*6_ */ 0, 0, 12, 12, 13, 13, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 773b46d8ef2Safresh1 /*7_ */ 12, 12, 12, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 774b46d8ef2Safresh1 /*8_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 775b46d8ef2Safresh1 /*9_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 776b46d8ef2Safresh1 /*A_ */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 777b46d8ef2Safresh1 /*B_ */ 0, 2, 2, 2, 2, 2, 1, 3, 3, 3, 0, 0, 3, 3, 3, 3, 778b46d8ef2Safresh1 /*C_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 779b46d8ef2Safresh1 /*D_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 5, 4, 4, 780b46d8ef2Safresh1 /*E_ */ 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 8, 7, 1, 781b46d8ef2Safresh1 /*F_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 782b46d8ef2Safresh1 /*N0= 0*/ 0, 1, 14, 28, 42, 70, 56, 98, 84, 1, 1, 1, 1, 1, 783b46d8ef2Safresh1 /*N1=14*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 784b46d8ef2Safresh1 /*N2=28*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 14, 14, 14, 14, 14, 785b46d8ef2Safresh1 /*N3=42*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 28, 28, 28, 28, 28, 786b46d8ef2Safresh1 /*N4=56*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 28, 28, 787b46d8ef2Safresh1 /*N5=70*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 28, 28, 28, 28, 1, 788b46d8ef2Safresh1 /*N6=84*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42, 42, 42, 789b46d8ef2Safresh1 /*N7=98*/ 1, 1, 1, 1, 1, 1, 1, 1, 1, 42, 1, 1, 1, 1 790b46d8ef2Safresh1 /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13*/ 791b46d8ef2Safresh1 }; 792b46d8ef2Safresh1 # endif 793b8851fccSafresh1 794b8851fccSafresh1 #endif /* EBCDIC 037 */ 795b8851fccSafresh1 7965759b3d2Safresh1 #endif /* PERL_EBCDIC_TABLES_H_ */ 797b8851fccSafresh1 798*e0680481Safresh1 /* ex: set ro ft=c: */ 799