Implement a more expansible parser

(0) -1 +1 tip

mercurial