tring to design parer combinator