blob: 67dd04c2a22ee5fde6f3c223e81e70bd6fd24d85 [file] [log] [blame]
Ryan Brown2dd84882015-11-05 00:24:36 +00001//===-- GoLanguage.h --------------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef liblldb_GoLanguage_h_
11#define liblldb_GoLanguage_h_
12
13// C Includes
14// C++ Includes
15#include <vector>
16
17// Other libraries and framework includes
18#include "llvm/ADT/StringRef.h"
19
20// Project includes
21#include "lldb/lldb-private.h"
22#include "lldb/Core/ConstString.h"
23#include "lldb/Target/Language.h"
24
25namespace lldb_private
26{
27
28class GoLanguage : public Language
29{
30 public:
31 GoLanguage() = default;
32
33 ~GoLanguage() override = default;
34
35 lldb::LanguageType
36 GetLanguageType() const override
37 {
38 return lldb::eLanguageTypeGo;
39 }
40
41 HardcodedFormatters::HardcodedSummaryFinder GetHardcodedSummaries() override;
42
43 HardcodedFormatters::HardcodedSyntheticFinder GetHardcodedSynthetics() override;
44
45 //------------------------------------------------------------------
46 // Static Functions
47 //------------------------------------------------------------------
48 static void Initialize();
49
50 static void Terminate();
51
52 static lldb_private::Language *CreateInstance(lldb::LanguageType language);
53
54 static lldb_private::ConstString GetPluginNameStatic();
55
56 //------------------------------------------------------------------
57 // PluginInterface protocol
58 //------------------------------------------------------------------
59 ConstString GetPluginName() override;
60
61 uint32_t GetPluginVersion() override;
62};
63
64} // namespace lldb_private
65
66#endif // liblldb_GoLanguage_h_