I am implementing my own POSIX Shell so I wrote this not to get lost. I posted a much more inferior iteration of this weeks ago —that one was truly subpar. This one is much better.

Bonus: ebnf.vim.

Thanks.