Reverting unfinished code
svn: r11282
This commit is contained in:
parent
d4b04e3499
commit
d101ba38fe
|
@ -1,7 +1,6 @@
|
|||
#lang scheme
|
||||
(require web-server/servlet
|
||||
web-server/servlet-env
|
||||
(for-syntax syntax/kerncase))
|
||||
web-server/servlet-env)
|
||||
|
||||
(provide
|
||||
(all-from-out web-server/servlet)
|
||||
|
@ -23,68 +22,15 @@
|
|||
(define (no-web-browser)
|
||||
(set! launch-browser? false))
|
||||
|
||||
|
||||
|
||||
|
||||
(define-syntax (web-module-begin stx)
|
||||
|
||||
;; check-for-start: syntax (listof syntax) -> (listof syntax)
|
||||
;; Checks to see that the user has defined a request handler named "start".
|
||||
;; Returns a list of the expanded syntax.
|
||||
(define (check-for-start start-stx body-stxs)
|
||||
(define (id-for-start? ids)
|
||||
(ormap (lambda (id)
|
||||
(and (identifier? id)
|
||||
(free-identifier=? id start-stx)))
|
||||
ids))
|
||||
|
||||
;; FIXME: this is not quite ready for prime time yet.
|
||||
(let ([expanded-bodies
|
||||
(let loop ([defns body-stxs])
|
||||
(apply append
|
||||
(map (lambda (defn)
|
||||
(let ([d (local-expand
|
||||
defn
|
||||
'module
|
||||
(kernel-form-identifier-list))])
|
||||
(syntax-case d (define-values define-syntaxes begin)
|
||||
[(begin defn ...)
|
||||
(loop (syntax->list (syntax (defn ...))))]
|
||||
[(define-values (id ...) body)
|
||||
(list d)]
|
||||
[(define-values . rest)
|
||||
(list d)]
|
||||
[(define-syntaxes (id ...) body)
|
||||
(list d)]
|
||||
[(define-syntaxes . rest)
|
||||
(list d)]
|
||||
[_else
|
||||
(list d)])))
|
||||
defns)))])
|
||||
(let ([ids (apply append (map (lambda (b)
|
||||
(let ([result
|
||||
(syntax-case b ()
|
||||
[(define-values (id ...) . __)
|
||||
(syntax->list #'(id ...))]
|
||||
[_ '()])])
|
||||
result))
|
||||
expanded-bodies))])
|
||||
(unless (id-for-start? ids)
|
||||
(raise-syntax-error #f "required \"start\" request handler needs to be defined" stx))
|
||||
(values expanded-bodies))))
|
||||
|
||||
(define-syntax (web-module-begin stx)
|
||||
(syntax-case stx ()
|
||||
[(_ body ...)
|
||||
(let ([start-stx (datum->syntax stx 'start)])
|
||||
(with-syntax ([start start-stx]
|
||||
#;[(expanded-body ...)
|
||||
(check-for-start start-stx (syntax->list #'(body ...)))])
|
||||
#`(#%module-begin
|
||||
body ...
|
||||
(provide/contract (start (request? . -> . response?)))
|
||||
(if extra-files-path
|
||||
(serve/servlet start
|
||||
#:extra-files-path extra-files-path
|
||||
#:launch-browser? launch-browser?)
|
||||
(serve/servlet start
|
||||
#:launch-browser? launch-browser?)))))]))
|
||||
#'(#%module-begin
|
||||
body ...
|
||||
(provide/contract (start (request? . -> . response?)))
|
||||
(if extra-files-path
|
||||
(serve/servlet start
|
||||
#:extra-files-path extra-files-path
|
||||
#:launch-browser? launch-browser?)
|
||||
(serve/servlet start
|
||||
#:launch-browser? launch-browser?)))]))
|
Loading…
Reference in New Issue
Block a user