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 18 U_NAMESPACE_BEGIN 19 20 struct StateTableHeader 21 { 22 le_int16 stateSize; 23 ByteOffset classTableOffset; 24 ByteOffset stateArrayOffset; 25 ByteOffset entryTableOffset; 26 }; 27 28 enum ClassCodes 29 { 30 classCodeEOT = 0, 31 classCodeOOB = 1, 32 classCodeDEL = 2, 33 classCodeEOL = 3, 34 classCodeFirstFree = 4, 35 classCodeMAX = 0xFF 36 }; 37 38 typedef le_uint8 ClassCode; 39 40 struct ClassTable 41 { 42 TTGlyphID firstGlyph; 43 le_uint16 nGlyphs; 44 ClassCode classArray[ANY_NUMBER]; 45 }; 46 47 enum StateNumber 48 { 49 stateSOT = 0, 50 stateSOL = 1, 51 stateFirstFree = 2, 52 stateMAX = 0xFF 53 }; 54 55 typedef le_uint8 EntryTableIndex; 56 57 struct StateEntry 58 { 59 ByteOffset newStateOffset; 60 le_int16 flags; 61 }; 62 63 U_NAMESPACE_END 64 #endif 65 66