public override void EnterTypeName([NotNull] TypeNameContext context) { if (startVar) { typename = context.Start.Text; //if type name hit twice its an array if (numMatch.IsMatch(typename)) { Match numberMatch = numMatch.Match(typename); typename = numberMatch.Groups[1].ToString(); try { typesize = Int32.Parse(numberMatch.Groups[2].ToString()); } catch { errorList.Add("Error parsing number for " + typename); } } else { typesize = 256; } int chkindex = context.Start.StopIndex + 1; string txtat = context.Start.InputStream.GetText(new Interval(chkindex, chkindex)); if (txtat.Equals("[")) { isarray = true; } } }
internal void Add(TypeName name) { if (!allNames.Add(name)) { return; } var identity = name.NameIdentity; if (badIdentities.Contains(identity)) { badNames.Add(name); return; } TypeNameContext context; if (!identityToContext.TryGetValue(identity, out context)) { context = new TypeNameContext(name.Namespace.FullName); context.Names.Add(name); identityToContext.Add(identity, context); return; } if (context.Namespace == name.Namespace.FullName) { context.Names.Add(name); return; } badIdentities.Add(identity); foreach (var n in context.Names) { badNames.Add(n); } badNames.Add(name); identityToContext.Remove(identity); }