1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/*
2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*******************************************************************************
3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*
4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*   Copyright (C) 1999-2008, International Business Machines
5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*   Corporation and others.  All Rights Reserved.
6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*
7c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*******************************************************************************
8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*   file name:  genprops.h
9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*   encoding:   US-ASCII
10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*   tab size:   8 (not used)
11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*   indentation:4
12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*
13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*   created on: 1999dec13
14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*   created by: Markus W. Scherer
15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott*/
16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#ifndef __GENPROPS_H__
18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define __GENPROPS_H__
19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "unicode/utypes.h"
21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "utrie.h"
22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "propsvec.h"
23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* file definitions */
25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define DATA_NAME "uprops"
26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define DATA_TYPE "icu"
27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* character properties */
29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scotttypedef struct {
30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    uint32_t code;
31c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    int32_t numericValue; /* see numericType */
32c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    uint32_t denominator; /* 0: no value */
33c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    uint8_t generalCategory, numericType, exponent;
34c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} Props;
35c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
36c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* global flags */
37c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern UBool beVerbose, haveCopyright;
38c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
39c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern const char *const
40c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottgenCategoryNames[];
41c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
42c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* properties vectors in props2.c */
43c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern UPropsVectors *pv;
44c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
45c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* prototypes */
46c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottU_CFUNC void
47c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottwriteUCDFilename(char *basename, const char *filename, const char *suffix);
48c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
49c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottU_CFUNC UBool
50c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottisToken(const char *token, const char *s);
51c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
52c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottU_CFUNC int32_t
53c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottgetTokenIndex(const char *const tokens[], int32_t countTokens, const char *s);
54c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
55c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern void
56c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottsetUnicodeVersion(const char *v);
57c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
58c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern void
59c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottinitStore(void);
60c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
61c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern void
62c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottexitStore(void);
63c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
64c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern uint32_t
65c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottmakeProps(Props *p);
66c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
67c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern void
68c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottaddProps(uint32_t c, uint32_t props);
69c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
70c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern uint32_t
71c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottgetProps(uint32_t c);
72c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
73c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern void
74c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottrepeatProps(uint32_t first, uint32_t last, uint32_t props);
75c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
76c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottextern void
77c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottgenerateData(const char *dataDir, UBool csource);
78c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
79c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott/* props2.c */
80c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottU_CFUNC void
81c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottinitAdditionalProperties(void);
82c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
83c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottU_CFUNC void
84c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottexitAdditionalProperties(void);
85c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
86c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottU_CFUNC void
87c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottgenerateAdditionalProperties(char *filename, const char *suffix, UErrorCode *pErrorCode);
88c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
89c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottU_CFUNC int32_t
90c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick ScottwriteAdditionalData(FILE *f, uint8_t *p, int32_t capacity, int32_t indexes[16]);
91c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
92c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif
93