Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

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

  Sprache: C
 


#line 1 "hb-ot-shaper-myanmar-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_MYANMAR_MACHINE_HH
#define HB_OT_SHAPER_MYANMAR_MACHINE_HH

#include "hb.hh"

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

/* buffer var allocations */
#define myanmar_category() ot_shaper_var_u8_category() /* myanmar_category_t */
#define myanmar_position() ot_shaper_var_u8_auxiliary() /* myanmar_position_t */

using myanmar_category_t = unsigned;
using myanmar_position_t = ot_position_t;

#define M_Cat(Cat) myanmar_syllable_machine_ex_##Cat

enum myanmar_syllable_type_t {
  myanmar_consonant_syllable,
  myanmar_broken_cluster,
  myanmar_non_myanmar_cluster,
};


#line 54 "hb-ot-shaper-myanmar-machine.hh"
#define myanmar_syllable_machine_ex_A 9u
#define myanmar_syllable_machine_ex_As 32u
#define myanmar_syllable_machine_ex_C 1u
#define myanmar_syllable_machine_ex_CS 18u
#define myanmar_syllable_machine_ex_DB 3u
#define myanmar_syllable_machine_ex_DOTTEDCIRCLE 11u
#define myanmar_syllable_machine_ex_GB 10u
#define myanmar_syllable_machine_ex_H 4u
#define myanmar_syllable_machine_ex_IV 2u
#define myanmar_syllable_machine_ex_MH 35u
#define myanmar_syllable_machine_ex_ML 41u
#define myanmar_syllable_machine_ex_MR 36u
#define myanmar_syllable_machine_ex_MW 37u
#define myanmar_syllable_machine_ex_MY 38u
#define myanmar_syllable_machine_ex_PT 39u
#define myanmar_syllable_machine_ex_Ra 15u
#define myanmar_syllable_machine_ex_SM 8u
#define myanmar_syllable_machine_ex_SMPst 57u
#define myanmar_syllable_machine_ex_VAbv 20u
#define myanmar_syllable_machine_ex_VBlw 21u
#define myanmar_syllable_machine_ex_VPre 22u
#define myanmar_syllable_machine_ex_VPst 23u
#define myanmar_syllable_machine_ex_VS 40u
#define myanmar_syllable_machine_ex_ZWJ 6u
#define myanmar_syllable_machine_ex_ZWNJ 5u


#line 82 "hb-ot-shaper-myanmar-machine.hh"
static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
 1u, 57u, 3u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 
 3u, 57u, 3u, 57u, 3u, 57u, 5u, 57u, 1u, 15u, 3u, 57u, 3u, 57u, 3u, 57u, 
 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 
 3u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 
 3u, 57u, 3u, 57u, 5u, 57u, 1u, 15u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 
 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 
 3u, 57u, 3u, 57u, 3u, 57u, 1u, 57u, 1u, 15u, 0
};

static const char _myanmar_syllable_machine_key_spans[] = {
 5755535355535555
 5555555315555555
 5555555555555555
 5553535553555555
 5555531555555555
 5555555555555555
 5555555715
};

static const short _myanmar_syllable_machine_index_offsets[] = {
 058114168222278332388
 444500556612666682738794
 85090696210181074113011861242
 12981354140814621518157216281684
 17401796185219061922197820342090
 21462202225823142370242624822538
 25942650270627622820
};

