Basically, an expository paper about implementing a DSL—specifically, a regex automata DSL—using Racket (then DrScheme)‘s hygienic macro system. The benefit of doing this is that we can abstract over implementation. The paper is a pedagogic example of the use of macros!
Basically, Racket becomes a compiler from a language for automata to Racket source code.
In racket, syntax-rules
is basically macro pattern-matching. Its first argument is a set of symbols to treat literally. We then have a bunch of pattern matching things, and what to generate based on it.