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

◆ ParseEndElementAsync_CheckEndTag()

Task System.Xml.XmlTextReaderImpl.ParseEndElementAsync_CheckEndTag ( int nameLen,
NodeData startTagNode,
LineInfo endTagLineInfo )
inlineprivate

Definition at line 10350 of file XmlTextReaderImpl.cs.

10351 {
10352 int num;
10353 while (true)
10354 {
10355 num = _ps.charPos + nameLen;
10356 char[] chars = _ps.chars;
10357 if (num == _ps.charsUsed)
10358 {
10359 _parseEndElement_NextFunc = ParseEndElementParseFunction.ReadData;
10360 return Task.CompletedTask;
10361 }
10362 bool flag = false;
10363 if (XmlCharType.IsNCNameSingleChar(chars[num]) || chars[num] == ':')
10364 {
10365 flag = true;
10366 }
10367 if (flag)
10368 {
10370 }
10371 if (chars[num] != '>')
10372 {
10373 char c;
10374 while (XmlCharType.IsWhiteSpace(c = chars[num]))
10375 {
10376 num++;
10377 switch (c)
10378 {
10379 case '\n':
10380 OnNewLine(num);
10381 break;
10382 case '\r':
10383 if (chars[num] == '\n')
10384 {
10385 num++;
10386 }
10387 else if (num == _ps.charsUsed && !_ps.isEof)
10388 {
10389 break;
10390 }
10391 OnNewLine(num);
10392 break;
10393 }
10394 }
10395 }
10396 if (chars[num] == '>')
10397 {
10398 break;
10399 }
10400 if (num == _ps.charsUsed)
10401 {
10402 _parseEndElement_NextFunc = ParseEndElementParseFunction.ReadData;
10403 return Task.CompletedTask;
10404 }
10405 ThrowUnexpectedToken(num, ">");
10406 }
10407 _index--;
10410 startTagNode.type = XmlNodeType.EndElement;
10411 _ps.charPos = num + 1;
10412 _nextParsingFunction = ((_index > 0) ? _parsingFunction : ParsingFunction.DocumentContent);
10413 _parsingFunction = ParsingFunction.PopElementContext;
10414 _parseEndElement_NextFunc = ParseEndElementParseFunction.Done;
10415 return Task.CompletedTask;
10416 }
static Task CompletedTask
Definition Task.cs:1120
ParseEndElementParseFunction _parseEndElement_NextFunc
async Task ThrowTagMismatchAsync(NodeData startTag)
void ThrowUnexpectedToken(int pos, string expectedToken)

References System.Xml.XmlTextReaderImpl._curNode, System.Xml.XmlTextReaderImpl._index, System.Xml.XmlTextReaderImpl._nextParsingFunction, System.Xml.XmlTextReaderImpl._nodes, System.Xml.XmlTextReaderImpl._parseEndElement_NextFunc, System.Xml.XmlTextReaderImpl._parsingFunction, System.Xml.XmlTextReaderImpl._ps, System.chars, System.Xml.XmlTextReaderImpl.ParsingState.chars, System.Xml.XmlTextReaderImpl.ParsingState.charsUsed, System.Threading.Tasks.Task< TResult >.CompletedTask, System.Xml.Dictionary, System.Xml.XmlTextReaderImpl.ParsingState.isEof, System.Xml.XmlCharType.IsNCNameSingleChar(), System.Xml.XmlCharType.IsWhiteSpace(), System.Xml.XmlTextReaderImpl.OnNewLine(), System.Xml.XmlTextReaderImpl.ThrowTagMismatchAsync(), and System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken().

Referenced by System.Xml.XmlTextReaderImpl.ParseEndElementAsync_Finish(), and System.Xml.XmlTextReaderImpl.ParseEndElementAsync_Finish().