Simple LL(1) parsing