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
(formlet
(div
"Name:" ,{input-string . => . name}
"Name:" ,{input-string . => . name} nbsp
(div
"Arrive:" ,{date-formlet . => . arrive}
"Depart:" ,{date-formlet . => . depart})
@ -278,6 +278,7 @@
()
"Name:"
(input ((name "input_0") (type "text")))
nbsp
(div
()
"Arrive:"

View File

@ -12,8 +12,6 @@
(syntax-parse
stx
#:literals (unquote unquote-splicing => #%# values)
[s:str
(syntax/loc stx empty)]
[,(formlet . => . (values name:id ...)) (syntax/loc stx (vector name ...))]
[,(formlet . => . name:id) (syntax/loc stx name)]
[,e (syntax/loc stx empty)]
@ -23,14 +21,14 @@
[(t ([k v] ...) n ...)
(quasisyntax/loc stx (list #,@(map cross-of (syntax->list #'(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)
(syntax-parse
stx
#: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 . => . name:id) (syntax/loc stx formlet)]
[,e (syntax/loc stx (xml e))]
@ -50,7 +48,9 @@
[(t n ...)
(quasisyntax/loc stx
(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)
(syntax-case stx ()