6.3.90.900
29 Syntax
NOTE: This library is deprecated; use syntax/location or syntax/transformer, instead. The contents of this module, with the exceptions below, have been merged with syntax/location and syntax/transformer.
This library is unstable;
compatibility will not be maintained.
See Unstable: May Change Without Warning
for more information.
(require unstable/syntax) | package: unstable-lib |
procedure
→ (listof (or/c module-path? resolved-module-path? #f)) mpi : module-path-index?
Unfolds mpi using module-path-index-split, returning
a list of the relative module paths together with the terminal
resolved module path or #f for the “self” module.
Examples:
> (explode-module-path-index (car (identifier-binding #'lambda))) '("kw.rkt" "pre-base.rkt" "private/base.rkt" racket/base #f)
> (explode-module-path-index (caddr (identifier-binding #'lambda))) '(racket/base #f)
> (explode-module-path-index (car (identifier-binding #'define-values))) '('#%kernel #f)
syntax
Returns the phase level of the module in which the form occurs (and
for the instantiation of the module in which the form is
executed). For example, if a module is required directly by the
“main” module (or the top level), its phase level is 0. If a module
is required for-syntax by the “main” module (or the top level), its
phase level is 1.
Examples:
> (module helper racket (require unstable/syntax) (displayln (phase-of-enclosing-module)))
> (require 'helper) 0
> (require (for-meta 1 'helper))
The subsequent bindings were added by Vincent St-Amour <stamourv@racket-lang.org>.
procedure
(format-unique-id lctx fmt v ... [ #:source src #:props props #:cert cert]) → identifier? lctx : (or/c syntax? #f) fmt : string? v : (or/c string? symbol? identifier? keyword? char? number?) src : (or/c syntax? #f) = #f props : (or/c syntax? #f) = #f cert : (or/c syntax? #f) = #f
Like format-id, but returned identifiers are guaranteed to be unique.
procedure
(syntax-within? a b) → boolean?
a : syntax? b : syntax?
Returns true is syntax a is within syntax b in the source.
Bounds are inclusive.
The subsequent bindings were added by Eric Dobson <eric.n.dobson@gmail.com>.
procedure
stx : syntax?
Example:
> (syntax-length #'(d e f)) 1
3