summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Tooling/Syntax/BuildTree.cpp10
-rw-r--r--clang/lib/Tooling/Syntax/Nodes.cpp6
-rw-r--r--clang/lib/Tooling/Syntax/Tree.cpp16
3 files changed, 20 insertions, 12 deletions
diff --git a/clang/lib/Tooling/Syntax/BuildTree.cpp b/clang/lib/Tooling/Syntax/BuildTree.cpp
index dc682ff677f..03c439c59e3 100644
--- a/clang/lib/Tooling/Syntax/BuildTree.cpp
+++ b/clang/lib/Tooling/Syntax/BuildTree.cpp
@@ -170,7 +170,7 @@ private:
/// A with a role that should be assigned to it when adding to a parent.
struct NodeAndRole {
explicit NodeAndRole(syntax::Node *Node)
- : Node(Node), Role(NodeRoleUnknown) {}
+ : Node(Node), Role(NodeRole::Unknown) {}
syntax::Node *Node;
NodeRole Role;
@@ -221,10 +221,12 @@ public:
}
bool WalkUpFromCompoundStmt(CompoundStmt *S) {
- using Roles = syntax::CompoundStatement::Roles;
+ using NodeRole = syntax::NodeRole;
- Builder.markChildToken(S->getLBracLoc(), tok::l_brace, Roles::lbrace);
- Builder.markChildToken(S->getRBracLoc(), tok::r_brace, Roles::rbrace);
+ Builder.markChildToken(S->getLBracLoc(), tok::l_brace,
+ NodeRole::CompoundStatement_lbrace);
+ Builder.markChildToken(S->getRBracLoc(), tok::r_brace,
+ NodeRole::CompoundStatement_rbrace);
Builder.foldNode(Builder.getRange(S),
new (allocator()) syntax::CompoundStatement);
diff --git a/clang/lib/Tooling/Syntax/Nodes.cpp b/clang/lib/Tooling/Syntax/Nodes.cpp
index 5dd793ccc2d..061ed73bbeb 100644
--- a/clang/lib/Tooling/Syntax/Nodes.cpp
+++ b/clang/lib/Tooling/Syntax/Nodes.cpp
@@ -25,9 +25,11 @@ llvm::raw_ostream &syntax::operator<<(llvm::raw_ostream &OS, NodeKind K) {
}
syntax::Leaf *syntax::CompoundStatement::lbrace() {
- return llvm::cast_or_null<syntax::Leaf>(findChild(Roles::lbrace));
+ return llvm::cast_or_null<syntax::Leaf>(
+ findChild(NodeRole::CompoundStatement_lbrace));
}
syntax::Leaf *syntax::CompoundStatement::rbrace() {
- return llvm::cast_or_null<syntax::Leaf>(findChild(Roles::rbrace));
+ return llvm::cast_or_null<syntax::Leaf>(
+ findChild(NodeRole::CompoundStatement_rbrace));
}
diff --git a/clang/lib/Tooling/Syntax/Tree.cpp b/clang/lib/Tooling/Syntax/Tree.cpp
index fb7645786c5..1549b6724fa 100644
--- a/clang/lib/Tooling/Syntax/Tree.cpp
+++ b/clang/lib/Tooling/Syntax/Tree.cpp
@@ -38,17 +38,21 @@ bool syntax::Leaf::classof(const Node *N) {
return N->kind() == NodeKind::Leaf;
}
+syntax::Node::Node(NodeKind Kind)
+ : Parent(nullptr), NextSibling(nullptr), Kind(static_cast<unsigned>(Kind)),
+ Role(static_cast<unsigned>(NodeRole::Detached)) {}
+
bool syntax::Tree::classof(const Node *N) { return N->kind() > NodeKind::Leaf; }
void syntax::Tree::prependChildLowLevel(Node *Child, NodeRole Role) {
assert(Child->Parent == nullptr);
assert(Child->NextSibling == nullptr);
- assert(Child->Role == NodeRoleDetached);
- assert(Role != NodeRoleDetached);
+ assert(Child->role() == NodeRole::Detached);
+ assert(Role != NodeRole::Detached);
Child->Parent = this;
Child->NextSibling = this->FirstChild;
- Child->Role = Role;
+ Child->Role = static_cast<unsigned>(Role);
this->FirstChild = Child;
}
@@ -81,9 +85,9 @@ static void dumpTokens(llvm::raw_ostream &OS, ArrayRef<syntax::Token> Tokens,
static void dumpTree(llvm::raw_ostream &OS, const syntax::Node *N,
const syntax::Arena &A, std::vector<bool> IndentMask) {
- if (N->role() != syntax::NodeRoleUnknown) {
+ if (N->role() != syntax::NodeRole::Unknown) {
// FIXME: print the symbolic name of a role.
- if (N->role() == syntax::NodeRoleDetached)
+ if (N->role() == syntax::NodeRole::Detached)
OS << "*: ";
else
OS << static_cast<int>(N->role()) << ": ";
@@ -138,7 +142,7 @@ std::string syntax::Node::dumpTokens(const Arena &A) const {
syntax::Node *syntax::Tree::findChild(NodeRole R) {
for (auto *C = FirstChild; C; C = C->nextSibling()) {
- if (C->Role == R)
+ if (C->role() == R)
return C;
}
return nullptr;
OpenPOWER on IntegriCloud