From: tomo Date: Thu, 20 Jun 2002 16:58:18 +0000 (+0000) Subject: (ids-parse-component): Add new argument `simplify'; if `simplify' is X-Git-Tag: ids-0_0-1~276 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80a720af50b108d65d75b35b33d5ed49b2fa269e;p=chise%2Fids.git (ids-parse-component): Add new argument `simplify'; if `simplify' is nil, don't simplify a subtree. (ids-parse-element): Likewise. (ids-parse-string): Likewise. --- diff --git a/ids.el b/ids.el index a8a4182..1ae8464 100644 --- a/ids.el +++ b/ids.el @@ -58,42 +58,43 @@ (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 - (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)))) -(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)) - (when (setq ret (ids-parse-component (cdr ret))) + (when (setq ret (ids-parse-component (cdr ret) simplify)) (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)) - (when (setq ret (ids-parse-component (cdr ret))) + (when (setq ret (ids-parse-component (cdr ret) simplify)) (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)) - (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 -(defun ids-parse-string (ids-string) +(defun ids-parse-string (ids-string &optional simplify) "Parse IDS-STRING and return the result." - (let ((ret (ids-parse-element ids-string))) + (let ((ret (ids-parse-element ids-string simplify))) (if (= (length (cdr ret)) 0) (car ret))))