1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
//===-- SwiftLanguage.h -----------------------------------------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
#ifndef liblldb_SwiftLanguage_h_
#define liblldb_SwiftLanguage_h_
// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes
#include "lldb/Target/Language.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/lldb-private.h"
namespace lldb_private {
class SwiftLanguage : public Language {
public:
virtual ~SwiftLanguage() = default;
SwiftLanguage() = default;
lldb::LanguageType GetLanguageType() const override {
return lldb::eLanguageTypeSwift;
}
bool IsTopLevelFunction(Function &function) override;
std::vector<Language::MethodNameVariant>
GetMethodNameVariants(ConstString method_name) const override;
lldb::TypeCategoryImplSP GetFormatters() override;
HardcodedFormatters::HardcodedSummaryFinder GetHardcodedSummaries() override;
HardcodedFormatters::HardcodedSyntheticFinder
GetHardcodedSynthetics() override;
bool IsSourceFile(llvm::StringRef file_path) const override;
std::vector<FormattersMatchCandidate>
GetPossibleFormattersMatches(ValueObject &valobj,
lldb::DynamicValueType use_dynamic) override;
std::unique_ptr<TypeScavenger> GetTypeScavenger() override;
const char *GetLanguageSpecificTypeLookupHelp() override;
std::pair<llvm::StringRef, llvm::StringRef>
GetFormatterPrefixSuffix(llvm::StringRef type_hint) override;
DumpValueObjectOptions::DeclPrintingHelper GetDeclPrintingHelper() override;
LazyBool IsLogicalTrue(ValueObject &valobj, Status &error) override;
bool IsUninitializedReference(ValueObject &valobj) override;
bool GetFunctionDisplayName(const SymbolContext *sc,
const ExecutionContext *exe_ctx,
FunctionNameRepresentation representation,
Stream &s) override;
void GetExceptionResolverDescription(bool catch_on, bool throw_on,
Stream &s) override;
ConstString
GetDemangledFunctionNameWithoutArguments(Mangled mangled) const override;
//------------------------------------------------------------------
// Static Functions
//------------------------------------------------------------------
static void Initialize();
static void Terminate();
static lldb_private::Language *CreateInstance(lldb::LanguageType language);
static llvm::StringRef GetPluginNameStatic() { return "swift"; }
bool SymbolNameFitsToLanguage(Mangled mangled) const override;
llvm::StringRef GetInstanceVariableName() override { return "self"; }
//------------------------------------------------------------------
// PluginInterface protocol
//------------------------------------------------------------------
llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
};
} // namespace lldb_private
#endif // liblldb_SwiftLanguage_h_
|