Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Moral  |   Übersicht  |   Steuerung
 
 
 
 

Benutzer

Quelle  hb-ot-shaper-indic-table.cc   Sprache: C

 

/* == 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:
 *
 * # IndicSyllabicCategory-17.0.0.txt
 * # Date: 2025-08-01, 04:02:23 GMT
 * # IndicPositionalCategory-17.0.0.txt
 * # Date: 2025-07-29, 13:35:52 GMT
 * # Blocks-17.0.0.txt
 * # Date: 2025-08-01
 */


#include "hb.hh"

#ifndef HB_NO_OT_SHAPE

#include "hb-ot-shaper-indic.hh"

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-macros"

#include "hb-ot-shaper-indic-machine.hh"
#include "hb-ot-shaper-khmer-machine.hh"
#include "hb-ot-shaper-myanmar-machine.hh"

/* indic */
#define OT_X I_Cat(X)
#define OT_C I_Cat(C)
#define OT_V I_Cat(V)
#define OT_N I_Cat(N)
#define OT_H I_Cat(H)
#define OT_ZWNJ I_Cat(ZWNJ)
#define OT_ZWJ I_Cat(ZWJ)
#define OT_M I_Cat(M)
#define OT_SM I_Cat(SM)
#define OT_A I_Cat(A)
#define OT_VD I_Cat(VD)
#define OT_PLACEHOLDER I_Cat(PLACEHOLDER)
#define OT_DOTTEDCIRCLE I_Cat(DOTTEDCIRCLE)
#define OT_RS I_Cat(RS)
#define OT_MPst I_Cat(MPst)
#define OT_Repha I_Cat(Repha)
#define OT_Ra I_Cat(Ra)
#define OT_CM I_Cat(CM)
#define OT_Symbol I_Cat(Symbol)
#define OT_CS I_Cat(CS)
#define OT_SMPst I_Cat(SMPst)
/* khmer */
#define OT_VAbv K_Cat(VAbv)
#define OT_VBlw K_Cat(VBlw)
#define OT_VPre K_Cat(VPre)
#define OT_VPst K_Cat(VPst)
#define OT_Robatic K_Cat(Robatic)
#define OT_Xgroup K_Cat(Xgroup)
#define OT_Ygroup K_Cat(Ygroup)
/* myanmar */
static_assert (OT_VAbv == M_Cat(VAbv), "");
static_assert (OT_VBlw == M_Cat(VBlw), "");
static_assert (OT_VPre == M_Cat(VPre), "");
static_assert (OT_VPst == M_Cat(VPst), "");
#define OT_IV M_Cat(IV)
#define OT_As M_Cat(As)
#define OT_DB M_Cat(DB)
#define OT_GB M_Cat(GB)
#define OT_MH M_Cat(MH)
#define OT_MR M_Cat(MR)
#define OT_MW M_Cat(MW)
#define OT_MY M_Cat(MY)
#define OT_PT M_Cat(PT)
#define OT_VS M_Cat(VS)
#define OT_ML M_Cat(ML)


#define _OT_A    OT_A            /*  53 chars; A */
#define _OT_As   OT_As           /*   1 chars; As */
#define _OT_C    OT_C            /* 476 chars; C */
#define _OT_CM   OT_CM           /*   1 chars; CM */
#define _OT_CS   OT_CS           /*   4 chars; CS */
#define _OT_DC   OT_DOTTEDCIRCLE /*   1 chars; DOTTEDCIRCLE */
#define _OT_H    OT_H            /*  11 chars; H */
#define _OT_M    OT_M            /* 142 chars; M */
#define _OT_MH   OT_MH           /*   1 chars; MH */
#define _OT_ML   OT_ML           /*   1 chars; ML */
#define _OT_MP   OT_MPst         /*   1 chars; MPst */
#define _OT_MR   OT_MR           /*   1 chars; MR */
#define _OT_MW   OT_MW           /*   2 chars; MW */
#define _OT_MY   OT_MY           /*   3 chars; MY */
#define _OT_N    OT_N            /*  17 chars; N */
#define _OT_GB   OT_PLACEHOLDER  /* 185 chars; PLACEHOLDER */
#define _OT_PT   OT_PT           /*   8 chars; PT */
#define _OT_R    OT_Ra           /*  14 chars; Ra */
#define _OT_Rf   OT_Repha        /*   1 chars; Repha */
#define _OT_Rt   OT_Robatic      /*   3 chars; Robatic */
#define _OT_SM   OT_SM           /*  50 chars; SM */
#define _OT_SP   OT_SMPst        /*   6 chars; SMPst */
#define _OT_S    OT_Symbol       /*  22 chars; Symbol */
#define _OT_V    OT_V            /* 172 chars; V */
#define _OT_VA   OT_VAbv         /*  18 chars; VAbv */
#define _OT_VB   OT_VBlw         /*   7 chars; VBlw */
#define _OT_VL   OT_VPre         /*   5 chars; VPre */
#define _OT_VR   OT_VPst         /*  13 chars; VPst */
#define _OT_VS   OT_VS           /*  16 chars; VS */
#define _OT_X    OT_X            /*   2 chars; X */
#define _OT_Xg   OT_Xgroup       /*   7 chars; Xgroup */
#define _OT_Yg   OT_Ygroup       /*   4 chars; Ygroup */
#define _OT_ZWJ  OT_ZWJ          /*   1 chars; ZWJ */
#define _OT_ZWNJ OT_ZWNJ         /*   1 chars; ZWNJ */

