~ chicken-r7rs (master) /scheme.r5rs.scm
Trap1(module scheme.r5rs ()
2 (import (rename scheme
3 (null-environment %null-environment)
4 (scheme-report-environment %scheme-report-environment)))
5 (import chicken.base chicken.module chicken.syntax chicken.type)
6 (import scheme.eval)
7
8 (export angle make-polar make-rectangular rationalize)
9 (export null-environment scheme-report-environment)
10
11 (reexport
12 (except scheme
13 null-environment scheme-report-environment eval
14 and begin case cond define define-syntax delay do
15 if lambda let let* let-syntax letrec letrec-syntax
16 or quasiquote quote set! syntax-rules))
17
18 (define-constant null-environment-identifiers
19 '(and begin case cond cond-expand define define-syntax delay
20 delay-force do if lambda let let* let-syntax letrec letrec*
21 letrec-syntax or quasiquote quote set! syntax-rules))
22
23 (: null-environment (fixnum -> (struct environment)))
24
25 (define (null-environment version)
26 (case version
27 ((7) (environment `(only (scheme base) ,@null-environment-identifiers)))
28 ((5) (environment `(only (scheme r5rs) ,@null-environment-identifiers)))
29 (else (%null-environment version))))
30
31 (: scheme-report-environment (fixnum -> (struct environment)))
32
33 (define (scheme-report-environment version)
34 (case version
35 ((7) (environment '(scheme base)))
36 ((5) (environment '(scheme r5rs)))
37 (else (%scheme-report-environment version)))))