]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/main/classes/core/src/com/ibm/icu/text/SCSU.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / main / classes / core / src / com / ibm / icu / text / SCSU.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 1996-2007, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 \r
8 package com.ibm.icu.text;\r
9 \r
10 /**\r
11  * An interface defining  constants for the Standard Compression Scheme\r
12  * for Unicode (SCSU) as outlined in <A\r
13  * HREF="http://www.unicode.org/unicode/reports/tr6">Unicode Technical\r
14  * Report #6</A>.\r
15  *\r
16  * @author Stephen F. Booth\r
17  * @version 1.1 05 Aug 99\r
18  * @version 1.0 26 Jul 99\r
19  */\r
20 interface SCSU\r
21 {\r
22     //==========================\r
23     // Generic window shift\r
24     //==========================\r
25     final static int COMPRESSIONOFFSET           = 0x80;\r
26 \r
27     //==========================\r
28     // Number of windows\r
29     //==========================\r
30     final static int NUMWINDOWS                  = 8;\r
31     final static int NUMSTATICWINDOWS            = 8;\r
32 \r
33     //==========================\r
34     // Indicates a window index is invalid\r
35     //==========================\r
36     final static int INVALIDWINDOW               = -1;\r
37 \r
38     //==========================\r
39     // Indicates a character doesn't exist in input (past end of buffer)\r
40     //==========================\r
41     final static int INVALIDCHAR                 = -1;\r
42 \r
43     //==========================\r
44     // Compression modes\r
45     //==========================\r
46     final static int SINGLEBYTEMODE              = 0;\r
47     final static int UNICODEMODE                 = 1;\r
48 \r
49     //==========================\r
50     // Maximum value for a window's index\r
51     //==========================\r
52     final static int MAXINDEX                    = 0xFF;\r
53 \r
54     //==========================\r
55     // Reserved index value (characters belongs to first block)\r
56     //==========================\r
57     final static int RESERVEDINDEX               = 0x00;\r
58 \r
59     //==========================\r
60     // Indices for scripts which cross a half-block boundary\r
61     //==========================\r
62     final static int LATININDEX                  = 0xF9;\r
63     final static int IPAEXTENSIONINDEX           = 0xFA;\r
64     final static int GREEKINDEX                  = 0xFB;\r
65     final static int ARMENIANINDEX               = 0xFC;\r
66     final static int HIRAGANAINDEX               = 0xFD;\r
67     final static int KATAKANAINDEX               = 0xFE;\r
68     final static int HALFWIDTHKATAKANAINDEX      = 0xFF;\r
69 \r
70     //==========================\r
71     // Single-byte mode tags\r
72     //==========================\r
73     final static int SDEFINEX                    = 0x0B;\r
74     final static int SRESERVED                   = 0x0C;  // reserved value\r
75     final static int SQUOTEU                     = 0x0E;\r
76     final static int SCHANGEU                    = 0x0F;\r
77 \r
78     final static int SQUOTE0                     = 0x01;\r
79     final static int SQUOTE1                     = 0x02;\r
80     final static int SQUOTE2                     = 0x03;\r
81     final static int SQUOTE3                     = 0x04;\r
82     final static int SQUOTE4                     = 0x05;\r
83     final static int SQUOTE5                     = 0x06;\r
84     final static int SQUOTE6                     = 0x07;\r
85     final static int SQUOTE7                     = 0x08;\r
86 \r
87     final static int SCHANGE0                    = 0x10;\r
88     final static int SCHANGE1                    = 0x11;\r
89     final static int SCHANGE2                    = 0x12;\r
90     final static int SCHANGE3                    = 0x13;\r
91     final static int SCHANGE4                    = 0x14;\r
92     final static int SCHANGE5                    = 0x15;\r
93     final static int SCHANGE6                    = 0x16;\r
94     final static int SCHANGE7                    = 0x17;\r
95 \r
96     final static int SDEFINE0                    = 0x18;\r
97     final static int SDEFINE1                    = 0x19;\r
98     final static int SDEFINE2                    = 0x1A;\r
99     final static int SDEFINE3                    = 0x1B;\r
100     final static int SDEFINE4                    = 0x1C;\r
101     final static int SDEFINE5                    = 0x1D;\r
102     final static int SDEFINE6                    = 0x1E;\r
103     final static int SDEFINE7                    = 0x1F;\r
104 \r
105     //==========================\r
106     // Unicode mode tags\r
107     //==========================\r
108     final static int UCHANGE0                    = 0xE0;\r
109     final static int UCHANGE1                    = 0xE1;\r
110     final static int UCHANGE2                    = 0xE2;\r
111     final static int UCHANGE3                    = 0xE3;\r
112     final static int UCHANGE4                    = 0xE4;\r
113     final static int UCHANGE5                    = 0xE5;\r
114     final static int UCHANGE6                    = 0xE6;\r
115     final static int UCHANGE7                    = 0xE7;\r
116 \r
117     final static int UDEFINE0                    = 0xE8;\r
118     final static int UDEFINE1                    = 0xE9;\r
119     final static int UDEFINE2                    = 0xEA;\r
120     final static int UDEFINE3                    = 0xEB;\r
121     final static int UDEFINE4                    = 0xEC;\r
122     final static int UDEFINE5                    = 0xED;\r
123     final static int UDEFINE6                    = 0xEE;\r
124     final static int UDEFINE7                    = 0xEF;\r
125 \r
126     final static int UQUOTEU                     = 0xF0;\r
127     final static int UDEFINEX                    = 0xF1;\r
128     final static int URESERVED                   = 0xF2;  // reserved value\r
129 \r
130 \r
131     //==========================\r
132     // Class variables\r
133     //==========================\r
134 \r
135     /** For window offset mapping */\r
136     final static int [] sOffsetTable = { \r
137         // table generated by CompressionTableGenerator\r
138         0x0, 0x80, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,\r
139     0x480, 0x500, 0x580, 0x600, 0x680, 0x700, 0x780, 0x800, 0x880,\r
140     0x900, 0x980, 0xa00, 0xa80, 0xb00, 0xb80, 0xc00, 0xc80, 0xd00,\r
141     0xd80, 0xe00, 0xe80, 0xf00, 0xf80, 0x1000, 0x1080, 0x1100,\r
142     0x1180, 0x1200, 0x1280, 0x1300, 0x1380, 0x1400, 0x1480,\r
143     0x1500, 0x1580, 0x1600, 0x1680, 0x1700, 0x1780, 0x1800,\r
144     0x1880, 0x1900, 0x1980, 0x1a00, 0x1a80, 0x1b00, 0x1b80,\r
145     0x1c00, 0x1c80, 0x1d00, 0x1d80, 0x1e00, 0x1e80, 0x1f00,\r
146     0x1f80, 0x2000, 0x2080, 0x2100, 0x2180, 0x2200, 0x2280,\r
147     0x2300, 0x2380, 0x2400, 0x2480, 0x2500, 0x2580, 0x2600,\r
148     0x2680, 0x2700, 0x2780, 0x2800, 0x2880, 0x2900, 0x2980,\r
149     0x2a00, 0x2a80, 0x2b00, 0x2b80, 0x2c00, 0x2c80, 0x2d00,\r
150     0x2d80, 0x2e00, 0x2e80, 0x2f00, 0x2f80, 0x3000, 0x3080,\r
151     0x3100, 0x3180, 0x3200, 0x3280, 0x3300, 0x3380, 0xe000,\r
152     0xe080, 0xe100, 0xe180, 0xe200, 0xe280, 0xe300, 0xe380,\r
153     0xe400, 0xe480, 0xe500, 0xe580, 0xe600, 0xe680, 0xe700,\r
154     0xe780, 0xe800, 0xe880, 0xe900, 0xe980, 0xea00, 0xea80,\r
155     0xeb00, 0xeb80, 0xec00, 0xec80, 0xed00, 0xed80, 0xee00,\r
156     0xee80, 0xef00, 0xef80, 0xf000, 0xf080, 0xf100, 0xf180,\r
157     0xf200, 0xf280, 0xf300, 0xf380, 0xf400, 0xf480, 0xf500,\r
158     0xf580, 0xf600, 0xf680, 0xf700, 0xf780, 0xf800, 0xf880,\r
159     0xf900, 0xf980, 0xfa00, 0xfa80, 0xfb00, 0xfb80, 0xfc00,\r
160     0xfc80, 0xfd00, 0xfd80, 0xfe00, 0xfe80, 0xff00, 0xff80, 0x0,\r
161     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\r
162     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\r
163     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\r
164     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\r
165     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\r
166     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\r
167     0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x250, 0x370,\r
168     0x530, 0x3040, 0x30a0, 0xff60  \r
169     };\r
170 \r
171     /** Static compression window offsets */\r
172     final static int [] sOffsets = {\r
173         0x0000,  // for quoting single-byte mode tags\r
174         0x0080,  // Latin-1 Supplement\r
175         0x0100,  // Latin Extended-A\r
176         0x0300,  // Combining Diacritical Marks\r
177         0x2000,  // General Punctuation\r
178         0x2080,  // Curency Symbols\r
179         0x2100,  // Letterlike Symbols and Number Forms\r
180         0x3000   // CJK Symbols and Punctuation\r
181     };\r
182 \r
183 }\r
184 \r