/* GENERATED FILE - EDIT THE SOURCE IN unicodelib.im INSTEAD! */

#include "_stdint.h"

struct unicode_block {
   int start,end;
   const char *name;
};

/* basic array lookup for map "unicode_blocks" */

extern struct unicode_block __icemap_unicode_blocks_array[];
#define unicode_blocks_lookup(idx) \
  ((((idx)<0)||((idx)>307))?NULL:(&(__icemap_unicode_blocks_array[(idx)])))
#define unicode_blocks_count (308)

struct arabic_form {
   uint16_t initial,medial,final,isolated;
};

/* basic array lookup for map "arabic_forms" */

extern struct arabic_form __icemap_arabic_forms_array[];
#define arabic_forms_lookup(idx) \
  (__icemap_arabic_forms_array[(idx)-1536])
#define arabic_forms_count (256)

/* basic array lookup for map "arabic_base_forms" */

extern uint16_t __icemap_arabic_base_forms_array[];
#define arabic_base_forms_lookup(idx) \
  ((((idx)<64336)||((idx)>65268))?(0x0):(__icemap_arabic_base_forms_array[(idx)-64336]))
#define arabic_base_forms_count (242)

/* bit-cascade lookup on ints for map "has_alternates" */

extern int has_alternates_lookup(int);
#define has_alternates_count (16764)
