internal void PrepareLineInfo()
        {
            System.Activities.Debugger.XamlNode node = this.records.Pop();
            FilePosition position  = new FilePosition(node.LineNumber, node.LinePosition);
            FilePosition position2 = new FilePosition(this.Current.LineNumber, this.Current.LinePosition);

            if (this.bracketLocator != null)
            {
                FilePosition y = this.bracketLocator.FindCloseBracketBefore(position2);
                FilePosition x = this.bracketLocator.FindOpenBracketAfter(position);
                if (FilePosition.Comparer.Compare(x, y) > 0)
                {
                    position2 = y;
                }
                else
                {
                    position2 = this.bracketLocator.FindCloseBracketAfter(position2);
                }
                FilePosition position5 = this.bracketLocator.FindOpenBracketBefore(position);
                if ((position5.Line == position.Line) && ((position5.Column + 1) == position.Column))
                {
                    position = position5;
                }
                else
                {
                    position = x;
                }
                position2.Column++;
            }
            this.PrepareLineInfo(position, position2);
        }
        private static bool DebuggableNode(System.Activities.Debugger.XamlNode node)
        {
            System.Type c = null;
            switch (node.NodeType)
            {
            case XamlNodeType.StartObject:
            {
                XamlStartRecordNode node2 = node as XamlStartRecordNode;
                if ((node2 != null) && (node2.RecordType != null))
                {
                    c = node2.RecordType.UnderlyingType;
                }
                break;
            }

            case XamlNodeType.EndObject:
            {
                XamlEndRecordNode node3 = node as XamlEndRecordNode;
                if ((node3 != null) && (node3.RecordType != null))
                {
                    c = node3.RecordType.UnderlyingType;
                }
                break;
            }

            case XamlNodeType.StartMember:
            {
                XamlStartMemberNode node4 = node as XamlStartMemberNode;
                if ((node4 != null) && (node4.RecordType != null))
                {
                    c = node4.RecordType.UnderlyingType;
                }
                break;
            }

            case XamlNodeType.EndMember:
            {
                XamlEndMemberNode node5 = node as XamlEndMemberNode;
                if ((node5 != null) && (node5.RecordType != null))
                {
                    c = node5.RecordType.UnderlyingType;
                }
                break;
            }
            }
            bool flag = false;

            if (((c != null) && typeof(Activity).IsAssignableFrom(c)) && (!typeof(IExpressionContainer).IsAssignableFrom(c) && !typeof(IValueSerializableExpression).IsAssignableFrom(c)))
            {
                flag = true;
            }
            return(flag);
        }
Esempio n. 3
0
 public bool Read()
 {
     if (!this.reader.Read())
     {
         return(false);
     }
     this.current = this.CreateSpecializedNode();
     if ((this.current.LineNumber == 0) || (this.current.LinePosition == 0))
     {
         this.current.LineNumber   = this.lastLineNumber;
         this.current.LinePosition = this.lastLinePosition;
     }
     else
     {
         this.lastLineNumber   = this.current.LineNumber;
         this.lastLinePosition = this.current.LinePosition;
     }
     return(true);
 }
 public override bool Read()
 {
     this.state.Read(this);
     this.current = this.state.GetCurrent(this);
     return(!this.underlyingReader.EndOfInput);
 }
 public bool Read()
 {
     if (!this.reader.Read())
     {
         return false;
     }
     this.current = this.CreateSpecializedNode();
     if ((this.current.LineNumber == 0) || (this.current.LinePosition == 0))
     {
         this.current.LineNumber = this.lastLineNumber;
         this.current.LinePosition = this.lastLinePosition;
     }
     else
     {
         this.lastLineNumber = this.current.LineNumber;
         this.lastLinePosition = this.current.LinePosition;
     }
     return true;
 }