add deterministic LALR(1) parser engine