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

◆ ScanSubsetContent()

Token System.Xml.DtdParser.ScanSubsetContent ( )
inlineprivate

Definition at line 1474 of file DtdParser.cs.

1475 {
1476 while (true)
1477 {
1478 char c = _chars[_curPos];
1479 if (c != '<')
1480 {
1481 if (c != ']')
1482 {
1483 goto IL_04f3;
1484 }
1485 if (_charsUsed - _curPos >= 2 || _readerAdapter.IsEof)
1486 {
1487 if (_chars[_curPos + 1] != ']')
1488 {
1489 _curPos++;
1490 _scanningFunction = ScanningFunction.ClosingTag;
1491 return Token.RightBracket;
1492 }
1493 if (_charsUsed - _curPos >= 3 || _readerAdapter.IsEof)
1494 {
1495 if (_chars[_curPos + 1] == ']' && _chars[_curPos + 2] == '>')
1496 {
1497 break;
1498 }
1499 goto IL_04f3;
1500 }
1501 }
1502 }
1503 else
1504 {
1505 switch (_chars[_curPos + 1])
1506 {
1507 case '!':
1508 switch (_chars[_curPos + 2])
1509 {
1510 case 'E':
1511 if (_chars[_curPos + 3] == 'L')
1512 {
1513 if (_charsUsed - _curPos >= 9)
1514 {
1515 if (_chars[_curPos + 4] != 'E' || _chars[_curPos + 5] != 'M' || _chars[_curPos + 6] != 'E' || _chars[_curPos + 7] != 'N' || _chars[_curPos + 8] != 'T')
1516 {
1518 }
1519 _curPos += 9;
1520 _scanningFunction = ScanningFunction.QName;
1521 _nextScaningFunction = ScanningFunction.Element1;
1522 return Token.ElementDecl;
1523 }
1524 }
1525 else if (_chars[_curPos + 3] == 'N')
1526 {
1527 if (_charsUsed - _curPos >= 8)
1528 {
1529 if (_chars[_curPos + 4] != 'T' || _chars[_curPos + 5] != 'I' || _chars[_curPos + 6] != 'T' || _chars[_curPos + 7] != 'Y')
1530 {
1532 }
1533 _curPos += 8;
1534 _scanningFunction = ScanningFunction.Entity1;
1535 return Token.EntityDecl;
1536 }
1537 }
1538 else if (_charsUsed - _curPos >= 4)
1539 {
1541 return Token.None;
1542 }
1543 break;
1544 case 'A':
1545 if (_charsUsed - _curPos >= 9)
1546 {
1547 if (_chars[_curPos + 3] != 'T' || _chars[_curPos + 4] != 'T' || _chars[_curPos + 5] != 'L' || _chars[_curPos + 6] != 'I' || _chars[_curPos + 7] != 'S' || _chars[_curPos + 8] != 'T')
1548 {
1550 }
1551 _curPos += 9;
1552 _scanningFunction = ScanningFunction.QName;
1553 _nextScaningFunction = ScanningFunction.Attlist1;
1554 return Token.AttlistDecl;
1555 }
1556 break;
1557 case 'N':
1558 if (_charsUsed - _curPos >= 10)
1559 {
1560 if (_chars[_curPos + 3] != 'O' || _chars[_curPos + 4] != 'T' || _chars[_curPos + 5] != 'A' || _chars[_curPos + 6] != 'T' || _chars[_curPos + 7] != 'I' || _chars[_curPos + 8] != 'O' || _chars[_curPos + 9] != 'N')
1561 {
1563 }
1564 _curPos += 10;
1565 _scanningFunction = ScanningFunction.Name;
1566 _nextScaningFunction = ScanningFunction.Notation1;
1567 return Token.NotationDecl;
1568 }
1569 break;
1570 case '[':
1571 _curPos += 3;
1572 _scanningFunction = ScanningFunction.CondSection1;
1573 return Token.CondSectionStart;
1574 case '-':
1575 if (_chars[_curPos + 3] == '-')
1576 {
1577 _curPos += 4;
1578 return Token.Comment;
1579 }
1580 if (_charsUsed - _curPos >= 4)
1581 {
1583 }
1584 break;
1585 default:
1586 if (_charsUsed - _curPos >= 3)
1587 {
1589 }
1590 break;
1591 }
1592 break;
1593 case '?':
1594 _curPos += 2;
1595 return Token.PI;
1596 default:
1597 if (_charsUsed - _curPos >= 2)
1598 {
1600 return Token.None;
1601 }
1602 break;
1603 }
1604 }
1605 goto IL_0513;
1606 IL_0513:
1607 if (ReadData() == 0)
1608 {
1610 }
1611 continue;
1612 IL_04f3:
1613 if (_charsUsed - _curPos != 0)
1614 {
1616 }
1617 goto IL_0513;
1618 }
1619 _curPos += 3;
1620 return Token.CondSectionEnd;
1621 }
static string Xml_ExpectDtdMarkup
Definition SR.cs:244
static string Xml_IncompleteDtdContent
Definition SR.cs:246
Definition SR.cs:7
ScanningFunction _nextScaningFunction
Definition DtdParser.cs:168
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.Dictionary, System.Xml.IDtdParserAdapter.IsEof, System.Xml.DtdParser.ReadData(), System.Xml.DtdParser.Throw(), System.SR.Xml_ExpectDtdMarkup, and System.SR.Xml_IncompleteDtdContent.

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