Skip to content

Commit f5faf9e

Browse files
committed
more javadoc tidy
1 parent b03cf78 commit f5faf9e

File tree

9 files changed

+79
-45
lines changed

9 files changed

+79
-45
lines changed

include/mrdox/meta/Javadoc.hpp

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ struct Javadoc
115115
{
116116
Style style;
117117

118+
static constexpr Kind static_kind = Kind::styled;
119+
118120
auto operator<=>(StyledText const&
119121
) const noexcept = default;
120122

@@ -160,6 +162,8 @@ struct Javadoc
160162
*/
161163
struct Paragraph : Block
162164
{
165+
static constexpr Kind static_kind = Kind::paragraph;
166+
163167
auto operator<=>(Paragraph const&
164168
) const noexcept = default;
165169

@@ -182,6 +186,8 @@ struct Javadoc
182186
*/
183187
struct Brief : Paragraph
184188
{
189+
static constexpr Kind static_kind = Kind::brief;
190+
185191
auto operator<=>(Brief const&
186192
) const noexcept = default;
187193

@@ -216,6 +222,8 @@ struct Javadoc
216222
// VFALCO we can add a language (e.g. C++),
217223
// then emit attributes in the generator.
218224

225+
static constexpr Kind static_kind = Kind::code;
226+
219227
auto operator<=>(Code const&
220228
) const noexcept = default;
221229

@@ -231,6 +239,8 @@ struct Javadoc
231239
{
232240
String name;
233241

242+
static constexpr Kind static_kind = Kind::param;
243+
234244
auto operator<=>(Param const&
235245
) const noexcept = default;
236246

@@ -251,16 +261,13 @@ struct Javadoc
251261
{
252262
String name;
253263

264+
static constexpr Kind static_kind = Kind::tparam;
265+
254266
auto operator<=>(TParam const&
255267
) const noexcept = default;
256268

257-
TParam(
258-
String name_ = String(),
259-
Paragraph details_ = Paragraph())
260-
: Paragraph(
261-
Kind::tparam,
262-
std::move(details_.children))
263-
, name(std::move(name_))
269+
TParam()
270+
: Paragraph(Kind::tparam)
264271
{
265272
}
266273
};
@@ -269,6 +276,8 @@ struct Javadoc
269276
*/
270277
struct Returns : Paragraph
271278
{
279+
static constexpr Kind static_kind = Kind::returns;
280+
272281
auto operator<=>(Returns const&
273282
) const noexcept = default;
274283

@@ -415,7 +424,6 @@ struct Javadoc
415424
private:
416425
std::shared_ptr<Paragraph const> brief_;
417426
List<Block> blocks_;
418-
Returns returns_;
419427
};
420428

421429
} // mrdox

source/lib/ast/AnyNodeList.hpp

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,29 @@ setString(
275275
node.string = string.str();
276276
return llvm::Error::success();
277277
}
278+
else if constexpr(std::derived_from<T, Javadoc::Block>)
279+
{
280+
switch(list.back().kind)
281+
{
282+
case Javadoc::Kind::param:
283+
{
284+
auto& node = static_cast<Javadoc::Param&>(list.back());
285+
node.name = string.str();
286+
return llvm::Error::success();
287+
}
288+
case Javadoc::Kind::tparam:
289+
{
290+
auto& node = static_cast<Javadoc::TParam&>(list.back());
291+
node.name = string.str();
292+
return llvm::Error::success();
293+
}
294+
default:
295+
break;
296+
}
297+
}
298+
#if 0
299+
// VFALCO This was for when the top level Javadoc
300+
// has separate lists for Param and TParam
278301
else if constexpr(std::derived_from<T, Javadoc::Param>)
279302
{
280303
auto& node = static_cast<Javadoc::Param&>(list.back());
@@ -287,10 +310,8 @@ setString(
287310
node.name = string.str();
288311
return llvm::Error::success();
289312
}
290-
else
291-
{
292-
return makeError("string on wrong kind");
293-
}
313+
#endif
314+
return makeError("string on wrong kind");
294315
}
295316

296317
template<class T>

source/lib/ast/BitcodeIDs.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ enum BlockId
5858
BI_BASE_RECORD_BLOCK_ID,
5959
BI_FUNCTION_BLOCK_ID,
6060
BI_JAVADOC_BLOCK_ID,
61-
BI_JAVADOC_NODELIST_BLOCK_ID,
61+
BI_JAVADOC_LIST_BLOCK_ID,
6262
BI_JAVADOC_NODE_BLOCK_ID,
6363
BI_REFERENCE_BLOCK_ID,
6464
BI_TEMPLATE_BLOCK_ID,

source/lib/ast/BitcodeReader.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,7 @@ getInfos()
627627
case BI_FIELD_TYPE_BLOCK_ID:
628628
case BI_MEMBER_TYPE_BLOCK_ID:
629629
case BI_JAVADOC_BLOCK_ID:
630-
case BI_JAVADOC_NODELIST_BLOCK_ID:
630+
case BI_JAVADOC_LIST_BLOCK_ID:
631631
case BI_JAVADOC_NODE_BLOCK_ID:
632632
case BI_REFERENCE_BLOCK_ID:
633633
return makeError("invalid top level block");
@@ -793,7 +793,7 @@ readSubBlock(
793793
return llvm::Error::success();
794794
}
795795

796-
case BI_JAVADOC_NODELIST_BLOCK_ID:
796+
case BI_JAVADOC_LIST_BLOCK_ID:
797797
{
798798
AnyNodeList J(nodes_);
799799
if(auto err = readBlock(ID, &J))

source/lib/ast/BitcodeWriter.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ BlockIdNameMap = []()
158158
{BI_BASE_RECORD_BLOCK_ID, "BaseRecordBlock"},
159159
{BI_FUNCTION_BLOCK_ID, "FunctionBlock"},
160160
{BI_JAVADOC_BLOCK_ID, "JavadocBlock"},
161-
{BI_JAVADOC_NODELIST_BLOCK_ID, "JavadocNodeListBlock"},
161+
{BI_JAVADOC_LIST_BLOCK_ID, "JavadocListBlock"},
162162
{BI_JAVADOC_NODE_BLOCK_ID, "JavadocNodeBlock"},
163163
{BI_REFERENCE_BLOCK_ID, "ReferenceBlock"},
164164
{BI_TEMPLATE_BLOCK_ID, "TemplateBlock"},
@@ -254,7 +254,7 @@ RecordsByBlock{
254254
{BI_JAVADOC_BLOCK_ID,
255255
{}},
256256
// List<Javadoc::Node> Block
257-
{BI_JAVADOC_NODELIST_BLOCK_ID,
257+
{BI_JAVADOC_LIST_BLOCK_ID,
258258
{JAVADOC_LIST_KIND}},
259259
// Javadoc::Node Block
260260
{BI_JAVADOC_NODE_BLOCK_ID,
@@ -571,12 +571,11 @@ BitcodeWriter::
571571
emitBlock(
572572
Javadoc const& jd)
573573
{
574-
//dumpJavadoc(jd);
575-
StreamSubBlockGuard Block(Stream, BI_JAVADOC_BLOCK_ID);
576-
emitBlock(jd.getBlocks());
577-
//emitBlock(jd.getParams());
578-
//emitBlock(jd.getTParams());
579-
//emitBlock(jd.getReturns());
574+
if(! jd.empty())
575+
{
576+
StreamSubBlockGuard Block(Stream, BI_JAVADOC_BLOCK_ID);
577+
emitBlock(jd.getBlocks());
578+
}
580579
}
581580

582581
template<class T>
@@ -585,7 +584,7 @@ BitcodeWriter::
585584
emitBlock(
586585
List<T> const& list)
587586
{
588-
StreamSubBlockGuard Block(Stream, BI_JAVADOC_NODELIST_BLOCK_ID);
587+
StreamSubBlockGuard Block(Stream, BI_JAVADOC_LIST_BLOCK_ID);
589588
emitRecord(T::static_kind, JAVADOC_LIST_KIND);
590589
for(Javadoc::Node const& node : list)
591590
emitBlock(node);

source/lib/ast/ParseJavadoc.cpp

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,10 @@ class JavadocVisitor
282282
}
283283
if(cmd->IsReturnsCommand)
284284
{
285-
Scope scope(returns_, para_);
285+
Javadoc::Returns returns;
286+
Scope scope(returns, para_);
286287
visitChildren(C->getParagraph());
288+
Javadoc::append(blocks_, std::move(returns));
287289
return;
288290
}
289291
if(cmd->getID() == CommandTraits::KCI_note)
@@ -307,40 +309,36 @@ class JavadocVisitor
307309
void visitParamCommandComment(
308310
ParamCommandComment const* C)
309311
{
310-
Javadoc::String name;
311-
Javadoc::Paragraph para;
312+
Javadoc::Param param;
312313
if(C->hasParamName())
313-
name = ensureUTF8(C->getParamNameAsWritten().str());
314+
param.name = ensureUTF8(C->getParamNameAsWritten().str());
314315
else
315-
name = "@anon";
316-
Scope scope(para, para_);
316+
param.name = "@anon";
317+
Scope scope(param, para_);
317318
//if(C->hasNonWhitespaceParagraph())
318319
visitChildren(C->getParagraph());
319-
params_.emplace_back(Javadoc::Param(
320-
std::move(name), std::move(para)));
320+
Javadoc::append(blocks_, std::move(param));
321321
}
322322

323323
void visitTParamCommandComment(
324324
TParamCommandComment const* C)
325325
{
326-
Javadoc::String name;
327-
Javadoc::Paragraph para;
326+
Javadoc::TParam tparam;
328327
if(C->hasParamName())
329-
name = ensureUTF8(C->getParamNameAsWritten().str());
328+
tparam.name = ensureUTF8(C->getParamNameAsWritten().str());
330329
else
331-
name = "@anon";
332-
Scope scope(para, para_);
330+
tparam.name = "@anon";
331+
Scope scope(tparam, para_);
333332
//if(C->hasNonWhitespaceParagraph())
334333
visitChildren(C->getParagraph());
335-
tparams_.emplace_back(Javadoc::TParam(
336-
std::move(name), std::move(para)));
334+
Javadoc::append(blocks_, std::move(tparam));
337335
}
338336

339337
void visitVerbatimBlockComment(
340338
VerbatimBlockComment const* C)
341339
{
342340
Javadoc::Code code;
343-
Scope scope(code, code_);
341+
Scope scope(code, para_);
344342
//if(C->hasNonWhitespaceParagraph())
345343
visitChildren(C);
346344
Javadoc::append(blocks_, std::move(code));
@@ -356,7 +354,7 @@ class JavadocVisitor
356354
void visitVerbatimBlockLineComment(
357355
VerbatimBlockLineComment const* C)
358356
{
359-
Javadoc::append(*code_,
357+
Javadoc::append(*para_,
360358
Javadoc::Text(C->getText().str()));
361359
}
362360

@@ -365,10 +363,7 @@ class JavadocVisitor
365363
ASTContext const& ctx_;
366364
List<Javadoc::Block> blocks_;
367365
List<Javadoc::Param> params_;
368-
List<Javadoc::TParam> tparams_;
369-
Javadoc::Returns returns_;
370366
Javadoc::Paragraph* para_ = nullptr;
371-
Javadoc::Code* code_ = nullptr;
372367
llvm::raw_string_ostream* os_ = nullptr;
373368
};
374369

source/lib/format/asciidoc/Asciidoc.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ struct CorpusVisitor
2727
{
2828
Corpus const& corpus_;
2929

30+
virtual ~CorpusVisitor() = default;
31+
3032
explicit
3133
CorpusVisitor(
3234
Corpus const& corpus) noexcept

source/lib/format/xml/XML.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,6 @@ Writer::
763763
toString(
764764
Javadoc::Style style) noexcept
765765
{
766-
llvm::StringRef s;
767766
switch(style)
768767
{
769768
case Javadoc::Style::bold: return "bold";

tests/decls/record-1.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
<para>
4747
<text> </text>
4848
</para>
49+
<returns>
50+
<text> the number 2</text>
51+
</returns>
4952
</doc>
5053
</function>
5154
<function name="g3" access="protected" id="DKxv4h+rP37b0u6O1qbB+u416ZY=">
@@ -59,6 +62,13 @@
5962
<para>
6063
<text> </text>
6164
</para>
65+
<returns>
66+
<text> the separator</text>
67+
<text> </text>
68+
</returns>
69+
<param name="x">
70+
<text> any old number</text>
71+
</param>
6272
</doc>
6373
</function>
6474
<typedef name="U1" id="6UtddyCJy89K/bZpTmDb5jVXwAY=">

0 commit comments

Comments
 (0)