clang
10.0.0git
|
A node that has children and represents a syntactic language construct. More...
#include "clang/Tooling/Syntax/Tree.h"
Public Member Functions | |
Node * | firstChild () |
const Node * | firstChild () const |
Leaf * | firstLeaf () |
const Leaf * | firstLeaf () const |
Leaf * | lastLeaf () |
const Leaf * | lastLeaf () const |
![]() | |
Node (NodeKind Kind) | |
Newly created nodes are detached from a tree, parent and sibling links are set when the node is added as a child to another one. More... | |
NodeKind | kind () const |
NodeRole | role () const |
bool | isDetached () const |
Whether the node is detached from a tree, i.e. does not have a parent. More... | |
bool | isOriginal () const |
Whether the node was created from the AST backed by the source code rather than added later through mutation APIs or created with factory functions. More... | |
bool | canModify () const |
If this function return false, the tree cannot be modified because there is no reasonable way to produce the corresponding textual replacements. More... | |
const Tree * | parent () const |
Tree * | parent () |
const Node * | nextSibling () const |
Node * | nextSibling () |
std::string | dump (const Arena &A) const |
Dumps the structure of a subtree. For debugging and testing purposes. More... | |
std::string | dumpTokens (const Arena &A) const |
Dumps the tokens forming this subtree. More... | |
void | assertInvariants () const |
Asserts invariants on this node of the tree and its immediate children. More... | |
void | assertInvariantsRecursive () const |
Runs checkInvariants on all nodes in the subtree. No-op if NDEBUG is set. More... | |
Static Public Member Functions | |
static bool | classof (const Node *N) |
Protected Member Functions | |
syntax::Node * | findChild (NodeRole R) |
Find the first node with a corresponding role. More... | |
Friends | |
class | TreeBuilder |
class | FactoryImpl |
class | MutationsImpl |
A node that has children and represents a syntactic language construct.
Definition at line 66 of file Tree.cpp.
References clang::syntax::Detached, End, clang::syntax::Node::kind(), clang::syntax::Leaf, clang::syntax::Node::nextSibling(), and clang::syntax::Node::role().
|
protected |
Find the first node with a corresponding role.
Definition at line 255 of file Tree.cpp.
Referenced by clang::syntax::SwitchStatement::body(), clang::syntax::CaseStatement::body(), clang::syntax::DefaultStatement::body(), clang::syntax::ForStatement::body(), clang::syntax::WhileStatement::body(), clang::syntax::RangeBasedForStatement::body(), clang::syntax::BreakStatement::breakKeyword(), clang::syntax::CaseStatement::caseKeyword(), clang::syntax::StaticAssertDeclaration::condition(), clang::syntax::ContinueStatement::continueKeyword(), clang::syntax::DefaultStatement::defaultKeyword(), clang::syntax::IfStatement::elseKeyword(), clang::syntax::IfStatement::elseStatement(), clang::syntax::ExpressionStatement::expression(), clang::syntax::ForStatement::forKeyword(), clang::syntax::RangeBasedForStatement::forKeyword(), clang::syntax::IfStatement::ifKeyword(), clang::syntax::CompoundStatement::lbrace(), clang::syntax::StaticAssertDeclaration::message(), clang::syntax::CompoundStatement::rbrace(), clang::syntax::ReturnStatement::returnKeyword(), clang::syntax::SwitchStatement::switchKeyword(), clang::syntax::IfStatement::thenStatement(), clang::syntax::CaseStatement::value(), clang::syntax::ReturnStatement::value(), and clang::syntax::WhileStatement::whileKeyword().
|
inline |
Definition at line 155 of file Tree.h.
Referenced by clang::syntax::MutationsImpl::remove(), and clang::syntax::CompoundStatement::statements().
syntax::Leaf * syntax::Tree::firstLeaf | ( | ) |
syntax::Leaf * syntax::Tree::lastLeaf | ( | ) |
|
inline |
|
friend |
|
friend |