clang  10.0.0git
Classes | Namespaces | Enumerations | Functions
Nodes.h File Reference
#include "clang/Basic/TokenKinds.h"
#include "clang/Lex/Token.h"
#include "clang/Tooling/Syntax/Tokens.h"
#include "clang/Tooling/Syntax/Tree.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for Nodes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  clang::syntax::TranslationUnit
 A root node for a translation unit. Parent is always null. More...
 
class  clang::syntax::Expression
 A base class for all expressions. More...
 
class  clang::syntax::UnknownExpression
 An expression of an unknown kind, i.e. 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::SimpleDeclaration
 Groups multiple declarators (e.g. 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...
 

Namespaces

 clang
 Dataflow Directional Tag Classes.
 
 clang::syntax
 

Enumerations

enum  clang::syntax::NodeKind : uint16_t {
  clang::syntax::NodeKind::Leaf, clang::syntax::NodeKind::TranslationUnit, clang::syntax::NodeKind::UnknownExpression, clang::syntax::NodeKind::UnknownStatement,
  clang::syntax::NodeKind::DeclarationStatement, clang::syntax::NodeKind::EmptyStatement, clang::syntax::NodeKind::SwitchStatement, clang::syntax::NodeKind::CaseStatement,
  clang::syntax::NodeKind::DefaultStatement, clang::syntax::NodeKind::IfStatement, clang::syntax::NodeKind::ForStatement, clang::syntax::NodeKind::WhileStatement,
  clang::syntax::NodeKind::ContinueStatement, clang::syntax::NodeKind::BreakStatement, clang::syntax::NodeKind::ReturnStatement, clang::syntax::NodeKind::RangeBasedForStatement,
  clang::syntax::NodeKind::ExpressionStatement, clang::syntax::NodeKind::CompoundStatement, clang::syntax::NodeKind::UnknownDeclaration, clang::syntax::NodeKind::EmptyDeclaration,
  clang::syntax::NodeKind::StaticAssertDeclaration, clang::syntax::NodeKind::LinkageSpecificationDeclaration, clang::syntax::NodeKind::SimpleDeclaration, clang::syntax::NodeKind::NamespaceDefinition,
  clang::syntax::NodeKind::NamespaceAliasDefinition, clang::syntax::NodeKind::UsingNamespaceDirective, clang::syntax::NodeKind::UsingDeclaration, clang::syntax::NodeKind::TypeAliasDeclaration
}
 A kind of a syntax node, used for implementing casts. More...
 
enum  clang::syntax::NodeRole : uint8_t {
  clang::syntax::NodeRole::Detached, clang::syntax::NodeRole::Unknown, clang::syntax::NodeRole::OpenParen, clang::syntax::NodeRole::CloseParen,
  clang::syntax::NodeRole::IntroducerKeyword, clang::syntax::NodeRole::BodyStatement, clang::syntax::NodeRole::CaseStatement_value, clang::syntax::NodeRole::IfStatement_thenStatement,
  clang::syntax::NodeRole::IfStatement_elseKeyword, clang::syntax::NodeRole::IfStatement_elseStatement, clang::syntax::NodeRole::ReturnStatement_value, clang::syntax::NodeRole::ExpressionStatement_expression,
  clang::syntax::NodeRole::CompoundStatement_statement, clang::syntax::NodeRole::StaticAssertDeclaration_condition, clang::syntax::NodeRole::StaticAssertDeclaration_message
}
 A relation between a parent and child node, e.g. More...
 

Functions

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