X-Git-Url: http://git.kpe.io/?p=umlisp.git;a=blobdiff_plain;f=class-support.lisp;h=47463dd194610fb454fc6a7b5a37ff484bf58cb5;hp=7892abed792da14ea9dfcb75bcccce4e51593dbf;hb=HEAD;hpb=8dc001f5e7cf851c06006e489473a85611d348be diff --git a/class-support.lisp b/class-support.lisp index 7892abe..47463dd 100644 --- a/class-support.lisp +++ b/class-support.lisp @@ -70,7 +70,7 @@ (if (>= s 10000000) (prefixed-fixnum-string s #\S 8) (prefixed-fixnum-string s #\S 7)))) - + (defmethod fmt-sui ((s integer)) (if (>= s 10000000) (prefixed-fixnum-string s #\S 8) @@ -283,8 +283,21 @@ (defun rel-abbr-info (rel) (nth-value 0 (gethash (string-downcase rel) *rel-info-table*))) -(defun filter-urels-by-rel (urels rel) - (remove-if-not (lambda (urel) (string-equal rel (rel urel))) urels)) +(defun filter-urels-by-rel (urels rel &key (remove-duplicate-pfstr2 t) (sort :pfstr2)) + (let ((f (remove-if-not (lambda (urel) (string-equal rel (rel urel))) urels))) + (when remove-duplicate-pfstr2 + (setq f (remove-duplicates f :test 'equal :key 'u::pfstr2))) + (if sort + (sort (copy-seq f) 'string-lessp :key 'u::pfstr2) + f))) + +#+mrcoc +(defun filter-ucocs (ucocs &key (remove-duplicate-pfstr2 t) (sort :pfstr2)) + (when remove-duplicate-pfstr2 + (setq ucocs (remove-duplicates ucocs :test 'equal :key 'u::pfstr2))) + (if sort + (sort (copy-seq ucocs) 'string-lessp :key 'u::pfstr2) + ucocs)) (defvar +language-abbreviations+ @@ -352,8 +365,8 @@ #+scl -(dolist (c '(urank udef usat uso ucxt ustr uterm usty urel ucoc uatx uconso uxw uxnw uxns lexterm labr lagr lcmp lmod lnom lprn lprp lspl ltrm ltyp lwd sdef sstr sstre1 sstre2 usrl)) +(dolist (c '(urank udef usat uso ucxt ustr uterm usty urel + #+mrcoc ucoc + uatx uconso uxw uxnw uxns lexterm labr lagr lcmp lmod lnom lprn lprp lspl ltrm ltyp lwd sdef sstr sstre1 sstre2 usrl)) (let ((cl (find-class c))) (clos:finalize-inheritance cl))) - -