public static string ConvertStructureDeclarationAst(StructureDeclarationAst 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.STRUCTURE} {node.StructureName.Name}"); if (node.SuperStructure != null) { source.Append($" : {node.SuperStructure.Name}"); } source.AppendLine(); source.Append(indent); source.AppendLine("{"); foreach (var structureFeature in node.StructureFeatures) { source.Append(indent); source.Append("\t"); source.AppendLine(AstMofGenerator.ConvertStructureFeatureAst(structureFeature, quirks, indent + '\t')); } source.Append(indent); source.Append("};"); return(source.ToString()); }
public static string ConvertClassFeatureAst(IClassFeatureAst node, MofQuirks quirks = MofQuirks.None, string indent = "") { switch (node) { case IStructureFeatureAst ast: return(AstMofGenerator.ConvertStructureFeatureAst(ast, quirks, indent)); case MethodDeclarationAst ast: return(AstMofGenerator.ConvertMethodDeclarationAst(ast, quirks)); default: throw new NotImplementedException(); } }