Path: blob/main/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h
39654 views
//===-- ClangExpressionHelper.h ---------------------------------*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXPRESSIONHELPER_H9#define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXPRESSIONHELPER_H1011#include <map>12#include <string>13#include <vector>1415#include "lldb/Expression/ExpressionTypeSystemHelper.h"16#include "lldb/lldb-forward.h"17#include "lldb/lldb-private.h"1819namespace clang {20class ASTConsumer;21}2223namespace lldb_private {2425class ClangExpressionDeclMap;2627// ClangExpressionHelper28class ClangExpressionHelper29: public llvm::RTTIExtends<ClangExpressionHelper,30ExpressionTypeSystemHelper> {31public:32// LLVM RTTI support33static char ID;3435/// Return the object that the parser should use when resolving external36/// values. May be NULL if everything should be self-contained.37virtual ClangExpressionDeclMap *DeclMap() = 0;3839/// Return the object that the parser should allow to access ASTs.40/// May be NULL if the ASTs do not need to be transformed.41///42/// \param[in] passthrough43/// The ASTConsumer that the returned transformer should send44/// the ASTs to after transformation.45virtual clang::ASTConsumer *46ASTTransformer(clang::ASTConsumer *passthrough) = 0;4748virtual void CommitPersistentDecls() {}49};5051} // namespace lldb_private5253#endif // LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXPRESSIONHELPER_H545556