Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/gfx/harfbuzz/src/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 42 kB image not shown  

Quelle  hb-ot-shaper-indic-machine.hh

  Sprache: C
 


#line 1 "hb-ot-shaper-indic-machine.rl"
/*
 * Copyright © 2011,2012  Google, Inc.
 *
 *  This is part of HarfBuzz, a text shaping library.
 *
 * Permission is hereby granted, without written agreement and without
 * license or royalty fees, to use, copy, modify, and distribute this
 * software and its documentation for any purpose, provided that the
 * above copyright notice and the following two paragraphs appear in
 * all copies of this software.
 *
 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 * DAMAGE.
 *
 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 *
 * Google Author(s): Behdad Esfahbod
 */


#ifndef HB_OT_SHAPER_INDIC_MACHINE_HH
#define HB_OT_SHAPER_INDIC_MACHINE_HH

#include "hb.hh"

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

/* buffer var allocations */
#define indic_category() ot_shaper_var_u8_category() /* indic_category_t */
#define indic_position() ot_shaper_var_u8_auxiliary() /* indic_position_t */

using indic_category_t = unsigned;
using indic_position_t = ot_position_t;

#define I_Cat(Cat) indic_syllable_machine_ex_##Cat

enum indic_syllable_type_t {
  indic_consonant_syllable,
  indic_vowel_syllable,
  indic_standalone_cluster,
  indic_symbol_cluster,
  indic_broken_cluster,
  indic_non_indic_cluster,
};


#line 57 "hb-ot-shaper-indic-machine.hh"
#define indic_syllable_machine_ex_A 9u
#define indic_syllable_machine_ex_C 1u
#define indic_syllable_machine_ex_CM 16u
#define indic_syllable_machine_ex_CS 18u
#define indic_syllable_machine_ex_DOTTEDCIRCLE 11u
#define indic_syllable_machine_ex_H 4u
#define indic_syllable_machine_ex_M 7u
#define indic_syllable_machine_ex_MPst 13u
#define indic_syllable_machine_ex_N 3u
#define indic_syllable_machine_ex_PLACEHOLDER 10u
#define indic_syllable_machine_ex_RS 12u
#define indic_syllable_machine_ex_Ra 15u
#define indic_syllable_machine_ex_Repha 14u
#define indic_syllable_machine_ex_SM 8u
#define indic_syllable_machine_ex_SMPst 57u
#define indic_syllable_machine_ex_Symbol 17u
#define indic_syllable_machine_ex_V 2u
#define indic_syllable_machine_ex_VD 9u
#define indic_syllable_machine_ex_X 0u
#define indic_syllable_machine_ex_ZWJ 6u
#define indic_syllable_machine_ex_ZWNJ 5u


#line 81 "hb-ot-shaper-indic-machine.hh"
static const unsigned char _indic_syllable_machine_trans_keys[] = {
 8u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 4u, 57u, 
 8u, 57u, 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 4u, 57u, 4u, 57u, 
 8u, 57u, 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 4u, 57u, 8u, 57u, 
 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 5u, 57u, 8u, 57u, 1u, 57u, 
 3u, 57u, 3u, 57u, 4u, 57u, 1u, 57u, 5u, 57u, 5u, 57u, 9u, 9u, 5u, 9u, 
 1u, 57u, 1u, 57u, 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 4u, 57u, 
 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 4u, 57u, 
 1u, 57u, 3u, 57u, 3u, 57u, 4u, 57u, 1u, 57u, 5u, 57u, 9u, 9u, 5u, 9u, 
 1u, 57u, 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 4u, 57u, 5u, 57u, 
 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 4u, 57u, 3u, 57u, 3u, 57u, 
 4u, 57u, 1u, 57u, 3u, 57u, 1u, 57u, 5u, 57u, 9u, 9u, 5u, 9u, 1u, 57u, 
 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 
 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 4u, 57u, 4u, 57u, 3u, 57u, 3u, 57u, 
 4u, 57u, 1u, 57u, 3u, 57u, 1u, 57u, 5u, 57u, 9u, 9u, 5u, 9u, 1u, 57u, 
 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 
 5u, 57u, 3u, 57u, 5u, 57u, 1u, 57u, 3u, 57u, 1u, 57u, 4u, 57u, 5u, 57u, 
 5u, 57u, 9u, 9u, 5u, 9u, 1u, 57u, 3u, 57u, 5u, 57u, 5u, 57u, 9u, 9u, 
 5u, 9u, 1u, 15u, 0
};

