[racket] syntax-parse error reporting for ...+ patterns
I'd like to rework Redex's `define-language' form to use syntax-parse,
but I'm having trouble getting the error message I want.
Here's the best I've been able to do (for a simplification of
`define-language'):
(define-syntax (define-language stx)
(syntax-parse stx
[(_ lang:id (nt:id (~describe "non-terminals" (~seq prod:expr ...+))) ...)
#'(void)]))
This produces a reasonable error message
> (define-language L (q))
define-language: expected non-terminals in: ()
but it highlights the entire form, instead of just the (q) part.
How can I get a more precise highlight?