public void Write(TextWriter writer, List <DeclMarker> declList, IReadOnlyCollection <Definition> defns) { if (!WriterExtensions.IsIgnoredDecl(this.IfStack, defns)) { for (int i = 0; i < declList.Count; ++i) { if (declList[i].Decl.Equals(this)) { declList[i].Written = true; break; } } this.WriteDependencies(writer, declList, defns); using (var ifStackWriter = new IfStackWriter(writer, this.IfStack)) { int count = 0; count += this.DeclarationSpecifiers.Write(writer, count, 0); if (this.Declarator != null) { if (count > 0) { writer.Write(' '); } count += this.Declarator.Write(writer, count, 0); } writer.WriteLine(';'); } } }
public void Write(TextWriter writer, IReadOnlyCollection <Definition> defns) { if (!WriterExtensions.IsIgnoredDecl(this.IfStack, defns)) { using (var ifStackWriter = new IfStackWriter(writer, this.IfStack)) { writer.Write("#define "); writer.Write(this.Identifier); if (this.Arguments != null) { using (var parentWriter = new WrappingWriter(() => writer.Write('('), () => writer.Write(')'))) { bool first = true; foreach (var arg in this.Arguments) { if (first) { first = false; } else { writer.Write(','); } writer.Write(arg); } } } if (!string.IsNullOrWhiteSpace(this.Replacement)) { writer.Write(' '); writer.WriteLine(this.Replacement.Trim()); } } } }