|
clang 22.0.0git
|
An abstract node for C++ statements, e.g. More...
#include "clang/Tooling/Syntax/Nodes.h"
Public Member Functions | |
| Statement (NodeKind K) | |
| Public Member Functions inherited from clang::syntax::Tree | |
| Node * | getFirstChild () |
| const Node * | getFirstChild () const |
| Node * | getLastChild () |
| const Node * | getLastChild () const |
| const Leaf * | findFirstLeaf () const |
| Leaf * | findFirstLeaf () |
| const Leaf * | findLastLeaf () const |
| Leaf * | findLastLeaf () |
| llvm::iterator_range< ChildIterator > | getChildren () |
| llvm::iterator_range< ConstChildIterator > | getChildren () const |
| const Node * | findChild (NodeRole R) const |
| Find the first node with a corresponding role. | |
| Node * | findChild (NodeRole R) |
| Public Member Functions inherited from clang::syntax::Node | |
| Node (const Node &)=delete | |
| Nodes cannot simply be copied without violating tree invariants. | |
| Node & | operator= (const Node &)=delete |
| Node (Node &&)=delete | |
| Idiomatically, nodes are allocated on an Arena and never moved. | |
| Node & | operator= (Node &&)=delete |
| NodeKind | getKind () const |
| NodeRole | getRole () const |
| bool | isDetached () const |
| Whether the node is detached from a tree, i.e. does not have a parent. | |
| 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. | |
| 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. | |
| const Tree * | getParent () const |
| Tree * | getParent () |
| const Node * | getNextSibling () const |
| Node * | getNextSibling () |
| const Node * | getPreviousSibling () const |
| Node * | getPreviousSibling () |
| std::string | dump (const TokenManager &SM) const |
| Dumps the structure of a subtree. For debugging and testing purposes. | |
| std::string | dumpTokens (const TokenManager &SM) const |
| Dumps the tokens forming this subtree. | |
| void | assertInvariants () const |
| Asserts invariants on this node of the tree and its immediate children. | |
| void | assertInvariantsRecursive () const |
| Runs checkInvariants on all nodes in the subtree. No-op if NDEBUG is set. | |
Static Public Member Functions | |
| static bool | classof (const Node *N) |
| Static Public Member Functions inherited from clang::syntax::Tree | |
| static bool | classof (const Node *N) |
Additional Inherited Members | |
| Protected Member Functions inherited from clang::syntax::Tree | |
| 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. | |
| Node (const Node &)=delete | |
| Nodes cannot simply be copied without violating tree invariants. | |
| Node (Node &&)=delete | |
| Idiomatically, nodes are allocated on an Arena and never moved. | |
| Protected Member Functions inherited from clang::syntax::Node | |
| 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. | |
| ~Node ()=default | |
| Nodes are allocated on Arenas; the destructor is never called. | |
An abstract node for C++ statements, e.g.
'while', 'if', etc. FIXME: add accessors for semicolon of statements that have it.
|
inline |
Definition at line 211 of file Nodes.h.
Referenced by clang::syntax::BreakStatement::BreakStatement(), clang::syntax::CaseStatement::CaseStatement(), clang::syntax::CaseStatement::classof(), clang::syntax::DefaultStatement::classof(), clang::syntax::ForStatement::classof(), clang::syntax::IfStatement::classof(), clang::syntax::RangeBasedForStatement::classof(), clang::syntax::SwitchStatement::classof(), clang::syntax::WhileStatement::classof(), clang::syntax::CompoundStatement::CompoundStatement(), clang::syntax::ContinueStatement::ContinueStatement(), clang::syntax::DeclarationStatement::DeclarationStatement(), clang::syntax::DefaultStatement::DefaultStatement(), clang::syntax::EmptyStatement::EmptyStatement(), clang::syntax::ExpressionStatement::ExpressionStatement(), clang::syntax::ForStatement::ForStatement(), clang::syntax::IfStatement::IfStatement(), clang::syntax::RangeBasedForStatement::RangeBasedForStatement(), clang::syntax::ReturnStatement::ReturnStatement(), clang::syntax::SwitchStatement::SwitchStatement(), clang::syntax::UnknownStatement::UnknownStatement(), and clang::syntax::WhileStatement::WhileStatement().
References clang::syntax::Tree::Node().