private GeneratedCslNodeClass GetBaseOrNull(GeneratedCslNodeClass c) { GeneratedCslNodeClass ret = null; m_nameToClass.TryGetValue(c.Base, out ret); return(ret); }
private string GetPublicOrProtected(GeneratedCslNodeClass c) { if (c.Abstract) { return("protected"); } else { return("public"); } }
private List <GeneratedCslNodeClass> GetLineage(GeneratedCslNodeClass c) { var lineage = new List <GeneratedCslNodeClass>(); // First is the ultimate base, last is us var current = c; while (current != null) { lineage.Add(current); current = GetBaseOrNull(current); } lineage.Reverse(); return(lineage); }
private string GetAbstractOrSealed(GeneratedCslNodeClass c) { if (c.Abstract) { if (c.Sealed) { throw new Exception($"{c.Name}: A class can't be both abstract and sealed."); } return("abstract "); // Note the trailing space } else if (c.Sealed) { return("sealed "); // Note the trailing space } return(""); }