parse while