Cの規格に沿った構文解析器でも作ってみたら?
while(代入式)が不適切だろうがなんだろうが正しいんだから。