The syntax/parse/define library provides for-syntax all of syntax/parse, as well as providing some new forms.
syntax
template)
#:track-literals
> ((fnxx)17)17
> (fn12)fn: expected identifier
at: 1
in: (fn 1 2)
7
> (fn2a#:b'c)fn2: expected identifier
at: #:b
in: (fn2 a #:b (quote c))
Added in version 7.9.0.22 of package base.
syntax
( define-syntax-parser macro-idparse-option...clause...+)
[(fn3x:idrhs:expr)[(fn3x:idy:idrhs:expr)> ((fn3xx)17)17
7
> (fn312)fn3: expected identifier
at: 1
in: (fn3 1 2)
> (fn3a#:b'c)fn3: expected expression or expected identifier
at: #:b
in: (fn3 a #:b (quote c))
syntax
template)
NOTE: This macro is deprecated; use define-syntax-parse-rule , instead.
Re-exports define-syntax-parse-rule for backward-compatibility.
Changed in version 6.12.0.3 of package base: Changed pattern head to (~var macro-idid ) from
macro-id, allowing tilde-prefixed identifiers or
identifiers containing colons to be used as macro-id
without producing a syntax error.
Changed in version 6.90.0.29: Changed to always use the #:track-literals
syntax-parse option.