Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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());
        }