static const char _indic_syllable_machine_key_spans[] = {
 505453531545454
 505353154545454
 505353154545450
 535315454535057
 55555457535315
 5757575554535354
 5355535555555554
 57555554575315
 5757555453535453
 5355535555545555
 54575557531557
 5755545353555453
 5355535554545555
 54575557531557
 5755545353555453
 5355535755575453
 5315575553531
 515
};

static const short _indic_syllable_machine_index_offsets[] = {
 051106160214216271326
 381432486540542597652707
 76281386792192397810331088
 11391193124712491304135914131464
 15221578163416891747180118551857
 18631921197920372093214822022256
 23112365242124752531258726432699
 27542812286829242979303730913093
 30993157321532713326338034343489
 35433597365337073763381938743930
 39864041409941554213426742694275
 43334391444745024556461046664721
 47754829488549394995505051055161
 52175272533053865444549855005506
 55645622567857335787584158975952
 60066060611661706228628463426397
 64516505650765136571662766816735
 67376743
};

static const unsigned char _indic_syllable_machine_indicies[] = {
 10000000
 00000000
 00000000
 00000000
 00000000
 00000000
 01023345
 00004000
 00000000
 00000000
 00000000
 00000000
 00000000
 50334600
 00400000
 00000000
 00000000
 00000000
 00000000
 00000060
 33450000
 40000000
 00000000
 00000000
 00000000
 00000000
 00005040
 73345000
 04000000
 00000000
 00000000
 00000000
 00000000
 00000502
 33450008
 40000000
 00000000
 00000000
 00000000
 00000000
 0000501011
 111213999912
 99999999
 99999999
 99999999
 99999999
 99999999
 9991391499
 99999999
 99999999
 99999999
 99999999
 99999999
 999999149
 111112159999
 129999999
 99999999
 99999999
 99999999
 99999999
 99991591111
 12139999129
 99999999
 99999999
 99999999
 99999999
 99999999
 991391291611
 111213999912
 99999999
 99999999
 99999999
 99999999
 99999999
 999139101111
 121399917129
 99999999
 99999999
 99999999
 99999999
 99999999
 9913910111112
 13999181299
 99999999
 99999999
 99999999
 99999999
 99999999
 91392021212223
 1919192422191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191919
 2319251919191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919192519212122
 2726262626222626
 2626262626262626
 2626262626262626
 2626262626262626
 2626262626262626
 2626262626262626
 2627262121222319
 1919192219191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191923
 1922262021212223
 1919191922191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191919
 2319282121222319
 1919192219191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191919
 1919191919191923
 1930313132332929
 2934322929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929293329
 3529292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2935293131323629
 2929293229292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929292936
 2931313233292929
 2932292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929332932
 2930313132332929
 2929322929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929293329
 3731313233292929
 2932292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929292929
 2929292929332921
 212238000022
 00000000
 00000000
 00000000
 00000000
 00000000
 000380403939
 3939393939393939
 3939393939393939
 3939393939393939
 3939393939393939
 3939393939393939
 3939393939394039
 4243444546472223
 4849492422505152
 5354414141414141
 4141414141414141
 4141414141414141
 4141414141414141
 4141414141414141
 55415758596045
 61565684565662
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5566358646445
 615656564565662
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5565864644561
 565656456566256
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565656565656565
 5642565656656656
 161565656565642
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 56156676756161
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565656565656561
 5661565668615656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656685661
 5661565656615642
 566956676756161
 5656565656425656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565656565656561
 5642565656676756
 161565656565642
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 561564256565667
 665616156565656
 5642565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565656156707172
 7245615656564
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565656556717272
 4561565656456
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656556727245
 615656564565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 556615656686156
 565645656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656566856
 73747445615656
 564565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565656565655665
 755616156565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565656156655667
 675616156565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565656156677556
 161565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 56156575864644
 56156565645656
 6256565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 56556575859644
 5615656845656
 6256565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565567778798012
 1381767618127676
 8276767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7613768378848012
 1381767676127676
 8276767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7613767884801213
 8176767612767682
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 1376857676768687
 7614817676767676
 8576767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676147688788990
 1213817676171276
 7682767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676137691788484
 1213817676761276
 7682767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676137678848412
 1381767676127676
 8276767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7613768576767692
 8776148176767676
 7685767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676761476817676
 9381767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7693768176817676
 7681768576947692
 9276148176767676
 7685767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676761476857676
 7692927614817676
 7676768576767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676147695
 9697971213817676
 7612767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676137696
 9797121381767676
 1276767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767613769797
 1213817676761276
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676137681767693
 8176767612767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 9376989999121381
 7676761276767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767613
 76861007614817676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676147692
 9276148176767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676761476867692
 9276148176767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 76767614769210076
 1481767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7614768878848412
 1381767676127676
 8276767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7613768878898412
 1381767617127676
 8276767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7613761011111213
 7676767612767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 1376777884801213
 8176767612767682
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 7676767676767676
 1376102451031032223
 481011011012210110152
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 2310145103103222348
 1011011012210110152101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110110110110110110123
 101104101101101105106101
 2548101101101101101104
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10125101444510710822
 23481011012422101101
 52101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10123101104101101101109
 1061012548101101101101
 101104101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 1011011012510148101101
 11048101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 1011101014810148101101
 10148101104101111101109
 1091012548101101101101
 101104101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110110125101104101101
 1011091091012548101101
 101101101104101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110110110110125101112
 113114114222348101101
 10122101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110110110110123101113
 114114222348101101101
 22101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110110110123101114114
 22234810110110122101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110123101482626110
 4826262622262626
 2626262626262626
 2626262626262626
 2626262626262626
 2626262626262626
 2626262626262626
 1102644451031032223
 481011011012210110152
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 23101115116116222348
 10110110122101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110110110110110110123
 1011051171012548101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110110110110125101109
 1091012548101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110110125101105101109
 1091012548101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110110125101109117101
 2548101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10125101444510710322
 23481011012422101101
 52101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101231012021212223
 1181181182422118118118
 118118118118118118118118
 118118118118118118118118
 118118118118118118118118
 118118118118118118118118
 118118118118118118118118
 231182021212223118
 11811811822118118118118
 118118118118118118118118
 118118118118118118118118
 118118118118118118118118
 118118118118118118118118
 11811811811811811811823
 1181201211221233233124
 1191193432119119125119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911911911911911911933
 1191261211231233233124
 11911911932119119125119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911911911911911911933
 1191211231233233124119
 11911932119119125119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911911911911911933119
 12711911911912812911935
 124119119119119119127119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 35119120121122493233
 1241191193432119119125
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 33119127119119119130129
 11935124119119119119119
 127119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911935119124119119131
 124119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 131119124119124119119119
 124119127119132119130130
 11935124119119119119119
 127119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911935119127119119119
 13013011935124119119119
 119119127119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911911911935119133134
 1351353233124119119119
 32119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911911911933119134135
 135323312411911911932
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 1191191193311913513532
 3312411911911932119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11933119124119119131124
 11911911932119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119131
 1191201211231233233124
 11911911932119119125119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911911911911911911933
 1191361371373233124119
 11911932119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911911911911911933119
 12813811935124119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911911911935119130130
 11935124119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 11911935119128119130130
 11935124119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 1191193511913013811935
 124119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 119119119119119119119119
 3511942434445107103
 22234849492422101
 4252101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 101101101101101101101101
 10110123101571395960
 456156568456
 5662565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565655642434445
 14014122142143564924
 2256425256565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 565656561425620144
 144221426156562422
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 56565614256615656
 6861565656225656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5668561435656145143
 5656562256565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 56565656565656145
 5614356143565656143
 564256692014414422
 14261565656225642
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5656565656565656
 5614256147146148148146
 40149146146146146146146
 146146146146146146146146
 146146146146146146146146
 146146146146146146146146
 146146146146146146146146
 146146146146146146146146
 1464014614814814640149
 146146146146146146146146
 146146146146146146146146
 146146146146146146146146
 146146146146146146146146
 146146146146146146146146
 14614614614614614614640
 146149146146150149146146
 146146146146146146146146
 146146146146146146146146
 146146146146146146146146
 146146146146146146146146
 146146146146146146146146
 146146146146146150146149
 14614914614614614914642
 118118118118118118118118
 49118118118118421180
};

