V8 Project
unicode.cc File Reference

Implementations of functions for working with unicode. More...

#include "src/unicode-inl.h"
#include <stdio.h>
#include <stdlib.h>
+ Include dependency graph for unicode.cc:

Go to the source code of this file.

Classes

struct  unibrow::MultiCharacterSpecialCase< kW >
 

Namespaces

 unibrow
 

Typedefs

typedef signed short unibrow::int16_t
 
typedef unsigned short unibrow::uint16_t
 
typedef int unibrow::int32_t
 

Functions

template<int D>
static uchar unibrow::TableGet (const int32_t *table, int index)
 
static uchar unibrow::GetEntry (int32_t entry)
 
static bool unibrow::IsStart (int32_t entry)
 
static bool unibrow::LookupPredicate (const int32_t *table, uint16_t size, uchar chr)
 Look up a character in the unicode table using a mix of binary and interpolation search. More...
 
template<bool ranges_are_linear, int kW>
static int unibrow::LookupMapping (const int32_t *table, uint16_t size, const MultiCharacterSpecialCase< kW > *multi_chars, uchar chr, uchar next, uchar *result, bool *allow_caching_ptr)
 

Variables

static const int unibrow::kStartBit = (1 << 30)
 
static const int unibrow::kChunkBits = (1 << 13)
 
static const uchar unibrow::kSentinel = static_cast<uchar>(-1)
 
static const uint16_t unibrow::kUppercaseTable0Size = 450
 
static const int32_t unibrow::kUppercaseTable0 [450]
 
static const uint16_t unibrow::kUppercaseTable1Size = 86
 
static const int32_t unibrow::kUppercaseTable1 [86]
 
static const uint16_t unibrow::kUppercaseTable5Size = 91
 
static const int32_t unibrow::kUppercaseTable5 [91]
 
static const uint16_t unibrow::kUppercaseTable7Size = 2
 
static const int32_t unibrow::kUppercaseTable7 [2]
 
static const uint16_t unibrow::kLowercaseTable0Size = 463
 
static const int32_t unibrow::kLowercaseTable0 [463]
 
static const uint16_t unibrow::kLowercaseTable1Size = 84
 
static const int32_t unibrow::kLowercaseTable1 [84]
 
static const uint16_t unibrow::kLowercaseTable5Size = 93
 
static const int32_t unibrow::kLowercaseTable5 [93]
 
static const uint16_t unibrow::kLowercaseTable7Size = 6
 
static const int32_t unibrow::kLowercaseTable7 [6]
 
static const uint16_t unibrow::kLetterTable0Size = 435
 
static const int32_t unibrow::kLetterTable0 [435]
 
static const uint16_t unibrow::kLetterTable1Size = 87
 
static const int32_t unibrow::kLetterTable1 [87]
 
static const uint16_t unibrow::kLetterTable2Size = 4
 
static const int32_t unibrow::kLetterTable2 [4]
 
static const uint16_t unibrow::kLetterTable3Size = 2
 
static const int32_t unibrow::kLetterTable3 [2]
 
static const uint16_t unibrow::kLetterTable4Size = 2
 
static const int32_t unibrow::kLetterTable4 [2]
 
static const uint16_t unibrow::kLetterTable5Size = 88
 
static const int32_t unibrow::kLetterTable5 [88]
 
static const uint16_t unibrow::kLetterTable6Size = 6
 
static const int32_t unibrow::kLetterTable6 [6]
 
static const uint16_t unibrow::kLetterTable7Size = 48
 
static const int32_t unibrow::kLetterTable7 [48]
 
static const uint16_t unibrow::kNumberTable0Size = 56
 
static const int32_t unibrow::kNumberTable0 [56]
 
static const uint16_t unibrow::kNumberTable5Size = 12
 
static const int32_t unibrow::kNumberTable5 [12]
 
static const uint16_t unibrow::kNumberTable7Size = 2
 
static const int32_t unibrow::kNumberTable7 [2]
 
