LLVM API Documentation

Defines | Functions | Variables
ConvertUTF.c File Reference
#include "llvm/Support/ConvertUTF.h"
#include <assert.h>
Include dependency graph for ConvertUTF.c:

Go to the source code of this file.

Defines

#define UNI_SUR_HIGH_START   (UTF32)0xD800
#define UNI_SUR_HIGH_END   (UTF32)0xDBFF
#define UNI_SUR_LOW_START   (UTF32)0xDC00
#define UNI_SUR_LOW_END   (UTF32)0xDFFF
#define false   0
#define true   1

Functions

ConversionResult ConvertUTF32toUTF16 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags)
ConversionResult ConvertUTF16toUTF32 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
ConversionResult ConvertUTF16toUTF8 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags)
ConversionResult ConvertUTF32toUTF8 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags)
static Boolean isLegalUTF8 (const UTF8 *source, int length)
Boolean isLegalUTF8Sequence (const UTF8 *source, const UTF8 *sourceEnd)
static unsigned findMaximalSubpartOfIllFormedUTF8Sequence (const UTF8 *source, const UTF8 *sourceEnd)
unsigned getNumBytesForUTF8 (UTF8 first)
Boolean isLegalUTF8String (const UTF8 **source, const UTF8 *sourceEnd)
ConversionResult ConvertUTF8toUTF16 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags)
static ConversionResult ConvertUTF8toUTF32Impl (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags, Boolean InputIsPartial)
ConversionResult ConvertUTF8toUTF32Partial (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
ConversionResult ConvertUTF8toUTF32 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)

Variables

static const int halfShift = 10
static const UTF32 halfBase = 0x0010000UL
static const UTF32 halfMask = 0x3FFUL
static const char trailingBytesForUTF8 [256]
static const UTF32 offsetsFromUTF8 [6]
static const UTF8 firstByteMark [7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }

Define Documentation

Scalar Replacement of false scalarrepl Scalar Replacement of false   0

Definition at line 65 of file ConvertUTF.c.

#define true   1

Definition at line 66 of file ConvertUTF.c.

Referenced by PerformSELECT_CCCombine().

#define UNI_SUR_HIGH_END   (UTF32)0xDBFF

Definition at line 62 of file ConvertUTF.c.

Referenced by ConvertUTF16toUTF32(), and ConvertUTF16toUTF8().

#define UNI_SUR_HIGH_START   (UTF32)0xD800
#define UNI_SUR_LOW_END   (UTF32)0xDFFF
#define UNI_SUR_LOW_START   (UTF32)0xDC00

Function Documentation

ConversionResult ConvertUTF16toUTF32 ( const UTF16 **  sourceStart,
const UTF16 sourceEnd,
UTF32 **  targetStart,
UTF32 targetEnd,
ConversionFlags  flags 
)
ConversionResult ConvertUTF16toUTF8 ( const UTF16 **  sourceStart,
const UTF16 sourceEnd,
UTF8 **  targetStart,
UTF8 targetEnd,
ConversionFlags  flags 
)
ConversionResult ConvertUTF32toUTF16 ( const UTF32 **  sourceStart,
const UTF32 sourceEnd,
UTF16 **  targetStart,
UTF16 targetEnd,
ConversionFlags  flags 
)
ConversionResult ConvertUTF32toUTF8 ( const UTF32 **  sourceStart,
const UTF32 sourceEnd,
UTF8 **  targetStart,
UTF8 targetEnd,
ConversionFlags  flags 
)
ConversionResult ConvertUTF8toUTF16 ( const UTF8 **  sourceStart,
const UTF8 sourceEnd,
UTF16 **  targetStart,
UTF16 targetEnd,
ConversionFlags  flags 
)
ConversionResult ConvertUTF8toUTF32 ( const UTF8 **  sourceStart,
const UTF8 sourceEnd,
UTF32 **  targetStart,
UTF32 targetEnd,
ConversionFlags  flags 
)

Convert a partial UTF8 sequence to UTF32. If the sequence ends in an incomplete code unit sequence, returns sourceIllegal.

Definition at line 684 of file ConvertUTF.c.

References ConvertUTF8toUTF32Impl().

Referenced by llvm::sys::unicode::columnWidthUTF8(), and llvm::ConvertUTF8toWide().

static ConversionResult ConvertUTF8toUTF32Impl ( const UTF8 **  sourceStart,
const UTF8 sourceEnd,
UTF32 **  targetStart,
UTF32 targetEnd,
ConversionFlags  flags,
Boolean  InputIsPartial 
) [static]
ConversionResult ConvertUTF8toUTF32Partial ( const UTF8 **  sourceStart,
const UTF8 sourceEnd,
UTF32 **  targetStart,
UTF32 targetEnd,
ConversionFlags  flags 
)

Convert a partial UTF8 sequence to UTF32. If the sequence ends in an incomplete code unit sequence, returns sourceExhausted.

Definition at line 675 of file ConvertUTF.c.

References ConvertUTF8toUTF32Impl().

static unsigned findMaximalSubpartOfIllFormedUTF8Sequence ( const UTF8 source,
const UTF8 sourceEnd 
) [static]

Definition at line 397 of file ConvertUTF.c.

References isLegalUTF8Sequence().

Referenced by ConvertUTF8toUTF32Impl().

Definition at line 493 of file ConvertUTF.c.

References trailingBytesForUTF8.

Referenced by llvm::sys::unicode::columnWidthUTF8().

static Boolean isLegalUTF8 ( const UTF8 source,
int  length 
) [static]
Boolean isLegalUTF8Sequence ( const UTF8 source,
const UTF8 sourceEnd 
)

Definition at line 386 of file ConvertUTF.c.

References isLegalUTF8(), and trailingBytesForUTF8.

Referenced by findMaximalSubpartOfIllFormedUTF8Sequence().

Boolean isLegalUTF8String ( const UTF8 **  source,
const UTF8 sourceEnd 
)

Definition at line 503 of file ConvertUTF.c.

References isLegalUTF8(), and trailingBytesForUTF8.

Referenced by llvm::ConvertUTF8toWide().


Variable Documentation

const UTF8 firstByteMark[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC } [static]

Definition at line 103 of file ConvertUTF.c.

Referenced by ConvertUTF16toUTF8(), and ConvertUTF32toUTF8().

const UTF32 halfBase = 0x0010000UL [static]
const UTF32 halfMask = 0x3FFUL [static]

Definition at line 59 of file ConvertUTF.c.

Referenced by ConvertUTF32toUTF16(), and ConvertUTF8toUTF16().

const int halfShift = 10 [static]

Definition at line 56 of file ConvertUTF.c.

Initial value:
 { 0x00000000UL, 0x00003080UL, 0x000E2080UL, 
                     0x03C82080UL, 0xFA082080UL, 0x82082080UL }

Definition at line 93 of file ConvertUTF.c.

Referenced by ConvertUTF8toUTF16(), and ConvertUTF8toUTF32Impl().

const char trailingBytesForUTF8[256] [static]
Initial value:
 {
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
    2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5
}

Definition at line 77 of file ConvertUTF.c.

Referenced by ConvertUTF8toUTF16(), ConvertUTF8toUTF32Impl(), getNumBytesForUTF8(), isLegalUTF8Sequence(), and isLegalUTF8String().