10#ifndef LLVM_CLANG_TOOLING_SYNTAX_BUILDTREE_H
11#define LLVM_CLANG_TOOLING_SYNTAX_BUILDTREE_H
25syntax::TranslationUnit *
46 ArrayRef<std::pair<syntax::Node *, syntax::NodeRole>> Children,
Defines the clang::TokenKind enum and support functions.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
A memory arena for syntax trees.
The no-op statement, i.e. ';'.
A leaf node points to a single token.
A TokenBuffer-powered token manager.
A node that has children and represents a syntactic language construct.
syntax::Node * deepCopyExpandingMacros(syntax::Arena &A, TokenBufferTokenManager &TBTM, const syntax::Node *N)
Creates a completely independent copy of N with its macros expanded.
syntax::TranslationUnit * buildSyntaxTree(Arena &A, TokenBufferTokenManager &TBTM, ASTContext &Context)
Build a syntax tree for the main file.
syntax::EmptyStatement * createEmptyStatement(syntax::Arena &A, TokenBufferTokenManager &TBTM)
syntax::Tree * createTree(syntax::Arena &A, ArrayRef< std::pair< syntax::Node *, syntax::NodeRole > > Children, syntax::NodeKind K)
Creates the concrete syntax node according to the specified NodeKind K.
NodeKind
A kind of a syntax node, used for implementing casts.
syntax::Leaf * createLeaf(syntax::Arena &A, TokenBufferTokenManager &TBTM, tok::TokenKind K, StringRef Spelling)
Create Leaf from token with Spelling and assert it has the desired TokenKind.
TokenKind
Provides a simple uniform namespace for tokens from all C languages.
The JSON file list parser is used to communicate input to InstallAPI.