From e31483a76e4a3a09668e1d07cb74f050bd63362a Mon Sep 17 00:00:00 2001 From: Dane Johnson Date: Thu, 7 Aug 2025 16:30:47 -0500 Subject: [PATCH] WIP scheme compiler --- scmvm/language/scheme.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 scmvm/language/scheme.scm diff --git a/scmvm/language/scheme.scm b/scmvm/language/scheme.scm new file mode 100644 index 0000000..2173e72 --- /dev/null +++ b/scmvm/language/scheme.scm @@ -0,0 +1,22 @@ +(define-module (scmvm language scheme) + #:use-module (scmvm assembler) + #:use-module (ice-9 match)) + +;; Scheme compiler +;; Scheme subset we're targeting +;; ::= ... +;; ::= | +;; ::= (define ) +;; | (define ( ...) ...) +;; ::= (lambda ( ...) ...) +;; | (if ) +;; | ( ...) +;; | (let (( ) ...) ...) +;; | (begin ...) +;; | | | | #t | #f + + +;; A-Normalization +;; All arguments to lambdas are atomic +;; ::= ... +;;