Fix problem with recursive macros
authorDavid Vazquez <davazp@gmail.com>
Tue, 18 Dec 2012 02:24:21 +0000 (02:24 +0000)
committerDavid Vazquez <davazp@gmail.com>
Tue, 18 Dec 2012 02:24:21 +0000 (02:24 +0000)
lispstrack.lisp

index f034041..59fb5e4 100644 (file)
     ((stringp sexp) (concat "\"" sexp "\""))
     ((listp sexp)
      (let ((sexp (ls-macroexpand-1 sexp env fenv)))
-       (let ((compiler-func (second (assoc (car sexp) *compilations*))))
-         (if compiler-func
-             (apply compiler-func env fenv (cdr sexp))
-             (compile-funcall (car sexp) (cdr sexp) env fenv)))))))
+       (if (listp sexp)
+           (let ((compiler-func (second (assoc (car sexp) *compilations*))))
+             (if compiler-func
+                 (apply compiler-func env fenv (cdr sexp))
+                 (compile-funcall (car sexp) (cdr sexp) env fenv)))
+           (ls-compile sexp env fenv))))))
 
 (defun ls-compile-toplevel (sexp)
   (setq *toplevel-compilations* nil)