static const char _myanmar_syllable_machine_indicies[] = {
 11234405
 61100070
 08091011120
 000000013
 00141516171819
 200000000
 00000000
 210232425252226
 2722222222222222
 2222222829303122
 2222222222222232
 2222333435363738
 3922222222222222
 2222222222222222
 2622252522262222
 2222222222222222
 2222222231222222
 2222222222402222
 2222222237222222
 2222222222222222
 2222222222222622
 2525222622222222
 2222222222222222
 2222222222222222
 2222222222222222
 2222372222222222
 2222222222222222
 2222222226224122
 2525222637222222
 2222222222222222
 2222222222222222
 2222222622222222
 2222372222222222
 2222222222222222
 2222222226222525
 2226222222222222
 2222222222222222
 2222222222222222
 2226222222222222
 3722222222222222
 2222222222222222
 2222262223222525
 2226272222222222
 2222222222422222
 3122222222222222
 2243222244222222
 3722432222222222
 2222222222222222
 2222262223222525
 2226272222222222
 2222222222222222
 3122222222222222
 2222222222222222
 3722222222222222
 2222222222222222
 2222262223222525
 2226272222222222
 2222222222422222
 3122222222222222
 2222222222222222
 3722222222222222
 2222222222222222
 2222262223222525
 2226272222222222
 2222222222422222
 3122222222222222
 2243222222222222
 3722222222222222
 2222222222222222
 2222262223222525
 2226272222222222
 2222222222422222
 3122222222222222
 2243222222222222
 3722432222222222
 2222222222222222
 2222262225252226
 2222222222222222
 2222222222223122
 2222222222222222
 2222222222223722
 2222222222222222
 2222222222222222
 26221122222222
 2222222222222222
 122232225252226
 2722222222222222
 2222222829223122
 2222222222222222
 2222222222223722
 2222222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222229223122
 2222222222222222
 2222222222223722
 2222222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222829303122
 2222222222222222
 2222222222223745
 2222222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222829303122
 2222222222222222
 2222222222223722
 2222222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222829303122
 2222222222222232
 2222333435363722
 3922222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222829303122
 2222222222222245
 2222222222223722
 3922222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222829303122
 2222222222222245
 2222222222223722
 2222222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222829303122
 2222222222222222
 2222332235223722
 3922222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222829303122
 2222222222222245
 2222332222223722
 3922222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222829303122
 2222222222222246
 2222333435223722
 3922222222222222
 2222222222222222
 2622232225252226
 2722222222222222
 2222222829303122
 2222222222222222
 2222333435223722
 3922222222222222
 2222222222222222
 2622232425252226
 2722222222222222
 2222222829303122
 2222222222222232
 2222333435363722
 3922222222222222
 2222222222222222
 262248484754747
 4747474747474747
 4747474712474747
 4747474747494747
 4747474718474747
 4747474747474747
 474747474747547
 484850550505050
 5050505050505050
 5050505050505050
 5050505050505050
 5050185050505050
 5050505050505050
 505050505505147
 484847518474747
 4747474747474747
 4747474747474747
 474747547474747
 4747184747474747
 4747474747474747
 474747475474848
 475474747474747
 4747474747474747
 4747474747474747
 475474747474747
 1847474747474747
 4747474747474747
 47475472474848
 47564747474747
 4747474747524747
 1247474747474747
 4753474754474747
 1847534747474747
 4747474747474747
 47475472474848
 47564747474747
 4747474747474747
 1247474747474747
 4747474747474747
 1847474747474747
 4747474747474747
 47475472474848
 47564747474747
 4747474747524747
 1247474747474747
 4747474747474747
 1847474747474747
 4747474747474747
 47475472474848
 47564747474747
 4747474747524747
 1247474747474747
 4753474747474747
 1847474747474747
 4747474747474747
 47475472474848
 47564747474747
 4747474747524747
 1247474747474747
 4753474747474747
 1847534747474747
 4747474747474747
 47475474848475
 4747474747474747
 4747474747471247
 4747474747474747
 4747474747471847
 4747474747474747
 4747474747474747
 547555547474747
 4747474747474747
 5547234848475
 647474747474747
 474747910111247
 4747474747474713
 4747141516171819
 2047474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910471247
 4747474747474747
 4747474747471847
 4747474747474747
 4747474747474747
 5472474848475
 647474747474747
 4747474710471247
 4747474747474747
 4747474747471847
 4747474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910111247
 4747474747474747
 4747474747471856
 4747474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910111247
 4747474747474747
 4747474747471847
 4747474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910111247
 4747474747474713
 4747141516171847
 2047474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910111247
 4747474747474756
 4747474747471847
 2047474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910111247
 4747474747474756
 4747474747471847
 4747474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910111247
 4747474747474747
 4747144716471847
 2047474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910111247
 4747474747474756
 4747144747471847
 2047474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910111247
 4747474747474757
 4747141516471847
 2047474747474747
 4747474747474747
 5472474848475
 647474747474747
 474747910111247
 4747474747474747
 4747141516471847
 2047474747474747
 4747474747474747
 547234848475
 647474747474747
 474747910111247
 4747474747474713
 4747141516171847
 2047474747474747
 4747474747474747
 547232425252226
 2722222222222222
 2222222829303122
 2222222222222258
 2222333435363738
 3922222222222222
 2222222222222222
 2622235925252226
 2722222222222222
 2222222829303122
 2222222222222232
 2222333435363722
 3922222222222222
 2222222222222222
 262211234848
 475611474747
 14747474791011
 1247474747474747
 4713474714151617
 1819204747474747
 4747474747474747
 4747547116060
 60606060601160
 60601600
};

