private string[] ParseNestedNames() { string[] result = null; while (this.TryParse('+')) { TypeParser.Add <string>(ref result, this.ParsePart()); } return(result); }
private int[] ParseSpecs() { int[] result = null; while (this.position < this.length) { char c = this.fullname[this.position]; if (c != '&') { if (c != '*') { if (c != '[') { return(result); } this.position++; char c2 = this.fullname[this.position]; if (c2 != '*') { if (c2 == ']') { this.position++; TypeParser.Add <int>(ref result, -3); } else { int num = 1; while (this.TryParse(',')) { num++; } TypeParser.Add <int>(ref result, num); this.TryParse(']'); } } else { this.position++; TypeParser.Add <int>(ref result, 1); } } else { this.position++; TypeParser.Add <int>(ref result, -1); } } else { this.position++; TypeParser.Add <int>(ref result, -2); } } return(result); }
private TypeParser.Type[] ParseGenericArguments(int arity) { TypeParser.Type[] result = null; if (this.position == this.length || this.fullname[this.position] != '[') { return(result); } this.TryParse('['); for (int i = 0; i < arity; i++) { bool flag = this.TryParse('['); TypeParser.Add <TypeParser.Type>(ref result, this.ParseType(flag)); if (flag) { this.TryParse(']'); } this.TryParse(','); this.TryParseWhiteSpace(); } this.TryParse(']'); return(result); }