Exemple #1
0
        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);
        }
Exemple #2
0
        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("};");
        }
Exemple #3
0
        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();
                }
            }
        }
Exemple #4
0
        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(" };");
            }
        }