X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/73c04bcfe1096173b00431f0cdc742894b15eef0..HEAD:/icuSources/tools/toolutil/writesrc.h diff --git a/icuSources/tools/toolutil/writesrc.h b/icuSources/tools/toolutil/writesrc.h index 613ee9d7..35ba2567 100644 --- a/icuSources/tools/toolutil/writesrc.h +++ b/icuSources/tools/toolutil/writesrc.h @@ -1,12 +1,14 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * -* Copyright (C) 2005, International Business Machines +* Copyright (C) 2005-2012, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* * file name: writesrc.h -* encoding: US-ASCII +* encoding: UTF-8 * tab size: 8 (not used) * indentation:4 * @@ -21,16 +23,25 @@ #include #include "unicode/utypes.h" -#include "utrie.h" +#include "unicode/ucptrie.h" +#include "utrie2.h" /** - * Create a source text file and write a header comment with the ICU copyright. + * Creates a source text file and writes a header comment with the ICU copyright. + * Writes a C/Java-style comment with the generator name. */ U_CAPI FILE * U_EXPORT2 -usrc_create(const char *path, const char *filename); +usrc_create(const char *path, const char *filename, int32_t copyrightYear, const char *generator); /** - * Write the contents of an array of 8/16/32-bit words. + * Creates a source text file and writes a header comment with the ICU copyright. + * Writes the comment with # lines, as used in scripts and text data. + */ +U_CAPI FILE * U_EXPORT2 +usrc_createTextData(const char *path, const char *filename, const char *generator); + +/** + * Writes the contents of an array of 8/16/32-bit words. * The prefix and postfix are optional (can be NULL) and are written first/last. * The prefix may contain a %ld or similar field for the array length. * The {} and declaration etc. need to be included in prefix/postfix or @@ -43,28 +54,69 @@ usrc_writeArray(FILE *f, const char *postfix); /** - * Calls usrc_writeArray() for the index and data arrays of a runtime UTrie. - * Only the index array is written for a 16-bit UTrie. In this case, dataPrefix + * Calls usrc_writeArray() for the index and data arrays of a frozen UTrie2. + * Only the index array is written for a 16-bit UTrie2. In this case, dataPrefix * is ignored and can be NULL. */ U_CAPI void U_EXPORT2 -usrc_writeUTrieArrays(FILE *f, - const char *indexPrefix, const char *dataPrefix, - const UTrie *pTrie, - const char *postfix); +usrc_writeUTrie2Arrays(FILE *f, + const char *indexPrefix, const char *dataPrefix, + const UTrie2 *pTrie, + const char *postfix); + +/** + * Writes the UTrie2 struct values. + * The {} and declaration etc. need to be included in prefix/postfix or + * printed before and after the array contents. + */ +U_CAPI void U_EXPORT2 +usrc_writeUTrie2Struct(FILE *f, + const char *prefix, + const UTrie2 *pTrie, + const char *indexName, const char *dataName, + const char *postfix); + +/** + * Calls usrc_writeArray() for the index and data arrays of a UCPTrie. + */ +U_CAPI void U_EXPORT2 +usrc_writeUCPTrieArrays(FILE *f, + const char *indexPrefix, const char *dataPrefix, + const UCPTrie *pTrie, + const char *postfix); + +/** + * Writes the UCPTrie struct values. + * The {} and declaration etc. need to be included in prefix/postfix or + * printed before and after the array contents. + */ +U_CAPI void U_EXPORT2 +usrc_writeUCPTrieStruct(FILE *f, + const char *prefix, + const UCPTrie *pTrie, + const char *indexName, const char *dataName, + const char *postfix); /** - * Writes the UTrie struct values. + * Writes the UCPTrie arrays and struct values. + */ +U_CAPI void U_EXPORT2 +usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie); + +/** + * Writes the contents of an array of mostly invariant characters. + * Characters 0..0x1f are printed as numbers, + * others as characters with single quotes: '%c'. + * + * The prefix and postfix are optional (can be NULL) and are written first/last. + * The prefix may contain a %ld or similar field for the array length. * The {} and declaration etc. need to be included in prefix/postfix or * printed before and after the array contents. - * If getFoldingOffsetName==NULL then "utrie_defaultGetFoldingOffset" is printed. */ U_CAPI void U_EXPORT2 -usrc_writeUTrieStruct(FILE *f, - const char *prefix, - const UTrie *pTrie, - const char *indexName, const char *dataName, - const char *getFoldingOffsetName, - const char *postfix); +usrc_writeArrayOfMostlyInvChars(FILE *f, + const char *prefix, + const char *p, int32_t length, + const char *postfix); #endif