public override void VisitPropertyDeclaration(PropertyDeclarationSyntax node) { // todo: ensure this is same visibility var z = model.GetDeclaredSymbol(node); var builder = tcb.GetBuilderFor(z.DeclaredAccessibility); builder.AppendWithIndent("__declspec(property("); CodeBuilder getBuilder = null; if (z.GetMethod != null) { builder.Append("get=Get").Append(z.Name); getBuilder = new CodeBuilder(builder.IndentValue); getBuilder.AppendWithIndent(z.Type.ToCppType()) .Append("& ") // this is rather opinionated :) might rethink later .Append("Get") .Append(z.Name) .AppendLine("() const;"); } if (z.SetMethod != null) { if (z.GetMethod != null) builder.Append(","); builder.Append("put=Set").Append(z.Name); } builder.Append(")) ") .Append(z.Type.ToCppType()) .Append(" ") .Append(z.Name) .AppendLine(";"); if (getBuilder != null) builder.Append(getBuilder.ToString()); }