static const unsigned char _indic_syllable_machine_trans_targs[] = {
 31374224346450
 513160966696111
 7475783183178992
 93843119983110724
 1131161171082612212731
 1343132537981100101
 851021231249413213792
 313335652384734
 13640039414445
 34854931545614
 776270557577264
 581376598636567
 6810711273318020
 8296871599168688
 9091189521973131
 1031052227109118104106
 1201112311011211411525
 11928121125126131128129
 291303113330135136
};

static const char _indic_syllable_machine_trans_actions[] = {
 10202002
 23202000
 22242055
 50602720
 20200208
 01122501212
 025252013
 142002022
 02200222
 000215200
 20220222
 20220022
 200021650
 52205002
 5500021718
 20000222
 22002220
 0020191900
 00202000
};

static const char _indic_syllable_machine_to_state_actions[] = {
 00000000
 00000000
 00000000
 00000009
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00
};

static const char _indic_syllable_machine_from_state_actions[] = {
 00000000
 00000000
 00000000
 000000010
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00
};

static const short _indic_syllable_machine_eof_trans[] = {
 111111110
 1010101010101020
 2027202720203030
 30303030301400
 5757575757575757
 5757575757575757
 5757575757777777
 7777777777777777
 7777777777777777
 77777777777777102
 102102102102102102102102
 10210210210227102102102
 102102102102119119120120
 120120120120120120120120
 120120120120120120120120
 12012012010257575757
 57575757147147147147
 147119
};

