partial implementation of LL1 Parser