public bool Parse(JSImplGuid.Format format, out JSImplGuid guid) { if (format == JSImplGuid.Format.X) { return(this.TryParseX(out guid)); } return(this.TryParseNDBP(format, out guid)); }
private static bool HasHyphen(JSImplGuid.Format format) { switch (format) { case JSImplGuid.Format.D: case JSImplGuid.Format.B: case JSImplGuid.Format.P: return(true); default: return(false); } }
private bool TryParseNDBP(JSImplGuid.Format format, out JSImplGuid guid) { guid = default(JSImplGuid); if (format == JSImplGuid.Format.B && !this.ParseChar('{')) { return(false); } if (format == JSImplGuid.Format.P && !this.ParseChar('(')) { return(false); } ulong num; if (!this.ParseHex(8, true, out num)) { return(false); } bool flag = JSImplGuid.GuidParser.HasHyphen(format); if (flag && !this.ParseChar('-')) { return(false); } ulong num2; if (!this.ParseHex(4, true, out num2)) { return(false); } if (flag && !this.ParseChar('-')) { return(false); } ulong num3; if (!this.ParseHex(4, true, out num3)) { return(false); } if (flag && !this.ParseChar('-')) { return(false); } byte[] array = new byte[8]; for (int i = 0; i < array.Length; i++) { ulong num4; if (!this.ParseHex(2, true, out num4)) { return(false); } if (i == 1 && flag && !this.ParseChar('-')) { return(false); } array[i] = (byte)num4; } if (format == JSImplGuid.Format.B && !this.ParseChar('}')) { return(false); } if (format == JSImplGuid.Format.P && !this.ParseChar(')')) { return(false); } if (!this.Eof) { return(false); } guid = new JSImplGuid((int)num, (short)num2, (short)num3, array); return(true); }