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