private void WriteHeaderFileClass(RapClass rapClass) { var filePath = _path.Replace(Path.GetFileName(_path), $"{ rapClass.Name }.hpp"); using (var stream = new StreamWriter(filePath)) { WriteHeaderComment(stream); WriteClass(rapClass, stream); stream.Flush(); } AddIncludePreprocessorForFile(filePath); }
private void WriteClass(RapClass rapClass, StreamWriter headerWriter = null) { var writer = headerWriter ?? _writer; writer.Write(rapClass.ToConfigFormat()); if (rapClass.Entries == 0) { writer.WriteLine("};"); return; } writer.WriteLine(); WriteEntriesFromClass(rapClass, writer); writer.WriteLine("};"); }
private void WriteEntriesFromClass(RapClass child, StreamWriter headerWriter = null) { var writer = headerWriter ?? _writer; child.Deletes.ForEach(o => writer.WriteLine(Padding + o.ToConfigFormat())); child.Externs.ForEach(o => writer.WriteLine(Padding + o.ToConfigFormat())); child.Values.ForEach(o => writer.WriteLine(Padding + o.ToConfigFormat())); child.Arrays.ForEach(o => writer.WriteLine(Padding + o.ToConfigFormat())); for (var i = 0; i < child.Classes.Count; ++i) { var endWithNewLine = i != (child.Classes.Count - 1); WriteChildrenClass(child.Classes[i], writer); if (endWithNewLine) { writer.WriteLine(); } } }
private void WriteChildrenClass(RapClass child, StreamWriter headerWriter = null) { var writer = headerWriter ?? _writer; writer.Write(Padding + child.ToConfigFormat()); if (child.Entries != 0) { writer.WriteLine(); _paddingSize++; WriteEntriesFromClass(child, writer); _paddingSize--; writer.WriteLine(Padding + "};"); } else { writer.Write(" };"); } }