public IEnumerable <SyntaxNode> GetNodes(SyntaxGenerator gen) { var required = Values.Select(SyntaxExts.ToLiteral); var optional = Properties.ToDictionary(k => k.Key, v => SyntaxExts.ToLiteral(v.Value)); var assigns = SyntaxExts.ToSyntaxNodes(optional); var args = required.Concat(assigns); yield return(gen.Attribute(Name, attributeArguments: args)); }