diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index d26d2c87..32bea65a 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -24,6 +24,7 @@ env:frame-variables env:frame-values env:add-binding-to-frame! + env:all-variables env:extend-environment env:lookup env:lookup-variable-value @@ -204,6 +205,11 @@ (set-car! frame (cons var (car frame))) (set-cdr! frame (cons val (cdr frame)))) +(define (env:all-variables env) + (flatten + (env:frame-variables + (env:first-frame env)))) + (define (env:extend-environment vars vals base-env) (if (= (length vars) (length vals)) (cons (env:make-frame vars vals) base-env)