I'm converting this PEG parser from R5RS scheme to CL:
http://dev.lshift.net/tonyg/json-scheme/
I'm having trouble (I think) deciphering how the following macro is expanded (esp. the 2nd line "(#t alternative) ...")
...
((_ #f "alt" nt body ((/ alternative ...) rest ...)) (packrat-check (packrat-parser #f "alts" nt (#t alternative) ...) (lambda (result) (packrat-parser #f "alt" nt body (rest ...)))))
...
Let's say the input is something simple, such as "...((x <- #\y (/ #\a #\b)) x) ... " (i.e. parse a 'y' followed by an 'a' or a 'b', assign 'y' to the variable x, then return that variable x).
Does someone know how to "read" this macro?
Or, can someone tell me the exact steps in getting any working implementation of R5RS scheme up on linux (mint/ubuntu/debian) or Win7 and display the expanded macro? (I seem to hit confusing roadblocks with racket, chicken, cpscm+scm2lisp).
Thanks pt