public void ReadRevision(out string revision) { revision = default(string); var offset = 0; offset += VersionParserUtility.AssertChar(Contents, _index + offset, ' '); offset += VersionParserUtility.AssertChar(Contents, _index + offset, 'r'); var offsetParenthesis = VersionParserUtility.TryAssertChar(Contents, _index + offset, '('); if (offsetParenthesis > 0) { offset += offsetParenthesis; string revisionFlag; offset += VersionParserUtility.ReadWord(Contents, _index + offset, out revisionFlag); if (revisionFlag != "Unknown") { throw new VersionFormatException("Expected flag for unknown revision but found '" + revisionFlag + "'"); } offset += VersionParserUtility.AssertChar(Contents, _index + offset, ')'); } else { int revisionNumber; offset += VersionParserUtility.ReadPositiveInteger(Contents, _index + offset, out revisionNumber); revision = "r" + revisionNumber; //string revisionData; //offset += VersionParserUtility.ReadWord(Contents, _index + offset, out revisionData); //revision = "r" + revisionData; } _index += offset; }
public void ReadFancyName(out string fancyName, char separator) { fancyName = default(string); var offset = 0; while (VersionParserUtility.TryAssertChar(Contents, _index + offset, separator) > 0) { var partOffset = 1; string fancyNameWord; partOffset += VersionParserUtility.TryReadWord(Contents, _index + offset + partOffset, out fancyNameWord); if (partOffset == 1) { _index += offset; return; } offset += partOffset; if (fancyName != null) { fancyName += ' '; } fancyName += fancyNameWord; } _index += offset; }