#define _POS_T   POS_ABOVE_C     /*  22 chars; ABOVE_C */
#define _POS_A   POS_AFTER_MAIN  /*   3 chars; AFTER_MAIN */
#define _POS_AP  POS_AFTER_POST  /*  50 chars; AFTER_POST */
#define _POS_AS  POS_AFTER_SUB   /*  51 chars; AFTER_SUB */
#define _POS_C   POS_BASE_C      /* 853 chars; BASE_C */
#define _POS_BS  POS_BEFORE_SUB  /*  25 chars; BEFORE_SUB */
#define _POS_B   POS_BELOW_C     /*  13 chars; BELOW_C */
#define _POS_X   POS_END         /*  71 chars; END */
#define _POS_R   POS_POST_C      /*  13 chars; POST_C */
#define _POS_L   POS_PRE_C       /*   5 chars; PRE_C */
#define _POS_LM  POS_PRE_M       /*  14 chars; PRE_M */
#define _POS_SM  POS_SMVD        /* 130 chars; SMVD */

#pragma GCC diagnostic pop

#define INDIC_COMBINE_CATEGORIES(S,M) ((S) | ((M) << 8))

#define _(S,M) INDIC_COMBINE_CATEGORIES (_OT_##S, _POS_##M)


#include <stdint.h>

