示例#1
0
    private GeneratedCslNodeClass GetBaseOrNull(GeneratedCslNodeClass c)
    {
        GeneratedCslNodeClass ret = null;

        m_nameToClass.TryGetValue(c.Base, out ret);
        return(ret);
    }
示例#2
0
 private string GetPublicOrProtected(GeneratedCslNodeClass c)
 {
     if (c.Abstract)
     {
         return("protected");
     }
     else
     {
         return("public");
     }
 }
示例#3
0
    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);
    }
示例#4
0
 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("");
 }