Replaced hand built regex & recursive descent parser with Parsec based parser