static const uint16_t _hb_indic_values[42]=
{
    _(A,SM),  _(As,X),   _(C,C),  _(CM,C),  _(CS,C),  _(DC,C),  _(GB,C),   _(H,B),
     _(H,T),   _(H,X),   _(M,A),  _(M,AP),  _(M,AS),   _(M,B),  _(M,BS),  _(M,LM),
    _(MH,X),  _(ML,X), _(MP,AP),  _(MR,X),  _(MW,X),  _(MY,X),   _(N,X),  _(PT,X),
     _(R,C),  _(Rf,X),  _(Rt,X),  _(S,SM), _(SM,BS), _(SM,SM), _(SP,SM),   _(V,C),
    _(VA,T),  _(VB,B),  _(VL,L),  _(VR,R),  _(VS,X),   _(X,X),  _(Xg,X),  _(Yg,X),
   _(ZWJ,X),_(ZWNJ,X),
};
static const uint8_t _hb_indic_u8[1220]=
{
    1,  0, 50,  4,  5, 96,  0,  7,  8,  9,  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,186,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,
    0,  0,  0,  0,208,224,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,
    2,  3,  0,  0,  0,  0,  0,  0,  0,  0,  4,  5,  6,  7,  8,  9,
   10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,  0,  0, 22, 23,
   24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 25, 26,  0,  0,
    0, 27,  0,  0,  0,  0, 28, 29, 30,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0, 31,  0,  0,  0, 32,  0,  0,  0, 33,  0, 34,
    0,  0,  0,  0,  0,  0, 35,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0, 36,  0,  0,  0,  0,  0,  0, 37,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0, 25,  2, 10,  0,  0,  0,  0, 26,  0,
   27,  0,  0,  0, 28,  0,  0,  0,  0,  0, 29, 11, 30,  1,  1,  1,
    4, 31, 32, 33, 34,  1,  6,  2, 35,  1, 12, 13,  7,  1,  1,  3,
   36, 14, 15, 37, 16, 17,  6,  2, 38, 39, 18, 40,  7,  1,  1,  3,
   41, 42, 43, 44, 45, 46, 19,  2, 47,  0, 18, 48, 49,  1,  1,  3,
   20, 14, 50, 51,  0,  0, 21,  2,  0, 52, 53, 13,  7,  1,  1,  3,
   20, 54, 15, 55, 56, 17,  6,  2, 57,  0, 58, 59, 60, 61, 62, 63,
    4, 64, 65, 66, 16,  0, 19,  2,  0,  0, 67,  8,  9,  1,  1,  3,
    4, 22, 68, 69, 70, 71, 23,  2,  0,  0, 12,  8,  9,  1,  1,  3,
   72, 22, 73, 74, 75, 76, 23,  2, 77,  0, 78,  8,  9,  1,  1,  1,
    4, 79, 80, 81, 82, 83, 21,  2,  0, 84, 85,  1,  1, 86, 87, 88,
   89, 90,  2, 91, 92, 93, 94, 95, 96,  1, 97, 98,  2, 99,  0,  0,
    0,  0,  1,  1,  1,100,101, 11,102,103,104,105,106,107,  2, 10,
    0,  0,  0,  0,108,  5,  5,109,110,111,  0,112,113,  0,114,  0,
    0,  0,  0,  0,  0,  0,  0,  0,115,  0,116,  0,  0,  0,  0,  0,
    0,  0,  0,117,  0,  0,  0,  0,  0,118,  0,  0,  0,  0,  5,  5,
  119,120,  0,  0,  0,  0,121,  1,  2,122,  0,  0,  0,  0,  1,  1,
  123,124, 24, 24,  0,  0,  0,  0,  0,  0,125,  0,  0,  0,  0,  0,
    0,126,  0,  0,  2,  2,  2, 10,  0,  0,  0,  0,  2,  2,  2,  2,
    4,  4,  4,  4, 10,  2,  2,  2, 26,  2,  2,  2,  8,  8,  8,  8,
    6, 18,  0,  4, 20, 14, 24,  2,  6,  6, 20,  6, 20,  6, 24,  2,
    4,  0,  0,  0,  6,  6,  6,  6, 66, 12, 14,  6,  6,  6, 20, 14,
    2,  0, 36, 50, 52, 18, 38, 68,  0,  0,  0, 32,  0,  0,  2, 16,
   56, 12, 14,  6,  0,  0,  0,  4, 44,  2, 16,  2,  6, 22,  0,  4,
    2,  0, 36, 28,  6, 28,  0,  4, 30, 30, 30, 30,  0,  0, 42,  0,
   34,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0, 42, 12, 12,  6,  6,
    6,  6, 24,  2,  2, 18, 36,112, 18, 18, 18, 18, 18, 18,114,116,
  118,120,122, 18,  0,  6,  6,  6, 44, 10,  0,  2, 54, 32, 46, 10,
   26,  0,  0,  0,  0,  0, 34, 70,  6, 20,  0, 14, 44,  2, 16, 10,
    2,  0, 72, 50,124, 48,  0, 32, 48, 32, 46,  0,126,  0,  0,  0,
   16,  2, 10, 10, 12,  2,128,  0,  6,  6,  6, 14,  6, 14, 24,  2,
   22, 22, 52, 74, 76, 32, 46,  0, 16, 58, 58, 78,130, 12, 14,  6,
    2,  0, 36,132,134, 32, 46,  0,  0,  0, 80,136, 16,  0,  0,  0,
    0, 70, 14,  6,  6, 20,  0,  6, 20,  6, 24,  0, 16, 10, 10,  2,
    0, 16, 10,  0,  2, 10,  0,  2,  2,  0,  0, 22, 76, 48,  0, 82,
   54, 22, 84,  0, 12, 12,138,  6, 28, 60, 38, 28, 86, 28, 88,  0,
    0,  0,140, 86,  2, 10, 16,  0, 26,  2, 16,  2, 28, 60, 38, 60,
   38, 18, 88,  0,  0,  0, 74, 38,  0,  0, 16, 10,142,144,  0,  0,
   12, 12,146,  6,  2,148,150, 22, 22, 22, 48, 82, 54, 22, 84,152,
    0,  0,  2,154,  0,  0,  0, 14,  0,  2,  2,  2,  2,  2, 26,  2,
    2,156,  2,  2, 90,  6,  6,  6,  6,158, 92, 94,160,162, 62, 58,
  164,166,168,170,  4,  4,  0, 10,  2,  6,  6, 96, 98, 26,  2,172,
  174,100,176,178,100,102,102,  2,104, 62,180,  2,  2,182,184,186,
   12, 12, 12,188,  4, 12,190,  0,  2, 26,  2,  2,  2, 90,  6,  6,
    6,  6,  0, 92, 62, 94, 98,192,194,196, 96,198,200,106,106,108,
  108,202,  0,  0, 42,  0,204,  0,  8,206,  8,  8,208, 40,210, 40,
   40,  2,212,214,  8, 34,  0,  0,  0,  0,216,  0,  4,  4,  4,  0,
    0, 34,  0,  0,  0,  0,110,  0,  0, 64,110,  0,  0,  0,218,  0,
    0, 42,  4, 34,  8, 40, 40, 40,  0,  0,  0,220,  2,  2,104, 16,
    4,  2,  2, 10, 16,  2,  4, 34,  0,222, 78,  2, 56, 12,  0,  0,
    0, 80, 72,  0, 37, 37,  2,  2,  6,  6, 31, 31,  0,  0,  2, 37,
   29, 29, 37, 31, 37,  2, 12, 12, 31, 37, 11, 11, 31,  2, 24,  2,
   14, 14, 36, 36, 37, 11,  6, 37, 22, 27, 12, 37, 27, 27, 37,  6,
   24, 37, 11,  7, 11, 37, 11, 15, 11, 12, 15, 37, 37, 29,  0, 22,
   14, 12, 32, 32, 30, 30,  6, 29, 37, 15, 29, 37, 22, 37, 37, 12,
   12, 11, 22, 22, 37, 22, 15, 15, 11,  8, 14, 37, 14,  8,  2, 31,
   35, 32, 32, 33, 35, 35, 33, 33, 35, 23, 23, 23,  2, 32, 26, 38,
   38, 38, 30, 37, 12, 15, 12,  7, 15, 12, 37,  0,  0, 29, 29, 12,
   18, 11, 37, 13, 37,  3, 37, 28, 11, 10, 10, 37, 10, 11, 29, 31,
   37, 14, 37,  4,  4, 29,  6, 31,  2, 12, 12, 27, 25, 37,  2, 11,
    2, 24, 31, 35, 33, 34,  0, 32, 29,  9,  1, 21, 19, 20, 16,  2,
   21, 21, 17,  2, 23,  2,  2, 35, 32,  2, 20, 35, 34, 32, 32, 29,
    2, 29, 29, 32, 32, 35, 35, 34, 34, 34, 38, 39, 39, 26,  9, 39,
   27, 39,  0, 37,  0, 27, 27,  0,  0,  4,  4,  0, 41, 40,  5, 37,
   31, 12,  2, 23,
};

