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

◆ ParseElementOnlyContentAsync()

async Task System.Xml.DtdParser.ParseElementOnlyContentAsync ( ParticleContentValidator pcv,
int startParenEntityId )
inlineprivate

Definition at line 3678 of file DtdParser.cs.

3679 {
3681 ParseElementOnlyContent_LocalFrame currentFrame = new ParseElementOnlyContent_LocalFrame(startParenEntityId);
3682 localFrames.Push(currentFrame);
3683 while (true)
3684 {
3685 Token token = await GetTokenAsync(needWhiteSpace: false).ConfigureAwait(continueOnCapturedContext: false);
3686 if (token != Token.QName)
3687 {
3688 if (token != Token.LeftParen)
3689 {
3690 if (token != Token.GreaterThan)
3691 {
3692 goto IL_036a;
3693 }
3695 goto IL_0370;
3696 }
3697 pcv.OpenGroup();
3698 currentFrame = new ParseElementOnlyContent_LocalFrame(_currentEntityId);
3699 localFrames.Push(currentFrame);
3700 continue;
3701 }
3704 goto IL_01a2;
3705 IL_036a:
3707 goto IL_0370;
3708 IL_02aa:
3709 pcv.CloseGroup();
3710 if (_validate && _currentEntityId != currentFrame.startParenEntityId)
3711 {
3713 }
3715 goto IL_0370;
3716 IL_026d:
3717 if (currentFrame.parsingSchema == Token.Comma)
3718 {
3720 }
3721 pcv.AddChoice();
3722 currentFrame.parsingSchema = Token.Or;
3723 continue;
3724 IL_0370:
3725 localFrames.Pop();
3726 if (localFrames.Count > 0)
3727 {
3728 currentFrame = localFrames.Peek();
3729 goto IL_01a2;
3730 }
3731 break;
3732 IL_0357:
3734 goto IL_0370;
3735 IL_01a2:
3737 {
3738 case Token.Comma:
3739 break;
3740 case Token.Or:
3741 goto IL_026d;
3742 case Token.RightParen:
3743 goto IL_02aa;
3744 case Token.GreaterThan:
3745 goto IL_0357;
3746 default:
3747 goto IL_036a;
3748 }
3749 if (currentFrame.parsingSchema == Token.Or)
3750 {
3752 }
3753 pcv.AddSequence();
3754 currentFrame.parsingSchema = Token.Comma;
3755 }
3756 }
static string Sch_ParEntityRefNesting
Definition SR.cs:392
static string Xml_InvalidContentModel
Definition SR.cs:250
Definition SR.cs:7
void SendValidationEvent(int pos, XmlSeverityType severity, string code, string arg)
async Task ParseHowManyAsync(ParticleContentValidator pcv)
void Throw(int curPos, string res)
XmlQualifiedName GetNameQualified(bool canHavePrefix)
async Task< Token > GetTokenAsync(bool needWhiteSpace)

References System.Xml.DtdParser._curPos, System.Xml.DtdParser._currentEntityId, System.Xml.DtdParser._validate, System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Xml.Dictionary, System.Xml.DtdParser.GetNameQualified(), System.Xml.DtdParser.GetTokenAsync(), System.Xml.DtdParser.OnUnexpectedError(), System.Xml.DtdParser.ParseHowManyAsync(), System.Xml.DtdParser.ParseElementOnlyContent_LocalFrame.parsingSchema, System.SR.Sch_ParEntityRefNesting, System.Xml.DtdParser.SendValidationEvent(), System.Xml.DtdParser.ParseElementOnlyContent_LocalFrame.startParenEntityId, System.Xml.DtdParser.Throw(), and System.SR.Xml_InvalidContentModel.

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