a simple predictive parser