A pure python LR(1)/LALR(1) parser generator