mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[test] libSyntax: add a flag to swift-syntax-test to print trivial node kinds.
These trivial node kinds include node collections like stmtlist and unknown syntax like UnknownExpr.
This commit is contained in:
@@ -188,6 +188,7 @@ enum class SourcePresence {
|
|||||||
struct SyntaxPrintOptions {
|
struct SyntaxPrintOptions {
|
||||||
bool Visual = false;
|
bool Visual = false;
|
||||||
bool PrintSyntaxKind = false;
|
bool PrintSyntaxKind = false;
|
||||||
|
bool PrintTrivialNodeKind = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// RawSyntax - the strictly immutable, shared backing nodes for all syntax.
|
/// RawSyntax - the strictly immutable, shared backing nodes for all syntax.
|
||||||
|
|||||||
@@ -57,7 +57,8 @@ void RawSyntax::print(llvm::raw_ostream &OS, SyntaxPrintOptions Opts) const {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
const bool PrintKind = Opts.PrintSyntaxKind && !isToken() &&
|
const bool PrintKind = Opts.PrintSyntaxKind && !isToken() &&
|
||||||
!isTrivialSyntaxKind(Kind);
|
(Opts.PrintTrivialNodeKind || !isTrivialSyntaxKind(Kind));
|
||||||
|
|
||||||
if (PrintKind) {
|
if (PrintKind) {
|
||||||
printSyntaxKind(Kind, OS, Opts, true);
|
printSyntaxKind(Kind, OS, Opts, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,6 +83,13 @@ PrintNodeKind("print-node-kind",
|
|||||||
llvm::cl::desc("To print syntax node kind"),
|
llvm::cl::desc("To print syntax node kind"),
|
||||||
llvm::cl::cat(Category),
|
llvm::cl::cat(Category),
|
||||||
llvm::cl::init(false));
|
llvm::cl::init(false));
|
||||||
|
|
||||||
|
static llvm::cl::opt<bool>
|
||||||
|
PrintTrivialNodeKind("print-trivial-node-kind",
|
||||||
|
llvm::cl::desc("To print trivial syntax node kind"),
|
||||||
|
llvm::cl::cat(Category),
|
||||||
|
llvm::cl::init(false));
|
||||||
|
|
||||||
static llvm::cl::opt<bool>
|
static llvm::cl::opt<bool>
|
||||||
Visual("v",
|
Visual("v",
|
||||||
llvm::cl::desc("Print visually"),
|
llvm::cl::desc("Print visually"),
|
||||||
@@ -227,6 +234,7 @@ int dumpParserGen(const char *MainExecutablePath,
|
|||||||
SyntaxPrintOptions Opts;
|
SyntaxPrintOptions Opts;
|
||||||
Opts.PrintSyntaxKind = options::PrintNodeKind;
|
Opts.PrintSyntaxKind = options::PrintNodeKind;
|
||||||
Opts.Visual = options::Visual;
|
Opts.Visual = options::Visual;
|
||||||
|
Opts.PrintTrivialNodeKind = options::PrintTrivialNodeKind;
|
||||||
SF->getSyntaxRoot().print(llvm::outs(), Opts);
|
SF->getSyntaxRoot().print(llvm::outs(), Opts);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user