Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetTokenAsync()

async Task< Token > System.Xml.DtdParser.GetTokenAsync ( bool needWhiteSpace)
inlineprivate

Definition at line 4133 of file DtdParser.cs.

4134 {
4135 _whitespaceSeen = false;
4136 while (true)
4137 {
4138 switch (_chars[_curPos])
4139 {
4140 case '\0':
4141 if (_curPos != _charsUsed)
4142 {
4144 }
4145 break;
4146 case '\n':
4147 _whitespaceSeen = true;
4148 _curPos++;
4150 continue;
4151 case '\r':
4152 _whitespaceSeen = true;
4153 if (_chars[_curPos + 1] == '\n')
4154 {
4155 if (Normalize)
4156 {
4159 }
4160 _curPos += 2;
4161 }
4162 else
4163 {
4164 if (_curPos + 1 >= _charsUsed && !_readerAdapter.IsEof)
4165 {
4166 break;
4167 }
4168 _chars[_curPos] = '\n';
4169 _curPos++;
4170 }
4172 continue;
4173 case '\t':
4174 case ' ':
4175 _whitespaceSeen = true;
4176 _curPos++;
4177 continue;
4178 case '%':
4179 if (_charsUsed - _curPos < 2)
4180 {
4181 break;
4182 }
4183 if (!XmlCharType.IsWhiteSpace(_chars[_curPos + 1]))
4184 {
4186 {
4187 _curPos++;
4188 }
4189 else
4190 {
4192 }
4193 continue;
4194 }
4195 goto default;
4196 default:
4197 if (needWhiteSpace && !_whitespaceSeen && _scanningFunction != ScanningFunction.ParamEntitySpace)
4198 {
4200 }
4202 while (true)
4203 {
4204 switch (_scanningFunction)
4205 {
4206 case ScanningFunction.Name:
4208 case ScanningFunction.QName:
4210 case ScanningFunction.Nmtoken:
4212 case ScanningFunction.SubsetContent:
4214 case ScanningFunction.Doctype1:
4215 return await ScanDoctype1Async().ConfigureAwait(continueOnCapturedContext: false);
4216 case ScanningFunction.Doctype2:
4217 return ScanDoctype2();
4218 case ScanningFunction.Element1:
4219 return await ScanElement1Async().ConfigureAwait(continueOnCapturedContext: false);
4220 case ScanningFunction.Element2:
4221 return await ScanElement2Async().ConfigureAwait(continueOnCapturedContext: false);
4222 case ScanningFunction.Element3:
4223 return await ScanElement3Async().ConfigureAwait(continueOnCapturedContext: false);
4224 case ScanningFunction.Element4:
4225 return ScanElement4();
4226 case ScanningFunction.Element5:
4227 return ScanElement5();
4228 case ScanningFunction.Element6:
4229 return ScanElement6();
4230 case ScanningFunction.Element7:
4231 return ScanElement7();
4232 case ScanningFunction.Attlist1:
4233 return await ScanAttlist1Async().ConfigureAwait(continueOnCapturedContext: false);
4234 case ScanningFunction.Attlist2:
4235 return await ScanAttlist2Async().ConfigureAwait(continueOnCapturedContext: false);
4236 case ScanningFunction.Attlist3:
4237 return ScanAttlist3();
4238 case ScanningFunction.Attlist4:
4239 return ScanAttlist4();
4240 case ScanningFunction.Attlist5:
4241 return ScanAttlist5();
4242 case ScanningFunction.Attlist6:
4243 return await ScanAttlist6Async().ConfigureAwait(continueOnCapturedContext: false);
4244 case ScanningFunction.Attlist7:
4245 return ScanAttlist7();
4246 case ScanningFunction.Notation1:
4247 return await ScanNotation1Async().ConfigureAwait(continueOnCapturedContext: false);
4248 case ScanningFunction.SystemId:
4249 return await ScanSystemIdAsync().ConfigureAwait(continueOnCapturedContext: false);
4250 case ScanningFunction.PublicId1:
4251 return await ScanPublicId1Async().ConfigureAwait(continueOnCapturedContext: false);
4252 case ScanningFunction.PublicId2:
4253 return await ScanPublicId2Async().ConfigureAwait(continueOnCapturedContext: false);
4254 case ScanningFunction.Entity1:
4255 return await ScanEntity1Async().ConfigureAwait(continueOnCapturedContext: false);
4256 case ScanningFunction.Entity2:
4257 return await ScanEntity2Async().ConfigureAwait(continueOnCapturedContext: false);
4258 case ScanningFunction.Entity3:
4259 return await ScanEntity3Async().ConfigureAwait(continueOnCapturedContext: false);
4260 case ScanningFunction.CondSection1:
4262 case ScanningFunction.CondSection2:
4263 return ScanCondSection2();
4264 case ScanningFunction.CondSection3:
4266 case ScanningFunction.ClosingTag:
4267 return ScanClosingTag();
4268 case ScanningFunction.ParamEntitySpace:
4269 break;
4270 default:
4271 return Token.None;
4272 }
4273 _whitespaceSeen = true;
4275 }
4276 }
4277 bool isEof = _readerAdapter.IsEof;
4278 bool flag = isEof;
4279 if (!flag)
4280 {
4281 flag = await ReadDataAsync().ConfigureAwait(continueOnCapturedContext: false) == 0;
4282 }
4283 if (flag && !HandleEntityEnd(inLiteral: false))
4284 {
4285 if (_scanningFunction == ScanningFunction.SubsetContent)
4286 {
4287 break;
4288 }
4290 }
4291 }
4292 return Token.Eof;
4293 }
static string Xml_IncompleteDtdContent
Definition SR.cs:246
static string Xml_ExpectingWhiteSpace
Definition SR.cs:66
Definition SR.cs:7
async Task< Token > ScanCondSection3Async()
async Task< Token > ScanAttlist1Async()
async Task< Token > ScanEntity2Async()
async Task< Token > ScanEntity3Async()
async Task< int > ReadDataAsync()
async Task< Token > ScanElement2Async()
async Task< Token > ScanSystemIdAsync()
async Task< Token > ScanElement1Async()
async Task< Token > ScanElement3Async()
async Task< Token > ScanQNameExpectedAsync()
void Throw(int curPos, string res)
async Task< Token > ScanNotation1Async()
async Task< Token > ScanCondSection1Async()
async Task< Token > ScanPublicId1Async()
bool HandleEntityEnd(bool inLiteral)
async Task< Token > ScanDoctype1Async()
ScanningFunction _savedScanningFunction
Definition DtdParser.cs:170
async Task< Token > ScanAttlist2Async()
async Task< Token > ScanAttlist6Async()
IDtdParserAdapter _readerAdapter
Definition DtdParser.cs:140
string ParseUnexpectedToken(int startPos)
async Task< Token > ScanEntity1Async()
Task< bool > HandleEntityReferenceAsync(bool paramEntity, bool inLiteral, bool inAttribute)
async Task< Token > ScanNameExpectedAsync()
async Task< Token > ScanPublicId2Async()
ScanningFunction _scanningFunction
Definition DtdParser.cs:166
async Task< Token > ScanNmtokenExpectedAsync()
void ThrowInvalidChar(int pos, string data, int invCharPos)
async Task< Token > ScanSubsetContentAsync()

