/*
 * %W% %E%
 *
 * (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
 *
 * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
 * YOU REALLY KNOW WHAT YOU'RE DOING.
 *
 */

#ifndef __SCRIPTANDLANGUAGES_H
#define __SCRIPTANDLANGUAGES_H

#include "LETypes.h"
#include "LEScripts.h"

U_NAMESPACE_BEGIN

const LETag zyyyScriptTag = 0x7A797979; /* 'zyyy' (COMMON) */
const LETag qaaiScriptTag = 0x71616169; /* 'qaai' (INHERITED) */
const LETag arabScriptTag = 0x61726162; /* 'arab' (ARABIC) */
const LETag armnScriptTag = 0x61726D6E; /* 'armn' (ARMENIAN) */
const LETag bengScriptTag = 0x62656E67; /* 'beng' (BENGALI) */
const LETag bopoScriptTag = 0x626F706F; /* 'bopo' (BOPOMOFO) */
const LETag cherScriptTag = 0x63686572; /* 'cher' (CHEROKEE) */
const LETag qaacScriptTag = 0x71616163; /* 'qaac' (COPTIC) */
const LETag cyrlScriptTag = 0x6379726C; /* 'cyrl' (CYRILLIC) */
const LETag dsrtScriptTag = 0x64737274; /* 'dsrt' (DESERET) */
const LETag devaScriptTag = 0x64657661; /* 'deva' (DEVANAGARI) */
const LETag ethiScriptTag = 0x65746869; /* 'ethi' (ETHIOPIC) */
const LETag georScriptTag = 0x67656F72; /* 'geor' (GEORGIAN) */
const LETag gothScriptTag = 0x676F7468; /* 'goth' (GOTHIC) */
const LETag grekScriptTag = 0x6772656B; /* 'grek' (GREEK) */
const LETag gujrScriptTag = 0x67756A72; /* 'gujr' (GUJARATI) */
const LETag guruScriptTag = 0x67757275; /* 'guru' (GURMUKHI) */
const LETag haniScriptTag = 0x68616E69; /* 'hani' (HAN) */
const LETag hangScriptTag = 0x68616E67; /* 'hang' (HANGUL) */
const LETag hebrScriptTag = 0x68656272; /* 'hebr' (HEBREW) */
const LETag hiraScriptTag = 0x68697261; /* 'hira' (HIRAGANA) */
const LETag kndaScriptTag = 0x6B6E6461; /* 'knda' (KANNADA) */
const LETag kataScriptTag = 0x6B617461; /* 'kata' (KATAKANA) */
const LETag khmrScriptTag = 0x6B686D72; /* 'khmr' (KHMER) */
const LETag laooScriptTag = 0x6C616F6F; /* 'laoo' (LAO) */
const LETag latnScriptTag = 0x6C61746E; /* 'latn' (LATIN) */
const LETag mlymScriptTag = 0x6D6C796D; /* 'mlym' (MALAYALAM) */
const LETag mongScriptTag = 0x6D6F6E67; /* 'mong' (MONGOLIAN) */
const LETag mymrScriptTag = 0x6D796D72; /* 'mymr' (MYANMAR) */
const LETag ogamScriptTag = 0x6F67616D; /* 'ogam' (OGHAM) */
const LETag italScriptTag = 0x6974616C; /* 'ital' (OLD-ITALIC) */
const LETag oryaScriptTag = 0x6F727961; /* 'orya' (ORIYA) */
const LETag runrScriptTag = 0x72756E72; /* 'runr' (RUNIC) */
const LETag sinhScriptTag = 0x73696E68; /* 'sinh' (SINHALA) */
const LETag syrcScriptTag = 0x73797263; /* 'syrc' (SYRIAC) */
const LETag tamlScriptTag = 0x74616D6C; /* 'taml' (TAMIL) */
const LETag teluScriptTag = 0x74656C75; /* 'telu' (TELUGU) */
const LETag thaaScriptTag = 0x74686161; /* 'thaa' (THAANA) */
const LETag thaiScriptTag = 0x74686169; /* 'thai' (THAI) */
const LETag tibtScriptTag = 0x74696274; /* 'tibt' (TIBETAN) */
const LETag cansScriptTag = 0x63616E73; /* 'cans' (CANADIAN-ABORIGINAL) */
const LETag yiiiScriptTag = 0x79696969; /* 'yiii' (YI) */

const LETag nullScriptTag = 0x00000000; /* ''     (NULL) */

const LETag noLangSysTag  = 0x00000000; /* ''     (NONE) */

U_NAMESPACE_END
#endif
