A helper class for constructing the syntax tree while traversing a clang AST. More...
TreeBuilder (syntax::Arena &Arena, TokenBufferTokenManager &TBTM) llvm::BumpPtrAllocator & allocator () const SourceManager & sourceManager () const void foldNode (ArrayRef< syntax::Token > Range, syntax::Tree *New, ASTPtr From) Populate children forNew
node, assuming it covers tokens from Range
.
New
list, assuming it covers tokens from a subrange of SuperRange
.
D
.
Child
node with a corresponding Role
.
Loc
.
T
.
N
.
N
.
N
.
L
. The token must exist if L
is valid.
SourceRange
.
D
is the last declarator in a chain and is thus reponsible for creating SimpleDeclaration for the whole chain.
A helper class for constructing the syntax tree while traversing a clang AST.
At each point of the traversal we maintain a list of pending nodes. Initially all tokens are added as pending nodes. When processing a clang AST node, the clients need to:
Note that all children are expected to be processed when building a node.
Call finalize() to finish building the tree and consume the root node.
Definition at line 367 of file BuildTree.cpp.
◆ TreeBuilder() ◆ allocator() llvm::BumpPtrAllocator & clang::syntax::TreeBuilder::allocator ( ) inline ◆ finalize() syntax::TranslationUnit * clang::syntax::TreeBuilder::finalize ( ) && inline ◆ findToken() ◆ foldList() ◆ foldNode() [1/3] ◆ foldNode() [2/3] ◆ foldNode() [3/3] ◆ getDeclarationRange() ◆ getExprRange() ◆ getRange() [1/2] ◆ getRange() [2/2] ◆ getStmtRange() ◆ getTemplateRange() ◆ isResponsibleForCreatingDeclaration() bool clang::syntax::TreeBuilder::isResponsibleForCreatingDeclaration ( const Decl * D ) const inline ◆ markChild() [1/3] void clang::syntax::TreeBuilder::markChild ( ASTPtr N, NodeRole R )Set role for the syntax node matching N
.
Definition at line 1706 of file BuildTree.cpp.
◆ markChild() [2/3]Set role for the syntax node matching N
.
Definition at line 1711 of file BuildTree.cpp.
◆ markChild() [3/3] ◆ markChildToken() [1/2] ◆ markChildToken() [2/2] ◆ markExprChild() void clang::syntax::TreeBuilder::markExprChild ( Expr * Child, NodeRole Role )Should be called for expressions in non-statement position to avoid wrapping into expression statement.
Definition at line 1736 of file BuildTree.cpp.
References IgnoreImplicit().
◆ markStmtChild() void clang::syntax::TreeBuilder::markStmtChild ( Stmt * Child, NodeRole Role ) ◆ noticeDeclWithoutSemicolon() void clang::syntax::TreeBuilder::noticeDeclWithoutSemicolon ( Decl * D )Notifies that we should not consume trailing semicolon when computing token range of D
.
Definition at line 1685 of file BuildTree.cpp.
References D.
◆ sourceManager() const SourceManager & clang::syntax::TreeBuilder::sourceManager ( ) const inlineThe documentation for this class was generated from the following file:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4