public static string ConvertClassDeclarationAst(ClassDeclarationAst node, MofQuirks quirks = MofQuirks.None, string indent = "") { var source = new StringBuilder(); if (node.QualifierList.QualifierValues.Any()) { source.AppendLine(AstMofGenerator.ConvertQualifierListAst(node.QualifierList, quirks)); source.Append(indent); } source.Append($"{Constants.CLASS} {node.ClassName.Name}"); if (node.SuperClass != null) { source.Append($" : {node.SuperClass.Name}"); } source.AppendLine(); source.Append(indent); source.AppendLine("{"); foreach (var classFeature in node.ClassFeatures) { source.Append(indent); source.Append("\t"); source.Append(AstMofGenerator.ConvertClassFeatureAst(classFeature, quirks, indent + '\t')); source.AppendLine(); } source.Append(indent); source.Append("};"); return(source.ToString()); }
public static string ConvertToMof(ClassDeclarationAst node, MofQuirks quirks = MofQuirks.None) { var source = new StringBuilder(); if ((node.Qualifiers != null) && node.Qualifiers.Qualifiers.Count > 0) { source.AppendLine(MofGenerator.ConvertToMof(node.Qualifiers, quirks)); } if (node.Superclass == null) { source.AppendFormat("class {0}\r\n", node.ClassName.Name); } else { source.AppendFormat("class {0} : {1}\r\n", node.ClassName.Name, node.Superclass.Name); } source.AppendLine("{"); foreach (var feature in node.Features) { source.AppendFormat("\t{0}\r\n", MofGenerator.ConvertToMof(feature, quirks)); } source.AppendLine("};"); return(source.ToString()); }