References System.Xml.DtdParser._chars, System.Xml.DtdParser._charsUsed, System.Xml.DtdParser._curPos, System.Xml.DtdParser._readerAdapter, System.Xml.DtdParser._savedScanningFunction, System.Xml.DtdParser._scanningFunction, System.Xml.DtdParser._tokenStartPos, System.Xml.DtdParser._whitespaceSeen, System.Xml.IDtdParserAdapter.CurrentPosition, System.Xml.Dictionary, System.Xml.DtdParser.HandleEntityEnd(), System.Xml.DtdParser.HandleEntityReferenceAsync(), System.Xml.DtdParser.IgnoreEntityReferences, System.Xml.IDtdParserAdapter.IsEof, System.Xml.XmlCharType.IsWhiteSpace(), System.Xml.DtdParser.Normalize, System.Xml.IDtdParserAdapter.OnNewLine(), System.Xml.DtdParser.ParseUnexpectedToken(), System.Xml.DtdParser.ReadDataAsync(), System.Xml.DtdParser.SaveParsingBuffer(), System.Xml.DtdParser.ScanAttlist1Async(), System.Xml.DtdParser.ScanAttlist2Async(), System.Xml.DtdParser.ScanAttlist3(), System.Xml.DtdParser.ScanAttlist4(), System.Xml.DtdParser.ScanAttlist5(), System.Xml.DtdParser.ScanAttlist6Async(), System.Xml.DtdParser.ScanAttlist7(), System.Xml.DtdParser.ScanClosingTag(), System.Xml.DtdParser.ScanCondSection1Async(), System.Xml.DtdParser.ScanCondSection2(), System.Xml.DtdParser.ScanCondSection3Async(), System.Xml.DtdParser.ScanDoctype1Async(), System.Xml.DtdParser.ScanDoctype2(), System.Xml.DtdParser.ScanElement1Async(), System.Xml.DtdParser.ScanElement2Async(), System.Xml.DtdParser.ScanElement3Async(), System.Xml.DtdParser.ScanElement4(), System.Xml.DtdParser.ScanElement5(), System.Xml.DtdParser.ScanElement6(), System.Xml.DtdParser.ScanElement7(), System.Xml.DtdParser.ScanEntity1Async(), System.Xml.DtdParser.ScanEntity2Async(), System.Xml.DtdParser.ScanEntity3Async(), System.Xml.DtdParser.ScanNameExpectedAsync(), System.Xml.DtdParser.ScanNmtokenExpectedAsync(), System.Xml.DtdParser.ScanNotation1Async(), System.Xml.DtdParser.ScanPublicId1Async(), System.Xml.DtdParser.ScanPublicId2Async(), System.Xml.DtdParser.ScanQNameExpectedAsync(), System.Xml.DtdParser.ScanSubsetContentAsync(), System.Xml.DtdParser.ScanSystemIdAsync(), System.Xml.DtdParser.Throw(), System.Xml.DtdParser.ThrowInvalidChar(), System.SR.Xml_ExpectingWhiteSpace, and System.SR.Xml_IncompleteDtdContent.

Referenced by System.Xml.DtdParser.ParseAttlistDeclAsync(), System.Xml.DtdParser.ParseAttlistDefaultAsync(), System.Xml.DtdParser.ParseAttlistTypeAsync(), System.Xml.DtdParser.ParseCondSectionAsync(), System.Xml.DtdParser.ParseElementDeclAsync(), System.Xml.DtdParser.ParseElementMixedContentAsync(), System.Xml.DtdParser.ParseElementOnlyContentAsync(), System.Xml.DtdParser.ParseEntityDeclAsync(), System.Xml.DtdParser.ParseExternalIdAsync(), System.Xml.DtdParser.ParseHowManyAsync(), System.Xml.DtdParser.ParseInDocumentDtdAsync(), System.Xml.DtdParser.ParseNotationDeclAsync(), and System.Xml.DtdParser.ParseSubsetAsync().