X-Git-Url: http://git.kpe.io/?p=umlisp.git;a=blobdiff_plain;f=parse-rrf.lisp;h=e8e919de245a0e34da419ac546bf35b7072cfc9c;hp=8a1bb1ebd47f116fcd5cdc7710a50d9634cdf83e;hb=1156ea284d3010afd2e113fc4ddb325290b8a7a4;hpb=ddc4af5d96963df7c4df2706d752a1e1851ac86e diff --git a/parse-rrf.lisp b/parse-rrf.lisp index 8a1bb1e..e8e919d 100644 --- a/parse-rrf.lisp +++ b/parse-rrf.lisp @@ -187,13 +187,14 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp '(("KCON" "SELECT CUI,STR FROM MRCONSO WHERE STT='PF' AND TS='P' AND ISPREF='Y' AND LAT='ENG'")) "Custom tables to create") -(declaim (inline vff)) -(defun vff (filename fieldname record) - (let ((pos (position-field-file filename fieldname))) - (unless pos - (error "Did not find fieldname ~A in filename ~A." fieldname filename)) - (locally (declare (fixnum pos)) - (nth pos record)))) +(defmacro vff (filename fieldname record) + (let ((pos (gensym "POS-")) + (key (kmrcl:ensure-keyword (concatenate 'string filename "^" fieldname)))) + `(let ((,pos (position-field-file ,filename ,fieldname ,key))) + (unless ,pos + (error "Did not find fieldname ~A in filename ~A." ,fieldname ,filename)) + (locally (declare (type (integer 0 100000) ,pos)) + (nth ,pos ,record))))) (defparameter +custom-cols+ '(#+nil ("MRCONSO.RRF" "KPFSTR" "TEXT"