21 #ifndef LLVM_CLANG_TOOLING_SYNTAX_NODES_H 22 #define LLVM_CLANG_TOOLING_SYNTAX_NODES_H 28 #include "llvm/ADT/ArrayRef.h" 29 #include "llvm/ADT/StringRef.h" 30 #include "llvm/Support/raw_ostream.h" 311 std::vector<syntax::Statement *>
statements();
static bool classof(const Node *N)
static bool classof(const Node *N)
An opening parenthesis in argument lists and blocks, e.g. '{', '(', etc.
Children of an unknown semantic nature, e.g. skipped tokens, comments.
{ statement1; statement2; … }
static bool classof(const Node *N)
LinkageSpecificationDeclaration()
llvm::raw_ostream & operator<<(llvm::raw_ostream &OS, NodeKind K)
For debugging purposes.
NamespaceAliasDefinition()
static bool classof(const Node *N)
static bool classof(const Node *N)
static_assert(<condition>, <message>) static_assert(<condition>)
An expression of an unknown kind, i.e.
static bool classof(const Node *N)
A root node for a translation unit. Parent is always null.
for (<init>; <cond>; <increment>) <body>
for (<decl> : <init>) <body>
using <scope>::<name> using typename <scope>::<name>
static bool classof(const Node *N)
An inner statement for those that have only a single child of kind statement, e.g.
if (cond) <then-statement> else <else-statement> FIXME: add condition that models 'expression or vari...
static bool classof(const Node *N)
An abstract node for C++ statements, e.g.
static bool classof(const Node *N)
static bool classof(const Node *N)
static bool classof(const Node *N)
static bool classof(const Node *N)
A semicolon in the top-level context. Does not declare anything.
The no-op statement, i.e. ';'.
static bool classof(const Node *N)
A keywords that introduces some grammar construct, e.g. 'if', 'try', etc.
static bool classof(const Node *N)
static bool classof(const Node *N)
namespace <name> { <decls> }
static bool classof(const Node *N)
Declaration of an unknown kind, e.g. not yet supported in syntax trees.
static bool classof(const Node *N)
A statement of an unknown kind, i.e.
A closing parenthesis in argument lists and blocks, e.g. '}', ')', etc.
A node that has children and represents a syntactic language construct.
NodeKind
A kind of a syntax node, used for implementing casts.
E.g. 'int a, b = 10;'.
A declaration that can appear at the top-level.
static bool classof(const Node *N)
static bool classof(const Node *N)
Expression in a statement position, e.g.
static bool classof(const Node *N)
NodeRole
A relation between a parent and child node, e.g.
Dataflow Directional Tag Classes.
static bool classof(const Node *N)
static bool classof(const Node *N)
StaticAssertDeclaration()
A leaf node points to a single token inside the expanded token stream.
static bool classof(const Node *N)
static bool classof(const Node *N)
static bool classof(const Node *N)
extern <string-literal> declaration extern <string-literal> { <decls> }
A base class for all expressions.
static bool classof(const Node *N)
Defines the clang::TokenKind enum and support functions.
static bool classof(const Node *N)
namespace <name> = <namespace-reference>
static bool classof(const Node *N)
UsingNamespaceDirective()
static bool classof(const Node *N)
Groups multiple declarators (e.g.
static bool classof(const Node *N)