static const uint16_t unibrow::kWhiteSpaceTable0Size = 4
 
static const int32_t unibrow::kWhiteSpaceTable0 [4]
 
static const uint16_t unibrow::kWhiteSpaceTable1Size = 5
 
static const int32_t unibrow::kWhiteSpaceTable1 [5]
 
static const uint16_t unibrow::kLineTerminatorTable0Size = 2
 
static const int32_t unibrow::kLineTerminatorTable0 [2]
 
static const uint16_t unibrow::kLineTerminatorTable1Size = 2
 
static const int32_t unibrow::kLineTerminatorTable1 [2]
 
static const uint16_t unibrow::kCombiningMarkTable0Size = 258
 
static const int32_t unibrow::kCombiningMarkTable0 [258]
 
static const uint16_t unibrow::kCombiningMarkTable1Size = 14
 
static const int32_t unibrow::kCombiningMarkTable1 [14]
 
static const uint16_t unibrow::kCombiningMarkTable5Size = 47
 
static const int32_t unibrow::kCombiningMarkTable5 [47]
 
static const uint16_t unibrow::kCombiningMarkTable7Size = 5
 
static const int32_t unibrow::kCombiningMarkTable7 [5]
 
static const uint16_t unibrow::kConnectorPunctuationTable0Size = 1
 
static const int32_t unibrow::kConnectorPunctuationTable0 [1]
 
static const uint16_t unibrow::kConnectorPunctuationTable1Size = 3
 
static const int32_t unibrow::kConnectorPunctuationTable1 [3]
 
static const uint16_t unibrow::kConnectorPunctuationTable7Size = 5
 
static const int32_t unibrow::kConnectorPunctuationTable7 [5]
 
static const MultiCharacterSpecialCase< 2 > unibrow::kToLowercaseMultiStrings0 [2]
 
static const uint16_t unibrow::kToLowercaseTable0Size = 483
 
static const int32_t unibrow::kToLowercaseTable0 [966]
 
static const uint16_t unibrow::kToLowercaseMultiStrings0Size = 2
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToLowercaseMultiStrings1 [1]
 
static const uint16_t unibrow::kToLowercaseTable1Size = 79
 
static const int32_t unibrow::kToLowercaseTable1 [158]
 
static const uint16_t unibrow::kToLowercaseMultiStrings1Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToLowercaseMultiStrings5 [1]
 
static const uint16_t unibrow::kToLowercaseTable5Size = 91
 
static const int32_t unibrow::kToLowercaseTable5 [182]
 
static const uint16_t unibrow::kToLowercaseMultiStrings5Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToLowercaseMultiStrings7 [1]
 
static const uint16_t unibrow::kToLowercaseTable7Size = 2
 
static const int32_t unibrow::kToLowercaseTable7 [4]
 
static const uint16_t unibrow::kToLowercaseMultiStrings7Size = 1
 
static const MultiCharacterSpecialCase< 3 > unibrow::kToUppercaseMultiStrings0 [62]
 
static const uint16_t unibrow::kToUppercaseTable0Size = 580
 
static const int32_t unibrow::kToUppercaseTable0 [1160]
 
static const uint16_t unibrow::kToUppercaseMultiStrings0Size = 62
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToUppercaseMultiStrings1 [1]
 
static const uint16_t unibrow::kToUppercaseTable1Size = 73
 
static const int32_t unibrow::kToUppercaseTable1 [146]
 
static const uint16_t unibrow::kToUppercaseMultiStrings1Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kToUppercaseMultiStrings5 [1]
 
static const uint16_t unibrow::kToUppercaseTable5Size = 88
 
static const int32_t unibrow::kToUppercaseTable5 [176]
 
static const uint16_t unibrow::kToUppercaseMultiStrings5Size = 1
 
static const MultiCharacterSpecialCase< 3 > unibrow::kToUppercaseMultiStrings7 [12]
 
