clang 20.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
Nodes.h File Reference
#include "clang/Basic/LLVM.h"
#include "clang/Tooling/Syntax/Tree.h"
#include "clang/Tooling/Syntax/Nodes.inc"
#include "clang/Tooling/Syntax/NodeClasses.inc"

Go to the source code of this file.

Classes

class  clang::syntax::NestedNameSpecifier
 Models a nested-name-specifier. More...
 
class  clang::syntax::UnqualifiedId
 Models an unqualified-id. More...
 
class  clang::syntax::UnknownExpression
 An expression of an unknown kind, i.e. More...
 
class  clang::syntax::CallArguments
 Models arguments of a function call. More...
 
class  clang::syntax::UnaryOperatorExpression
 An abstract class for prefix and postfix unary operators. More...
 
class  clang::syntax::PrefixUnaryOperatorExpression
 <operator> <operand> More...
 
class  clang::syntax::PostfixUnaryOperatorExpression
 <operand> <operator> More...
 
class  clang::syntax::BinaryOperatorExpression
 <lhs> <operator> <rhs> More...
 
class  clang::syntax::Statement
 An abstract node for C++ statements, e.g. More...
 
class  clang::syntax::UnknownStatement
 A statement of an unknown kind, i.e. More...
 
class  clang::syntax::DeclarationStatement
 E.g. 'int a, b = 10;'. More...
 
class  clang::syntax::EmptyStatement
 The no-op statement, i.e. ';'. More...
 
class  clang::syntax::SwitchStatement
 switch (<cond>) <body> More...
 
class  clang::syntax::CaseStatement
 case : <body> More...
 
class  clang::syntax::DefaultStatement
 default: <body> More...
 
class  clang::syntax::IfStatement
 if (cond) <then-statement> else <else-statement> FIXME: add condition that models 'expression or variable declaration' More...
 
class  clang::syntax::ForStatement
 for (<init>; <cond>; <increment>) <body> More...
 
class  clang::syntax::WhileStatement
 while (<cond>) <body> More...
 
class  clang::syntax::ContinueStatement
 continue; More...
 
class  clang::syntax::BreakStatement
 break; More...
 
class  clang::syntax::ReturnStatement
 return <expr>; return; More...
 
class  clang::syntax::RangeBasedForStatement
 for (<decl> : <init>) <body> More...
 
class  clang::syntax::ExpressionStatement
 Expression in a statement position, e.g. More...
 
class  clang::syntax::CompoundStatement
 { statement1; statement2; … } More...
 
class  clang::syntax::Declaration
 A declaration that can appear at the top-level. More...
 
class  clang::syntax::UnknownDeclaration
 Declaration of an unknown kind, e.g. not yet supported in syntax trees. More...
 
class  clang::syntax::EmptyDeclaration
 A semicolon in the top-level context. Does not declare anything. More...
 
class  clang::syntax::StaticAssertDeclaration
 static_assert(<condition>, <message>) static_assert(<condition>) More...
 
class  clang::syntax::LinkageSpecificationDeclaration
 extern <string-literal> declaration extern <string-literal> { <decls> } More...
 
class  clang::syntax::DeclaratorList
 
