This post covers three different ways to handle the problem: 1. "Cheating" by using •BQN to do the heavy lifting 2. Writing a conventional recursive descent parser 3. Writing an array-style parser