]>
Commit | Line | Data |
---|---|---|
b75a7d8f A |
1 | /* |
2 | ******************************************************************************* | |
3 | * | |
73c04bcf | 4 | * Copyright (C) 1999-2005, International Business Machines |
b75a7d8f A |
5 | * Corporation and others. All Rights Reserved. |
6 | * | |
7 | ******************************************************************************* | |
73c04bcf | 8 | * file name: gennorm.h |
b75a7d8f A |
9 | * encoding: US-ASCII |
10 | * tab size: 8 (not used) | |
11 | * indentation:4 | |
12 | * | |
73c04bcf | 13 | * created on: 2001may25 |
b75a7d8f A |
14 | * created by: Markus W. Scherer |
15 | */ | |
16 | ||
17 | #ifndef __GENPROPS_H__ | |
18 | #define __GENPROPS_H__ | |
19 | ||
20 | #include "unicode/utypes.h" | |
21 | #include "unicode/uset.h" | |
22 | ||
23 | /* file definitions */ | |
24 | #define DATA_NAME "unorm" | |
25 | #define DATA_TYPE "icu" | |
26 | ||
27 | /* | |
28 | * data structure that holds the normalization properties for one or more | |
29 | * code point(s) at build time | |
30 | */ | |
31 | typedef struct Norm { | |
32 | uint8_t udataCC, lenNFD, lenNFKD; | |
33 | uint8_t qcFlags, combiningFlags; | |
34 | uint16_t canonBothCCs, compatBothCCs, combiningIndex, specialTag; | |
35 | uint32_t *nfd, *nfkd; | |
36 | uint32_t value32; /* temporary variable for generating runtime norm32 and fcd values */ | |
37 | int32_t fncIndex; | |
38 | USet *canonStart; | |
39 | UBool unsafeStart; | |
40 | } Norm; | |
41 | ||
73c04bcf A |
42 | /* |
43 | * modularization flags | |
44 | * | |
45 | * Corresponding bits in gStoreFlags control whether certain kinds of data | |
46 | * are to be stored in (1) or omitted from (0) the data file. | |
47 | * The flags are controlled by a command-line argument, with a letter | |
48 | * per flag. | |
49 | */ | |
50 | enum { | |
51 | UGENNORM_STORE_COMPAT, /* (k) compatibility decompositions */ | |
52 | UGENNORM_STORE_COMPOSITION, /* (c) composition data */ | |
53 | UGENNORM_STORE_FCD, /* (f) FCD data */ | |
54 | UGENNORM_STORE_AUX, /* (a) auxiliary trie and associated data */ | |
55 | UGENNORM_STORE_EXCLUSIONS, /* (x) exclusion sets */ | |
56 | UGENNORM_STORE_COUNT | |
57 | }; | |
58 | ||
59 | extern uint32_t gStoreFlags; | |
60 | ||
61 | #define DO_STORE(flag) (0!=(gStoreFlags&U_MASK(flag))) | |
62 | #define DO_NOT_STORE(flag) (0==(gStoreFlags&U_MASK(flag))) | |
63 | ||
b75a7d8f A |
64 | /* global flags */ |
65 | extern UBool beVerbose, haveCopyright; | |
66 | ||
67 | /* prototypes */ | |
68 | extern void | |
69 | setUnicodeVersion(const char *v); | |
70 | ||
71 | extern void | |
72 | init(void); | |
73 | ||
74 | extern void | |
75 | storeNorm(uint32_t code, Norm *norm); | |
76 | ||
77 | extern void | |
78 | setQCFlags(uint32_t code, uint8_t qcFlags); | |
79 | ||
80 | extern void | |
81 | setCompositionExclusion(uint32_t code); | |
82 | ||
83 | U_CFUNC void | |
84 | setFNC(uint32_t c, UChar *s); | |
85 | ||
86 | extern void | |
87 | processData(void); | |
88 | ||
89 | extern void | |
73c04bcf | 90 | generateData(const char *dataDir, UBool csource); |
b75a7d8f A |
91 | |
92 | extern void | |
93 | cleanUpData(void); | |
94 | ||
95 | #endif | |
96 |