static inline uint8_t _hb_indic_b4 (const uint8_t* a, unsigned i)
{
  return (a[i>>1]>>((i&1)<<2))&15;
}
static inline uint8_t _hb_indic_get_categories_index (unsigned u)
{
  /* packtab: [2^4,2^3,2^3,2^2,2^1] */
  return u<71396u ? (uint8_t)(_hb_indic_u8[996u+_hb_indic_u8[488u+((_hb_indic_u8[186u+((_hb_indic_u8[70u+((_hb_indic_b4(_hb_indic_u8,((((((((u)>>1))>>2))>>3))>>3)))<<3)+((((((((u)>>1))>>2))>>3))&7)])<<3)+((((((u)>>1))>>2))&7)])<<2)+((((u)>>1))&3)]+((u)&1)]) : 37;
}

uint16_t
hb_indic_get_categories (hb_codepoint_t u)
{
  return _hb_indic_values[_hb_indic_get_categories_index (u)];
}

#undef _
#undef INDIC_COMBINE_CATEGORIES

#undef _OT_A
#undef _OT_As
#undef _OT_C
#undef _OT_CM
#undef _OT_CS
#undef _OT_DC
#undef _OT_H
#undef _OT_M
#undef _OT_MH
#undef _OT_ML
#undef _OT_MP
#undef _OT_MR
#undef _OT_MW
#undef _OT_MY
#undef _OT_N
#undef _OT_GB
#undef _OT_PT
#undef _OT_R
#undef _OT_Rf
#undef _OT_Rt
#undef _OT_SM
#undef _OT_SP
#undef _OT_S
#undef _OT_V
#undef _OT_VA
#undef _OT_VB
#undef _OT_VL
#undef _OT_VR
#undef _OT_VS
#undef _OT_X
#undef _OT_Xg
#undef _OT_Yg
#undef _OT_ZWJ
#undef _OT_ZWNJ

#undef _POS_T
#undef _POS_A
#undef _POS_AP
#undef _POS_AS
#undef _POS_C
#undef _POS_BS
#undef _POS_B
#undef _POS_X
#undef _POS_R
#undef _POS_L
#undef _POS_LM
#undef _POS_SM

#endif

/* == End of generated table == */

Messung V0.5 in Prozent
C=83 H=100 G=91

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet am  2026-09-30) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

letze Version des Elbe Quellennavigators


Jenseits des Üblichen ....
    

Besucher

Besucher

Statistik
#Sources=1126438
#Domains=1897691