new doc branch

svn: r17813
This commit is contained in:
Sam Tobin-Hochstadt 2010-01-25 14:48:11 +00:00
parent 530a3eb5e8
commit e071050f7f
2 changed files with 13 additions and 19 deletions

View File

@ -12,13 +12,14 @@
string-constants/string-constant string-constants/string-constant
;(prefix-in ce: test-engine/scheme-tests) ;(prefix-in ce: test-engine/scheme-tests)
(for-syntax (for-syntax
scheme/base syntax/parse scheme/base syntax/parse mzlib/etc
(utils tc-utils) (utils tc-utils)
(env init-envs) (env init-envs)
(except-in (rep filter-rep object-rep type-rep) make-arr) (except-in (rep filter-rep object-rep type-rep) make-arr)
(types convenience union) (types convenience union)
(only-in (types convenience) [make-arr* make-arr]) (only-in (types convenience) [make-arr* make-arr])
(typecheck tc-structs))) (typecheck tc-structs))
(for-meta 2 scheme/base syntax/parse))
(define-for-syntax (initialize-others) (define-for-syntax (initialize-others)
@ -78,11 +79,12 @@
(-> (-lst a) (-val '()) (-lst a)) (-> (-lst a) (-val '()) (-lst a))
(-> (-lst a) (-lst b) (-lst (*Un a b))))) (-> (-lst a) (-lst b) (-lst (*Un a b)))))
;; make-sequence ;; make-sequence
[(syntax-parse (local-expand #'(for ([x '()]) x) 'expression #f) [(begin-lifted
#:context #'make-sequence (syntax-parse (local-expand #'(for ([x '()]) x) 'expression #f)
#:literals (let-values quote) #:context #'make-sequence
[(let-values ([_ (m-s '(_) '())]) . _) #:literals (let-values quote)
#'m-s]) [(let-values ([_ (m-s '(_) '())]) . _)
#'m-s]))
(-poly (a) (-poly (a)
(let ([seq-vals (let ([seq-vals
(lambda ([a a]) (lambda ([a a])

View File

@ -6,7 +6,8 @@ don't depend on any other portion of the system
|# |#
(provide (all-defined-out)) (provide (all-defined-out))
(require "syntax-traversal.ss" syntax/parse (for-syntax scheme/base syntax/parse) scheme/match) (require "syntax-traversal.ss" syntax/parse (for-syntax scheme/base syntax/parse) scheme/match
(for-syntax unstable/syntax))
;; a parameter representing the original location of the syntax being currently checked ;; a parameter representing the original location of the syntax being currently checked
(define current-orig-stx (make-parameter #'here)) (define current-orig-stx (make-parameter #'here))
@ -155,17 +156,8 @@ don't depend on any other portion of the system
#:attributes (ty id) #:attributes (ty id)
(pattern [nm:identifier ty] (pattern [nm:identifier ty]
#:with id #'#'nm) #:with id #'#'nm)
(pattern [e:expr ty extra-mods ...] (pattern [e:expr ty]
#:with id #'(let ([new-ns #:with id #'e))
(let* ([ns (make-empty-namespace)])
(namespace-attach-module (current-namespace)
'scheme/base
ns)
ns)])
(parameterize ([current-namespace new-ns])
(namespace-require 'scheme/base)
(namespace-require 'extra-mods) ...
e))))
(syntax-parse stx (syntax-parse stx
[(_ e:spec ...) [(_ e:spec ...)
#'(list (list e.id e.ty) ...)])) #'(list (list e.id e.ty) ...)]))