From 974a8abd2df2a2dd657f2bcaf7f66dbef0abb416 Mon Sep 17 00:00:00 2001 From: Jack Firth Date: Tue, 8 Jul 2025 16:35:14 -0700 Subject: [PATCH] Rework macro expander integration --- info.rkt | 1 + private/expander.rkt | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 private/expander.rkt diff --git a/info.rkt b/info.rkt index b09b64a4..78c5ea20 100644 --- a/info.rkt +++ b/info.rkt @@ -19,6 +19,7 @@ "fancy-app" "fmt" "guard" + "macro-debugger-text-lib" "rackunit-lib" "rebellion")) diff --git a/private/expander.rkt b/private/expander.rkt new file mode 100644 index 00000000..30bf5106 --- /dev/null +++ b/private/expander.rkt @@ -0,0 +1,21 @@ +#lang racket/base + + +(require macro-debugger/model/debug + racket/pretty + rebellion/type/record) + + +(define-record-type expansion-history (original expanded steps)) +(define-record-type expansion-step (input output local-expansions)) + + +(define (expand-with-history stx) + (define derivation-tree (trace stx expand)) + (expansion-history #:original (node-z1 derivation-tree) + #:expanded (node-z2 derivation-tree) + #:steps (vector derivation-tree))) + + +(module+ main + (pretty-print (expand-with-history #'(module foo racket (lambda (x) (add1 x))))))