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

◆ ScanAttlist2Async()

async Task< Token > System.Xml.DtdParser.ScanAttlist2Async ( )
inlineprivate

Definition at line 4609 of file DtdParser.cs.

4610 {
4611 while (true)
4612 {
4613 switch (_chars[_curPos])
4614 {
4615 case '(':
4616 _curPos++;
4617 _scanningFunction = ScanningFunction.Nmtoken;
4618 _nextScaningFunction = ScanningFunction.Attlist5;
4619 return Token.LeftParen;
4620 case 'C':
4621 if (_charsUsed - _curPos >= 5)
4622 {
4623 if (_chars[_curPos + 1] != 'D' || _chars[_curPos + 2] != 'A' || _chars[_curPos + 3] != 'T' || _chars[_curPos + 4] != 'A')
4624 {
4626 }
4627 _curPos += 5;
4628 _scanningFunction = ScanningFunction.Attlist6;
4629 return Token.CDATA;
4630 }
4631 break;
4632 case 'E':
4633 if (_charsUsed - _curPos < 9)
4634 {
4635 break;
4636 }
4637 _scanningFunction = ScanningFunction.Attlist6;
4638 if (_chars[_curPos + 1] != 'N' || _chars[_curPos + 2] != 'T' || _chars[_curPos + 3] != 'I' || _chars[_curPos + 4] != 'T')
4639 {
4641 }
4642 switch (_chars[_curPos + 5])
4643 {
4644 case 'I':
4645 if (_chars[_curPos + 6] != 'E' || _chars[_curPos + 7] != 'S')
4646 {
4648 }
4649 _curPos += 8;
4650 return Token.ENTITIES;
4651 case 'Y':
4652 _curPos += 6;
4653 return Token.ENTITY;
4654 }
4656 break;
4657 case 'I':
4658 if (_charsUsed - _curPos >= 6)
4659 {
4660 _scanningFunction = ScanningFunction.Attlist6;
4661 if (_chars[_curPos + 1] != 'D')
4662 {
4664 }
4665 if (_chars[_curPos + 2] != 'R')
4666 {
4667 _curPos += 2;
4668 return Token.ID;
4669 }
4670 if (_chars[_curPos + 3] != 'E' || _chars[_curPos + 4] != 'F')
4671 {
4673 }
4674 if (_chars[_curPos + 5] != 'S')
4675 {
4676 _curPos += 5;
4677 return Token.IDREF;
4678 }
4679 _curPos += 6;
4680 return Token.IDREFS;
4681 }
4682 break;
4683 case 'N':
4684 if (_charsUsed - _curPos < 8 && !_readerAdapter.IsEof)
4685 {
4686 break;
4687 }
4688 switch (_chars[_curPos + 1])
4689 {
4690 case 'O':
4691 if (_chars[_curPos + 2] != 'T' || _chars[_curPos + 3] != 'A' || _chars[_curPos + 4] != 'T' || _chars[_curPos + 5] != 'I' || _chars[_curPos + 6] != 'O' || _chars[_curPos + 7] != 'N')
4692 {
4694 }
4695 _curPos += 8;
4696 _scanningFunction = ScanningFunction.Attlist3;
4697 return Token.NOTATION;
4698 case 'M':
4699 if (_chars[_curPos + 2] != 'T' || _chars[_curPos + 3] != 'O' || _chars[_curPos + 4] != 'K' || _chars[_curPos + 5] != 'E' || _chars[_curPos + 6] != 'N')
4700 {
4702 }
4703 _scanningFunction = ScanningFunction.Attlist6;
4704 if (_chars[_curPos + 7] == 'S')
4705 {
4706 _curPos += 8;
4707 return Token.NMTOKENS;
4708 }
4709 _curPos += 7;
4710 return Token.NMTOKEN;
4711 }
4713 break;
4714 default:
4716 break;
4717 }
4718 if (await ReadDataAsync().ConfigureAwait(continueOnCapturedContext: false) == 0)
4719 {
4721 }
4722 }
4723 }
static string Xml_IncompleteDtdContent
Definition SR.cs:246
static string Xml_InvalidAttributeType1
Definition SR.cs:262
static string Xml_InvalidAttributeType
Definition SR.cs:260
Definition SR.cs:7
ScanningFunction _nextScaningFunction
Definition DtdParser.cs:168
async Task< int > ReadDataAsync()
void Throw(int curPos, string res)
IDtdParserAdapter _readerAdapter
Definition DtdParser.cs:140
ScanningFunction _scanningFunction
Definition DtdParser.cs:166

References System.Xml.DtdParser._chars, System.Xml.DtdParser._charsUsed, System.Xml.DtdParser._curPos, System.Xml.DtdParser._nextScaningFunction, System.Xml.DtdParser._readerAdapter, System.Xml.DtdParser._scanningFunction, System.Xml.IDtdParserAdapter.IsEof, System.Xml.DtdParser.ReadDataAsync(), System.Xml.DtdParser.Throw(), System.SR.Xml_IncompleteDtdContent, System.SR.Xml_InvalidAttributeType, and System.SR.Xml_InvalidAttributeType1.

Referenced by System.Xml.DtdParser.GetTokenAsync().