• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/language/

Lines Matching +defs:lao +defs:transcription +defs:maa +defs:sakod +defs:alist

0 ;;; lao-util.el --- utilities for Lao -*- coding: iso-2022-7bit; -*-
34 (defconst lao-category-table (make-category-table))
35 (define-category ?c "Lao consonant" lao-category-table)
36 (define-category ?s "Lao semi-vowel" lao-category-table)
37 (define-category ?v "Lao upper/lower vowel" lao-category-table)
38 (define-category ?t "Lao tone" lao-category-table)
206 (modify-category-entry char ?c lao-category-table))
208 (modify-category-entry char ?v lao-category-table))
210 (modify-category-entry char ?s lao-category-table))
212 (modify-category-entry char ?t lao-category-table)))
233 (defvar lao-composition-pattern
238 (defun lao-compose-string (str)
239 (with-category-table lao-category-table
241 (while (setq idx (string-match lao-composition-pattern str idx))
251 (defconst lao-transcription-consonant-alist
295 (defconst lao-transcription-semi-vowel-alist
298 (defconst lao-transcription-vowel-alist
329 ;; Maa-sakod is put at the tail.
330 (defconst lao-transcription-maa-sakod-alist
342 (defconst lao-transcription-tone-alist
349 (defconst lao-transcription-punctuation-alist
363 (defconst lao-transcription-pattern
366 (mapconcat 'car lao-transcription-consonant-alist "\\|")
368 (mapconcat 'car lao-transcription-semi-vowel-alist "\\|")
370 (mapconcat 'car lao-transcription-vowel-alist "\\|")
372 (mapconcat 'car lao-transcription-maa-sakod-alist "\\|")
375 lao-transcription-tone-alist "\\|")
378 lao-transcription-punctuation-alist "\\|")
380 "Regexp of Roman transcription pattern for one Lao syllable.")
382 (defconst lao-transcription-pattern
385 (regexp-opt (mapcar 'car lao-transcription-consonant-alist))
387 (regexp-opt (mapcar 'car lao-transcription-semi-vowel-alist))
389 (regexp-opt (mapcar 'car lao-transcription-vowel-alist))
391 (regexp-opt (mapcar 'car lao-transcription-maa-sakod-alist))
393 (regexp-opt (mapcar 'car lao-transcription-tone-alist))
395 (regexp-opt (mapcar 'car lao-transcription-punctuation-alist))
397 "Regexp of Roman transcription pattern for one Lao syllable.")
399 (defconst lao-vowel-reordering-rule
469 follwoing a consonant and preceding a maa-sakod character. If it is
470 nil, NO-MAA-SAKOD-RULE is used. The maa-sakod character is alwasy
476 Optional (MAA-SAKOD-n RULE-n) are rules specially applied to maa-sakod
480 (defun lao-transcribe-single-roman-syllable-to-lao (from to &optional str)
485 LAO-STRING is the Lao character transcription of it.
490 (if (setq from (string-match lao-transcription-pattern str from))
497 (if (setq to (re-search-forward lao-transcription-pattern to t))
504 (maa-sakod (match-string 8 str))
506 lao-consonant lao-semivowel lao-vowel lao-maa-sakod lao-tone
511 lao-transcription-punctuation-alist)))
512 (setq lao-consonant
513 (cdr (assoc consonant lao-transcription-consonant-alist)))
514 (if (vectorp lao-consonant)
515 (setq lao-consonant (aref lao-consonant 0)))
516 (setq clen (length lao-consonant))
519 (setq lao-semivowel
520 (cdr (assoc semivowel lao-transcription-semi-vowel-alist))
522 (concat lao-consonant lao-semivowel)
523 (concat (substring lao-consonant 0 1) lao-semivowel
524 (substring lao-consonant 1))))
525 (setq str lao-consonant))
528 (setq lao-vowel
529 (cdr (assoc vowel lao-transcription-vowel-alist)))
530 (if (vectorp lao-vowel)
531 (setq lao-vowel (aref lao-vowel 0)))
532 (setq rule (assoc lao-vowel lao-vowel-reordering-rule))
533 (if (null maa-sakod)
535 (setq lao-maa-sakod
536 (cdr (assoc maa-sakod lao-transcription-maa-sakod-alist))
538 (or (cdr (assq (aref lao-maa-sakod 0) (nthcdr 2 rule)))
542 (error "Lao vowel %S has no re-ordering rule" lao-vowel))
543 (setq lao-consonant str str "")
546 (setq str (concat str lao-consonant)
559 (if lao-maa-sakod
560 (setq str (concat str lao-maa-sakod)))
562 (setq lao-tone
563 (cdr (assoc tone lao-transcription-tone-alist))
564 str (concat (substring str 0 cidx) lao-tone
566 (list from to (lao-compose-string str)))))
569 (defun lao-transcribe-roman-to-lao-string (str)
573 (lao-str "")
575 (while (setq val (lao-transcribe-single-roman-syllable-to-lao from to str))
578 (lao (nth 2 val)))
580 (setq lao-str (concat lao-str (substring str from start) lao))
581 (setq lao-str (concat lao-str lao)))
584 (concat lao-str (substring str from to))
585 lao-str)))
588 (defun lao-post-read-conversion (len)
589 (lao-compose-region (point) (+ (point) len))
593 (defun lao-composition-function (from to pattern &optional string)
608 (defun lao-compose-region (from to)
613 (with-category-table lao-category-table
614 (while (re-search-forward lao-composition-pattern nil t)
618 (provide 'lao-util)
621 ;;; lao-util.el ends here