commit 6d79577cc1bf3c840cd5510dc2678279e355544d
parent 25e891e6fcafb89518fb9388fd504e623e8f693a
Author: Bertrand BRUN <bertrand.brun@me.com>
Date: Tue, 9 Nov 2010 08:52:25 +0100
Ajout du cas du setq dans lisp2li
Diffstat:
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lisp2li.lisp b/lisp2li.lisp
@@ -1,4 +1,5 @@
(load "util.lisp")
+(load "match.lisp")
;; `
(defvar my-quasiquote (car '`(,a)))
@@ -26,7 +27,7 @@
. ,(make-stat-env-optional (cdr params) env (+ 1 position) num-env)))))
(defun make-stat-env (params &optional env (position 1) num-env)
- (unless num-env (setq num-env (+ (or (second (first env)) -1) 1)))
+ (unless num-env (setf num-env (+ (or (second (first env)) -1) 1)))
(cond ((endp params)
env)
((eq '&optional (car params))
@@ -156,6 +157,9 @@ par le compilateur et par l’interpréteur"
`(:set-var (,(second cell) ,(third cell))
,(lisp2li (third expr) env)))
`(:set-fun ,(caadr expr) ,@(last expr) ,@(cdadr expr))))
+ ;; setq
+ ((eq 'setq (car expr))
+ (lisp2li `(setf ,@(cdr expr)) env))
;; progn
((eq 'progn (car expr))
(cons :progn (map-lisp2li (cdr expr) env)))