conditonal parser