//===-- ClangExpressionParser.h ---------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXPRESSIONPARSER_H #define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXPRESSIONPARSER_H #include "lldb/Expression/DiagnosticManager.h" #include "lldb/Expression/ExpressionParser.h" #include "lldb/Utility/ArchSpec.h" #include "lldb/Utility/Status.h" #include "lldb/lldb-public.h" #include <string> #include <vector> namespace llvm { class LLVMContext; } namespace clang { class CodeGenerator; class CodeCompleteConsumer; class CompilerInstance; } // namespace clang namespace lldb_private { class IRExecutionUnit; class TypeSystemClang; /// \class ClangExpressionParser ClangExpressionParser.h /// "lldb/Expression/ClangExpressionParser.h" Encapsulates an instance of /// Clang that can parse expressions. /// /// ClangExpressionParser is responsible for preparing an instance of /// ClangExpression for execution. ClangExpressionParser uses ClangExpression /// as a glorified parameter list, performing the required parsing and /// conversion to formats (DWARF bytecode, or JIT compiled machine code) that /// can be executed. class ClangExpressionParser : public ExpressionParser { … }; } #endif // LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXPRESSIONPARSER_H