Unicodeで書いても、 
> if S[i] in LeadBytes then Inc(i);
の1行が要らなくなるだけで、本質は変わらないだろ…。
パーサでも何でもやっぱり先頭から処理していく必要があるし。