From 837a155b3d33035ee0739858f4ab25c65048ad6c Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Mon, 1 Mar 2021 15:37:46 -0500 Subject: Doc improvements (#1729) * #include an absolute path didn't work - because paths were taken to always be relative. * Split out AST 'printing'. * Replace listener with List
* Section -> Part. * Kind -> Type Flags -> Kind for ASTPrinter::Part * Improve comments around ASTPrinter. * toString -> toText on Val derived types. toText appends to a StringBuilder. * Added toSlice free function. Added operator<< for Val derived types. Use << where appropriate in doing toText. * More work at mark down output. * Fill in sourceloc for enum case. Add more sophisticated location determination for EnumCase. Refactored documentation output into DocMarkdownWriter. * Improvements for sig output. --- source/slang/slang-syntax.cpp | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'source/slang/slang-syntax.cpp') diff --git a/source/slang/slang-syntax.cpp b/source/slang/slang-syntax.cpp index d6e966aaa..62de6599c 100644 --- a/source/slang/slang-syntax.cpp +++ b/source/slang/slang-syntax.cpp @@ -20,23 +20,23 @@ void printDiagnosticArg(StringBuilder& sb, Decl* decl) void printDiagnosticArg(StringBuilder& sb, Type* type) { - sb << type->toString(); + type->toText(sb); } void printDiagnosticArg(StringBuilder& sb, Val* val) { - sb << val->toString(); + val->toText(sb); } void printDiagnosticArg(StringBuilder& sb, TypeExp const& type) { - sb << type.type->toString(); + type.type->toText(sb); } void printDiagnosticArg(StringBuilder& sb, QualType const& type) { if (type.type) - sb << type.type->toString(); + type.type->toText(sb); else sb << ""; } @@ -1104,13 +1104,22 @@ Index getFilterCountImpl(const ReflectClassInfo& clsInfo, MemberFilterStyle filt String DeclRefBase::toString() const { - if (!decl) return ""; - - auto name = decl->getName(); - if (!name) return ""; + StringBuilder builder; + toText(builder); + return builder; + } - // TODO: need to print out substitutions too! - return name->text; + void DeclRefBase::toText(StringBuilder& out) const + { + if (decl) + { + auto name = decl->getName(); + if (name) + { + // TODO: need to print out substitutions too! + out << name->text; + } + } } bool SubstitutionSet::equals(const SubstitutionSet& substSet) const -- cgit v1.2.3