static const char _myanmar_syllable_machine_trans_targs[] = {
 0125350263049
 5237383929414244
 45462748432602
 120371314156
 171820212242419
 115891016230
 03402831323336
 404750510
};

static const char _myanmar_syllable_machine_trans_actions[] = {
 30004500
 00000000
 00000670
 08000000
 00000000
 00000009
 1001100000
 000012
};

static const char _myanmar_syllable_machine_to_state_actions[] = {
 10000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000
};

static const char _myanmar_syllable_machine_from_state_actions[] = {
 20000000
 00000000
 00000000
 00000000
 00000000
 00000000
 00000
};

static const short _myanmar_syllable_machine_eof_trans[] = {
 023232323232323
 2323232323232323
 2323232323232323
 2348514848484848
 4848484848484848
 4848484848484848
 4823234861
};

static const int myanmar_syllable_machine_start = 0;
static const int myanmar_syllable_machine_first_final = 0;
static const int myanmar_syllable_machine_error = -1;

static const int myanmar_syllable_machine_en_main = 0;


#line 55 "hb-ot-shaper-myanmar-machine.rl"



#line 118 "hb-ot-shaper-myanmar-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_myanmar (hb_buffer_t *buffer)
{
  unsigned int p, pe, eof, ts, te, act HB_UNUSED;
  int cs;
  hb_glyph_info_t *info = buffer->info;
  
#line 553 "hb-ot-shaper-myanmar-machine.hh"
 {
 cs = myanmar_syllable_machine_start;
 ts = 0;
 te = 0;
 act = 0;
 }

#line 138 "hb-ot-shaper-myanmar-machine.rl"


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

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

 _keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
 _inds = _myanmar_syllable_machine_indicies + _myanmar_syllable_machine_index_offsets[cs];

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

_eof_trans:
 cs = _myanmar_syllable_machine_trans_targs[_trans];

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

 switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
 case 8:
#line 111 "hb-ot-shaper-myanmar-machine.rl"
 {te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
 break;
 case 4:
#line 112 "hb-ot-shaper-myanmar-machine.rl"
 {te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
 break;
 case 10:
#line 113 "hb-ot-shaper-myanmar-machine.rl"
 {te = p+1;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
 break;
 case 3:
#line 114 "hb-ot-shaper-myanmar-machine.rl"
 {te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
 break;
 case 7:
#line 111 "hb-ot-shaper-myanmar-machine.rl"
 {te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
 break;
 case 9:
#line 113 "hb-ot-shaper-myanmar-machine.rl"
 {te = p;p--;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
 break;
 case 12:
#line 114 "hb-ot-shaper-myanmar-machine.rl"
 {te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
 break;
 case 11:
#line 1 "NONE"
 { switch( act ) {
 case 2:
 {{p = ((te))-1;} found_syllable (myanmar_non_myanmar_cluster); }
 break;
 case 3:
 {{p = ((te))-1;} found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }
 break;
 }
 }
 break;
 case 6:
#line 1 "NONE"
 {te = p+1;}
#line 112 "hb-ot-shaper-myanmar-machine.rl"
 {act = 2;}
 break;
 case 5:
#line 1 "NONE"
 {te = p+1;}
#line 113 "hb-ot-shaper-myanmar-machine.rl"
 {act = 3;}
 break;
#line 653 "hb-ot-shaper-myanmar-machine.hh"
 }

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

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

 }

#line 146 "hb-ot-shaper-myanmar-machine.rl"

}

#undef found_syllable

#endif /* HB_OT_SHAPER_MYANMAR_MACHINE_HH */

Messung V0.5 in Prozent
C=90 H=97 G=93

¤ Dauer der Verarbeitung: 0.5 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge