clang-tools  14.0.0git
Public Attributes | List of all members
clang::clangd::ASTNode Struct Reference

Simplified description of a clang AST node. More...

#include <Protocol.h>

Collaboration diagram for clang::clangd::ASTNode:
Collaboration graph
[legend]

Public Attributes

std::string role
 The general kind of node, such as "expression" Corresponds to the base AST node type such as Expr. More...
 
std::string kind
 The specific kind of node this is, such as "BinaryOperator". More...
 
std::string detail
 Brief additional information, such as "||" for the particular operator. More...
 
std::string arcana
 A one-line dump of detailed information about the node. More...
 
llvm::Optional< Rangerange
 The range of the original source file covered by this node. More...
 
std::vector< ASTNodechildren
 Nodes nested within this one, such as the operands of a BinaryOperator. More...
 

Detailed Description

Simplified description of a clang AST node.

This is clangd's internal representation of C++ code.

Definition at line 1759 of file Protocol.h.

Member Data Documentation

◆ arcana

std::string clang::clangd::ASTNode::arcana

A one-line dump of detailed information about the node.

This includes role/kind/description information, but is rather cryptic. It is similar to the output from clang -Xclang -ast-dump. May be empty for certain types of nodes.

Definition at line 1774 of file Protocol.h.

◆ children

std::vector<ASTNode> clang::clangd::ASTNode::children

Nodes nested within this one, such as the operands of a BinaryOperator.

Definition at line 1779 of file Protocol.h.

◆ detail

std::string clang::clangd::ASTNode::detail

Brief additional information, such as "||" for the particular operator.

The information included depends on the node kind, and may be empty.

Definition at line 1769 of file Protocol.h.

◆ kind

std::string clang::clangd::ASTNode::kind

The specific kind of node this is, such as "BinaryOperator".

This is usually a concrete node class (with Expr etc suffix dropped). When there's no hierarchy (e.g. TemplateName), the variant (NameKind).

Definition at line 1766 of file Protocol.h.

◆ range

llvm::Optional<Range> clang::clangd::ASTNode::range

The range of the original source file covered by this node.

May be missing for implicit nodes, or those created by macro expansion.

Definition at line 1777 of file Protocol.h.

◆ role

std::string clang::clangd::ASTNode::role

The general kind of node, such as "expression" Corresponds to the base AST node type such as Expr.

Definition at line 1762 of file Protocol.h.


The documentation for this struct was generated from the following file: