[racket] syntax-parse error reporting for ...+ patterns

From: Casey Klein (clklein at eecs.northwestern.edu)
Date: Mon Nov 1 16:23:33 EDT 2010

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?


Posted on the users mailing list.