static const int indic_syllable_machine_start = 31;
static const int indic_syllable_machine_first_final = 31;
static const int indic_syllable_machine_error = -1;

static const int indic_syllable_machine_en_main = 31;


#line 58 "hb-ot-shaper-indic-machine.rl"



#line 121 "hb-ot-shaper-indic-machine.rl"


#define found_syllable(syllable_type) \
  HB_STMT_START { \
    if (0) fprintf (stderr, "syllable %u..%u %s\n", ts, te, #syllable_type); \
    for (unsigned int i = ts; i < te; i++) \
      info[i].syllable() = (syllable_serial << 4) | syllable_type; \
    syllable_serial++; \
    if (syllable_serial == 16) syllable_serial = 1; \
  } HB_STMT_END

inline void
find_syllables_indic (hb_buffer_t *buffer)
{
  unsigned int p, pe, eof, ts, te, act;
  int cs;
  hb_glyph_info_t *info = buffer->info;
  
#line 1130 "hb-ot-shaper-indic-machine.hh"
 {
 cs = indic_syllable_machine_start;
 ts = 0;
 te = 0;
 act = 0;
 }

#line 141 "hb-ot-shaper-indic-machine.rl"


  p = 0;
  pe = eof = buffer->len;

  unsigned int syllable_serial = 1;
  
#line 1146 "hb-ot-shaper-indic-machine.hh"
 {
 int _slen;
 int _trans;
 const unsigned char *_keys;
 const unsigned char *_inds;
 if ( p == pe )
  goto _test_eof;
_resume:
 switch ( _indic_syllable_machine_from_state_actions[cs] ) {
 case 10:
#line 1 "NONE"
 {ts = p;}
 break;
#line 1160 "hb-ot-shaper-indic-machine.hh"
 }

 _keys = _indic_syllable_machine_trans_keys + (cs<<1);
 _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];

 _slen = _indic_syllable_machine_key_spans[cs];
 _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
  ( info[p].indic_category()) <= _keys[1] ?
  ( info[p].indic_category()) - _keys[0] : _slen ];

_eof_trans:
 cs = _indic_syllable_machine_trans_targs[_trans];

 if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
  goto _again;

 switch ( _indic_syllable_machine_trans_actions[_trans] ) {
 case 2:
#line 1 "NONE"
 {te = p+1;}
 break;
 case 11:
#line 117 "hb-ot-shaper-indic-machine.rl"
 {te = p+1;{ found_syllable (indic_non_indic_cluster); }}
 break;
 case 14:
#line 111 "hb-ot-shaper-indic-machine.rl"
 {te = p;p--;{ found_syllable (indic_consonant_syllable); }}
 break;
 case 15:
#line 112 "hb-ot-shaper-indic-machine.rl"
 {te = p;p--;{ found_syllable (indic_vowel_syllable); }}
 break;
 case 18:
#line 113 "hb-ot-shaper-indic-machine.rl"
 {te = p;p--;{ found_syllable (indic_standalone_cluster); }}
 break;
 case 20:
#line 114 "hb-ot-shaper-indic-machine.rl"
 {te = p;p--;{ found_syllable (indic_symbol_cluster); }}
 break;
 case 16:
#line 116 "hb-ot-shaper-indic-machine.rl"
 {te = p;p--;{ found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
 break;
 case 17:
#line 117 "hb-ot-shaper-indic-machine.rl"
 {te = p;p--;{ found_syllable (indic_non_indic_cluster); }}
 break;
 case 1:
#line 111 "hb-ot-shaper-indic-machine.rl"
 {{p = ((te))-1;}{ found_syllable (indic_consonant_syllable); }}
 break;
 case 3:
#line 112 "hb-ot-shaper-indic-machine.rl"
 {{p = ((te))-1;}{ found_syllable (indic_vowel_syllable); }}
 break;
 case 7:
#line 113 "hb-ot-shaper-indic-machine.rl"
 {{p = ((te))-1;}{ found_syllable (indic_standalone_cluster); }}
 break;
 case 8:
#line 114 "hb-ot-shaper-indic-machine.rl"
 {{p = ((te))-1;}{ found_syllable (indic_symbol_cluster); }}
 break;
 case 4:
#line 116 "hb-ot-shaper-indic-machine.rl"
 {{p = ((te))-1;}{ found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
 break;
 case 6:
#line 1 "NONE"
 { switch( act ) {
 case 1:
 {{p = ((te))-1;} found_syllable (indic_consonant_syllable); }
 break;
 case 5:
 {{p = ((te))-1;} found_syllable (indic_non_indic_cluster); }
 break;
 case 6:
 {{p = ((te))-1;} found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }
 break;
 case 7:
 {{p = ((te))-1;} found_syllable (indic_non_indic_cluster); }
 break;
 }
 }
 break;
 case 19:
#line 1 "NONE"
 {te = p+1;}
#line 111 "hb-ot-shaper-indic-machine.rl"
 {act = 1;}
 break;
 case 13:
#line 1 "NONE"
 {te = p+1;}
#line 115 "hb-ot-shaper-indic-machine.rl"
 {act = 5;}
 break;
 case 5:
#line 1 "NONE"
 {te = p+1;}
#line 116 "hb-ot-shaper-indic-machine.rl"
 {act = 6;}
 break;
 case 12:
#line 1 "NONE"
 {te = p+1;}
#line 117 "hb-ot-shaper-indic-machine.rl"
 {act = 7;}
 break;
#line 1272 "hb-ot-shaper-indic-machine.hh"
 }

_again:
 switch ( _indic_syllable_machine_to_state_actions[cs] ) {
 case 9:
#line 1 "NONE"
 {ts = 0;}
 break;
#line 1281 "hb-ot-shaper-indic-machine.hh"
 }

 if ( ++p != pe )
  goto _resume;
 _test_eof: {}
 if ( p == eof )
 {
 if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
  _trans = _indic_syllable_machine_eof_trans[cs] - 1;
  goto _eof_trans;
 }
 }

 }

#line 149 "hb-ot-shaper-indic-machine.rl"

}

#undef found_syllable

#endif /* HB_OT_SHAPER_INDIC_MACHINE_HH */

Messung V0.5 in Prozent
C=95 H=96 G=95

¤ Dauer der Verarbeitung: 0.40 Sekunden  (vorverarbeitet am  2026-06-10) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

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.