X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=parse-common.lisp;h=b8439fab6fffe9eeeecf91dfb69a25cf5ab97aed;hb=aeade16272b79115d3f307906c7a3e9597137e97;hp=7761e5ccf191b6004dc2586016cb599242218447;hpb=5aca51fd7425f05f0b68249b92dd28d6225a2c71;p=umlisp.git diff --git a/parse-common.lisp b/parse-common.lisp index 7761e5c..b8439fa 100644 --- a/parse-common.lisp +++ b/parse-common.lisp @@ -2,15 +2,15 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: parse-common.lisp -;;;; Purpose: Common, stable parsing routines for UMLisp -;;;; Author: Kevin M. Rosenberg -;;;; Date Started: Apr 2000 +;;;; Name: parse-common.lisp +;;;; Purpose: Common, stable parsing routines for UMLisp +;;;; Author: Kevin M. Rosenberg +;;;; Created: Apr 2000 ;;;; -;;;; $Id: parse-common.lisp,v 1.16 2003/08/26 04:46:16 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,9 +18,6 @@ (in-package #:umlisp) -(eval-when (:compile-toplevel) - (declaim (optimize (speed 3) (safety 1) (compilation-speed 0) (debug 3)))) - (defun ensure-ucols+ufiles (&optional (alwaysclear nil)) "Initialize all UMLS file and column structures if not already initialized" (when (or alwaysclear (null *umls-files*)) @@ -90,8 +87,8 @@ Currently, these are the LEX and NET files." (defun ufiles-to-measure () "Returns a list of ufiles to measure" (loop for ufile in *umls-files* - unless (or (char= #\M (char (fil ufile) 0)) - (char= #\m (char (fil ufile) 0))) + unless (or (char= #\M (schar (fil ufile) 0)) + (char= #\m (schar (fil ufile) 0))) collect ufile)) @@ -101,6 +98,7 @@ Currently, these are the LEX and NET files." (defun file-field-lengths (filename) "Returns a list of FILENAME MAX AV" + (declare (optimize (speed 3) (safety 0))) (let (fields-max fields-av num-fields (count-lines 0)) (with-umls-file (line filename) (unless num-fields @@ -176,7 +174,9 @@ Currently, these are the LEX and NET files." (quote-str "'") (custom-value-fun)) (let ((ucol (make-instance 'ucol - :col col :des des :ref ref :min min :av av :max max :fil fil + :col col :des des :ref ref :min min :av av + :max (if (eql max 0) 1 max) ;; ensure at least one char wide + :fil fil :dty dty :sqltype sqltype :quote-str quote-str :parse-fun (ensure-compiled-fun parse-fun) :custom-value-fun (ensure-compiled-fun custom-value-fun))))