static const uint16_t unibrow::kToUppercaseTable7Size = 14
 
static const int32_t unibrow::kToUppercaseTable7 [28]
 
static const uint16_t unibrow::kToUppercaseMultiStrings7Size = 12
 
static const MultiCharacterSpecialCase< 1 > unibrow::kEcma262CanonicalizeMultiStrings0 [1]
 
static const uint16_t unibrow::kEcma262CanonicalizeTable0Size = 488
 
static const int32_t unibrow::kEcma262CanonicalizeTable0 [976]
 
static const uint16_t unibrow::kEcma262CanonicalizeMultiStrings0Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kEcma262CanonicalizeMultiStrings1 [1]
 
static const uint16_t unibrow::kEcma262CanonicalizeTable1Size = 73
 
static const int32_t unibrow::kEcma262CanonicalizeTable1 [146]
 
static const uint16_t unibrow::kEcma262CanonicalizeMultiStrings1Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kEcma262CanonicalizeMultiStrings5 [1]
 
static const uint16_t unibrow::kEcma262CanonicalizeTable5Size = 88
 
static const int32_t unibrow::kEcma262CanonicalizeTable5 [176]
 
static const uint16_t unibrow::kEcma262CanonicalizeMultiStrings5Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kEcma262CanonicalizeMultiStrings7 [1]
 
static const uint16_t unibrow::kEcma262CanonicalizeTable7Size = 2
 
static const int32_t unibrow::kEcma262CanonicalizeTable7 [4]
 
static const uint16_t unibrow::kEcma262CanonicalizeMultiStrings7Size = 1
 
static const MultiCharacterSpecialCase< 4 > unibrow::kEcma262UnCanonicalizeMultiStrings0 [497]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeTable0Size = 990
 
static const int32_t unibrow::kEcma262UnCanonicalizeTable0 [1980]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeMultiStrings0Size = 497
 
static const MultiCharacterSpecialCase< 2 > unibrow::kEcma262UnCanonicalizeMultiStrings1 [83]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeTable1Size = 149
 
static const int32_t unibrow::kEcma262UnCanonicalizeTable1 [298]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeMultiStrings1Size = 83
 
static const MultiCharacterSpecialCase< 2 > unibrow::kEcma262UnCanonicalizeMultiStrings5 [92]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeTable5Size = 179
 
static const int32_t unibrow::kEcma262UnCanonicalizeTable5 [358]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeMultiStrings5Size = 92
 
static const MultiCharacterSpecialCase< 2 > unibrow::kEcma262UnCanonicalizeMultiStrings7 [3]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeTable7Size = 4
 
static const int32_t unibrow::kEcma262UnCanonicalizeTable7 [8]
 
static const uint16_t unibrow::kEcma262UnCanonicalizeMultiStrings7Size = 3
 
static const MultiCharacterSpecialCase< 1 > unibrow::kCanonicalizationRangeMultiStrings0 [1]
 
static const uint16_t unibrow::kCanonicalizationRangeTable0Size = 70
 
static const int32_t unibrow::kCanonicalizationRangeTable0 [140]
 
static const uint16_t unibrow::kCanonicalizationRangeMultiStrings0Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kCanonicalizationRangeMultiStrings1 [1]
 
static const uint16_t unibrow::kCanonicalizationRangeTable1Size = 14
 
static const int32_t unibrow::kCanonicalizationRangeTable1 [28]
 
static const uint16_t unibrow::kCanonicalizationRangeMultiStrings1Size = 1
 
static const MultiCharacterSpecialCase< 1 > unibrow::kCanonicalizationRangeMultiStrings7 [1]
 
static const uint16_t unibrow::kCanonicalizationRangeTable7Size = 4
 
static const int32_t unibrow::kCanonicalizationRangeTable7 [8]
 
static const uint16_t unibrow::kCanonicalizationRangeMultiStrings7Size = 1
 

Detailed Description

Implementations of functions for working with unicode.

Definition in file unicode.cc.