LR1 parser