blob: 6bc6cd0d2ad812ac15a9750d5c3a7dc4206a91c2 [file] [log] [blame]
Chris Lattner24943d22010-06-08 16:52:24 +00001//===-- 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
Daniel Malead891f9b2012-12-05 00:20:57 +000010#include "lldb/lldb-python.h"
11
Chris Lattner24943d22010-06-08 16:52:24 +000012#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"
Caroline Tice0aa2e552011-01-14 00:29:16 +000022#include "lldb/Interpreter/ScriptInterpreterPython.h"
Jason Molendadea5ea72010-06-09 21:28:42 +000023#include "lldb/Utility/PseudoTerminal.h"
Chris Lattner24943d22010-06-08 16:52:24 +000024
25using namespace lldb;
26using namespace lldb_private;
27
Caroline Tice0aa2e552011-01-14 00:29:16 +000028ScriptInterpreter::ScriptInterpreter (CommandInterpreter &interpreter, lldb::ScriptLanguage script_lang) :
Greg Clayton238c0a12010-09-18 01:14:36 +000029 m_interpreter (interpreter),
Greg Clayton177bc682012-01-27 00:13:27 +000030 m_script_lang (script_lang)
Chris Lattner24943d22010-06-08 16:52:24 +000031{
Chris Lattner24943d22010-06-08 16:52:24 +000032}
33
34ScriptInterpreter::~ScriptInterpreter ()
35{
Chris Lattner24943d22010-06-08 16:52:24 +000036}
37
Caroline Tice0aa2e552011-01-14 00:29:16 +000038CommandInterpreter &
39ScriptInterpreter::GetCommandInterpreter ()
40{
41 return m_interpreter;
42}
43
Chris Lattner24943d22010-06-08 16:52:24 +000044void
45ScriptInterpreter::CollectDataForBreakpointCommandCallback
46(
Chris Lattner24943d22010-06-08 16:52:24 +000047 BreakpointOptions *bp_options,
48 CommandReturnObject &result
49)
50{
51 result.SetStatus (eReturnStatusFailed);
52 result.AppendError ("ScriptInterpreter::GetScriptCommands(StringList &) is not implemented.");
53}
54
Johnny Chenf3ec4612012-08-09 23:09:42 +000055void
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
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000066std::string
67ScriptInterpreter::LanguageToString (lldb::ScriptLanguage language)
68{
69 std::string return_value;
Chris Lattner24943d22010-06-08 16:52:24 +000070
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000071 switch (language)
72 {
73 case eScriptLanguageNone:
74 return_value = "None";
75 break;
76 case eScriptLanguagePython:
77 return_value = "Python";
78 break;
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000079 }
80
81 return return_value;
82}
Caroline Tice0aa2e552011-01-14 00:29:16 +000083
84void
Enrico Granata1328b142012-02-29 03:28:49 +000085ScriptInterpreter::InitializeInterpreter (SWIGInitCallback python_swig_init_callback)
Caroline Tice0aa2e552011-01-14 00:29:16 +000086{
Greg Clayton3e4238d2011-11-04 03:34:56 +000087#ifndef LLDB_DISABLE_PYTHON
Enrico Granata1328b142012-02-29 03:28:49 +000088 ScriptInterpreterPython::InitializeInterpreter (python_swig_init_callback);
Greg Clayton3e4238d2011-11-04 03:34:56 +000089#endif // #ifndef LLDB_DISABLE_PYTHON
Caroline Tice0aa2e552011-01-14 00:29:16 +000090}
91
92void
Greg Claytone86cbb92011-03-22 01:14:58 +000093ScriptInterpreter::TerminateInterpreter ()
Caroline Tice0aa2e552011-01-14 00:29:16 +000094{
Greg Clayton3e4238d2011-11-04 03:34:56 +000095#ifndef LLDB_DISABLE_PYTHON
Greg Claytone86cbb92011-03-22 01:14:58 +000096 ScriptInterpreterPython::TerminateInterpreter ();
Greg Clayton3e4238d2011-11-04 03:34:56 +000097#endif // #ifndef LLDB_DISABLE_PYTHON
Caroline Tice0aa2e552011-01-14 00:29:16 +000098}
99