private bool ShouldPrintAttribute(Symbol name) { if (!S.IsTriviaSymbol(name)) { return(true); } if (name == S.TriviaRawTextBefore || name == S.TriviaRawTextAfter) { return(!ObeyRawText && (!OmitUnknownTrivia || PrintExplicitTrivia)); } else if (name == S.TriviaInParens) { return(false); } else { bool known = name == S.TriviaSpaceBefore || name == S.TriviaSpaceAfter || name == S.TriviaSLCommentBefore || name == S.TriviaSLCommentAfter || name == S.TriviaMLCommentBefore || name == S.TriviaMLCommentAfter; if (known) { return(PrintExplicitTrivia); } else { return(!OmitUnknownTrivia); } } }
private bool MaybePrintTrivia(ILNode attr, bool needSpace, bool testOnly = false) { var name = attr.Name; if (S.IsTriviaSymbol(name)) { if ((name == S.TriviaRawText) && _o.ObeyRawText) { if (!testOnly) { _out.Write(GetRawText(attr), true); } return(true); } else if (_o.PrintTriviaExplicitly) { return(false); } else { if (name == S.TriviaNewline) { if (!testOnly && !_o.OmitSpaceTrivia) { _out.Newline(); } return(true); } else if ((name == S.TriviaSpaces)) { if (!testOnly && !_o.OmitSpaceTrivia) { PrintSpaces(GetRawText(attr)); } return(true); } else if (name == S.TriviaSLComment) { if (!testOnly && !_o.OmitComments) { if (needSpace && !_out.LastCharWritten.IsOneOf(' ', '\t')) { _out.Write('\t', true); } _out.Write("//", false); _out.Write(GetRawText(attr), true); _out.Newline(pending: true); } return(true); } else if (name == S.TriviaMLComment) { if (!testOnly && !_o.OmitComments) { if (needSpace && !_out.LastCharWritten.IsOneOf(' ', '\t', '\n')) { _out.Space(); } _out.Write("/*", false); _out.Write(GetRawText(attr), false); _out.Write("*/", false); } return(true); } else if (name == S.TriviaAppendStatement) { return(true); // obeyed elsewhere } if (_o.OmitUnknownTrivia) { return(true); // block printing } if (!needSpace && name == S.TriviaTrailing) { return(true); } } } return(false); }