www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit ac8f7a19538ef4284a9ae73daeca9a61e496295c
parent 5809570f57276902753e0eaea8cd9701f85841db
Author: Bertrand BRUN <bertrand.brun@me.com>
Date:   Tue,  2 Nov 2010 13:07:47 +0100

Lisp2li gere maintenant les progn. Et correction d'une erreur dans la gestion du defun

Diffstat:
Mlisp2li.lisp | 8+++++---
Mmeval.lisp | 2++
2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lisp2li.lisp b/lisp2li.lisp @@ -38,8 +38,8 @@ par le compilateur et par l’interpréteur" (add-top-level-binding env (second expr) (cons :lclosure (cons env-bis - (lisp2li (fourth expr) - env-bis))))) + (map-lisp2li (cdddr expr) + env-bis))))) (cons :lit (second expr))) ((eq 'setq (car expr)) (cons :call (cons 'set-binding (list `(:lit . ,env) @@ -62,12 +62,14 @@ par le compilateur et par l’interpréteur" `(let (,(car bindings)) (let* ,(cdr bindings) ,body))) env))) + ((eq 'progn (car expr)) ; PROGN + (cons :progn (map-lisp2li (cdr expr) env))) ((macro-function (car expr)) (lisp2li (macroexpand-1 expr) env)) ; macros ((not (special-operator-p (car expr))) ; fonctions normales. (cons :call (cons (first expr) (map-lisp2li (cdr expr) env)))) (T - (error "special forme NYI ~S" (car expr))) + (error "special form not yet implemented ~S" (car expr))) )) (defun map-lisp2li (expr env) diff --git a/meval.lisp b/meval.lisp @@ -18,6 +18,8 @@ (defun map-meval (list env) (mapcar (lambda (x) (meval x env)) list)) +(defun foo (x) x) + ;; Test unitaire (load "test-unitaire") (erase-tests meval)