]> git.saurik.com Git - apple/icu.git/blob - icuSources/layout/StateTables.h
ICU-3.13.tar.gz
[apple/icu.git] / icuSources / layout / StateTables.h
1 /*
2 * @(#)StateTables.h 1.5 00/03/15
3 *
4 * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
5 *
6 */
7
8 #ifndef __STATETABLES_H
9 #define __STATETABLES_H
10
11 /**
12 * \file
13 * \internal
14 */
15
16 #include "LETypes.h"
17 #include "LayoutTables.h"
18
19 U_NAMESPACE_BEGIN
20
21 struct StateTableHeader
22 {
23 le_int16 stateSize;
24 ByteOffset classTableOffset;
25 ByteOffset stateArrayOffset;
26 ByteOffset entryTableOffset;
27 };
28
29 enum ClassCodes
30 {
31 classCodeEOT = 0,
32 classCodeOOB = 1,
33 classCodeDEL = 2,
34 classCodeEOL = 3,
35 classCodeFirstFree = 4,
36 classCodeMAX = 0xFF
37 };
38
39 typedef le_uint8 ClassCode;
40
41 struct ClassTable
42 {
43 TTGlyphID firstGlyph;
44 le_uint16 nGlyphs;
45 ClassCode classArray[ANY_NUMBER];
46 };
47
48 enum StateNumber
49 {
50 stateSOT = 0,
51 stateSOL = 1,
52 stateFirstFree = 2,
53 stateMAX = 0xFF
54 };
55
56 typedef le_uint8 EntryTableIndex;
57
58 struct StateEntry
59 {
60 ByteOffset newStateOffset;
61 le_int16 flags;
62 };
63
64 U_NAMESPACE_END
65 #endif
66