X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=parse-common.lisp;h=06ad178466e3a1edbe54cacfbc6081c3f3039d9e;hb=da70bc391acaeb38f7c2b2e9085a2a6fc49a9bea;hp=198041445fcf9baf870f8ac45a28af19436dc64c;hpb=dff3199405205cf99782dd3abf9d9dde187f5494;p=umlisp.git diff --git a/parse-common.lisp b/parse-common.lisp index 1980414..06ad178 100644 --- a/parse-common.lisp +++ b/parse-common.lisp @@ -7,10 +7,10 @@ ;;;; Author: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: parse-common.lisp,v 1.10 2003/05/07 22:53:36 kevin Exp $ +;;;; $Id: parse-common.lisp,v 1.15 2003/06/10 22:30:16 kevin Exp $ ;;;; ;;;; This file, part of UMLisp, is -;;;; Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D. +;;;; Copyright (c) 2000-2003 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. @@ -21,7 +21,7 @@ (eval-when (:compile-toplevel) (declaim (optimize (speed 3) (safety 1) (compilation-speed 0) (debug 3)))) -(defun ensure-init-umls (&optional (alwaysclear nil)) +(defun ensure-ucols+ufiles (&optional (alwaysclear nil)) "Initialize all UMLS file and column structures if not already initialized" (when (or alwaysclear (null *umls-files*)) (gen-ucols) @@ -162,6 +162,8 @@ Currently, these are the LEX and NET files." (defun ensure-compiled-fun (fun) "Ensure that a function is compiled" (etypecase fun + (null + nil) (function (if (compiled-function-p fun) fun @@ -182,7 +184,7 @@ Currently, these are the LEX and NET files." ucol)) (defun make-empty-ucol (colname filename) - (warn "call in make-empty-ucol") + ;;(format "call in make-empty-ucol: ~A/~A" colname filename) (make-ucol (copy-seq colname) "Unknown" "" nil nil nil filename nil)) (defun find-ucol (colname filename) @@ -193,10 +195,10 @@ Currently, these are the LEX and NET files." "Returns umls-file structure for a filename" (find-if #'(lambda (f) (string-equal filename (fil f))) *umls-files*)) -(defun find-ucols-for-filename (filename) +(defun find-ucols-for-ufile (ufile) "Returns list of umls-cols for a file structure" - (loop for colname in (fields (find-ufile filename)) - collect (find-ucol colname filename))) + (loop for colname in (fields ufile) + collect (find-ucol colname (fil ufile)))) (defun umls-field-string-to-list (fmt) "Converts a comma delimited list of fields into a list of field names. Will @@ -204,7 +206,7 @@ append a unique number (starting at 2) onto a column name that is repeated in th (let ((col-counts (make-hash-table :test 'equal))) (loop for colname in (delimited-string-to-list (escape-column-name fmt) #\,) collect - (multiple-value-bind (value found) (gethash col col-counts) + (multiple-value-bind (value found) (gethash colname col-counts) (cond (found (incf (gethash colname col-counts)) @@ -216,7 +218,7 @@ append a unique number (starting at 2) onto a column name that is repeated in th (defun make-ufile (fil des table cls rws bts fields) (let ((ufile (make-instance 'ufile :fil fil :des des :table table :cls cls :rws rws :bts bts :fields fields))) - (setf (ucols ufile) (find-ucols-for-filename fil)) + (setf (ucols ufile) (find-ucols-for-ufile ufile)) ufile)) (defun datatype-for-colname (colname)