MLLIF
a MLIR-based Language to Language Interoperability Flyover
Loading...
Searching...
No Matches
CodeWriter.cs
Go to the documentation of this file.
1using System.Text;
2
4
5public class CodeWriter : TextWriter
6{
7 private TextWriter _writer;
8 private bool _tabRequired;
9
10 public CodeWriter(TextWriter writer, string tab)
11 {
12 _writer = writer;
13 Tab = tab;
14 }
15
16 public override Encoding Encoding { get; } = Encoding.UTF8;
17
18 private string Tab { get; set; }
19
20 public int Indent { get; set; }
21
22 private void WriteIndent()
23 {
24 for (var i = 0; i < Indent; i++)
25 _writer.Write(Tab);
26 }
27
28 public override void Write(char value)
29 {
30 if (value == '\r')
31 return;
32 if (value == '\n')
33 {
34 _tabRequired = true;
35 _writer.Write(value);
36 return;
37 }
38
39 if (_tabRequired)
40 {
41 WriteIndent();
42 _tabRequired = false;
43 }
44
45 _writer.Write(value);
46 }
47}
CodeWriter(TextWriter writer, string tab)
Definition CodeWriter.cs:10