<div class="gmail_quote">On Fri, Nov 20, 2009 at 10:17 PM, Eli Barzilay <span dir="ltr">&lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Nov 20, Marco Monteiro wrote:<br>
&gt;<br>
&gt; Now I&#39;m trying a new approach. Instead of expanding the module in<br>
&gt; the reader, I export a #%module-begin that replaces its subforms by<br>
&gt; a new macro that code-walks by using local-expand and some other<br>
&gt; hacks. This does not mix read and macro expansion levels, but I have<br>
&gt; to 10 times more code.<br>
<br>
</div>I didn&#39;t understand what you&#39;re trying to do in general? ¬†Why do you<br>
need any kind of a code walker to begin with?<br>
<div><div></div><br></div></blockquote></div><br>To expand the code. For example, I want to write<br><br>---<br>#lang masm/sines<br><br>(define (f) (lambda () 42))<br><br>(f)<br>---<br><br>and I want it evaluated as if I wrote this:<br>
<br>---<br>#lang my-module<br><br>(define-values (f) (#%app void))<br><br>(#%app void)<br><br>(store-code (list &#39;(define-values (f) (lambda () (#%datum 42)) &#39;(#%app f))<br>---<br><br>This is a simplification, because I also want to store some syntax<br>
information, line number, etc. The definitions must stay in place<br>because the module may have a provide form that provides f.<br>The expressions must not be executed, because some of the<br>variables (f in this case) will not have the expected value<br>
(a procedure in this case).<br><br>Actually, the idea was to have the evaluation of a module to build<br>its Scheme AST, that can later be transformed to a JavaScript AST.<br>There may be a much saner way to do this. And this may end up<br>
not working. I&#39;m just experimenting.<br><br>Marco<br><br>