I'm having macro troubles with a DSL I'm writing. I have a macro that looks something like this:
(define-syntax (query stx) (let ([lines (cdr (syntax->datum stx))]) (define lines-syntax-tree (parse-to-tree lines)) (datum->syntax stx lines-syntax-tree))) So something like (query ...linear series of s-expressions containing non-nested code...) is transformed into (...hierarchical code in tree form...). But what I really want is (run-query '(...code in tree form...)) The code that I'd like quoted and passed to run-query has a number of macros I wrote that also need expanding. My problem is that all of my attempts to write a macro that results in run-query being passed a list of code to execute blocks the expansion of the passed code. Basically, I want to expand 'lines-syntax-tree' before I quote it and generate an expansion including run-query. For instance, this obviously doesn't work: (define-syntax (query stx) (let ([lines (cdr (syntax->datum stx))]) (define lines-syntax-tree (parse-to-tree lines)) (define q (list 'run-query (quote lines-syntax-tree))) (datum->syntax stx q))) I'm sure I'm missing something silly, but I'd appreciate any help. I should probably read https://docs.racket-lang.org/reference/syntax-model.html, but it is going to take me some time to grok that. Thanks, Jonathan -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.