concordia-library/utf8case/case_tables.hpp
Rafał Jaworski 6ddba32f48 utf8
Former-commit-id: fa7407621e839f87613476596c6589aeceb9d796
2014-04-24 11:51:04 +02:00

43 lines
1023 B
C++

#ifndef CASE_TABLES_HDR
#define CASE_TABLES_HDR
#include <boost/cstdint.hpp>
enum {
EVEN_ODD = 1,
ODD_EVEN = -1,
EVEN_ODD_SKIP = 1<<30,
ODD_EVEN_SKIP,
};
struct CaseConversionRecord {
uint32_t lo_code_point;
uint32_t hi_code_point;
int32_t delta;
};
struct SpecialCasingConversionRecord {
uint32_t code_point;
const char* replacement;
};
extern const size_t LOWER_CASE_RANGES_SIZE;
extern const CaseConversionRecord LOWER_CASE_RANGES[];
extern const size_t UPPER_CASE_RANGES_SIZE;
extern const CaseConversionRecord UPPER_CASE_RANGES[];
extern const size_t TITLE_CASE_RANGES_SIZE;
extern const CaseConversionRecord TITLE_CASE_RANGES[];
extern const size_t LOWER_SPECIAL_CASING_SIZE;
extern const SpecialCasingConversionRecord LOWER_SPECIAL_CASING[];
extern const size_t TITLE_SPECIAL_CASING_SIZE;
extern const SpecialCasingConversionRecord TITLE_SPECIAL_CASING[];
extern const size_t UPPER_SPECIAL_CASING_SIZE;
extern const SpecialCasingConversionRecord UPPER_SPECIAL_CASING[];
#endif