clang  12.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::syntax::NestedNameSpecifier Class Referencefinal

Models a nested-name-specifier. More...

#include "clang/Tooling/Syntax/Nodes.h"

Inheritance diagram for clang::syntax::NestedNameSpecifier:
Inheritance graph
[legend]
Collaboration diagram for clang::syntax::NestedNameSpecifier:
Collaboration graph
[legend]

Public Member Functions

 NestedNameSpecifier ()
 
std::vector< NameSpecifier * > getSpecifiers ()
 
std::vector< List::ElementAndDelimiter< syntax::NameSpecifier > > getSpecifiersAndDoubleColons ()
 
- Public Member Functions inherited from clang::syntax::List
std::vector< ElementAndDelimiter< Node > > getElementsAsNodesAndDelimiters ()
 Returns the elements and corresponding delimiters. More...
 
std::vector< Node * > getElementsAsNodes ()
 Returns the elements of the list. More...
 
clang::tok::TokenKind getDelimiterTokenKind () const
 Returns the appropriate delimiter for this list. More...
 
TerminationKind getTerminationKind () const
 
bool canBeEmpty () const
 Whether this list can be empty in syntactically and semantically correct code. More...
 
- Public Member Functions inherited from clang::syntax::Tree
NodegetFirstChild ()
 
const NodegetFirstChild () const
 
NodegetLastChild ()
 
const NodegetLastChild () const
 
const LeaffindFirstLeaf () const
 
LeaffindFirstLeaf ()
 
const LeaffindLastLeaf () const
 
LeaffindLastLeaf ()
 
llvm::iterator_range< ChildIteratorgetChildren ()
 
llvm::iterator_range< ConstChildIteratorgetChildren () const
 
const NodefindChild (NodeRole R) const
 Find the first node with a corresponding role. More...
 
NodefindChild (NodeRole R)
 
- Public Member Functions inherited from clang::syntax::Node
 Node (const Node &)=delete
 Nodes cannot simply be copied without violating tree invariants. More...
 
Nodeoperator= (const Node &)=delete
 
 Node (Node &&)=delete
 Idiomatically, nodes are allocated on an Arena and never moved. More...
 
Nodeoperator= (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. 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 TreegetParent () const
 
TreegetParent ()
 
const NodegetNextSibling () const
 
NodegetNextSibling ()
 
const NodegetPreviousSibling () const
 
NodegetPreviousSibling ()
 
std::string dump (const SourceManager &SM) const
 Dumps the structure of a subtree. For debugging and testing purposes. More...
 
std::string dumpTokens (const SourceManager &SM) 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)
 
- Static Public Member Functions inherited from clang::syntax::List
static bool classof (const Node *N)
 
- Static Public Member Functions inherited from clang::syntax::Tree
static bool classof (const Node *N)
 

Additional Inherited Members

- Public Types inherited from clang::syntax::List
enum  TerminationKind { TerminationKind::Terminated, TerminationKind::MaybeTerminated, TerminationKind::Separated }
 
- 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. More...
 
 ~Node ()=default
 Nodes are allocated on Arenas; the destructor is never called. More...
 

Detailed Description

Models a nested-name-specifier.

C++ [expr.prim.id.qual] e.g. the std::vector<int>:: in std::vector<int>::size.

Definition at line 121 of file Nodes.h.

Constructor & Destructor Documentation

◆ NestedNameSpecifier()

clang::syntax::NestedNameSpecifier::NestedNameSpecifier ( )
inline

Definition at line 123 of file Nodes.h.

References clang::classof().

Member Function Documentation

◆ classof()

static bool clang::syntax::NestedNameSpecifier::classof ( const Node N)
static

◆ getSpecifiers()

std::vector< syntax::NameSpecifier * > syntax::NestedNameSpecifier::getSpecifiers ( )

Definition at line 110 of file Nodes.cpp.

References clang::syntax::List::getElementsAsNodes().

◆ getSpecifiersAndDoubleColons()

std::vector< syntax::List::ElementAndDelimiter< syntax::NameSpecifier > > syntax::NestedNameSpecifier::getSpecifiersAndDoubleColons ( )

Definition at line 120 of file Nodes.cpp.

References clang::syntax::List::getElementsAsNodesAndDelimiters().


The documentation for this class was generated from the following files: