1//===-- ScriptInterpreter.cpp -----------------------------------*- 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#include "lldb/lldb-python.h"
11
12#include "lldb/Interpreter/ScriptInterpreter.h"
13
14#include <string>
15#include <stdlib.h>
16#include <stdio.h>
17
18#include "lldb/Core/Error.h"
19#include "lldb/Core/Stream.h"
20#include "lldb/Core/StringList.h"
21#include "lldb/Interpreter/CommandReturnObject.h"
22#include "lldb/Interpreter/ScriptInterpreterPython.h"
23#include "lldb/Utility/PseudoTerminal.h"
24
25using namespace lldb;
26using namespace lldb_private;
27
28ScriptInterpreter::ScriptInterpreter (CommandInterpreter &interpreter, lldb::ScriptLanguage script_lang) :
29    m_interpreter (interpreter),
30    m_script_lang (script_lang)
31{
32}
33
34ScriptInterpreter::~ScriptInterpreter ()
35{
36}
37
38CommandInterpreter &
39ScriptInterpreter::GetCommandInterpreter ()
40{
41    return m_interpreter;
42}
43
44void
45ScriptInterpreter::CollectDataForBreakpointCommandCallback
46(
47    BreakpointOptions *bp_options,
48    CommandReturnObject &result
49)
50{
51    result.SetStatus (eReturnStatusFailed);
52    result.AppendError ("ScriptInterpreter::GetScriptCommands(StringList &) is not implemented.");
53}
54
55void
56ScriptInterpreter::CollectDataForWatchpointCommandCallback
57(
58    WatchpointOptions *bp_options,
59    CommandReturnObject &result
60)
61{
62    result.SetStatus (eReturnStatusFailed);
63    result.AppendError ("ScriptInterpreter::GetScriptCommands(StringList &) is not implemented.");
64}
65
66std::string
67ScriptInterpreter::LanguageToString (lldb::ScriptLanguage language)
68{
69    std::string return_value;
70
71    switch (language)
72    {
73        case eScriptLanguageNone:
74            return_value = "None";
75            break;
76        case eScriptLanguagePython:
77            return_value = "Python";
78            break;
79    }
80
81    return return_value;
82}
83
84std::unique_ptr<ScriptInterpreterLocker>
85ScriptInterpreter::AcquireInterpreterLock ()
86{
87    return std::unique_ptr<ScriptInterpreterLocker>(new ScriptInterpreterLocker());
88}
89
90void
91ScriptInterpreter::InitializeInterpreter (SWIGInitCallback python_swig_init_callback)
92{
93#ifndef LLDB_DISABLE_PYTHON
94    ScriptInterpreterPython::InitializeInterpreter (python_swig_init_callback);
95#endif // #ifndef LLDB_DISABLE_PYTHON
96}
97
98void
99ScriptInterpreter::TerminateInterpreter ()
100{
101#ifndef LLDB_DISABLE_PYTHON
102    ScriptInterpreterPython::TerminateInterpreter ();
103#endif // #ifndef LLDB_DISABLE_PYTHON
104}
105
106