Is there an equivalent to macroexpand or macroexpand-1 for parenscript macros? Doing (ps (some macro expression))
will display the generated javascript, but there are times when it would be nice to see the parenscript just before it gets converted to javascript.
In parenscript's compiler.lisp
file, there are the functions
ps-macroexpand-1
and ps-macroexpand
. Unfortunately, they are not exported by the parenscript package. You can call them anyway using a double colon.
For example,
(defpsmacro aif (test true &rest false)
`(let ((it ,test))
(if it ,true ,@false)))
(ps::ps-macroexpand-1 '(aif 3 it))
;;=>
(LET ((IT 3))
(IF IT
IT))
T
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With