add a note about the disappeared properties

to the check syntax section of the manual
This commit is contained in:
Robby Findler 2011-08-14 08:15:07 -05:00
parent 05dc8a596d
commit 3bf9ae25e2

View File

@ -804,6 +804,35 @@ Check Syntax is a part of the DrRacket collection, but is implemented via the to
The bitmap in the Check Syntax button on the DrRacket frame. The bitmap in the Check Syntax button on the DrRacket frame.
} }
@subsection{Disappeared uses and bindings}
@section-index["disappeared-use" "disappeared-binding"]
Check Syntax collects the values of the
@racket[syntax-property]s named
@racket['disappeared-use] and
@racket['disappeared-binding] and uses them to add
additional arrows to the program text. These properties are
intended for use when a macro discards identifiers that,
from the programmers perspective, should be binding each other.
For example, here is a macro that discards its arguments, but
adds properties to the result syntax object so the arguments
are treated as a binding/bound pair by Check Syntax.
@racketblock[
(define-syntax (m stx)
(syntax-case stx ()
[(_ id1 id2)
(and (identifier? #'id1) (identifier? #'id2))
(syntax-property
(syntax-property
#'1
'disappeared-use (list (syntax-local-introduce #'id1)))
'disappeared-binding (list (syntax-local-introduce #'id2)))]))]
See also @racket[current-recorded-disappeared-uses].
@section{Teaching Languages} @section{Teaching Languages}
The teaching language are implemented via the tools interface and thus The teaching language are implemented via the tools interface and thus