summaryrefslogtreecommitdiff
path: root/Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h')
-rw-r--r--Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h218
1 files changed, 0 insertions, 218 deletions
diff --git a/Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h b/Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h
deleted file mode 100644
index fcad4ccb374..00000000000
--- a/Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*------------------------------------------------------------------------
-Copyright (C) 2002-2016 SIL International. All rights reserved.
-
-Distributable under the terms of either the Common Public License or the
-GNU Lesser General Public License, as specified in the LICENSING.txt file.
-
-File: TECkit_Format.h
-Responsibility: Jonathan Kew
-Last reviewed: Not yet.
-
-Description:
- Definitions used in the TECkit binary table format
-
- 2006-06-02 jk added support for extended string rules (>255 per initial char)
--------------------------------------------------------------------------*/
-
-#pragma once
-
-#include "TECkit_Common.h"
-
-#define kMagicNumber 0x714d6170 /* 'qMap' */
-#define kMagicNumberCmp 0x7a516d70 /* 'zQmp' */
-
-#define kFileVersion2_1 0x00020001 /* version before tables with ExtStringRules */
-#define kCurrentFileVersion 0x00030000 /* current version */
-
-#define kTableVersion2 0x00020000
-#define kCurrentTableVersion 0x00030000 /* actually, the engine doesn't check this,
- it only looks at the file version */
-
-struct NameRec {
- UInt16 nameID;
- UInt16 nameLength;
-/*
- Byte data[nameLength];
- pad to 2-byte boundary
-*/
-};
-
-struct FileHeader {
- UInt32 type; /* magic number = 'qMap' */
- UInt32 version; /* version = kFileCurrentVersion */
- UInt32 headerLength; /* length of this header including offset arrays and name records */
- UInt32 formFlagsLHS; /* flags for normalization form, Unicode/byte encoding on LHS of mapping */
- UInt32 formFlagsRHS; /* flags for normalization form, Unicode/byte encoding on RHS of mapping */
- UInt32 numNames; /* number of strings in the names table */
- UInt32 numFwdTables; /* number of tables in forward pipeline */
- UInt32 numRevTables; /* number of tables in reverse pipeline */
-#if 0
- UInt32 nameOffsets[numNames]; /* offsets from FileHeader to each NameRec */
- UInt32 fwdBase[numFwdTables]; /* offsets from FileHeader to forward tables */
- UInt32 revBase[numRevTables]; /* offsets from FileHeader to reverse tables */
- NameRec names[numNames]; /* the name records */
-#endif
-};
-
-struct TableHeader {
- UInt32 type; /* type = 'B->B', 'B->U', 'U->B', 'U->U' */
- /* or type = 'NFC ', 'NFD ', and no additional header fields are present */
- UInt32 version; /* version = kCurrentTableVersion */
- UInt32 length; /* total length of this table */
- UInt32 flags; /* flags:
- 0x00000001: supplementary-plane Unicode characters supported in mapping and classes
- 0x00000002: DBCS support (BB/BU tables only) in lookup table
- */
- UInt32 pageBase; /* offset from table header to page table (Ux tables) or dbcsPage table (Bx tables) */
- UInt32 lookupBase; /* offset from table header to lookup table(s) */
- UInt32 matchClassBase; /* offset from table header to match class definitions */
- UInt32 repClassBase; /* offset from table header to replacement class definitions */
- UInt32 stringListBase; /* offset from table header to string rule lists */
- UInt32 stringRuleData; /* offset from table header to string rule data */
- UInt8 maxMatch; /* max number of input code units matched by a rule */
- UInt8 maxPre; /* max number of input code units matched by pre-context */
- UInt8 maxPost; /* max number of input code units matched by post-context */
- UInt8 maxOutput; /* max number of output code units generated by a rule */
- UInt32 replacementChar; /* default output for unmapped codes */
-};
-#ifndef __cplusplus
-typedef struct TableHeader TableHeader;
-#endif
-
-#define kTableType_BB 0x422d3e42
-#define kTableType_BU 0x422d3e55
-#define kTableType_UB 0x552d3e42
-#define kTableType_UU 0x552d3e55
-
-#define kTableType_NFC 0x4e464320
-#define kTableType_NFD 0x4e464420
-
-#define kTableFlags_Supplementary 0x0001
-#define kTableFlags_DBCS 0x0002
-
-union Lookup {
- /* for any table when string rules are used */
- struct {
- UInt8 type; /*
- 0xff: use string rules
- 0xfe: illegal DBCS trailing byte
- 0xfd: unmapped character: copy (BB/UU) or output default (UB/BU)
- 0x00-0x03: direct lookup
- */
- UInt8 ruleCount; /* number of rules for this code */
- UInt16 ruleIndex; /* index into stringList of start of rule list for this code */
- } rules;
- /* for UB and BB tables with direct byte output */
- struct {
- UInt8 count; /* count of bytes present in data[]: 0-3 */
- UInt8 data[3];
- } bytes;
- /* for BU and UU tables with direct Unicode output */
- UInt32 usv; /* unicode scalar value */
-};
-#ifndef __cplusplus
-typedef union Lookup Lookup;
-#endif
-
-#define kLookupType_StringRules 0xff
-#define kLookupType_IllegalDBCS 0xfe
-#define kLookupType_Unmapped 0xfd
-
-#define kLookupType_RuleTypeMask 0xc0
-#define kLookupType_ExtStringRules 0x80
-#define kLookupType_ExtRuleCountMask 0x3f
-
-/*
- /rules.ruleOffset/ points to an array of /rules.ruleCount/ UInt32 values which are the offsets
- from stringRuleData to each rule to test for this character
-*/
-
-struct StringRule {
- UInt8 matchLength; /* length of match string in matchElements */
- UInt8 postLength; /* length of post-context in matchElements */
- UInt8 preLength; /* length of pre-context in matchElements */
- UInt8 repLength; /* length of replacement string in repElements */
-#if 0
- MatchElem matchString[];
- MatchElem postContext[];
- MatchElem preContext[]; /* reversed */
- RepElem repString[];
-#endif
-};
-#ifndef __cplusplus
-typedef struct StringRule StringRule;
-#endif
-
-union MatchElem {
-#ifdef __cplusplus
- MatchElem()
- { }
-#endif
- struct {
- UInt8 repeat; /* repeat count: (min << 4) + max */
- UInt8 type; /*
- 0x80: negate flag (not allowed with group)
- 0x40: non-literal flag--if set, bits 0x3f indicate specific type (value must not be zero)
- Note that if 'non-literal' flag is NOT set, remaining bits are not used as type code
- but are part of a USV value (or must be set to zero for literal byte data).
- */
- UInt16 reserved;
- } flags;
- union {
- struct {
- UInt16 reserved;
- UInt8 dNext; /* offset to following OR or EGroup element */
- UInt8 dAfter; /* offset to element after the group for BGroup */
- } bgroup;
- struct {
- UInt16 reserved;
- UInt8 dNext; /* offset to following OR or EGroup element (for OR only) */
- UInt8 dStart; /* reverse offset to corresponding BGroup */
- } egroup; /* (also used for OR elements) */
- struct {
- UInt16 reserved;
- UInt16 index; /* index of character class */
- } cls;
- struct {
- UInt8 reserved[3];
- UInt8 data; /* literal byte */
- } byte;
- struct {
- UInt32 data; /* literal Unicode scalar: must mask with kUSVMask, as top bits overlap flags.repeat and "negate" bit in flags.type */
- } usv;
- } value;
-};
-#ifndef __cplusplus
-typedef union MatchElem MatchElem;
-#endif
-
-#define kMatchElem_Negate 0x80 /* negated test */
-#define kMatchElem_NonLit 0x40 /* test value is not a literal character; need to check type */
-
-#define kMatchElem_TypeMask 0x3f /* Mask for type value. Note that type 0 must not be used (=literal) */
-#define kMatchElem_Type_Class 0x01 /* class match */
-#define kMatchElem_Type_BGroup 0x02 /* begin group */
-#define kMatchElem_Type_EGroup 0x03 /* end group */
-#define kMatchElem_Type_OR 0x04 /* special code: OR */
-#define kMatchElem_Type_ANY 0x05 /* special code: ANY */
-#define kMatchElem_Type_EOS 0x06 /* special code: EOS */
-#define kMatchElem_Type_Copy 0x07 /* copy matched item (invalid; for internal compiler use) */
-
-#define kUSVMask 0x001fffff
-
-union RepElem {
- struct {
- UInt8 type; /* see kRepElem_... below */
- UInt8 matchIndex; /* index of corresponding item in matchString for type == kRepElem_Class or kRepElem_Copy */
- UInt16 repClass; /* repClass if type == kRepElem_Class */
- } flags;
- UInt32 value; /* literal value (mask with kUSVMask) if flags.type == kRepElem_Literal */
-};
-#ifndef __cplusplus
-typedef union RepElem RepElem;
-#endif
-
-#define kRepElem_Literal 0x00
-#define kRepElem_Class kMatchElem_Type_Class
-#define kRepElem_Copy kMatchElem_Type_Copy
-#define kRepElem_Unmapped 0x0f /* used in default terminator rules */