private void ReadPrefix(ref TextPtr ptr, out StringSegment prefix) { bool flag = false; TextPtr ptr2 = ptr; while (!ptr.IsOutOfBounds()) { if (ptr.IsStartOfLine() && (ptr.Char == ';')) { if (!flag) { flag = true; ptr2 = ptr; } ptr = ptr.FindEndOfLine(false); } TextPtr ptr3 = ptr.SkipWhitespace(false); if (!ptr3.IsNewLine()) { break; } if (ptr3.Char == '\r') { ptr = ptr3 + 2; } else { ptr = ptr3 + 1; } } if (flag) { TextPtr ptr4 = ptr; while (char.IsWhiteSpace(ptr4.Char) && (ptr4 > ptr2)) { ptr4 = TextPtr.op_Decrement(ptr4); } int length = ptr4.Index - ptr2.Index; if (length > 0) { prefix = new StringSegment(ptr.Content, ptr2.Index, length); return; } } prefix = new StringSegment(); }