9#ifndef LLDB_VALUEOBJECT_DILAST_H 
   10#define LLDB_VALUEOBJECT_DILAST_H 
   13#include "llvm/Support/Error.h" 
   58  virtual llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const = 0;
 
 
   73  llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const override;
 
 
   85  llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const override;
 
 
  104  llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const override;
 
 
  126  llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const override;
 
 
  146  llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const override;
 
 
  168  llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const override;
 
 
  194  llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const override;
 
 
  218  llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const override;
 
 
  235  llvm::Expected<lldb::ValueObjectSP> 
Accept(
Visitor *v) 
const override;
 
 
  254  virtual llvm::Expected<lldb::ValueObjectSP>
 
  256  virtual llvm::Expected<lldb::ValueObjectSP>
 
  258  virtual llvm::Expected<lldb::ValueObjectSP>
 
  260  virtual llvm::Expected<lldb::ValueObjectSP>
 
  262  virtual llvm::Expected<lldb::ValueObjectSP>
 
  264  virtual llvm::Expected<lldb::ValueObjectSP>
 
  266  virtual llvm::Expected<lldb::ValueObjectSP>
 
  268  virtual llvm::Expected<lldb::ValueObjectSP>
 
 
 
uint32_t GetLocation() const
ASTNode(uint32_t location, NodeKind kind)
virtual ~ASTNode()=default
virtual llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const =0
ArraySubscriptNode(uint32_t location, ASTNodeUP base, int64_t index)
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
ASTNode * GetBase() const
static bool classof(const ASTNode *node)
static bool classof(const ASTNode *node)
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
BooleanLiteralNode(uint32_t location, bool value)
static bool classof(const ASTNode *node)
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
const llvm::APFloat & GetValue() const
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
FloatLiteralNode(uint32_t location, llvm::APFloat value)
static bool classof(const ASTNode *node)
static bool classof(const ASTNode *node)
IdentifierNode(uint32_t location, std::string name)
std::string GetName() const
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
IntegerLiteralNode(uint32_t location, llvm::APInt value, uint32_t radix, bool is_unsigned, IntegerTypeSuffix type)
uint32_t GetRadix() const
static bool classof(const ASTNode *node)
IntegerTypeSuffix GetTypeSuffix() const
const llvm::APInt & GetValue() const
MemberOfNode(uint32_t location, ASTNodeUP base, bool is_arrow, std::string name)
static bool classof(const ASTNode *node)
llvm::StringRef GetFieldName() const
ASTNode * GetBase() const
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
ASTNode * GetOperand() const
static bool classof(const ASTNode *node)
UnaryOpNode(uint32_t location, UnaryOpKind kind, ASTNodeUP operand)
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
UnaryOpKind GetKind() const
This class contains one Visit method for each specialized type of DIL AST node.
virtual llvm::Expected< lldb::ValueObjectSP > Visit(const IntegerLiteralNode *node)=0
virtual llvm::Expected< lldb::ValueObjectSP > Visit(const UnaryOpNode *node)=0
virtual llvm::Expected< lldb::ValueObjectSP > Visit(const FloatLiteralNode *node)=0
virtual llvm::Expected< lldb::ValueObjectSP > Visit(const BooleanLiteralNode *node)=0
virtual ~Visitor()=default
virtual llvm::Expected< lldb::ValueObjectSP > Visit(const IdentifierNode *node)=0
virtual llvm::Expected< lldb::ValueObjectSP > Visit(const ArraySubscriptNode *node)=0
virtual llvm::Expected< lldb::ValueObjectSP > Visit(const MemberOfNode *node)=0
virtual llvm::Expected< lldb::ValueObjectSP > Visit(const BitFieldExtractionNode *node)=0
UnaryOpKind
The Unary operators recognized by DIL.
std::unique_ptr< ASTNode > ASTNodeUP
NodeKind
The various types DIL AST nodes (used by the DIL parser).