X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=class-support.lisp;h=c14291d7607e9552f1a878a046e5bd95bb21ec19;hb=ea26d2291ff800e37c28388d9bb24cacbfbbbe57;hp=a085828956576010adfb476ebf66fd5a30da0af6;hpb=66261c2e75caf0c281ea9e5c21e99b024a0f33da;p=umlisp.git diff --git a/class-support.lisp b/class-support.lisp index a085828..c14291d 100644 --- a/class-support.lisp +++ b/class-support.lisp @@ -2,15 +2,15 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: classes-support.lisp -;;;; Purpose: Support for UMLisp classes -;;;; Author: Kevin M. Rosenberg -;;;; Date Started: Apr 2000 +;;;; Name: classes-support.lisp +;;;; Purpose: Support for UMLisp classes +;;;; Author: Kevin M. Rosenberg +;;;; Created: Apr 2000 ;;;; -;;;; $Id: class-support.lisp,v 1.19 2003/07/21 08:41:44 kevin Exp $ +;;;; $Id$ ;;;; ;;;; This file, part of UMLisp, is -;;;; Copyright (c) 2000-2003 by Kevin M. Rosenberg, M.D. +;;;; Copyright (c) 2000-2004 by Kevin M. Rosenberg, M.D. ;;;; ;;;; UMLisp users are granted the rights to distribute and use this software ;;;; as governed by the terms of the GNU General Public License. @@ -18,7 +18,6 @@ (in-package #:umlisp) - ;;; Formatting routines (defgeneric fmt-cui (c)) @@ -67,7 +66,16 @@ (defmethod fmt-tui ((tui string)) (if (eql (aref tui 0) #\T) tui - (fmt-tui (parse-integer tui)))) + (fmt-tui (parse-integer tui)))) + +(defgeneric fmt-aui (aui)) +(defmethod fmt-aui ((aui fixnum)) + (prefixed-fixnum-string aui #\A 7)) + +(defmethod fmt-aui ((aui string)) + (if (eql (aref aui 0) #\A) + aui + (fmt-aui (parse-integer aui)))) (defgeneric fmt-eui (e)) (defmethod fmt-eui ((e fixnum)) @@ -170,11 +178,12 @@ (defmethod mesh-number ((ustr ustr)) (let ((codes - (filter (lambda (sat) - (when (and (string-equal "MSH" (sab sat)) - (string-equal "MN" (atn sat))) - (atv sat))) - (s#sat ustr)))) + (map-and-remove-nils + (lambda (sat) + (when (and (string-equal "MSH" (sab sat)) + (string-equal "MN" (atn sat))) + (atv sat))) + (s#sat ustr)))) (if (= 1 (length codes)) (car codes) codes))) @@ -233,21 +242,23 @@ (defvar +language-abbreviations+ - '(("BAQ" . "Basque") - ("DAN" . "Danish") - ("DUT" . "Dutch") - ("ENG" . "English") - ("FIN" . "Finnish") - ("FRE" . "French") - ("GER" . "German") - ("HEB" . "Hebrew") - ("HUN" . "Hungarian") - ("ITA" . "Italian") - ("NOR" . "Norwegian") - ("POR" . "Portuguese") - ("RUS" . "Russian") - ("SPA" . "Spanish") - ("SWE" . "Swedish"))) + '(("BAQ" . "Basque") + ("CZE" . "Chech") + ("DAN" . "Danish") + ("DUT" . "Dutch") + ("ENG" . "English") + ("FIN" . "Finnish") + ("FRE" . "French") + ("GER" . "German") + ("HEB" . "Hebrew") + ("HUN" . "Hungarian") + ("ITA" . "Italian") + ("JPN" . "Japanese") + ("NOR" . "Norwegian") + ("POR" . "Portuguese") + ("RUS" . "Russian") + ("SPA" . "Spanish") + ("SWE" . "Swedish"))) (defvar *lat-info-table* (make-hash-table :size 30 :test 'equal)) (defvar *is-lat-table-init* nil) @@ -258,7 +269,10 @@ (setq *is-lat-table-init* t)) (defun lat-abbr-info (lat) - (nth-value 0 (gethash (string-downcase lat) *lat-info-table*))) + (aif (nth-value 0 (gethash (string-downcase lat) *lat-info-table*)) + it + lat)) + (defun stt-abbr-info (stt) @@ -323,7 +337,7 @@ (let* ((anc-this-cxn (remove-if-not (lambda (cxt) (= (1+ i) (cxn cxt))) anc))) (push - (sort anc-this-cxn (lambda (a b) (< (rnk a) (rnk b)))) + (sort anc-this-cxn (lambda (a b) (< (rank a) (rank b)))) anc-lists)))))