/* * This file was generated automatically - don't edit it. * File contains iconv CCS tables for win_1256 encoding. */ #include "ccsbi.h" #if defined (ICONV_TO_UCS_CCS_WIN_1256) \ || defined (ICONV_FROM_UCS_CCS_WIN_1256) #include <_ansi.h> #include #include #include "ccs.h" #include "ccsnames.h" #if (BYTE_ORDER == LITTLE_ENDIAN) # define W(word) (word) & 0xFF, (word) >> 8 #elif (BYTE_ORDER == BIG_ENDIAN) # define W(word) (word) >> 8, (word) & 0xFF #else # error "Unknown byte order." #endif /* * 8-bit win_1256 -> UCS table (512 bytes). * ====================================================================== */ #if defined (ICONV_TO_UCS_CCS_WIN_1256) static const __uint16_t to_ucs_speed_win_1256[] = { 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, 0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, 0x02C6,0x2030,0x0679,0x2039,0x0152,0x0686,0x0698,0x0688, 0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 0x06A9,0x2122,0x0691,0x203A,0x0153,0x200C,0x200D,0x06BA, 0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7, 0x00A8,0x00A9,0x06BE,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF, 0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7, 0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F, 0x06C1,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627, 0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F, 0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7, 0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643, 0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7, 0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF, 0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7, 0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x06D2, }; #endif /* ICONV_TO_UCS_CCS_WIN_1256 */ /* * 8-bit UCS -> win_1256 speed-optimized table (2050 bytes). * ====================================================================== */ #if defined (ICONV_FROM_UCS_CCS_WIN_1256) static const unsigned char from_ucs_speed_win_1256[] = { W(0x06D2), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ /* Heading Block */ W(0x0202),W(0x0302),W(0x0402),W(INVBLK), W(INVBLK),W(INVBLK),W(0x0502),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(0x0602),W(0x0702),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), /* Block 1, Array index 0x0202 */ 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xA0,0xFF,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, 0xA8,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0xAF, 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, 0xB8,0xB9,0xFF,0xBB,0xBC,0xBD,0xBE,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD7, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xE0,0xFF,0xE2,0xFF,0xFF,0xFF,0xFF,0xE7, 0xE8,0xE9,0xEA,0xEB,0xFF,0xFF,0xEE,0xEF, 0xFF,0xFF,0xFF,0xFF,0xF4,0xFF,0xFF,0xF7, 0xFF,0xF9,0xFF,0xFB,0xFC,0xFF,0xFF,0xFF, /* Block 2, Array index 0x0302 */ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0@(name file) @;; @;; Check syntax block after function @;; @(define check-synb ()) .synb @ (assert bad ln `bad .synb block`) @ (repeat :gap 0 :min 1) .mets @(skip) @ (maybe) @ (repeat :gap 0 :mintimes 1) .mets \ \ @(skip) @ (last :mandatory) @ (trailer) .mets @(skip) @ (end) @ (end) @ (last :mandatory) .syne @ (end) @ (assert bad ln `missing .desc`) .desc @ (assert bad ln `blank line after .desc`) @/..*/ @(end) @;; @;; Check variable description headings @;; @(define check-var ()) @ (cases) @; exception .coNP @/Variables|Special variables/ @@, s-ifmt @(skip) @ (or) @; exception .coNP @/Variables|Special variables/ @@, *0 @(skip) @ (or) .coNP @/Variables|Special variables/@(assert bad ln `bad Variables heading`)@(rep :gap 0) @@, @{x /\S+/}@(last :mandatory) @@ @y and @@ @{z /\S+/}@(end) @ (assert bad ln `no .desc after variables heading`) .desc @ (or) .coNP @/Variable|Special variable/@(assert bad ln `bad Variable heading`) @{x /\S+/} @ (assert bad ln `no .desc after variable heading`) .desc @ (end) @(end) @;; @;; Check function/macro/operator headings @;; @(define check-func ()) @ (cases) .coNP Operator/function @(skip) @ (assert bad ln `no .synb after Operator/function heading`) @ (check-synb) @ (or) .coNP Operator @@ @op and macro @@ @mac @ (assert bad ln `no .synb after Operator and macro heading`) @ (check-synb) @ (or) .coNP @{type /Function|Operator|Macro|Accessor|Method|Structure/}s@(assert bad ln `bad @{type}s heading`)@(rep :gap 0) @@, @{x /\S+/}@(last :mandatory) @@ @y and @@ @{z /\S+/}@(end) @ (assert bad ln `no .synb after @{type}s heading`) @ (check-synb) @ (or) .coNP @{type /Function|Operator|Macro|Accessor|Method|Structure|Parameter list macro/}@(assert bad ln `bad @type heading`) @@ @{x /\S+/}@junk @ (assert bad ln `extra elements in singular @type heading`) @ (bind junk "") @ (assert bad ln `no .synb after @type heading`) @ (check-synb) @ (end) @(end) @;; @;; check .code, .codn, .cod2, .cod3, .meta and .metn. @;; @(define check-code ()) @ (cases) .@{type /code|meta/} "@(assert bad ln `.@type needs one argument`)@x"@(eol) @ (or) .@{type /code|meta/}@(assert bad ln `.@type needs one argument`) @{x /\S+/}@(eol) @ (or) .cod3 @(assert bad ln `.cod3 needs three arguments`)@x @y @{z /\S+/}@(eol) @ (or) .@{type /codn|cod2|metn/} @(assert bad ln `.@type needs two arguments`)@(cases)"@x"@(or)@{x /\S+/}@(end) @{y /\S+/}@(eol) @ (assert bad ln `.codn second argument doesn't begin with punctuation`) @ (require (or (not (memqual type '("codn" "metn"))) (chr-ispunct [y 0]))) @ (end) @(end) @;; @;; Check .mono/.onom pairing @;; @(define check-mono ()) .mono @ (assert bad ln `.mono not closed`) @ (repeat :gap 0) @ (none) .mono @ (end) @ (last :mandatory) .onom @ (end) @(end) @;; @;; Check .verb/.brev pairing @;; @(define check-verb ()) .verb @ (assert bad ln `.verb not closed`) @ (repeat :gap 0) @ (none) .verb @ (end) @ (last :mandatory) .brev @ (end) @(end) @;; @;; Check for various dangling @;; macros. @;; @(define check-spurious ()) @ {mac /.(cble|syne)/}@(skip) @ (throw bad ln `dangling @mac`) @(end) @;; @;; Main @;; @(bind errors 0) @(repeat) @ (line ln) @ (try) @ (cases) @ (check-var) @ (or) @ (check-func) @ (or) @ (check-code) @ (or) @ (check-verb) @ (or) @ (check-mono) @ (or) @ (check-synb) @ (or) @ (check-spurious) @ (end) @ (catch bad (line msg)) @ (do (inc errors) (put-line `@file:@line:@msg`)) @ (end) @(end) @(do (exit (zerop errors)))