Hi, > - Defining an environment that sets up active characters to emulate > traditional BNF syntax is very concise, but comes at the cost of > delimited arguments and catcode madness. You could as well use a letter-by-letter parser that doesn't need altered category codes. Take a look at the pgf module `parser`. That's not `expl3` but could give you an idea on what's possible. Best, Jonathan