chiark / gitweb /
Upgrade everything for SBCL.
[lisp] / infix.lisp
index ea78422340db8add6c7e23398027befc5ed82991..64a0a308d257c0cac310562bb6f81545c597a56f 100644 (file)
 ;;; it under the terms of the GNU General Public License as published by
 ;;; the Free Software Foundation; either version 2 of the License, or
 ;;; (at your option) any later version.
-;;; 
+;;;
 ;;; This program 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 this program; if not, write to the Free Software Foundation,
 ;;; Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@@ -70,7 +70,7 @@ (defstruct (operator (:predicate operatorp)
   (name nil :type symbol)
   (lprec nil :type (or fixnum null))
   (rprec nil :type (or fixnum null))
-  (func (lambda () nil) :type (function () t)))
+  (func (lambda () nil) :type #-ecl (function () t) #+ecl function))
 
 ;;;--------------------------------------------------------------------------
 ;;; Global parser state.
@@ -610,11 +610,11 @@ (defopfunc loop operand
   (pushval `(loop ,@(strip-progn (parse-infix 0)))))
 
 (defopfunc bind operand
-  (labels ((loop ()
+  (labels ((loopy ()
            (let ((ids (parse-ident-list))
                  (valform (progn (delim '=) (parse-infix 0)))
                  (body (if (delim '|,| nil)
-                           (loop)
+                           (loopy)
                            (progn
                              (delim 'in)
                              (strip-progn (parse-infix 0))))))
@@ -622,7 +622,7 @@ (defopfunc bind operand
                        `(let ((,(car ids) ,valform)) ,@body)
                        `(multiple-value-bind ,ids ,valform ,@body))))))
     (get-token)
-    (pushval (car (loop)))))
+    (pushval (car (loopy)))))
 
 ;;;--------------------------------------------------------------------------
 ;;; Parsing function bodies and lambda lists.
@@ -673,7 +673,7 @@ (defun parse-func-name ()
   (cond ((delim '|(| nil)
         (prog1 (parse-infix) (delim '|)|)))
        (t (prog1 *token* (get-token)))))
-        
+
 (defopfunc lambda operand
   (get-token)
   (pushval `(lambda ,(parse-lambda-list) ,@(strip-progn (parse-infix 0)))))