summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2011-10-06 12:14:10 +0200
committerAndy Wingo <wingo@pobox.com>2011-10-06 13:44:05 +0200
commit904981ee417afea6f1ed4a244dd275e78a6a4b8d (patch)
treeddc99038edb7dd4adef13313ab9bde6205230dcf
parent47974c308a27c6327696b1c21bfde00fe78fd3a9 (diff)
downloadguile-904981ee417afea6f1ed4a244dd275e78a6a4b8d.tar.gz
peval refactor
* module/language/tree-il/peval.scm (peval): Refactor the for-value, etc helpers.
-rw-r--r--module/language/tree-il/peval.scm16
1 files changed, 7 insertions, 9 deletions
diff --git a/module/language/tree-il/peval.scm b/module/language/tree-il/peval.scm
index 13e1ce393..aadba24a6 100644
--- a/module/language/tree-il/peval.scm
+++ b/module/language/tree-il/peval.scm
@@ -601,17 +601,15 @@ top-level bindings from ENV and return the resulting expression."
(define (lookup var)
(and=> (vhash-assq var env) cdr))
- (define (for-value exp)
- (loop exp env counter 'value))
- (define (for-operand exp)
- (loop exp env counter 'operand))
- (define (for-test exp)
- (loop exp env counter 'test))
- (define (for-effect exp)
- (loop exp env counter 'effect))
- (define (for-tail exp)
+ (define (visit exp ctx)
(loop exp env counter ctx))
+ (define (for-value exp) (visit exp 'value))
+ (define (for-operand exp) (visit exp 'operand))
+ (define (for-test exp) (visit exp 'test))
+ (define (for-effect exp) (visit exp 'effect))
+ (define (for-tail exp) (visit exp ctx))
+
(if counter
(record-effort! counter))