// Token: 0x0600081A RID: 2074 RVA: 0x0002D3DB File Offset: 0x0002B5DB
 public void AssertValidState(ContentLineNodeType nodeType)
 {
     this.CheckDisposed("AssertValidState");
     if ((this.nodeType & nodeType) == ContentLineNodeType.DocumentStart)
     {
         throw new InvalidOperationException(CalendarStrings.InvalidReaderState);
     }
 }
        // Token: 0x06000810 RID: 2064 RVA: 0x0002C908 File Offset: 0x0002AB08
        private bool Read()
        {
            ContentLineNodeType contentLineNodeType = this.nodeType;

            switch (contentLineNodeType)
            {
            case ContentLineNodeType.DocumentStart:
            case ContentLineNodeType.ComponentStart:
                goto IL_E3;

            case ContentLineNodeType.ComponentEnd:
                if (this.componentStack.Count > 0)
                {
                    this.componentName = this.componentStack.Pop();
                    goto IL_E3;
                }
                goto IL_E3;

            case ContentLineNodeType.ComponentStart | ContentLineNodeType.ComponentEnd:
            case ContentLineNodeType.ComponentStart | ContentLineNodeType.Parameter:
            case ContentLineNodeType.ComponentEnd | ContentLineNodeType.Parameter:
            case ContentLineNodeType.ComponentStart | ContentLineNodeType.ComponentEnd | ContentLineNodeType.Parameter:
                break;

            case ContentLineNodeType.Parameter:
            case ContentLineNodeType.Property:
                if (this.parser.State == ContentLineParser.States.ParamName || this.nodeType == ContentLineNodeType.Parameter)
                {
                    while (this.ReadNextParameter())
                    {
                    }
                }
                if (this.parser.State == ContentLineParser.States.Value || this.parser.State == ContentLineParser.States.ValueStart)
                {
                    this.ReadPropertyValue(false);
                }
                if (this.parser.State == ContentLineParser.States.ValueStartComma || this.parser.State == ContentLineParser.States.ValueStartSemiColon)
                {
                    while (this.ReadNextPropertyValue())
                    {
                    }
                    goto IL_E3;
                }
                goto IL_E3;

            default:
                if (contentLineNodeType == ContentLineNodeType.BeforeComponentStart)
                {
                    this.nodeType = ContentLineNodeType.ComponentStart;
                    return(true);
                }
                if (contentLineNodeType == ContentLineNodeType.BeforeComponentEnd)
                {
                    this.nodeType = ContentLineNodeType.ComponentEnd;
                    return(true);
                }
                break;
            }
            return(false);

IL_E3:
            if (this.parser.State == ContentLineParser.States.End)
            {
                if (this.componentStack.Count != 0)
                {
                    this.complianceTracker.SetComplianceStatus(ComplianceStatus.StreamTruncated | ComplianceStatus.NotAllComponentsClosed, CalendarStrings.NotAllComponentsClosed);
                    this.nodeType = ContentLineNodeType.BeforeComponentEnd;
                }
                else
                {
                    this.nodeType = ContentLineNodeType.DocumentEnd;
                }
                return(false);
            }
            this.nodeType           = ContentLineNodeType.Property;
            this.propertyName       = this.ReadName();
            this.parameterValueRead = false;
            this.propertyValueRead  = false;
            if (this.parser.State == ContentLineParser.States.End)
            {
                if (0 < this.propertyName.Length)
                {
                    this.complianceTracker.SetComplianceStatus(ComplianceStatus.StreamTruncated | ComplianceStatus.PropertyTruncated, CalendarStrings.PropertyTruncated);
                }
                if (0 < this.componentStack.Count)
                {
                    this.complianceTracker.SetComplianceStatus(ComplianceStatus.StreamTruncated | ComplianceStatus.NotAllComponentsClosed, CalendarStrings.NotAllComponentsClosed);
                    this.nodeType = ContentLineNodeType.BeforeComponentEnd;
                }
                else
                {
                    this.nodeType = ContentLineNodeType.DocumentEnd;
                }
                return(false);
            }
            if (this.propertyName.Equals("BEGIN", StringComparison.OrdinalIgnoreCase))
            {
                if (this.parser.State == ContentLineParser.States.ParamName)
                {
                    this.complianceTracker.SetComplianceStatus(ComplianceStatus.ParametersOnComponentTag, CalendarStrings.ParametersNotPermittedOnComponentTag);
                    while (this.ReadNextParameter())
                    {
                    }
                }
                if (this.parser.State != ContentLineParser.States.End)
                {
                    this.componentStack.Push(this.componentName);
                    this.componentName = this.ReadPropertyValue(true).Trim();
                    if (this.componentName.Length == 0)
                    {
                        this.complianceTracker.SetComplianceStatus(ComplianceStatus.EmptyComponentName, CalendarStrings.EmptyComponentName);
                    }
                    this.nodeType = ContentLineNodeType.BeforeComponentStart;
                }
            }
            else if (this.propertyName.Equals("END", StringComparison.OrdinalIgnoreCase))
            {
                if (this.parser.State == ContentLineParser.States.ParamName)
                {
                    this.complianceTracker.SetComplianceStatus(ComplianceStatus.ParametersOnComponentTag, CalendarStrings.ParametersNotPermittedOnComponentTag);
                    while (this.ReadNextParameter())
                    {
                    }
                }
                if (this.parser.State != ContentLineParser.States.End)
                {
                    string text = this.ReadPropertyValue(true).Trim();
                    if (this.componentStack.Count == 0)
                    {
                        this.complianceTracker.SetComplianceStatus(ComplianceStatus.EndTagWithoutBegin, CalendarStrings.EndTagWithoutBegin);
                    }
                    if (!text.Equals(this.componentName, StringComparison.OrdinalIgnoreCase))
                    {
                        if (text.Length == 0)
                        {
                            this.complianceTracker.SetComplianceStatus(ComplianceStatus.EmptyComponentName, CalendarStrings.EmptyComponentName);
                        }
                        this.complianceTracker.SetComplianceStatus(ComplianceStatus.ComponentNameMismatch, CalendarStrings.ComponentNameMismatch);
                    }
                    this.nodeType = ContentLineNodeType.BeforeComponentEnd;
                }
            }
            else if (this.propertyName.Length == 0)
            {
                if (0 < this.componentStack.Count)
                {
                    this.complianceTracker.SetComplianceStatus(ComplianceStatus.EmptyPropertyName, CalendarStrings.EmptyPropertyName);
                }
            }
            else if (this.componentStack.Count == 0)
            {
                this.complianceTracker.SetComplianceStatus(ComplianceStatus.PropertyOutsideOfComponent, CalendarStrings.PropertyOutsideOfComponent);
            }
            return(true);
        }