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