extensible-parser-specifications (racket): Unstable, and has seemingly unsolvable problems with module boundaries. This package works like seq-no-order by Alexander Knauth, but adds reusable (within the same module) clauses and global constraints like "a must occur before b" or "a mutually exclusive with c".
Keywords: experimental|syntax|syntax-parse|racket-library