class  clang::syntax::SimpleDeclaration
 Groups multiple declarators (e.g. More...
 
class  clang::syntax::TemplateDeclaration
 template <template-parameters> <declaration> More...
 
class  clang::syntax::ExplicitTemplateInstantiation
 template <declaration> Examples: template struct X<int> template void foo<int>() template int var<double> More...
 
class  clang::syntax::NamespaceDefinition
 namespace <name> { <decls> } More...
 
class  clang::syntax::NamespaceAliasDefinition
 namespace <name> = <namespace-reference> More...
 
class  clang::syntax::UsingNamespaceDirective
 using namespace <name> More...
 
class  clang::syntax::UsingDeclaration
 using <scope>::<name> using typename <scope>::<name> More...
 
class  clang::syntax::TypeAliasDeclaration
 using <name> = <type> More...
 
class  clang::syntax::Declarator
 Covers a name, an initializer and a part of the type outside declaration specifiers. More...
 
class  clang::syntax::SimpleDeclarator
 A top-level declarator without parentheses. More...
 
class  clang::syntax::ParenDeclarator
 Declarator inside parentheses. More...
 
class  clang::syntax::ArraySubscript
 Array size specified inside a declarator. More...
 
class  clang::syntax::TrailingReturnType
 Trailing return type after the parameter list, including the arrow token. More...
 
class  clang::syntax::ParameterDeclarationList
 Models a parameter-declaration-list which appears within parameters-and-qualifiers. More...
 
class  clang::syntax::ParametersAndQualifiers
 Parameter list for a function type and a trailing return type, if the function has one. More...
 
class  clang::syntax::MemberPointer
 Member pointer inside a declarator E.g. More...
 

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::syntax
 

Macros

#define CONCRETE_NODE(Kind, Base)   Kind,
 
#define CONCRETE_NODE(Kind, Base)
 
#define ABSTRACT_NODE(Kind, Base, First, Last)
 

Enumerations

enum class  clang::syntax::NodeKind : uint16_t { clang::syntax::CONCRETE_NODE }
 A kind of a syntax node, used for implementing casts. More...
 
enum class  clang::syntax::NodeRole : uint8_t {
  clang::syntax::Detached , clang::syntax::Unknown , clang::syntax::OpenParen , clang::syntax::CloseParen ,
  clang::syntax::IntroducerKeyword , clang::syntax::LiteralToken , clang::syntax::ArrowToken , clang::syntax::ExternKeyword ,
  clang::syntax::TemplateKeyword , clang::syntax::BodyStatement , clang::syntax::ListElement , clang::syntax::ListDelimiter ,
  clang::syntax::OperatorToken , clang::syntax::Operand , clang::syntax::LeftHandSide , clang::syntax::RightHandSide ,
  clang::syntax::ReturnValue , clang::syntax::CaseValue , clang::syntax::ThenStatement , clang::syntax::ElseKeyword ,
  clang::syntax::ElseStatement , clang::syntax::Expression , clang::syntax::Statement , clang::syntax::Condition ,
  clang::syntax::Message , clang::syntax::Declarator , clang::syntax::Declaration , clang::syntax::Size ,
  clang::syntax::Parameters , clang::syntax::TrailingReturn , clang::syntax::UnqualifiedId , clang::syntax::Qualifier ,
  clang::syntax::SubExpression , clang::syntax::Object , clang::syntax::AccessToken , clang::syntax::Member ,
  clang::syntax::Callee , clang::syntax::Arguments , clang::syntax::Declarators
}
 A relation between a parent and child node, e.g. More...
 

Functions

raw_ostream & clang::syntax::operator<< (raw_ostream &OS, NodeKind K)
 For debugging purposes.
 
raw_ostream & clang::syntax::operator<< (raw_ostream &OS, NodeRole R)
 For debugging purposes.
 

Macro Definition Documentation

◆ ABSTRACT_NODE

#define ABSTRACT_NODE (   Kind,
  Base,
  First,
  Last 
)
Value:
inline bool Kind::classof(const Node *N) { \
return N->getKind() >= NodeKind::First && N->getKind() <= NodeKind::Last; \
}
DynTypedNode Node

Definition at line 582 of file Nodes.h.

◆ CONCRETE_NODE [1/2]

#define CONCRETE_NODE (   Kind,
  Base 
)    Kind,

Definition at line 578 of file Nodes.h.

◆ CONCRETE_NODE [2/2]

#define CONCRETE_NODE (   Kind,
  Base 
)
Value:
inline bool Kind::classof(const Node *N) { \
return N->getKind() == NodeKind::Kind; \
}

Definition at line 578 of file Nodes.h.