harfbuzz/src/hb-ot-shaper-indic-table.cc

544 lines
25 KiB
C++
Raw Normal View History

/* == Start of generated table == */
/*
* The following table is generated by running:
*
* ./gen-indic-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt Blocks.txt
*
* on files with these headers:
*
2021-09-15 00:00:33 +02:00
* # IndicSyllabicCategory-14.0.0.txt
* # Date: 2021-05-22, 01:01:00 GMT [KW, RP]
* # IndicPositionalCategory-14.0.0.txt
* # Date: 2021-05-22, 01:01:00 GMT [KW, RP]
* # Blocks-14.0.0.txt
* # Date: 2021-01-22, 23:29:00 GMT [KW]
*/
#include "hb.hh"
#ifndef HB_NO_OT_SHAPE
2022-06-03 10:56:41 +02:00
#include "hb-ot-shaper-indic.hh"
2012-03-07 21:33:14 +01:00
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-macros"
#define ISC_A OT_A /* 51 chars; A */
#define ISC_C OT_C /* 521 chars; C */
#define ISC_CM OT_CM /* 10 chars; CM */
#define ISC_CS OT_CS /* 2 chars; CS */
#define ISC_Co OT_Coeng /* 2 chars; Coeng */
#define ISC_DC OT_DOTTEDCIRCLE /* 1 chars; DOTTEDCIRCLE */
#define ISC_H OT_H /* 10 chars; H */
#define ISC_M OT_M /* 209 chars; M */
#define ISC_N OT_N /* 35 chars; N */
#define ISC_GB OT_PLACEHOLDER /* 168 chars; PLACEHOLDER */
#define ISC_RS OT_RS /* 2 chars; RS */
#define ISC_R OT_Ra /* 11 chars; Ra */
#define ISC_Rf OT_Repha /* 1 chars; Repha */
#define ISC_SM OT_SM /* 56 chars; SM */
#define ISC_S OT_Symbol /* 22 chars; Symbol */
#define ISC_V OT_V /* 190 chars; V */
#define ISC_X OT_X /* 2 chars; X */
#define ISC_ZWJ OT_ZWJ /* 1 chars; ZWJ */
#define ISC_ZWNJ OT_ZWNJ /* 1 chars; ZWNJ */
#define IMC_T POS_ABOVE_C /* 125 chars; ABOVE_C */
#define IMC_A POS_AFTER_MAIN /* 55 chars; AFTER_MAIN */
#define IMC_B POS_BELOW_C /* 79 chars; BELOW_C */
#define IMC_X POS_END /* 893 chars; END */
#define IMC_R POS_POST_C /* 122 chars; POST_C */
#define IMC_L POS_PRE_C /* 21 chars; PRE_C */
#pragma GCC diagnostic pop
#define _(S,M) INDIC_COMBINE_CATEGORIES (ISC_##S, IMC_##M)
static const uint16_t indic_table[] = {
#define indic_offset_0x0028u 0
/* Basic Latin */
/* 0028 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(GB,X), _(X,X), _(X,X),
/* 0030 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0038 */ _(GB,X), _(GB,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
#define indic_offset_0x00b0u 24
/* Latin-1 Supplement */
/* 00B0 */ _(X,X), _(X,X), _(SM,X), _(SM,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 00B8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 00C0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 00C8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 00D0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(GB,X),
#define indic_offset_0x0900u 64
/* Devanagari */
/* 0900 */ _(SM,T), _(SM,T), _(SM,T), _(SM,R), _(V,X), _(V,X), _(V,X), _(V,X),
/* 0908 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X),
/* 0910 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(C,X), _(C,X), _(C,X),
/* 0918 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0920 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0928 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 0930 */ _(R,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Devanagari */
/* 0938 */ _(C,X), _(C,X), _(M,T), _(M,R), _(N,X), _(S,X), _(M,R), _(M,L),
2011-06-13 22:02:18 +02:00
/* 0940 */ _(M,R), _(M,B), _(M,B), _(M,B), _(M,B), _(M,T), _(M,T), _(M,T),
/* 0948 */ _(M,T), _(M,R), _(M,R), _(M,R), _(M,R), _(H,B), _(M,L), _(M,R),
/* 0950 */ _(X,X), _(A,X), _(A,X), _(SM,A), _(SM,A), _(M,T), _(M,B), _(M,B),
/* 0958 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0960 */ _(V,X), _(V,X), _(M,B), _(M,B), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 0968 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0970 */ _(X,X), _(X,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X),
/* 0978 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 0980 */ _(GB,X), _(SM,T), _(SM,R), _(SM,R), _(X,X), _(V,X), _(V,X), _(V,X),
/* Bengali */
/* 0988 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(X,X), _(X,X), _(V,X),
/* 0990 */ _(V,X), _(X,X), _(X,X), _(V,X), _(V,X), _(C,X), _(C,X), _(C,X),
/* 0998 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 09A0 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 09A8 */ _(C,X), _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 09B0 */ _(R,X), _(X,X), _(C,X), _(X,X), _(X,X), _(X,X), _(C,X), _(C,X),
/* Bengali */
/* 09B8 */ _(C,X), _(C,X), _(X,X), _(X,X), _(N,X), _(S,X), _(M,R), _(M,L),
/* 09C0 */ _(M,R), _(M,B), _(M,B), _(M,B), _(M,B), _(X,X), _(X,X), _(M,L),
/* 09C8 */ _(M,L), _(X,X), _(X,X), _(M,R), _(M,R), _(H,B), _(C,X), _(X,X),
/* 09D0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(M,R),
/* 09D8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(C,X), _(C,X), _(X,X), _(C,X),
/* 09E0 */ _(V,X), _(V,X), _(M,B), _(M,B), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 09E8 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* Vedic Extensions */
/* 09F0 */ _(R,X), _(C,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 09F8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(GB,X), _(X,X), _(SM,T), _(X,X),
/* Gurmukhi */
/* 0A00 */ _(X,X), _(SM,T), _(SM,T), _(SM,R), _(X,X), _(V,X), _(V,X), _(V,X),
/* 0A08 */ _(V,X), _(V,X), _(V,X), _(X,X), _(X,X), _(X,X), _(X,X), _(V,X),
/* 0A10 */ _(V,X), _(X,X), _(X,X), _(V,X), _(V,X), _(C,X), _(C,X), _(C,X),
/* 0A18 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0A20 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0A28 */ _(C,X), _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 0A30 */ _(R,X), _(X,X), _(C,X), _(C,X), _(X,X), _(C,X), _(C,X), _(X,X),
/* Gurmukhi */
/* 0A38 */ _(C,X), _(C,X), _(X,X), _(X,X), _(N,X), _(X,X), _(M,R), _(M,L),
/* 0A40 */ _(M,R), _(M,B), _(M,B), _(X,X), _(X,X), _(X,X), _(X,X), _(M,T),
/* 0A48 */ _(M,T), _(X,X), _(X,X), _(M,T), _(M,T), _(H,B), _(X,X), _(X,X),
/* Vedic Extensions */
/* 0A50 */ _(X,X), _(M,A), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* Gurmukhi */
/* 0A58 */ _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(X,X), _(C,X), _(X,X),
/* 0A60 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 0A68 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0A70 */ _(SM,T), _(SM,T), _(C,X), _(C,X), _(X,X), _(CM,B), _(X,X), _(X,X),
/* 0A78 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* Gujarati */
/* 0A80 */ _(X,X), _(SM,T), _(SM,T), _(SM,R), _(X,X), _(V,X), _(V,X), _(V,X),
/* 0A88 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(X,X), _(V,X),
/* 0A90 */ _(V,X), _(V,X), _(X,X), _(V,X), _(V,X), _(C,X), _(C,X), _(C,X),
/* 0A98 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0AA0 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0AA8 */ _(C,X), _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 0AB0 */ _(R,X), _(X,X), _(C,X), _(C,X), _(X,X), _(C,X), _(C,X), _(C,X),
/* Gujarati */
/* 0AB8 */ _(C,X), _(C,X), _(X,X), _(X,X), _(N,X), _(S,X), _(M,R), _(M,L),
/* 0AC0 */ _(M,R), _(M,B), _(M,B), _(M,B), _(M,B), _(M,T), _(X,X), _(M,T),
/* 0AC8 */ _(M,T), _(M,R), _(X,X), _(M,R), _(M,R), _(H,B), _(X,X), _(X,X),
/* 0AD0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 0AD8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 0AE0 */ _(V,X), _(V,X), _(M,B), _(M,B), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 0AE8 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0AF0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 0AF8 */ _(X,X), _(C,X), _(A,X), _(N,X), _(A,X), _(N,X), _(N,X), _(N,X),
/* Oriya */
/* 0B00 */ _(X,X), _(SM,T), _(SM,R), _(SM,R), _(X,X), _(V,X), _(V,X), _(V,X),
/* 0B08 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(X,X), _(X,X), _(V,X),
/* 0B10 */ _(V,X), _(X,X), _(X,X), _(V,X), _(V,X), _(C,X), _(C,X), _(C,X),
/* 0B18 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0B20 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0B28 */ _(C,X), _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 0B30 */ _(R,X), _(X,X), _(C,X), _(C,X), _(X,X), _(C,X), _(C,X), _(C,X),
/* Oriya */
/* 0B38 */ _(C,X), _(C,X), _(X,X), _(X,X), _(N,X), _(S,X), _(M,R), _(M,T),
/* 0B40 */ _(M,R), _(M,B), _(M,B), _(M,B), _(M,B), _(X,X), _(X,X), _(M,L),
/* 0B48 */ _(M,T), _(X,X), _(X,X), _(M,R), _(M,R), _(H,B), _(X,X), _(X,X),
/* Vedic Extensions */
/* 0B50 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(N,X), _(M,T), _(M,R),
/* Oriya */
/* 0B58 */ _(X,X), _(X,X), _(X,X), _(X,X), _(C,X), _(C,X), _(X,X), _(C,X),
/* 0B60 */ _(V,X), _(V,X), _(M,B), _(M,B), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 0B68 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0B70 */ _(X,X), _(C,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 0B78 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* Tamil */
/* 0B80 */ _(X,X), _(X,X), _(SM,T), _(X,X), _(X,X), _(V,X), _(V,X), _(V,X),
/* 0B88 */ _(V,X), _(V,X), _(V,X), _(X,X), _(X,X), _(X,X), _(V,X), _(V,X),
/* 0B90 */ _(V,X), _(X,X), _(V,X), _(V,X), _(V,X), _(C,X), _(X,X), _(X,X),
/* 0B98 */ _(X,X), _(C,X), _(C,X), _(X,X), _(C,X), _(X,X), _(C,X), _(C,X),
/* 0BA0 */ _(X,X), _(X,X), _(X,X), _(C,X), _(C,X), _(X,X), _(X,X), _(X,X),
/* 0BA8 */ _(C,X), _(C,X), _(C,X), _(X,X), _(X,X), _(X,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 0BB0 */ _(R,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Tamil */
/* 0BB8 */ _(C,X), _(C,X), _(X,X), _(X,X), _(X,X), _(X,X), _(M,R), _(M,R),
/* 0BC0 */ _(M,T), _(M,R), _(M,R), _(X,X), _(X,X), _(X,X), _(M,L), _(M,L),
/* 0BC8 */ _(M,L), _(X,X), _(M,R), _(M,R), _(M,R), _(H,T), _(X,X), _(X,X),
/* 0BD0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(M,R),
/* 0BD8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 0BE0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 0BE8 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0BF0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 0BF8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* Telugu */
/* 0C00 */ _(SM,T), _(SM,R), _(SM,R), _(SM,R), _(SM,T), _(V,X), _(V,X), _(V,X),
/* 0C08 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(X,X), _(V,X), _(V,X),
/* 0C10 */ _(V,X), _(X,X), _(V,X), _(V,X), _(V,X), _(C,X), _(C,X), _(C,X),
/* 0C18 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0C20 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0C28 */ _(C,X), _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 0C30 */ _(R,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Telugu */
/* 0C38 */ _(C,X), _(C,X), _(X,X), _(X,X), _(N,X), _(S,X), _(M,T), _(M,T),
/* 0C40 */ _(M,T), _(M,R), _(M,R), _(M,R), _(M,R), _(X,X), _(M,T), _(M,T),
/* 0C48 */ _(M,B), _(X,X), _(M,T), _(M,T), _(M,T), _(H,T), _(X,X), _(X,X),
/* 0C50 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(M,T), _(M,B), _(X,X),
/* 0C58 */ _(C,X), _(C,X), _(C,X), _(X,X), _(X,X), _(C,X), _(X,X), _(X,X),
/* 0C60 */ _(V,X), _(V,X), _(M,B), _(M,B), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 0C68 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0C70 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 0C78 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* Vedic Extensions */
/* 0C80 */ _(GB,X), _(SM,T), _(SM,R), _(SM,R), _(X,X), _(V,X), _(V,X), _(V,X),
/* Kannada */
/* 0C88 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(X,X), _(V,X), _(V,X),
/* 0C90 */ _(V,X), _(X,X), _(V,X), _(V,X), _(V,X), _(C,X), _(C,X), _(C,X),
/* 0C98 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0CA0 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0CA8 */ _(C,X), _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 0CB0 */ _(R,X), _(C,X), _(C,X), _(C,X), _(X,X), _(C,X), _(C,X), _(C,X),
/* Kannada */
/* 0CB8 */ _(C,X), _(C,X), _(X,X), _(X,X), _(N,X), _(S,X), _(M,R), _(M,T),
/* 0CC0 */ _(M,R), _(M,R), _(M,R), _(M,R), _(M,R), _(X,X), _(M,T), _(M,R),
/* 0CC8 */ _(M,R), _(X,X), _(M,R), _(M,R), _(M,T), _(H,T), _(X,X), _(X,X),
/* 0CD0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(M,R), _(M,R), _(X,X),
/* 0CD8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(C,X), _(C,X), _(X,X),
/* 0CE0 */ _(V,X), _(V,X), _(M,B), _(M,B), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 0CE8 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0CF0 */ _(X,X), _(CS,X), _(CS,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 0CF8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* Malayalam */
/* 0D00 */ _(SM,T), _(SM,T), _(SM,R), _(SM,R), _(GB,X), _(V,X), _(V,X), _(V,X),
/* 0D08 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(X,X), _(V,X), _(V,X),
/* 0D10 */ _(V,X), _(X,X), _(V,X), _(V,X), _(V,X), _(C,X), _(C,X), _(C,X),
/* 0D18 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0D20 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0D28 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Vedic Extensions */
/* 0D30 */ _(R,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Malayalam */
/* 0D38 */ _(C,X), _(C,X), _(C,X), _(M,T), _(M,T), _(S,X), _(M,R), _(M,R),
/* 0D40 */ _(M,R), _(M,R), _(M,R), _(M,B), _(M,B), _(X,X), _(M,L), _(M,L),
/* 0D48 */ _(M,L), _(X,X), _(M,R), _(M,R), _(M,R), _(H,T), _(Rf,X), _(X,X),
/* 0D50 */ _(X,X), _(X,X), _(X,X), _(X,X), _(C,X), _(C,X), _(C,X), _(M,R),
/* 0D58 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(V,X),
/* 0D60 */ _(V,X), _(V,X), _(M,B), _(M,B), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 0D68 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0D70 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 0D78 */ _(X,X), _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* Sinhala */
/* 0D80 */ _(X,X), _(SM,T), _(SM,R), _(SM,R), _(X,X), _(V,X), _(V,X), _(V,X),
/* 0D88 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X),
/* 0D90 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(X,X),
/* 0D98 */ _(X,X), _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0DA0 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0DA8 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0DB0 */ _(C,X), _(C,X), _(X,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 0DB8 */ _(C,X), _(C,X), _(C,X), _(R,X), _(X,X), _(C,X), _(X,X), _(X,X),
/* 0DC0 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(X,X),
/* 0DC8 */ _(X,X), _(X,X), _(H,T), _(X,X), _(X,X), _(X,X), _(X,X), _(M,R),
/* 0DD0 */ _(M,R), _(M,R), _(M,T), _(M,T), _(M,B), _(X,X), _(M,B), _(X,X),
/* 0DD8 */ _(M,R), _(M,L), _(M,T), _(M,L), _(M,R), _(M,R), _(M,R), _(M,R),
/* 0DE0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(GB,X), _(GB,X),
/* 0DE8 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 0DF0 */ _(X,X), _(X,X), _(M,R), _(M,R), _(X,X), _(X,X), _(X,X), _(X,X),
#define indic_offset_0x1000u 1336
/* Myanmar */
/* 1000 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 1008 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 1010 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 1018 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 1020 */ _(C,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X),
/* 1028 */ _(V,X), _(V,X), _(V,X), _(M,R), _(M,R), _(M,T), _(M,T), _(M,B),
/* 1030 */ _(M,B), _(M,L), _(M,T), _(M,T), _(M,T), _(M,T), _(SM,T), _(N,X),
/* 1038 */ _(SM,R), _(Co,X), _(M,T), _(CM,R), _(CM,B), _(CM,B), _(CM,B), _(C,X),
/* 1040 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 1048 */ _(GB,X), _(GB,X), _(X,X), _(GB,X), _(X,X), _(X,X), _(GB,X), _(X,X),
/* 1050 */ _(C,X), _(C,X), _(V,X), _(V,X), _(V,X), _(V,X), _(M,R), _(M,R),
/* 1058 */ _(M,B), _(M,B), _(C,X), _(C,X), _(C,X), _(C,X), _(CM,B), _(CM,B),
/* 1060 */ _(CM,B), _(C,X), _(M,R), _(N,X), _(N,X), _(C,X), _(C,X), _(M,R),
/* 1068 */ _(M,R), _(N,X), _(N,X), _(N,X), _(N,X), _(N,X), _(C,X), _(C,X),
/* 1070 */ _(C,X), _(M,T), _(M,T), _(M,T), _(M,T), _(C,X), _(C,X), _(C,X),
/* 1078 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 1080 */ _(C,X), _(C,X), _(CM,B), _(M,R), _(M,L), _(M,T), _(M,T), _(N,X),
/* 1088 */ _(N,X), _(N,X), _(N,X), _(N,X), _(N,X), _(N,X), _(C,X), _(N,X),
/* 1090 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 1098 */ _(GB,X), _(GB,X), _(N,X), _(N,X), _(M,R), _(M,T), _(X,X), _(X,X),
#define indic_offset_0x1780u 1496
/* Khmer */
/* 1780 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 1788 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 1790 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 1798 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* 17A0 */ _(C,X), _(C,X), _(C,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X),
/* 17A8 */ _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X), _(V,X),
/* 17B0 */ _(V,X), _(V,X), _(V,X), _(V,X), _(X,X), _(X,X), _(M,R), _(M,T),
/* 17B8 */ _(M,T), _(M,T), _(M,T), _(M,B), _(M,B), _(M,B), _(M,T), _(M,R),
/* 17C0 */ _(M,R), _(M,L), _(M,L), _(M,L), _(M,R), _(M,R), _(SM,T), _(SM,R),
/* 17C8 */ _(M,R), _(RS,T), _(RS,T), _(SM,T), _(CM,T), _(M,T), _(SM,T), _(SM,T),
/* 17D0 */ _(SM,T), _(M,T), _(Co,X), _(SM,T), _(X,X), _(X,X), _(X,X), _(X,X),
/* 17D8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(S,X), _(SM,T), _(X,X), _(X,X),
/* 17E0 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* 17E8 */ _(GB,X), _(GB,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
#define indic_offset_0x1cd0u 1608
2012-03-07 18:08:33 +01:00
/* Vedic Extensions */
2012-03-07 18:08:33 +01:00
/* 1CD0 */ _(A,X), _(A,X), _(A,X), _(X,X), _(A,X), _(A,X), _(A,X), _(A,X),
/* 1CD8 */ _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X),
/* 1CE0 */ _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X),
/* 1CE8 */ _(A,X), _(S,X), _(S,X), _(S,X), _(S,X), _(A,X), _(S,X), _(S,X),
/* 1CF0 */ _(S,X), _(S,X), _(C,X), _(C,X), _(A,X), _(C,X), _(C,X), _(A,X),
/* 1CF8 */ _(A,X), _(A,X), _(GB,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
2012-03-07 18:08:33 +01:00
#define indic_offset_0x2008u 1656
/* General Punctuation */
/* 2008 */ _(X,X), _(X,X), _(X,X), _(X,X),_(ZWNJ,X),_(ZWJ,X), _(X,X), _(X,X),
/* Vedic Extensions */
/* 2010 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(X,X), _(X,X), _(X,X),
#define indic_offset_0x2070u 1672
/* Superscripts and Subscripts */
/* 2070 */ _(X,X), _(X,X), _(X,X), _(X,X), _(SM,X), _(X,X), _(X,X), _(X,X),
/* 2078 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 2080 */ _(X,X), _(X,X), _(SM,X), _(SM,X), _(SM,X), _(X,X), _(X,X), _(X,X),
#define indic_offset_0xa8e0u 1696
/* Devanagari Extended */
/* A8E0 */ _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X),
/* A8E8 */ _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X), _(A,X),
/* A8F0 */ _(A,X), _(A,X), _(S,X), _(S,X), _(S,X), _(S,X), _(S,X), _(S,X),
/* A8F8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(V,X), _(M,T),
#define indic_offset_0xa9e0u 1728
/* Myanmar Extended-B */
/* A9E0 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(M,T), _(X,X), _(C,X),
/* A9E8 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* A9F0 */ _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X), _(GB,X),
/* A9F8 */ _(GB,X), _(GB,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(X,X),
#define indic_offset_0xaa60u 1760
/* Myanmar Extended-A */
/* AA60 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* AA68 */ _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X), _(C,X),
/* AA70 */ _(X,X), _(C,X), _(C,X), _(C,X), _(GB,X), _(GB,X), _(GB,X), _(X,X),
/* AA78 */ _(X,X), _(X,X), _(C,X), _(N,X), _(N,X), _(N,X), _(C,X), _(C,X),
#define indic_offset_0x11300u 1792
/* Vedic Extensions */
/* 11300 */ _(X,X), _(SM,A), _(SM,A), _(SM,A), _(X,X), _(X,X), _(X,X), _(X,X),
/* 11308 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 11310 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 11318 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 11320 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 11328 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 11330 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
/* 11338 */ _(X,X), _(X,X), _(X,X), _(N,X), _(N,X), _(X,X), _(X,X), _(X,X),
}; /* Table items: 1856; occupancy: 69% */
uint16_t
hb_indic_get_categories (hb_codepoint_t u)
{
2014-06-20 21:12:49 +02:00
switch (u >> 12)
{
case 0x0u:
if (unlikely (u == 0x00A0u)) return _(GB,X);
if (hb_in_range<hb_codepoint_t> (u, 0x0028u, 0x003Fu)) return indic_table[u - 0x0028u + indic_offset_0x0028u];
if (hb_in_range<hb_codepoint_t> (u, 0x00B0u, 0x00D7u)) return indic_table[u - 0x00B0u + indic_offset_0x00b0u];
if (hb_in_range<hb_codepoint_t> (u, 0x0900u, 0x0DF7u)) return indic_table[u - 0x0900u + indic_offset_0x0900u];
2014-06-20 21:12:49 +02:00
break;
case 0x1u:
if (hb_in_range<hb_codepoint_t> (u, 0x1000u, 0x109Fu)) return indic_table[u - 0x1000u + indic_offset_0x1000u];
if (hb_in_range<hb_codepoint_t> (u, 0x1780u, 0x17EFu)) return indic_table[u - 0x1780u + indic_offset_0x1780u];
if (hb_in_range<hb_codepoint_t> (u, 0x1CD0u, 0x1CFFu)) return indic_table[u - 0x1CD0u + indic_offset_0x1cd0u];
2014-06-20 21:12:49 +02:00
break;
case 0x2u:
if (unlikely (u == 0x25CCu)) return _(DC,X);
if (hb_in_range<hb_codepoint_t> (u, 0x2008u, 0x2017u)) return indic_table[u - 0x2008u + indic_offset_0x2008u];
if (hb_in_range<hb_codepoint_t> (u, 0x2070u, 0x2087u)) return indic_table[u - 0x2070u + indic_offset_0x2070u];
2014-06-20 21:12:49 +02:00
break;
case 0xAu:
if (hb_in_range<hb_codepoint_t> (u, 0xA8E0u, 0xA8FFu)) return indic_table[u - 0xA8E0u + indic_offset_0xa8e0u];
if (hb_in_range<hb_codepoint_t> (u, 0xA9E0u, 0xA9FFu)) return indic_table[u - 0xA9E0u + indic_offset_0xa9e0u];
if (hb_in_range<hb_codepoint_t> (u, 0xAA60u, 0xAA7Fu)) return indic_table[u - 0xAA60u + indic_offset_0xaa60u];
2014-06-20 21:12:49 +02:00
break;
case 0x11u:
if (hb_in_range<hb_codepoint_t> (u, 0x11300u, 0x1133Fu)) return indic_table[u - 0x11300u + indic_offset_0x11300u];
break;
2014-06-20 21:12:49 +02:00
default:
break;
}
return _(X,X);
}
#undef _
#undef ISC_A
#undef ISC_C
#undef ISC_CM
#undef ISC_CS
#undef ISC_Co
#undef ISC_DC
#undef ISC_H
#undef ISC_M
#undef ISC_N
#undef ISC_GB
#undef ISC_RS
#undef ISC_R
#undef ISC_Rf
#undef ISC_SM
#undef ISC_S
#undef ISC_V
#undef ISC_X
#undef ISC_ZWJ
#undef ISC_ZWNJ
#undef IMC_T
#undef IMC_A
#undef IMC_B
#undef IMC_X
#undef IMC_R
#undef IMC_L
#endif
/* == End of generated table == */