9#ifndef LLDB_VALUEOBJECT_DILPARSER_H 
   10#define LLDB_VALUEOBJECT_DILPARSER_H 
   17#include "llvm/Support/Error.h" 
   21#include <system_error> 
   36    : 
public llvm::ErrorInfo<DILDiagnosticError, DiagnosticError> {
 
   42      : ErrorInfo(make_error_code(std::errc::invalid_argument)),
 
 
   46                     uint32_t loc, uint16_t err_len = 1);
 
   48  std::unique_ptr<CloneableError> 
Clone()
 const override {
 
   49    return std::make_unique<DILDiagnosticError>(
m_detail);
 
 
   52  llvm::ArrayRef<DiagnosticDetail> 
GetDetails()
 const override {
 
 
 
   63  static llvm::Expected<ASTNodeUP> 
Parse(llvm::StringRef dil_input_expr,
 
   65                                         std::shared_ptr<StackFrame> frame_sp,
 
   67                                         bool use_synthetic, 
bool fragile_ivar,
 
   68                                         bool check_ptr_vs_member);
 
   82                     std::shared_ptr<StackFrame> frame_sp,
 
   84                     bool fragile_ivar, 
bool check_ptr_vs_member,
 
  104  void BailOut(
const std::string &
error, uint32_t loc, uint16_t err_len);
 
  108  void ExpectOneOf(std::vector<Token::Kind> kinds_vec);
 
  112      llvm::consumeError(std::move(
m_error));
 
 
 
static llvm::raw_ostream & error(Stream &strm)
DILDiagnosticError(DiagnosticDetail detail)
std::unique_ptr< CloneableError > Clone() const override
llvm::ArrayRef< DiagnosticDetail > GetDetails() const override
std::string message() const override
DiagnosticDetail m_detail
Class for doing the simple lexing required by DIL.
bool m_check_ptr_vs_member
ASTNodeUP ParseUnaryExpression()
ASTNodeUP ParseIntegerLiteral()
void Expect(Token::Kind kind)
static llvm::Expected< ASTNodeUP > Parse(llvm::StringRef dil_input_expr, DILLexer lexer, std::shared_ptr< StackFrame > frame_sp, lldb::DynamicValueType use_dynamic, bool use_synthetic, bool fragile_ivar, bool check_ptr_vs_member)
lldb::DynamicValueType UseDynamic()
void TentativeParsingRollback(uint32_t saved_idx)
ASTNodeUP ParseFloatingPointLiteral()
ASTNodeUP ParseExpression()
DILParser(llvm::StringRef dil_input_expr, DILLexer lexer, std::shared_ptr< StackFrame > frame_sp, lldb::DynamicValueType use_dynamic, bool use_synthetic, bool fragile_ivar, bool check_ptr_vs_member, llvm::Error &error)
void ExpectOneOf(std::vector< Token::Kind > kinds_vec)
ASTNodeUP ParseNumericLiteral()
ASTNodeUP ParsePrimaryExpression()
std::shared_ptr< StackFrame > m_ctx_scope
void BailOut(const std::string &error, uint32_t loc, uint16_t err_len)
ASTNodeUP ParsePostfixExpression()
std::string ParseIdExpression()
std::optional< int64_t > ParseIntegerConstant()
lldb::DynamicValueType m_use_dynamic
std::string ParseUnqualifiedId()
ASTNodeUP ParseBooleanLiteral()
llvm::StringRef m_input_expr
std::string ParseNestedNameSpecifier()
Class defining the tokens generated by the DIL lexer and used by the DIL parser.
std::unique_ptr< ASTNode > ASTNodeUP
@ kInvalidExpressionSyntax
A compiler-independent representation of an lldb_private::Diagnostic.