projects
/
chise
/
ids.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
(ids-read-buffer): Add new optional argument `simplify'; if `simplify'
[chise/ids.git]
/
ids.el
diff --git
a/ids.el
b/ids.el
index
9948d39
..
1ae8464
100644
(file)
--- a/
ids.el
+++ b/
ids.el
@@
-1,6
+1,6
@@
;;; ids.el --- Parser and utility for Ideographic Description Sequence.
;;; ids.el --- Parser and utility for Ideographic Description Sequence.
-;; Copyright (C) 2001 MORIOKA Tomohiko
+;; Copyright (C) 2001,2002 MORIOKA Tomohiko
;; Author: MORIOKA Tomohiko <tomo@kanji.zinbun.kyoto-u.ac.jp>
;; Keywords: IDS, IDC, Ideographs, UCS, Unicode
;; Author: MORIOKA Tomohiko <tomo@kanji.zinbun.kyoto-u.ac.jp>
;; Keywords: IDS, IDC, Ideographs, UCS, Unicode
@@
-58,41
+58,43
@@
(cons chr
(substring string 1))))))
(cons chr
(substring string 1))))))
-(defun ids-parse-component (string)
- (let ((ret (ids-parse-element string))
+(defun ids-parse-component (string simplify)
+ (let ((ret (ids-parse-element string simplify))
rret)
(when ret
rret)
(when ret
- (if (and (listp (car ret))
+ (if (and simplify
+ (listp (car ret))
(setq rret (ideographic-structure-find-char
(cdr (assq 'ideographic-structure (car ret))))))
(cons rret (cdr ret))
ret))))
(setq rret (ideographic-structure-find-char
(cdr (assq 'ideographic-structure (car ret))))))
(cons rret (cdr ret))
ret))))
-(defun ids-parse-element (string)
+(defun ids-parse-element (string simplify)
(let (ret op arg1 arg2 arg3)
(cond ((ids-parse-terminal string))
((setq ret (ids-parse-op-2 string))
(setq op (car ret))
(let (ret op arg1 arg2 arg3)
(cond ((ids-parse-terminal string))
((setq ret (ids-parse-op-2 string))
(setq op (car ret))
- (when (setq ret (ids-parse-component (cdr ret)))
+ (when (setq ret (ids-parse-component (cdr ret) simplify))
(setq arg1 (car ret))
(setq arg1 (car ret))
- (when (setq ret (ids-parse-component (cdr ret)))
+ (when (setq ret (ids-parse-component (cdr ret) simplify))
(setq arg2 (car ret))
(cons (list (list 'ideographic-structure op arg1 arg2))
(cdr ret)))))
((setq ret (ids-parse-op-3 string))
(setq op (car ret))
(setq arg2 (car ret))
(cons (list (list 'ideographic-structure op arg1 arg2))
(cdr ret)))))
((setq ret (ids-parse-op-3 string))
(setq op (car ret))
- (when (setq ret (ids-parse-component (cdr ret)))
+ (when (setq ret (ids-parse-component (cdr ret) simplify))
(setq arg1 (car ret))
(setq arg1 (car ret))
- (when (setq ret (ids-parse-component (cdr ret)))
+ (when (setq ret (ids-parse-component (cdr ret) simplify))
(setq arg2 (car ret))
(setq arg2 (car ret))
- (when (setq ret (ids-parse-component (cdr ret)))
+ (when (setq ret (ids-parse-component (cdr ret) simplify))
(setq arg3 (car ret))
(cons (list (list 'ideographic-structure op arg1 arg2 arg3))
(cdr ret)))))))))
;;;###autoload
(setq arg3 (car ret))
(cons (list (list 'ideographic-structure op arg1 arg2 arg3))
(cdr ret)))))))))
;;;###autoload
-(defun ids-parse-string (string)
- (let ((ret (ids-parse-element string)))
+(defun ids-parse-string (ids-string &optional simplify)
+ "Parse IDS-STRING and return the result."
+ (let ((ret (ids-parse-element ids-string simplify)))
(if (= (length (cdr ret)) 0)
(car ret))))
(if (= (length (cdr ret)) 0)
(car ret))))
@@
-107,7
+109,9
@@
((setq ret (assq 'ideographic-structure ids-char))
(ids-format-list (cdr ret))))))
((setq ret (assq 'ideographic-structure ids-char))
(ids-format-list (cdr ret))))))
+;;;###autoload
(defun ids-format-list (ids-list)
(defun ids-format-list (ids-list)
+ "Format ideographic-structure IDS-LIST as an IDS-string."
(mapconcat (lambda (cell)
(ids-format-unit
(if (char-ref-p cell)
(mapconcat (lambda (cell)
(ids-format-unit
(if (char-ref-p cell)