Parse() public static method

public static Parse ( string name ) : TypeNameParseInfo
name string
return TypeNameParseInfo
 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);
 }