From 6d79577cc1bf3c840cd5510dc2678279e355544d Mon Sep 17 00:00:00 2001 From: Bertrand BRUN Date: Tue, 9 Nov 2010 08:52:25 +0100 Subject: [PATCH] Ajout du cas du setq dans lisp2li --- lisp2li.lisp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp2li.lisp b/lisp2li.lisp index 580683f..e0a19d8 100644 --- 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)))