coding the parser