Fixing bug in formlet macro

This commit is contained in:
Jay McCarthy 2010-06-29 15:17:13 -06:00
parent fc91321f21
commit e46dbe3db5
2 changed files with 8 additions and 7 deletions

View File

@ -246,7 +246,7 @@
(define travel-formlet (define travel-formlet
(formlet (formlet
(div (div
"Name:" ,{input-string . => . name} "Name:" ,{input-string . => . name} nbsp
(div (div
"Arrive:" ,{date-formlet . => . arrive} "Arrive:" ,{date-formlet . => . arrive}
"Depart:" ,{date-formlet . => . depart}) "Depart:" ,{date-formlet . => . depart})
@ -278,6 +278,7 @@
() ()
"Name:" "Name:"
(input ((name "input_0") (type "text"))) (input ((name "input_0") (type "text")))
nbsp
(div (div
() ()
"Arrive:" "Arrive:"

View File

@ -12,8 +12,6 @@
(syntax-parse (syntax-parse
stx stx
#:literals (unquote unquote-splicing => #%# values) #:literals (unquote unquote-splicing => #%# values)
[s:str
(syntax/loc stx empty)]
[,(formlet . => . (values name:id ...)) (syntax/loc stx (vector name ...))] [,(formlet . => . (values name:id ...)) (syntax/loc stx (vector name ...))]
[,(formlet . => . name:id) (syntax/loc stx name)] [,(formlet . => . name:id) (syntax/loc stx name)]
[,e (syntax/loc stx empty)] [,e (syntax/loc stx empty)]
@ -23,14 +21,14 @@
[(t ([k v] ...) n ...) [(t ([k v] ...) n ...)
(quasisyntax/loc stx (list #,@(map cross-of (syntax->list #'(n ...)))))] (quasisyntax/loc stx (list #,@(map cross-of (syntax->list #'(n ...)))))]
[(t n ...) [(t n ...)
(quasisyntax/loc stx (list #,@(map cross-of (syntax->list #'(n ...)))))])) (quasisyntax/loc stx (list #,@(map cross-of (syntax->list #'(n ...)))))]
[s:expr
(syntax/loc stx empty)]))
(define-for-syntax (circ-of stx) (define-for-syntax (circ-of stx)
(syntax-parse (syntax-parse
stx stx
#:literals (unquote unquote-splicing => #%# values) #:literals (unquote unquote-splicing => #%# values)
[s:str
(syntax/loc stx (text s))]
[,(formlet . => . (values name:id ...)) (syntax/loc stx (cross (pure (lambda (name ...) (vector name ...))) formlet))] [,(formlet . => . (values name:id ...)) (syntax/loc stx (cross (pure (lambda (name ...) (vector name ...))) formlet))]
[,(formlet . => . name:id) (syntax/loc stx formlet)] [,(formlet . => . name:id) (syntax/loc stx formlet)]
[,e (syntax/loc stx (xml e))] [,e (syntax/loc stx (xml e))]
@ -50,7 +48,9 @@
[(t n ...) [(t n ...)
(quasisyntax/loc stx (quasisyntax/loc stx
(tag-xexpr `t empty (tag-xexpr `t empty
#,(circ-of (syntax/loc stx (#%# n ...)))))])) #,(circ-of (syntax/loc stx (#%# n ...)))))]
[s:expr
(syntax/loc stx (xml 's))]))
(define-syntax (formlet stx) (define-syntax (formlet stx)
(syntax-case stx () (syntax-case stx ()