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

◆ ParsePIAsync() [2/2]

async Task< bool > System.Xml.XmlTextReaderImpl.ParsePIAsync ( StringBuilder piInDtdStringBuilder)
inlineprivate

Definition at line 11701 of file XmlTextReaderImpl.cs.

11702 {
11703 if (_parsingMode == ParsingMode.Full)
11704 {
11706 }
11707 int num = await ParseNameAsync().ConfigureAwait(continueOnCapturedContext: false);
11708 string text = _nameTable.Add(_ps.chars, _ps.charPos, num - _ps.charPos);
11709 if (string.Equals(text, "xml", StringComparison.OrdinalIgnoreCase))
11710 {
11711 Throw(text.Equals("xml") ? System.SR.Xml_XmlDeclNotFirst : System.SR.Xml_InvalidPIName, text);
11712 }
11713 _ps.charPos = num;
11714 if (piInDtdStringBuilder == null)
11715 {
11716 if (!_ignorePIs && _parsingMode == ParsingMode.Full)
11717 {
11718 _curNode.SetNamedNode(XmlNodeType.ProcessingInstruction, text);
11719 }
11720 }
11721 else
11722 {
11723 piInDtdStringBuilder.Append(text);
11724 }
11725 char ch = _ps.chars[_ps.charPos];
11727 {
11728 if (_ps.charsUsed - _ps.charPos < 2)
11729 {
11731 }
11732 if (ch != '?' || _ps.chars[_ps.charPos + 1] != '>')
11733 {
11735 }
11736 }
11738 var (num2, num3, _) = tuple;
11739 if (tuple.Item3)
11740 {
11741 if (piInDtdStringBuilder == null)
11742 {
11743 if (_ignorePIs)
11744 {
11745 return false;
11746 }
11747 if (_parsingMode == ParsingMode.Full)
11748 {
11750 }
11751 }
11752 else
11753 {
11755 }
11756 }
11757 else
11758 {
11759 StringBuilder sb;
11760 if (piInDtdStringBuilder == null)
11761 {
11762 if (_ignorePIs || _parsingMode != 0)
11763 {
11764 (int, int, bool) tuple3;
11765 do
11766 {
11768 _ = tuple3.Item1;
11769 _ = tuple3.Item2;
11770 }
11771 while (!tuple3.Item3);
11772 return false;
11773 }
11774 sb = _stringBuilder;
11775 }
11776 else
11777 {
11779 }
11780 (int, int, bool) tuple4;
11781 do
11782 {
11783 sb.Append(_ps.chars, num2, num3 - num2);
11785 (num2, num3, _) = tuple4;
11786 }
11787 while (!tuple4.Item3);
11788 sb.Append(_ps.chars, num2, num3 - num2);
11789 if (piInDtdStringBuilder == null)
11790 {
11793 }
11794 }
11795 return true;
11796 }
static string Xml_BadNameChar
Definition SR.cs:44
static string Xml_XmlDeclNotFirst
Definition SR.cs:84
Definition SR.cs:7
override string ToString()
StringBuilder Append(char value, int repeatCount)
string Add(char[] array, int offset, int length)
void SetLineInfo(int lineNo, int linePos)
void SetNamedNode(XmlNodeType type, string localName)
readonly StringBuilder _stringBuilder
async Task<(int, int, bool)> ParsePIValueAsync()
async Task< int > EatWhitespacesAsync(StringBuilder sb)
void Throw(int pos, string res, string arg)

References System.Xml.XmlTextReaderImpl._curNode, System.Xml.XmlTextReaderImpl._ignorePIs, System.Xml.XmlTextReaderImpl._nameTable, System.Xml.XmlTextReaderImpl._parsingMode, System.Xml.XmlTextReaderImpl._ps, System.Xml.XmlTextReaderImpl._stringBuilder, System.Xml.XmlNameTable.Add(), System.Text.StringBuilder.Append(), System.Xml.XmlException.BuildCharExceptionArgs(), System.ch, System.Xml.XmlTextReaderImpl.ParsingState.charPos, System.Xml.XmlTextReaderImpl.ParsingState.chars, System.Xml.XmlTextReaderImpl.ParsingState.charsUsed, System.Xml.Dictionary, System.Xml.XmlTextReaderImpl.EatWhitespacesAsync(), System.Xml.XmlTextReaderImpl.int, System.Xml.XmlTextReaderImpl.ParsingState.LineNo, System.Xml.XmlTextReaderImpl.ParsingState.LinePos, System.Xml.XmlTextReaderImpl.ParseNameAsync(), System.Xml.XmlTextReaderImpl.ParsePIValueAsync(), System.Xml.XmlTextReaderImpl.ReadDataAsync(), System.Xml.XmlTextReaderImpl.NodeData.SetLineInfo(), System.Xml.XmlTextReaderImpl.NodeData.SetNamedNode(), System.Xml.XmlTextReaderImpl.NodeData.SetValue(), System.text, System.Xml.XmlTextReaderImpl.Throw(), System.Text.StringBuilder.ToString(), System.SR.Xml_BadNameChar, System.SR.Xml_InvalidPIName, and System.SR.Xml_XmlDeclNotFirst.