Tried using pure recursion before, but Pratt Parsers are much more ergonomic to write using looping instead. There should be no change in the output of the parser.