a parser write by cpp