xref: /aosp_15_r20/external/harfbuzz_ng/src/hb-unicode-emoji-table.hh (revision 2d1272b857b1f7575e6e246373e1cb218663db8a)
1*2d1272b8SAndroid Build Coastguard Worker /* == Start of generated table == */
2*2d1272b8SAndroid Build Coastguard Worker /*
3*2d1272b8SAndroid Build Coastguard Worker  * The following tables are generated by running:
4*2d1272b8SAndroid Build Coastguard Worker  *
5*2d1272b8SAndroid Build Coastguard Worker  *   ./gen-emoji-table.py emoji-data.txt
6*2d1272b8SAndroid Build Coastguard Worker  *
7*2d1272b8SAndroid Build Coastguard Worker  * on file with this header:
8*2d1272b8SAndroid Build Coastguard Worker  *
9*2d1272b8SAndroid Build Coastguard Worker  * # emoji-data.txt
10*2d1272b8SAndroid Build Coastguard Worker  * # Date: 2024-05-01, 21:25:24 GMT
11*2d1272b8SAndroid Build Coastguard Worker  * # © 2024 Unicode®, Inc.
12*2d1272b8SAndroid Build Coastguard Worker  * # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
13*2d1272b8SAndroid Build Coastguard Worker  * # For terms of use and license, see https://www.unicode.org/terms_of_use.html
14*2d1272b8SAndroid Build Coastguard Worker  * #
15*2d1272b8SAndroid Build Coastguard Worker  * # Emoji Data for UTS #51
16*2d1272b8SAndroid Build Coastguard Worker  * # Used with Emoji Version 16.0 and subsequent minor revisions (if any)
17*2d1272b8SAndroid Build Coastguard Worker  * #
18*2d1272b8SAndroid Build Coastguard Worker  * # For documentation and usage, see https://www.unicode.org/reports/tr51
19*2d1272b8SAndroid Build Coastguard Worker  */
20*2d1272b8SAndroid Build Coastguard Worker 
21*2d1272b8SAndroid Build Coastguard Worker #ifndef HB_UNICODE_EMOJI_TABLE_HH
22*2d1272b8SAndroid Build Coastguard Worker #define HB_UNICODE_EMOJI_TABLE_HH
23*2d1272b8SAndroid Build Coastguard Worker 
24*2d1272b8SAndroid Build Coastguard Worker #include "hb-unicode.hh"
25*2d1272b8SAndroid Build Coastguard Worker 
26*2d1272b8SAndroid Build Coastguard Worker static const uint8_t
27*2d1272b8SAndroid Build Coastguard Worker _hb_emoji_u8[464] =
28*2d1272b8SAndroid Build Coastguard Worker {
29*2d1272b8SAndroid Build Coastguard Worker    16, 17, 17, 17, 50, 20, 21, 17, 17, 17, 17, 17, 17, 17, 17, 17,
30*2d1272b8SAndroid Build Coastguard Worker    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
31*2d1272b8SAndroid Build Coastguard Worker    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
32*2d1272b8SAndroid Build Coastguard Worker    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,118,152,
33*2d1272b8SAndroid Build Coastguard Worker     0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
34*2d1272b8SAndroid Build Coastguard Worker     2,  0,  3,  4,  0,  0,  5,  6,  0,  7,  0,  8,  9, 10, 11, 12,
35*2d1272b8SAndroid Build Coastguard Worker     0,  0, 13,  0,  0,  0, 14,  0, 15,  0,  0,  0,  0, 16,  0,  0,
36*2d1272b8SAndroid Build Coastguard Worker    17, 17, 18, 19, 20, 17, 17, 21, 17, 17, 22, 17, 23, 17, 24, 25,
37*2d1272b8SAndroid Build Coastguard Worker    26, 27, 28, 17, 17, 17,  0,  0, 17, 17, 17, 17, 17, 17, 17, 29,
38*2d1272b8SAndroid Build Coastguard Worker     0,  0,  0,  0,  0,  1,  0,  0,  0,  2,  3,  0,  0,  4,  0,  0,
39*2d1272b8SAndroid Build Coastguard Worker     5,  6,  0,  0,  7,  8,  0,  0,  8,  0,  9, 10,  0,  0, 11,  0,
40*2d1272b8SAndroid Build Coastguard Worker     0, 12, 13, 14, 15, 16, 16, 16, 17, 16, 16, 16, 18, 19, 20, 21,
41*2d1272b8SAndroid Build Coastguard Worker    22, 23,  0,  0,  0, 24,  0,  0, 25,  0, 26,  0,  0, 27,  0,  0,
42*2d1272b8SAndroid Build Coastguard Worker    28,  0,  0,  0, 16, 16, 16, 16, 29,  9,  0, 30, 31, 32, 16, 33,
43*2d1272b8SAndroid Build Coastguard Worker    34, 35, 36, 16, 16, 16, 16, 37, 16, 38, 39, 16, 16, 16, 40,  0,
44*2d1272b8SAndroid Build Coastguard Worker     0,  0,  0, 41,  0,  0, 42, 16, 43,  0, 44,  0, 45, 46, 16, 16,
45*2d1272b8SAndroid Build Coastguard Worker    47, 48, 49, 16, 16, 16, 16, 38,  0,  0,  0,  0,  0, 66,  0,  0,
46*2d1272b8SAndroid Build Coastguard Worker     0,  0,  0, 16,  0,  2,  0,  0,  4,  0,  0,  2,  0,  0,240,  3,
47*2d1272b8SAndroid Build Coastguard Worker     0,  6,  0,  0,  0,  0,  0, 12,  0,  1,  0,  0,  0,128,  0,  0,
48*2d1272b8SAndroid Build Coastguard Worker     0,254, 15,  7,  4,  0,  0,  0,  0, 12, 64,  0,  1,  0,  0,  0,
49*2d1272b8SAndroid Build Coastguard Worker     0,  0,  0,120,191,255,247,255,255,255,255,255, 63,  0,255,255,
50*2d1272b8SAndroid Build Coastguard Worker    63,255, 87, 32,  2,  1, 24,  0,144, 80,184,  0,248,  0,  0,  0,
51*2d1272b8SAndroid Build Coastguard Worker     0,  0,224,  0,  2,  0,  1,128,  0,  0, 48,  0,224,  0,  0, 24,
52*2d1272b8SAndroid Build Coastguard Worker     0,  0, 33,  0,  0,  0,  1, 32,  0,  0,128,  2,  0,224,  0,  0,
53*2d1272b8SAndroid Build Coastguard Worker     0,240,  3,192,  0, 64,254,  7,  0,224,255,255, 63,  0,  0,  0,
54*2d1272b8SAndroid Build Coastguard Worker   254,255,  0,  4,  0,128,252,247,  0,254,255,255,255,255,255,  7,
55*2d1272b8SAndroid Build Coastguard Worker   255,255,255, 63,192,255,255,255,255,255,  0,  0,  0,  0,240,255,
56*2d1272b8SAndroid Build Coastguard Worker     0,  0,224,255,  0,240,  0,  0,  0,255,  0,252,  0,255,  0,  0,
57*2d1272b8SAndroid Build Coastguard Worker     0,192,255,255,  0,240,255,255,255,255,255,247,191,255,255,255,
58*2d1272b8SAndroid Build Coastguard Worker };
59*2d1272b8SAndroid Build Coastguard Worker 
60*2d1272b8SAndroid Build Coastguard Worker static inline unsigned
_hb_emoji_b4(const uint8_t * a,unsigned i)61*2d1272b8SAndroid Build Coastguard Worker _hb_emoji_b4 (const uint8_t* a, unsigned i)
62*2d1272b8SAndroid Build Coastguard Worker {
63*2d1272b8SAndroid Build Coastguard Worker   return (a[i>>1]>>((i&1u)<<2))&15u;
64*2d1272b8SAndroid Build Coastguard Worker }
65*2d1272b8SAndroid Build Coastguard Worker static inline unsigned
_hb_emoji_b1(const uint8_t * a,unsigned i)66*2d1272b8SAndroid Build Coastguard Worker _hb_emoji_b1 (const uint8_t* a, unsigned i)
67*2d1272b8SAndroid Build Coastguard Worker {
68*2d1272b8SAndroid Build Coastguard Worker   return (a[i>>3]>>((i&7u)<<0))&1u;
69*2d1272b8SAndroid Build Coastguard Worker }
70*2d1272b8SAndroid Build Coastguard Worker static inline uint_fast8_t
_hb_emoji_is_Extended_Pictographic(unsigned u)71*2d1272b8SAndroid Build Coastguard Worker _hb_emoji_is_Extended_Pictographic (unsigned u)
72*2d1272b8SAndroid Build Coastguard Worker {
73*2d1272b8SAndroid Build Coastguard Worker   return u<131070u?_hb_emoji_b1(264+_hb_emoji_u8,((_hb_emoji_u8[144+(((_hb_emoji_u8[64+(((_hb_emoji_b4(_hb_emoji_u8,u>>5>>2>>3))<<3)+((u>>5>>2)&7u))])<<2)+((u>>5)&3u))])<<5)+((u)&31u)):0;
74*2d1272b8SAndroid Build Coastguard Worker }
75*2d1272b8SAndroid Build Coastguard Worker 
76*2d1272b8SAndroid Build Coastguard Worker 
77*2d1272b8SAndroid Build Coastguard Worker #endif /* HB_UNICODE_EMOJI_TABLE_HH */
78*2d1272b8SAndroid Build Coastguard Worker 
79*2d1272b8SAndroid Build Coastguard Worker /* == End of generated table == */
80