;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; This file is part of AIslash. ; ; AIslash is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation, either version 3 of the License, or ; (at your option) any later version. ; ; AIslash is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; ; You should have received a copy of the GNU General Public License ; along with AIslash. If not, see . ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun unknownp (x) (eq x (fixed-t-ignore *f4t*))) (defun skip (header cell) (or (header-ignorep header) (header-classp header) (unknownp cell))) (defun list2headers (l) (labels ((q (want sym) (find (funcall want *f4t*) (symbol-name sym) :test #'eq)) (sym2header (sym n) (let ((ignorep (q #'fixed-t-ignore sym))) (if (q #'fixed-t-numeric sym) (make-numeric :name sym :ignorep ignorep :pos n) (make-discrete :name sym :ignorep ignorep :pos n))))) (let* ((n -1) (out (mapcar #'(lambda(x) (sym2header x (incf n))) l))) (setf (header-classp (last1 out)) t) out)))