;ELC
;;; Compiled by LTX@Xue-LingTaos-MacBook-Pro.local on Wed Mar 16 23:15:50 2011
;;; from file /Users/LTX/Projects/Emacs/emacs/lisp/language/lao-util.el
;;; in Emacs version 24.0.50.1
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`lao-util.el' was compiled for Emacs 23 or later"))

;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\301B\306\307 !\210\310\311\312	#\210\310\313\314	#\210\310\315\316	#\210\310\317\320	#\210\321\322\203\211@A\n@\nA@\f\323=\203E\324
\311	#\210\202o\f\325>\203T\324
\315	#\210\202o\f\326=\203c\324
\313	#\210\202o\f\327=\203o\324
\317	#\210\330
\331\f#\210\330
\332\333\n8#\210\330
\334\335\n8#\210*\202%*\322\207" [current-load-list lao-category-table elm l ptype char (lambda (#1=#:defconst-tmp-var) (defconst lao-category-table #1#)) make-category-table define-category 99 "Lao consonant" 115 "Lao semi-vowel" 118 "Lao upper/lower vowel" 116 "Lao tone" ((3713 consonant "LETTER KOR  KAI'" "CHICKEN") (3714 consonant "LETTER KHOR KHAI'" "EGG") (3715 invalid nil) (3716 consonant "LETTER QHOR QHWARGN" "BUFFALO") (3717 invalid nil) (32 invalid nil) (3719 consonant "LETTER NGOR NGUU" "SNAKE") (3720 consonant "LETTER JOR JUA" "BUDDHIST NOVICE") (3721 invalid nil) (3722 consonant "LETTER XOR X\"ARNG" "ELEPHANT") (3723 invalid nil) (3724 invalid nil) (3725 consonant "LETTER YOR YUNG" "MOSQUITO") (3726 invalid nil) (3726 invalid nil) (3726 invalid nil) (3726 invalid nil) (3726 invalid nil) (3726 invalid nil) (3732 consonant "LETTER DOR DANG" "NOSE") (3733 consonant "LETTER TOR TAR" "EYE") (3734 consonant "LETTER THOR THUNG" "TO ASK,QUESTION") (3735 consonant "LETTER DHOR DHARM" "FLAG") (3736 invalid nil) (3737 consonant "LETTER NOR NOK" "BIRD") (3738 consonant "LETTER BOR BED" "FISHHOOK") (3739 consonant "LETTER POR PAR" "FISH") (3740 consonant "LETTER HPOR HPER\"" "BEE") (3741 consonant "LETTER FHOR FHAR" "WALL") (3742 consonant "LETTER PHOR PHUU" "MOUNTAIN") (3743 consonant "LETTER FOR FAI" "FIRE") (3744 invalid nil) (3745 consonant "LETTER MOR MAR\"" "HORSE") (3746 consonant "LETTER GNOR GNAR" "MEDICINE") (3747 consonant "LETTER ROR ROD" "CAR") (3748 invalid nil) (3749 consonant "LETTER LOR LIING" "MONKEY") (3750 invalid nil) (3751 consonant "LETTER WOR WII" "HAND FAN") (3752 invalid nil) (3753 invalid nil) (3754 consonant "LETTER SOR SEA" "TIGER") (3755 consonant "LETTER HHOR HHAI" "JAR") (3756 invalid nil) (3757 consonant "LETTER OR OOW" "TAKE") (3758 consonant "LETTER HOR HEA" "BOAT") (3759 special "ELLIPSIS") (3760 vowel-base "VOWEL SIGN SARA A") (3761 vowel-upper "VOWEL SIGN MAI KAN") (3762 vowel-base "VOWEL SIGN SARA AR") (3763 vowel-base "VOWEL SIGN SARA AM") (3764 vowel-upper "VOWEL SIGN SARA I") (3765 vowel-upper "VOWEL SIGN SARA II") (3766 vowel-upper "VOWEL SIGN SARA EU") (3767 vowel-upper "VOWEL SIGN SARA UR") (3768 vowel-lower "VOWEL SIGN SARA U") (3769 vowel-lower "VOWEL SIGN SARA UU") (3770 invalid nil) (3771 vowel-upper "VOWEL SIGN MAI KONG") (3772 semivowel-lower "SEMIVOWEL SIGN LO") (3773 vowel-base "SEMIVOWEL SIGN SARA IA") (3774 invalid nil) (3775 invalid nil) (3776 vowel-base "VOWEL SIGN SARA EE") (3777 vowel-base "VOWEL SIGN SARA AA") (3778 vowel-base "VOWEL SIGN SARA OO") (3779 vowel-base "VOWEL SIGN SARA EI MAI MUAN\"") (3780 vowel-base "VOWEL SIGN SARA AI MAI MAY") (3781 invalid nil) (3782 special "KO LA (REPETITION)") (3783 invalid nil) (3784 tone "TONE MAI EK") (3785 tone "TONE MAI THO") (3786 tone "TONE MAI TI") (3787 tone "TONE MAI JADTAWAR") (3788 tone "CANCELLATION MARK") (3789 vowel-upper "VOWEL SIGN SARA OR") (3790 invalid nil) (3791 invalid nil) (3792 special "DIGIT ZERO") (3793 special "DIGIT ONE") (3794 special "DIGIT TWO") (3795 special "DIGIT THREE") (3796 special "DIGIT FOUR") (3797 special "DIGIT FIVE") (3798 special "DIGIT SIX") (3799 special "DIGIT SEVEN") (3800 special "DIGIT EIGHT") (3801 special "DIGIT NINE") (3802 invalid nil) (3803 invalid nil) (3804 consonant "LETTER NHOR NHUU" "MOUSE") (3805 consonant "LETTER MHOR MHAR" "DOG") (3806 invalid nil)) nil consonant modify-category-entry (vowel-upper vowel-lower) semivowel-lower tone put-char-code-property phonetic-type name 2 meaning 3] 5)
#@55 Regular expression matching a Lao composite sequence.
(defvar lao-composition-pattern "\\cc\\(\\ct\\|\\cv\\ct?\\|\\cs\\(\\ct\\|\\cv\\ct?\\)?\\)" (#$ . 4374))
(defalias 'lao-compose-string #[(str) "\306 p\307\216\310\n!\210\311\312\f
#\211\203$\313
\311\225#\210\311\225\202
)
+\207" [#1=#:old-buffer #2=#:old-table lao-category-table idx lao-composition-pattern str category-table ((byte-code "rq\210\302	!\210)\302\207" [#1# #2# set-category-table] 2)) set-category-table 0 string-match compose-string] 4])
(byte-code "\301B\302\303\304\305\"!\210\306B\307\310!\210\311B\312\303\313\314\"!\210\315B\316\317!\210\320B\321\322!\210\323B\324\325!\207" [current-load-list lao-transcription-consonant-alist (lambda (#1=#:defconst-tmp-var) (defconst lao-transcription-consonant-alist #1#)) sort (("k" . "àº�") ("kh" . "àº‚") ("qh" . "àº„") ("ng" . "àº‡") ("j" . "àºˆ") ("s" . "àºª") ("x" . "àºŠ") ("y" . "àº�") ("d" . "àº”") ("t" . "àº•") ("th" . "àº–") ("dh" . "àº—") ("n" . "àº™") ("b" . "àºš") ("p" . "àº›") ("hp" . "àºœ") ("fh" . "àº�") ("ph" . "àºž") ("f" . "àºŸ") ("m" . "àº¡") ("gn" . "àº¢") ("l" . "àº¥") ("r" . "àº£") ("v" . "àº§") ("w" . "àº§") ("hh" . "àº«") ("O" . "àº­") ("h" . "àº®") ("nh" . "à»œ") ("mh" . "à»�") ("lh" . ["àº«àº¼"]) ("ngh" . ["àº«àº‡"]) ("yh" . ["àº«àº½"]) ("wh" . ["àº«àº§"]) ("hl" . ["àº«àº¥"]) ("hy" . ["àº«àº�"]) ("hn" . ["àº«àº™"]) ("hm" . ["àº«àº¡"])) #[(x y) "@G	@GV\207" [x y] 2] lao-transcription-semi-vowel-alist (lambda (#2=#:defconst-tmp-var) (defconst lao-transcription-semi-vowel-alist #2#)) (("r" . "àº¼")) lao-transcription-vowel-alist (lambda (#3=#:defconst-tmp-var) (defconst lao-transcription-vowel-alist #3#)) (("a" . "àº°") ("ar" . "àº²") ("i" . "àº´") ("ii" . "àºµ") ("eu" . "àº¶") ("ur" . "àº·") ("u" . "àº¸") ("uu" . "àº¹") ("e" . ["à»€àº°"]) ("ee" . "à»€") ("ae" . ["à»�àº°"]) ("aa" . "à»�") ("o" . ["à»‚àº°"]) ("oo" . "à»‚") ("oe" . ["à»€àº²àº°"]) ("or" . "à»�") ("er" . ["à»€àº´"]) ("ir" . ["à»€àºµ"]) ("ua" . ["àº»àº§àº°"]) ("uaa" . ["àº»àº§"]) ("ie" . ["à»€àº±àº½àº°"]) ("ia" . ["à»€àº±àº½"]) ("ea" . ["à»€àº¶àº­"]) ("eaa" . ["à»€àº·àº­"]) ("ai" . "à»„") ("ei" . "à»ƒ") ("ao" . ["à»€àº»àº²"]) ("aM" . "àº³")) #[(x y) "@G	@GV\207" [x y] 2] lao-transcription-maa-sakod-alist (lambda (#4=#:defconst-tmp-var) (defconst lao-transcription-maa-sakod-alist #4#)) (("k" . "àº�") ("g" . "àº‡") ("y" . "àº�") ("d" . "àº”") ("n" . "àº™") ("b" . "àºš") ("m" . "àº¡") ("v" . "àº§") ("w" . "àº§")) lao-transcription-tone-alist (lambda (#5=#:defconst-tmp-var) (defconst lao-transcription-tone-alist #5#)) (("'" . "à»ˆ") ("\"" . "à»‰") ("^" . "à»Š") ("+" . "à»‹") ("~" . "à»Œ")) lao-transcription-punctuation-alist (lambda (#6=#:defconst-tmp-var) (defconst lao-transcription-punctuation-alist #6#)) (("\\0" . "à»�") ("\\1" . "à»‘") ("\\2" . "à»’") ("\\3" . "à»“") ("\\4" . "à»”") ("\\5" . "à»•") ("\\6" . "à»–") ("\\7" . "à»—") ("\\8" . "à»˜") ("\\9" . "à»™") ("\\\\" . "à»†") ("\\$" . "àº¯"))] 4)
#@61 Regexp of Roman transcription pattern for one Lao syllable.
(defconst lao-transcription-pattern (byte-code "\306\307\310\311#\312\307\310	\311#\313\307\310\n\311#\312\307\310\311#\314\307\315\f\311#\316\307\317
\311#\260\f\207" [lao-transcription-consonant-alist lao-transcription-semi-vowel-alist lao-transcription-vowel-alist lao-transcription-maa-sakod-alist lao-transcription-tone-alist lao-transcription-punctuation-alist "\\(" mapconcat car "\\|" "\\)\\(" "\\)?\\(\\(" "\\)?\\(" #[(x) "\301@!\207" [x regexp-quote] 2] "\\)?\\)?\\|" #[(x) "\301@!\207" [x regexp-quote] 2]] 15) (#$ . 7341))
#@61 Regexp of Roman transcription pattern for one Lao syllable.
(defconst lao-transcription-pattern (byte-code "\306\307\310\311\"!\312\307\310\311	\"!\313\307\310\311\n\"!\312\307\310\311\"!\314\307\310\311\f\"!\315\307\310\311
\"!\260\f\207" [lao-transcription-consonant-alist lao-transcription-semi-vowel-alist lao-transcription-vowel-alist lao-transcription-maa-sakod-alist lao-transcription-tone-alist lao-transcription-punctuation-alist "\\(" regexp-opt mapcar car "\\)\\(" "\\)?\\(\\(" "\\)?\\(" "\\)?\\)?\\|"] 15) (#$ . 7946))
#@862 Alist of Lao vowel string vs the corresponding re-ordering rule.
Each element has this form:
	(VOWEL NO-MAA-SAKOD-RULE WITH-MAA-SAKOD-RULE (MAA-SAKOD-0 RULE-0) ...)

VOWEL is a vowel string (e.g. "à»€àº±àº½àº°").

NO-MAA-SAKOD-RULE is a rule to re-order and modify VOWEL following a
consonant.  It is a list vowel characters or 0.  The element 0
indicate the place to embed a consonant.

Optional WITH-MAA-SAKOD-RULE is a rule to re-order and modify VOWEL
follwoing a consonant and preceding a maa-sakod character.  If it is
nil, NO-MAA-SAKOD-RULE is used.  The maa-sakod character is alwasy
appended at the tail.

For instance, rule `("à»€àº·àº­" (?à»€ t ?àº· ?àº­))' tells that this vowel
string following a consonant `àº�' should be re-ordered as "à»€àº�àº·àº­".

Optional (MAA-SAKOD-n RULE-n) are rules specially applied to maa-sakod
character MAA-SAKOD-n.
(defconst lao-vowel-reordering-rule '(("àº°" (0 3760) (0 3761)) ("àº²" (0 3762)) ("àº´" (0 3765)) ("àºµ" (0 3765)) ("àº¶" (0 3766)) ("àº·" (0 3767)) ("àº¸" (0 3768)) ("àº¹" (0 3769)) ("à»€àº°" (3776 0 3760) (3776 0 3761)) ("à»€" (3776 0)) ("à»�àº°" (3777 0 3760) (3777 0 3761)) ("à»�" (3777 0)) ("à»‚àº°" (3778 0 3760) (0 3771) (3725 3778 0 3761) (3751 3778 0 3761)) ("à»‚" (3778 0)) ("à»€àº²àº°" (3776 0 3762 3760) (0 3761 3757)) ("à»�" (0 3789) (0 3757)) ("à»€àº´" (3776 0 3764)) ("à»€àºµ" (3776 0 3765)) ("àº»àº§àº°" (0 3771 3751 3760) (0 3761 3751)) ("àº»àº§" (0 3771 3751) (0 3751)) ("à»€àº±àº½àº°" (3776 0 3761 3773 3760) (0 3761 3773)) ("à»€àº±àº½" (3776 0 3761 3773) (0 3773)) ("à»€àº¶àº­" (3776 0 3766 3757)) ("à»€àº·àº­" (3776 0 3767 3757)) ("à»„" (3780 0)) ("à»ƒ" (3779 0)) ("à»€àº»àº²" (3776 0 3771 3762)) ("àº³" (0 3763))) (#$ . 8486))
#@430 Transcribe a Romanized Lao syllable in the region FROM and TO to Lao string.
Only the first syllable is transcribed.
The value has the form: (START END LAO-STRING), where
START and END are the beggining and end positions of the Roman Lao syllable,
LAO-STRING is the Lao character transcription of it.

Optional 3rd arg STR, if non-nil, is a string to search for Roman Lao
syllable.  In that case, FROM and TO are indexes to STR.
(defalias 'lao-transcribe-single-roman-syllable-to-lao #[(from to &optional str) "\203\306	\n#\211\2036\nY\203\307\2026\310\225\2026\212\nb\210\311	\312#\211\2033\310\224\2025\307)\n\205\263\313\314\"\313\315\"\313\316\"\313\317\"\313\320\"\307\211 \307\211!\"\307\211#$\307%\310\225\f\204\321\313\310\"&\"A\202\253\321\f'\"A\322!\203\224\310HG$
\203\305\321
(\"A $\314U\203\264 P\202\301\310\314O \314\307OQ\202\310\203\253\307)\321*\"A!\322!!\203\346!\310H!\321!+\")\204\374)A@)\202\321,\"A\211\"\310H)AA\236A\206\323)8\206)A@))\204)\324\325!\"\210\326)\203W)@\310U\203GP\211G%\202N)@CP)A\211)\2043%\204b\324\327\"\210G-%-W\203\203\330%H\331\"\332>\203\203%T\211%\202h)\"\203\216\"P\203\252\321.\"A#\310%O#%\307OQ)\n\333!E.\f\207" [str lao-transcription-pattern from to consonant semivowel string-match nil 0 re-search-forward t match-string 1 3 5 8 9 assoc vectorp 2 error "Lao vowel %S has no re-ordering rule" "" "Lao vowel %S has malformed re-ordering rule" get-char-code-property phonetic-type (vowel-lower vowel-upper) lao-compose-string vowel maa-sakod tone lao-consonant lao-semivowel lao-vowel lao-maa-sakod lao-tone clen cidx lao-transcription-punctuation-alist lao-transcription-consonant-alist lao-transcription-semi-vowel-alist rule lao-transcription-vowel-alist lao-vowel-reordering-rule lao-transcription-maa-sakod-alist len lao-transcription-tone-alist] 6 (#$ . 10203)])
#@62 Transcribe Romanized Lao string STR to Lao character string.
(defalias 'lao-transcribe-roman-to-lao-string #[(str) "\306G\307\310\311\f#\211\203=	@	A@\312	8\211\f\fV\2032\n\f\fO
Q\2026\n
P+\202	\fW\203L\n\fOP\202M\n,\207" [str val lao-str to from lao 0 "" nil lao-transcribe-single-roman-syllable-to-lao 2 end start] 5 (#$ . 12199)])
(defalias 'lao-composition-function #[(gstring) "\211\211\304H)GS)\305U\203\306!\207\307!\206I\211G\310Z)\304\311\nW\203B\n\211\n\310\\H*\211\203B\nT\211\202'\312\304\n\313$+\207" [gstring glyph i glyph-len 0 1 compose-gstring-for-graphic font-shape-gstring 2 nil compose-glyph-string-relative 0.1] 6])
(defalias 'lao-compose-region #[(from to) "\214	}\210eb\210\306 p\307\216\310\f!\210\311
\312\313#\205$\314\315\224`\"\210\202,\207" [from to #1=#:old-buffer #2=#:old-table lao-category-table lao-composition-pattern category-table ((byte-code "rq\210\302	!\210)\302\207" [#1# #2# set-category-table] 2)) set-category-table re-search-forward nil t compose-region 0] 4 nil "r"])
(provide 'lao-util)
