Mercurial > emacs
comparison lisp/international/ccl.el @ 22127:dc00ef92855c
Change term translate-XXX-map to map-XXX
throughout the file. Change terms unify/unification to
translate/translation respectively throughtout the file.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 18 May 1998 01:01:00 +0000 |
parents | fe7ef7cd642a |
children | fc4aaf1b1772 |
comparison
equal
deleted
inserted
replaced
22126:97cf1cae1971 | 22127:dc00ef92855c |
---|---|
77 ;; (write REG ...) | 77 ;; (write REG ...) |
78 ;; | (write EXPRESSION) | 78 ;; | (write EXPRESSION) |
79 ;; | (write integer) | (write string) | (write REG ARRAY) | 79 ;; | (write integer) | (write string) | (write REG ARRAY) |
80 ;; | string | 80 ;; | string |
81 ;; | (write-multibyte-character REG(charset) REG(codepoint)) | 81 ;; | (write-multibyte-character REG(charset) REG(codepoint)) |
82 ;; UNIFY := | |
83 ;; (unify-char REG(table) REG(charset) REG(codepoint)) | |
84 ;; | (unify-char SYMBOL REG(charset) REG(codepoint)) | |
85 ;; TRANSLATE := | 82 ;; TRANSLATE := |
86 ;; (iterate-multiple-map REG REG TABLE-IDs) | 83 ;; (translate-character REG(table) REG(charset) REG(codepoint)) |
87 ;; | (translate-multiple-map REG REG (TABLE-SET)) | 84 ;; | (translate-character SYMBOL REG(charset) REG(codepoint)) |
88 ;; | (translate-single-map REG REG TABLE-ID) | 85 ;; MAP := |
89 ;; TABLE-IDs := TABLE-ID ... | 86 ;; (iterate-multiple-map REG REG MAP-IDs) |
90 ;; TABLE-SET := TABLE-IDs | (TABLE-IDs) TABLE-SET | 87 ;; | (map-multiple REG REG (MAP-SET)) |
91 ;; TABLE-ID := integer | 88 ;; | (map-single REG REG MAP-ID) |
89 ;; MAP-IDs := MAP-ID ... | |
90 ;; MAP-SET := MAP-IDs | (MAP-IDs) MAP-SET | |
91 ;; MAP-ID := integer | |
92 ;; | 92 ;; |
93 ;; CALL := (call ccl-program-name) | 93 ;; CALL := (call ccl-program-name) |
94 ;; END := (end) | 94 ;; END := (end) |
95 ;; | 95 ;; |
96 ;; REG := r0 | r1 | r2 | r3 | r4 | r5 | r6 | r7 | 96 ;; REG := r0 | r1 | r2 | r3 | r4 | r5 | r6 | r7 |
111 | 111 |
112 (defconst ccl-command-table | 112 (defconst ccl-command-table |
113 [if branch loop break repeat write-repeat write-read-repeat | 113 [if branch loop break repeat write-repeat write-read-repeat |
114 read read-if read-branch write call end | 114 read read-if read-branch write call end |
115 read-multibyte-character write-multibyte-character | 115 read-multibyte-character write-multibyte-character |
116 unify-character | 116 translate-character |
117 iterate-multiple-map translate-multiple-map translate-single-map] | 117 iterate-multiple-map map-multiple map-single] |
118 "Vector of CCL commands (symbols).") | 118 "Vector of CCL commands (symbols).") |
119 | 119 |
120 ;; Put a property to each symbol of CCL commands for the compiler. | 120 ;; Put a property to each symbol of CCL commands for the compiler. |
121 (let (op (i 0) (len (length ccl-command-table))) | 121 (let (op (i 0) (len (length ccl-command-table))) |
122 (while (< i len) | 122 (while (< i len) |
161 "Vector of CCL compiled codes (symbols).") | 161 "Vector of CCL compiled codes (symbols).") |
162 | 162 |
163 (defconst ccl-extended-code-table | 163 (defconst ccl-extended-code-table |
164 [read-multibyte-character | 164 [read-multibyte-character |
165 write-multibyte-character | 165 write-multibyte-character |
166 unify-character | 166 translate-character |
167 unify-character-const-tbl | 167 translate-character-const-tbl |
168 nil nil nil nil nil nil nil nil nil nil nil nil ; 0x04-0x0f | 168 nil nil nil nil nil nil nil nil nil nil nil nil ; 0x04-0x0f |
169 iterate-multiple-map | 169 iterate-multiple-map |
170 translate-multiple-map | 170 map-multiple |
171 translate-single-map | 171 map-single |
172 ] | 172 ] |
173 "Vector of CCL extended compiled codes (symbols).") | 173 "Vector of CCL extended compiled codes (symbols).") |
174 | 174 |
175 ;; Put a property to each symbol of CCL codes for the disassembler. | 175 ;; Put a property to each symbol of CCL codes for the disassembler. |
176 (let (code (i 0) (len (length ccl-code-table))) | 176 (let (code (i 0) (len (length ccl-code-table))) |
870 (rrr (nth 2 cmd))) | 870 (rrr (nth 2 cmd))) |
871 (ccl-check-register rrr cmd) | 871 (ccl-check-register rrr cmd) |
872 (ccl-check-register RRR cmd) | 872 (ccl-check-register RRR cmd) |
873 (ccl-embed-extended-command 'write-multibyte-character rrr RRR 0))) | 873 (ccl-embed-extended-command 'write-multibyte-character rrr RRR 0))) |
874 | 874 |
875 ;; Compile unify-character | 875 ;; Compile translate-character |
876 (defun ccl-compile-unify-character (cmd) | 876 (defun ccl-compile-translate-character (cmd) |
877 (if (/= (length cmd) 4) | 877 (if (/= (length cmd) 4) |
878 (error "CCL: Invalid number of arguments: %s" cmd)) | 878 (error "CCL: Invalid number of arguments: %s" cmd)) |
879 (let ((Rrr (nth 1 cmd)) | 879 (let ((Rrr (nth 1 cmd)) |
880 (RRR (nth 2 cmd)) | 880 (RRR (nth 2 cmd)) |
881 (rrr (nth 3 cmd))) | 881 (rrr (nth 3 cmd))) |
882 (ccl-check-register rrr cmd) | 882 (ccl-check-register rrr cmd) |
883 (ccl-check-register RRR cmd) | 883 (ccl-check-register RRR cmd) |
884 (cond ((symbolp Rrr) | 884 (cond ((symbolp Rrr) |
885 (if (not (get Rrr 'unification-table)) | 885 (if (not (get Rrr 'character-translation-table)) |
886 (error "CCL: Invalid unification-table %s in %s" Rrr cmd)) | 886 (error "CCL: Invalid character translation table %s in %s" |
887 (ccl-embed-extended-command 'unify-character-const-tbl rrr RRR 0) | 887 Rrr cmd)) |
888 (ccl-embed-extended-command 'translate-character-const-tbl | |
889 rrr RRR 0) | |
888 (ccl-embed-data Rrr)) | 890 (ccl-embed-data Rrr)) |
889 (t | 891 (t |
890 (ccl-check-register Rrr cmd) | 892 (ccl-check-register Rrr cmd) |
891 (ccl-embed-extended-command 'unify-character rrr RRR Rrr))))) | 893 (ccl-embed-extended-command 'translate-character rrr RRR Rrr))))) |
892 | 894 |
893 (defun ccl-compile-iterate-multiple-map (cmd) | 895 (defun ccl-compile-iterate-multiple-map (cmd) |
894 (ccl-compile-multiple-map-function 'iterate-multiple-map cmd)) | 896 (ccl-compile-multiple-map-function 'iterate-multiple-map cmd)) |
895 | 897 |
896 (defun ccl-compile-translate-multiple-map (cmd) | 898 (defun ccl-compile-map-multiple (cmd) |
897 (if (/= (length cmd) 4) | 899 (if (/= (length cmd) 4) |
898 (error "CCL: Invalid number of arguments: %s" cmd)) | 900 (error "CCL: Invalid number of arguments: %s" cmd)) |
899 (let ((func '(lambda (arg mp) | 901 (let ((func '(lambda (arg mp) |
900 (let ((len 0) result add) | 902 (let ((len 0) result add) |
901 (while arg | 903 (while arg |
913 (cons (- len) result) | 915 (cons (- len) result) |
914 result)))) | 916 result)))) |
915 arg) | 917 arg) |
916 (setq arg (append (list (nth 0 cmd) (nth 1 cmd) (nth 2 cmd)) | 918 (setq arg (append (list (nth 0 cmd) (nth 1 cmd) (nth 2 cmd)) |
917 (funcall func (nth 3 cmd) nil))) | 919 (funcall func (nth 3 cmd) nil))) |
918 (ccl-compile-multiple-map-function 'translate-multiple-map arg))) | 920 (ccl-compile-multiple-map-function 'map-multiple arg))) |
919 | 921 |
920 (defun ccl-compile-translate-single-map (cmd) | 922 (defun ccl-compile-map-single (cmd) |
921 (if (/= (length cmd) 4) | 923 (if (/= (length cmd) 4) |
922 (error "CCL: Invalid number of arguments: %s" cmd)) | 924 (error "CCL: Invalid number of arguments: %s" cmd)) |
923 (let ((RRR (nth 1 cmd)) | 925 (let ((RRR (nth 1 cmd)) |
924 (rrr (nth 2 cmd)) | 926 (rrr (nth 2 cmd)) |
925 (table (nth 3 cmd)) | 927 (map (nth 3 cmd)) |
926 id) | 928 id) |
927 (ccl-check-register rrr cmd) | 929 (ccl-check-register rrr cmd) |
928 (ccl-check-register RRR cmd) | 930 (ccl-check-register RRR cmd) |
929 (ccl-embed-extended-command 'translate-single-map rrr RRR 0) | 931 (ccl-embed-extended-command 'map-single rrr RRR 0) |
930 (cond ((symbolp table) | 932 (cond ((symbolp map) |
931 (if (get table 'ccl-translation-table) | 933 (if (get map 'code-conversion-map) |
932 (ccl-embed-data table) | 934 (ccl-embed-data map) |
933 (error "CCL: Invalid table: %s" table))) | 935 (error "CCL: Invalid map: %s" map))) |
934 (t | 936 (t |
935 (error "CCL: Invalid type of arguments: %s" cmd))))) | 937 (error "CCL: Invalid type of arguments: %s" cmd))))) |
936 | 938 |
937 (defun ccl-compile-multiple-map-function (command cmd) | 939 (defun ccl-compile-multiple-map-function (command cmd) |
938 (if (< (length cmd) 4) | 940 (if (< (length cmd) 4) |
939 (error "CCL: Invalid number of arguments: %s" cmd)) | 941 (error "CCL: Invalid number of arguments: %s" cmd)) |
940 (let ((RRR (nth 1 cmd)) | 942 (let ((RRR (nth 1 cmd)) |
941 (rrr (nth 2 cmd)) | 943 (rrr (nth 2 cmd)) |
942 (args (nthcdr 3 cmd)) | 944 (args (nthcdr 3 cmd)) |
943 table) | 945 map) |
944 (ccl-check-register rrr cmd) | 946 (ccl-check-register rrr cmd) |
945 (ccl-check-register RRR cmd) | 947 (ccl-check-register RRR cmd) |
946 (ccl-embed-extended-command command rrr RRR 0) | 948 (ccl-embed-extended-command command rrr RRR 0) |
947 (ccl-embed-data (length args)) | 949 (ccl-embed-data (length args)) |
948 (while args | 950 (while args |
949 (setq table (car args)) | 951 (setq map (car args)) |
950 (cond ((symbolp table) | 952 (cond ((symbolp map) |
951 (if (get table 'ccl-translation-table) | 953 (if (get map 'code-conversion-map) |
952 (ccl-embed-data table) | 954 (ccl-embed-data map) |
953 (error "CCL: Invalid table: %s" table))) | 955 (error "CCL: Invalid map: %s" map))) |
954 ((numberp table) | 956 ((numberp map) |
955 (ccl-embed-data table)) | 957 (ccl-embed-data map)) |
956 (t | 958 (t |
957 (error "CCL: Invalid type of arguments: %s" cmd))) | 959 (error "CCL: Invalid type of arguments: %s" cmd))) |
958 (setq args (cdr args))))) | 960 (setq args (cdr args))))) |
959 | 961 |
960 | 962 |
1236 (insert (format "read-multibyte-character r%d r%d\n" RRR rrr))) | 1238 (insert (format "read-multibyte-character r%d r%d\n" RRR rrr))) |
1237 | 1239 |
1238 (defun ccl-dump-write-multibyte-character (rrr RRR Rrr) | 1240 (defun ccl-dump-write-multibyte-character (rrr RRR Rrr) |
1239 (insert (format "write-multibyte-character r%d r%d\n" RRR rrr))) | 1241 (insert (format "write-multibyte-character r%d r%d\n" RRR rrr))) |
1240 | 1242 |
1241 (defun ccl-dump-unify-character (rrr RRR Rrr) | 1243 (defun ccl-dump-translate-character (rrr RRR Rrr) |
1242 (insert (format "unify-character table(r%d) r%d r%d\n" Rrr RRR rrr))) | 1244 (insert (format "character translation table(r%d) r%d r%d\n" Rrr RRR rrr))) |
1243 | 1245 |
1244 (defun ccl-dump-unify-character-const-tbl (rrr RRR Rrr) | 1246 (defun ccl-dump-translate-character-const-tbl (rrr RRR Rrr) |
1245 (let ((tbl (ccl-get-next-code))) | 1247 (let ((tbl (ccl-get-next-code))) |
1246 (insert (format "unify-character table(%d) r%d r%d\n" tbl RRR rrr)))) | 1248 (insert (format "character translation table(%d) r%d r%d\n" tbl RRR rrr)))) |
1247 | 1249 |
1248 (defun ccl-dump-iterate-multiple-map (rrr RRR Rrr) | 1250 (defun ccl-dump-iterate-multiple-map (rrr RRR Rrr) |
1249 (let ((notbl (ccl-get-next-code)) | 1251 (let ((notbl (ccl-get-next-code)) |
1250 (i 0) id) | 1252 (i 0) id) |
1251 (insert (format "iterate-multiple-map r%d r%d\n" RRR rrr)) | 1253 (insert (format "iterate-multiple-map r%d r%d\n" RRR rrr)) |
1252 (insert (format "\tnumber of tables is %d .\n\t [" notbl)) | 1254 (insert (format "\tnumber of maps is %d .\n\t [" notbl)) |
1253 (while (< i notbl) | 1255 (while (< i notbl) |
1254 (setq id (ccl-get-next-code)) | 1256 (setq id (ccl-get-next-code)) |
1255 (insert (format "%S" id)) | 1257 (insert (format "%S" id)) |
1256 (setq i (1+ i))) | 1258 (setq i (1+ i))) |
1257 (insert "]\n"))) | 1259 (insert "]\n"))) |
1258 | 1260 |
1259 (defun ccl-dump-translate-multiple-map (rrr RRR Rrr) | 1261 (defun ccl-dump-map-multiple (rrr RRR Rrr) |
1260 (let ((notbl (ccl-get-next-code)) | 1262 (let ((notbl (ccl-get-next-code)) |
1261 (i 0) id) | 1263 (i 0) id) |
1262 (insert (format "translate-multiple-map r%d r%d\n" RRR rrr)) | 1264 (insert (format "map-multiple r%d r%d\n" RRR rrr)) |
1263 (insert (format "\tnumber of tables and separators is %d\n\t [" notbl)) | 1265 (insert (format "\tnumber of maps and separators is %d\n\t [" notbl)) |
1264 (while (< i notbl) | 1266 (while (< i notbl) |
1265 (setq id (ccl-get-next-code)) | 1267 (setq id (ccl-get-next-code)) |
1266 (if (= id -1) | 1268 (if (= id -1) |
1267 (insert "]\n\t [") | 1269 (insert "]\n\t [") |
1268 (insert (format "%S " id))) | 1270 (insert (format "%S " id))) |
1269 (setq i (1+ i))) | 1271 (setq i (1+ i))) |
1270 (insert "]\n"))) | 1272 (insert "]\n"))) |
1271 | 1273 |
1272 (defun ccl-dump-translate-single-map (rrr RRR Rrr) | 1274 (defun ccl-dump-map-single (rrr RRR Rrr) |
1273 (let ((id (ccl-get-next-code))) | 1275 (let ((id (ccl-get-next-code))) |
1274 (insert (format "translate-single-map r%d r%d table(%S)\n" RRR rrr id)))) | 1276 (insert (format "map-single r%d r%d map(%S)\n" RRR rrr id)))) |
1275 | 1277 |
1276 | 1278 |
1277 ;; CCL emulation staffs | 1279 ;; CCL emulation staffs |
1278 | 1280 |
1279 ;; Not yet implemented. | 1281 ;; Not yet implemented. |