Simple LL(1) Parser implementation