draft of a LL parser