chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] hart and syntax-case won't play nice. :(


From: Felix Winkelmann
Subject: Re: [Chicken-users] hart and syntax-case won't play nice. :(
Date: Sat, 15 Mar 2008 17:38:51 +0100 (CET)

From: Robin Lee Powell <address@hidden>
Subject: [Chicken-users] hart and syntax-case won't play nice. :(
Date: Sat, 15 Mar 2008 02:02:50 -0700

> 
> 
> $ csi -e "(use hart) (hart (html))"
> <html/>
> 
> $ csi -e "(use syntax-case) (use hart) (hart (html))"
> Error: invalid syntax: hart
> 
>         Call history:
> 
>         <eval>          (list (quote #(syntax-object (k . args) ((top) 
> #(ribcage #(_ name transformer) #((top) (top) (top)) #(...
>         <eval>          (list (quote #(syntax-object datum->syntax-object 
> ((top) #(ribcage #(_ name transformer) #((top) (top...
>         <eval>          (cons (quote #(syntax-object apply ((top) #(ribcage 
> #(_ name transformer) #((top) (top) (top)) #("i"...
>         <eval>          (cons transformer.479 (quote #(syntax-object 
> ((syntax-object->datum (syntax args))) ((top) #(ribcage......
>         <eval>          ((lambda (tmp.1322) ((lambda (tmp.1323) (if tmp.1323 
> (##sys#apply (lambda (k.1324 args.1325) (datum-......
>         <eval>          ((lambda (tmp.1323) (if tmp.1323 (##sys#apply (lambda 
> (k.1324 args.1325) (datum->syntax-object k.132......
>         <eval>          ($syntax-dispatch tmp.1322 (quote (any . any)))
>         <eval>          (##syncase#syntax-error tmp.1322)       <--
> 
> $ csi -e "(use hart) (use syntax-case) (hart (html))"
> Error: unbound variable: html
> 
>         Call history:
> 
>         <syntax>                (##sys#void)
>         <eval>          (##sys#void)
>         <syntax>                (##core#undefined)
>         <syntax>                (##core#undefined)
>         <syntax>                (hart (html))
>         <syntax>                (html)
>         <eval>          (hart (html))
>         <eval>          (html)  <--
> 
> All I want out of syntax-case is syntax-rules; can I get that
> without doing whatever is breaking hart?

csi's "-e" is implemented by wrapping the forms into
a "(begin ...)". Due to the way toplevel expressions
are macroexpanded (and details that you don't want to
know about), "(use syntax-case)" will override the
main macro-expansion mechanism starting with the next
toplevel expression. The begin-form is one toplevel
expression. What could possibly work is use another "-e"
option to run the "(hart ...)" expression.


cheers,
felix




reply via email to

[Prev in Thread] Current Thread [Next in Thread]