public override void Read(Tokeniser t, CharacterReader r) { char c = r.Consume(); switch (c) { case '\t': case '\n': case '\f': case ' ': t.Transition(BeforeDoctypeName); break; case eof: t.EofError(this); t.CreateDoctypePending(); t.doctypePending.forceQuirks = true; t.EmitDoctypePending(); t.Transition(Data); break; default: t.Error(this); t.Transition(BeforeDoctypeName); break; } }
public override void Read(Tokeniser t, CharacterReader r) { if (r.MatchesLetter()) { t.CreateDoctypePending(); t.Transition(DoctypeName); return; } char c = r.Consume(); switch (c) { case '\t': case '\n': case '\f': case ' ': break; // ignore whitespace case nullChar: t.Error(this); t.doctypePending.name.Append(replacementChar); t.Transition(DoctypeName); break; case eof: t.EofError(this); t.CreateDoctypePending(); t.doctypePending.forceQuirks = true; t.EmitDoctypePending(); t.Transition(Data); break; default: t.CreateDoctypePending(); t.doctypePending.name.Append(c); t.Transition(DoctypeName); break; } }