There's the JavaCC, which takes in a grammar like you have and generates Java source-code for a compiler. I believe the algorithm they use is a Recursive Decent Parser, but because of their...