diff options
| author | Rose Hogenson <rhogenson@posteo.net> | 2023-05-01 07:56:42 -0700 |
|---|---|---|
| committer | Rose Hogenson <rhogenson@posteo.net> | 2023-05-01 07:56:42 -0700 |
| commit | a89d6c82e981fec7d6e4c975e083d2b9e04467ad (patch) | |
| tree | d5445ceb797473dd45ac006c337d990e5dd6f0d4 /lib/csc/gensym.scheme | |
| parent | 112ce5291da35e54c38c4ff1d7a2408a64a98e71 (diff) | |
| download | chromatopelma-a89d6c82e981fec7d6e4c975e083d2b9e04467ad.tar.zst | |
Rewrite most of the compiler.
This represents a major step back in terms of functionality, and amount
of code. The latter I think constitutes a major win. Next steps are to
reimplement syntax-rules, call/cc, and call-with-values.
Diffstat (limited to 'lib/csc/gensym.scheme')
| -rw-r--r-- | lib/csc/gensym.scheme | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/csc/gensym.scheme b/lib/csc/gensym.scheme new file mode 100644 index 0000000..8e340e4 --- /dev/null +++ b/lib/csc/gensym.scheme @@ -0,0 +1,21 @@ +(define-library (csc gensym) + (export + gen + gensym->int + gensym?) + (import (scheme base)) + (begin + + + (define-record-type <gensym> + (make-gensym id) + gensym? + (id gensym->int)) + + + (define *next-id* 0) + + + (define (gen) + (set! *next-id* (+ 1 *next-id*)) + (make-gensym *next-id*)))) |
