diff options
author | Andy Wingo <wingo@pobox.com> | 2011-10-06 12:14:10 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-10-06 13:44:05 +0200 |
commit | 904981ee417afea6f1ed4a244dd275e78a6a4b8d (patch) | |
tree | ddc99038edb7dd4adef13313ab9bde6205230dcf | |
parent | 47974c308a27c6327696b1c21bfde00fe78fd3a9 (diff) | |
download | guile-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.scm | 16 |
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)) |