diff options
author | 2020-08-03 14:33:06 +0000 | |
---|---|---|
committer | 2020-08-03 14:33:06 +0000 | |
commit | 061da546b983eb767bad15e67af1174fb0bcf31c (patch) | |
tree | 83c78b820819d70aa40c36d90447978b300078c5 /gnu/llvm/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h | |
parent | Import LLVM 10.0.0 release including clang, lld and lldb. (diff) | |
download | wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.tar.xz wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.zip |
Import LLVM 10.0.0 release including clang, lld and lldb.
ok hackroom
tested by plenty
Diffstat (limited to 'gnu/llvm/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h')
-rw-r--r-- | gnu/llvm/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h b/gnu/llvm/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h new file mode 100644 index 00000000000..48da5abb912 --- /dev/null +++ b/gnu/llvm/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h @@ -0,0 +1,60 @@ +//===-- ClangExpressionHelper.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 liblldb_ClangExpression_h_ +#define liblldb_ClangExpression_h_ + +#include <map> +#include <string> +#include <vector> + + +#include "lldb/Core/ClangForward.h" +#include "lldb/Expression/ExpressionTypeSystemHelper.h" +#include "lldb/lldb-forward.h" +#include "lldb/lldb-private.h" + +namespace lldb_private { + +class RecordingMemoryManager; + +// ClangExpressionHelper +class ClangExpressionHelper : public ExpressionTypeSystemHelper { +public: + static bool classof(const ExpressionTypeSystemHelper *ts) { + return ts->getKind() == eKindClangHelper; + } + + ClangExpressionHelper() + : ExpressionTypeSystemHelper( + ExpressionTypeSystemHelper::LLVMCastKind::eKindClangHelper) {} + + /// Destructor + virtual ~ClangExpressionHelper() {} + + /// Return the object that the parser should use when resolving external + /// values. May be NULL if everything should be self-contained. + virtual ClangExpressionDeclMap *DeclMap() = 0; + + /// Return the object that the parser should allow to access ASTs. + /// May be NULL if the ASTs do not need to be transformed. + /// + /// \param[in] passthrough + /// The ASTConsumer that the returned transformer should send + /// the ASTs to after transformation. + virtual clang::ASTConsumer * + ASTTransformer(clang::ASTConsumer *passthrough) = 0; + + virtual void CommitPersistentDecls() {} + +protected: +}; + +} // namespace lldb_private + +#endif // liblldb_ClangExpression_h_ |