pipe parser