diff --git a/collects/scribblings/reference/syntax-model.scrbl b/collects/scribblings/reference/syntax-model.scrbl index 7ad009c363..1f44537925 100644 --- a/collects/scribblings/reference/syntax-model.scrbl +++ b/collects/scribblings/reference/syntax-model.scrbl @@ -235,10 +235,10 @@ More specifically, the typesetting of identifiers in the above grammar is significant. For example, the second case for @scheme[_expr] is a @tech{syntax-object} list whose first element is an @tech{identifier}, where the @tech{identifier}'s @tech{lexical information} specifies a -binding to the @scheme[define-values] of the +binding to the @scheme[#%plain-lambda] of the @schememodname[scheme/base] language (i.e., the @tech{identifier} is @scheme[free-identifier=?] to one whose binding is -@scheme[define-values]). In all cases, identifiers above typeset as +@scheme[#%plain-lambda]). In all cases, identifiers above typeset as syntactic-form names refer to the bindings defined in @secref["syntax"]. diff --git a/collects/syntax/scribblings/free-vars.scrbl b/collects/syntax/scribblings/free-vars.scrbl index fec6d7db0d..e01e112cec 100644 --- a/collects/syntax/scribblings/free-vars.scrbl +++ b/collects/syntax/scribblings/free-vars.scrbl @@ -10,4 +10,5 @@ Returns a list of free @scheme[lambda]- and @scheme[let]-bound identifiers in @scheme[expr-stx]. The expression must be fully -expanded (@secref[#:doc refman "fully-expanded"]).} +expanded (see @secref[#:doc refman "fully-expanded"] and +@scheme[expand]).} diff --git a/collects/tests/mzscheme/stx.ss b/collects/tests/mzscheme/stx.ss index b47aa35337..2c274caef9 100644 --- a/collects/tests/mzscheme/stx.ss +++ b/collects/tests/mzscheme/stx.ss @@ -106,6 +106,30 @@ syntax->datum (syntax-case '(((1) (2 3)) ((6)) ((8 9 0) (1 2 3))) () [(((a ...) ...) ...) #'((a ...) ... ...)])) +(test (syntax-case #'((([n 1] [m 2]) ([p 10] [q 20])) (([nn -1] [mm -2]) ([pp -10] [qq -20]))) () + [((([x y] ...) ...) ...) + (syntax->datum #'(ell ((ull (+ x ...) + ((- x ... y ...) ...)) + ...) + ...))]) + 'fancy-ellipses + '(ell ((ull (+ n m) ((- n m 1 2) (- p q 10 20))) + (ull (+ p q) ((- nn mm -1 -2) (- pp qq -10 -20)))) + ((ull (+ nn mm) ((- n m 1 2) (- p q 10 20))) + (ull (+ pp qq) ((- nn mm -1 -2) (- pp qq -10 -20)))))) + +(test (syntax-case #'((([n 1] [m 2]) ([p 10] [q 20])) (([nn -1] [mm -2]) ([pp -10] [qq -20]))) () + [((([x y] ...) ...) ...) + (syntax->datum #'(ell ((ull (+ x ...) + ((- x ...) ...)) + ...) + ...))]) + 'fancy-ellipses + '(ell ((ull (+ n m) ((- n m) (- p q))) + (ull (+ p q) ((- nn mm) (- pp qq)))) + ((ull (+ nn mm) ((- n m) (- p q))) + (ull (+ pp qq) ((- nn mm) (- pp qq)))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Test basic expansion and property propagation ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;