public static Parse ( string name ) : |
||
name | string | |
return |
private bool ParseTypeArgumentsOptional(ref int arity) { bool flag2; this.SkipWhites(); if (this.IsEOL) { return true; } if (!this.CurrentIs('[')) { return true; } if ((this.NextWillBe(']', true) || this.NextWillBe(',', true)) || this.NextWillBe('*', true)) { return true; } if (!this.Next(true)) { return false; } this._info.TypeArguments.Capacity = arity; Label_0083: flag2 = false; if (this.CurrentIs('[')) { flag2 = true; if (!this.Next(true)) { return false; } } TypeNameParseInfo info = new TypeNameParseInfo(); TypeNameParser parser = new TypeNameParser(this._data, this._p, this._end, info, true); if (!parser.Parse(flag2)) { return false; } this._p = parser._p; this._info.TypeArguments.Add(info); this.SkipWhites(); if (this.IsEOL) { return false; } if (flag2) { if (!this.CurrentIs(']')) { return false; } if (!this.Next(true)) { return false; } } if (!this.CurrentIs(']')) { if (!this.CurrentIs(',')) { return false; } if (!this.Next(true)) { return false; } goto Label_0083; } if (this._info.TypeArguments.Count != arity) { return false; } this.Next(true); return true; }
public static TypeNameParseInfo Parse(string name) { TypeNameParseInfo info = new TypeNameParseInfo(); char[] data = name.ToCharArray(); TypeNameParser parser = new TypeNameParser(data, 0, data.Length, info, false); return (parser.Parse(true) ? info : null); }