From 41dd0adb270e62c91cd8945020a95ff17442c660 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Sun, 12 Apr 2026 16:51:24 +0200 Subject: [PATCH] spike for scheme->javascript syntax transformation (subset) more debug info in process-file --- private/js-transform.rkt | 69 ++++++++++++++++++++++++++++++++++++++++ racket-webview.rkt | 1 + 2 files changed, 70 insertions(+) create mode 100644 private/js-transform.rkt diff --git a/private/js-transform.rkt b/private/js-transform.rkt new file mode 100644 index 0000000..dd8fa6b --- /dev/null +++ b/private/js-transform.rkt @@ -0,0 +1,69 @@ +#lang racket/base + +(define-syntax js-let + (syntax-rules () + ((_ (a b)) + (string-append "let " (js1 a) " = " (js1 b) ";\n") + ) + ) + ) + +(define-syntax js1 + (syntax-rules (if let* *) + ((_ (if cond body1 body2)) + (string-append "if (" (js1 cond) ") then {\n" + (js1 body1) "; }\n" + "else {\n" + (js1 body2) + "; }\n" + ) + ) + ((_ (let (a ...))) + (string-append + (js-let a) + ...) + ) + ((_ a) + (format "~a" 'a)) + ) + ) + +#| + ((_ (if cond + body1 + body2)) + (string-append "if (" + (js1 cond) ") then {\n" + (js1 body1) " }\n" + "else { \n" + (js1 body2) + " }\n" + ) + ) + ((_ (let ((a b) ...) + body)) + (string-append "let " (js1 a) + " = " (js1 b) ";\n") + ... + ) + ((_ (* a b ...)) + (string-append (js1 a) "*" (js1 b) ...)) + ((_ a) + (format "~a" 'a)) + ) + ) +|# + +(define-syntax js + (syntax-rules () + ((_ js-statement ...) + (string-append + "{ \n" + (js1 js-statement) + ... + "}\n" + ) + ) + ) + ) + \ No newline at end of file diff --git a/racket-webview.rkt b/racket-webview.rkt index cc377e5..6410891 100644 --- a/racket-webview.rkt +++ b/racket-webview.rkt @@ -196,6 +196,7 @@ (display html* out)))) (define (process-file context ext path out) + (dbg-webview "process-file: ext = ~a, path = ~a" ext path) (let ((content (file->bytes path))) (dbg-webview "path = ~a, number of bytes read: ~a" path (bytes-length content)) (display content out)))