<div dir="ltr">I have a macro that modifies define to perform some additional processing.<div><br></div><div><div>(define-syntax (define/test stx)</div><div>  (syntax-case stx ()</div><div><span class="" style="white-space:pre">    </span>[(_ (id arg ...) body ... #:test test-expr)</div>
<div><span class="" style="white-space:pre">    </span> #'(define (id arg ...) body ... test-expr)]))</div><div><br></div><div>(define/test (my-fn a b c)</div><div>  (print a)</div><div>  (print b)</div><div>  (print c)</div>
<div>  #:test</div><div>  (print 'test))</div><div><br></div><div>This works, but only if test-expr is <i>one</i> expression or wrapped in a begin or something.  I'd like the test-expr to be the same as the define body.  I wish I could write:</div>
<div><div><br></div><div>(define-syntax (define/test stx)</div><div>  (syntax-case stx ()</div><div><span class="" style="white-space:pre">     </span>[(_ (id arg ...) body ... #:test test-expr ...)</div><div><span class="" style="white-space:pre">    </span> #'(define (id arg ...) body ... test-expr ...)]))</div>
</div><div><br></div><div>But I get a "misplaced ellipsis in pattern" error.</div><div><br></div><div>I could change the pattern to something like (body ...) #:test (test-body ...), but now the syntax of the macro has changed to include the extra parenthesis.</div>
<div><br></div><div>Am I making a simple mistake?  Or am I resigned to manually parsing out the single test-expr into multiple forms in the template?</div><div><br></div><div>Thanks.</div>-- <br>Talk to you soon,<br><br>Scott Klarenbach<br>
<br>PointyHat Software Corp.<br><a href="http://www.pointyhat.ca" target="_blank">www.pointyhat.ca</a><br>p 604-568-4280<br>e <a href="mailto:scott@pointyhat.ca" target="_blank">scott@pointyhat.ca</a><br><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">200-1575 W. Georgia</span><br>
Vancouver, BC <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">V6G2V3</span><br><br>_______________________________________<br>To iterate is human; to recur, divine
</div></div>