[nemiver] Add GDBMIParser::parse_gdbmi_string_result
- From: Dodji Seketeli <dodji src gnome org>
- To: svn-commits-list gnome org
- Subject: [nemiver] Add GDBMIParser::parse_gdbmi_string_result
- Date: Thu, 2 Jul 2009 13:03:46 +0000 (UTC)
commit b1ca8a4d27f8bd271871448f1143aca35d6028fc
Author: Dodji Seketeli <dodji redhat com>
Date: Thu Jul 2 12:45:51 2009 +0200
Add GDBMIParser::parse_gdbmi_string_result
* src/dbgengine/nmv-gdbmi-parser.cc,h (GDBMIParser::parse_gdbmi_string_result):
New entry point.
src/dbgengine/nmv-gdbmi-parser.cc | 30 ++++++++++++++++++++++++++++++
src/dbgengine/nmv-gdbmi-parser.h | 7 +++++++
2 files changed, 37 insertions(+), 0 deletions(-)
---
diff --git a/src/dbgengine/nmv-gdbmi-parser.cc b/src/dbgengine/nmv-gdbmi-parser.cc
index 0c7f134..cde7db4 100644
--- a/src/dbgengine/nmv-gdbmi-parser.cc
+++ b/src/dbgengine/nmv-gdbmi-parser.cc
@@ -1127,6 +1127,36 @@ GDBMIParser::parse_gdbmi_list (UString::size_type a_from,
}
bool
+GDBMIParser::parse_gdbmi_string_result (UString::size_type a_from,
+ UString::size_type &a_to,
+ UString &a_variable,
+ UString &a_value)
+{
+ LOG_FUNCTION_SCOPE_NORMAL_D (GDBMI_PARSING_DOMAIN);
+ UString::size_type cur = a_from;
+ CHECK_END2 (cur);
+
+ GDBMIResultSafePtr result;
+ if (!parse_gdbmi_result (cur, cur, result) || !result) {
+ LOG_PARSING_ERROR2 (cur);
+ return false;
+ }
+
+ // The value of the RESULT must be a STRING
+ if (!result->value ()
+ || result->value ()->content_type () != GDBMIValue::STRING_TYPE
+ || result->value ()->get_string_content ().empty ()) {
+ LOG_ERROR ("expected a STRING value for the GDBMI variable");
+ return false;
+ }
+
+ a_variable = result->variable ();
+ a_value = result->value ()->get_string_content ();
+ a_to = cur;
+ return true;
+}
+
+bool
GDBMIParser::parse_stream_record (UString::size_type a_from,
UString::size_type &a_to,
Output::StreamRecord &a_record)
diff --git a/src/dbgengine/nmv-gdbmi-parser.h b/src/dbgengine/nmv-gdbmi-parser.h
index e069129..2eb3b9b 100644
--- a/src/dbgengine/nmv-gdbmi-parser.h
+++ b/src/dbgengine/nmv-gdbmi-parser.h
@@ -424,6 +424,13 @@ public:
UString::size_type &a_to,
GDBMIListSafePtr &a_list);
+ /// Parses a GDB/MI RESULT result=value where value is a string.
+ /// This is a quick helper that uses parse_gdbmi_result.
+ bool parse_gdbmi_string_result (UString::size_type a_from,
+ UString::size_type &a_to,
+ UString &a_variable,
+ UString &a_value);
+
bool parse_stream_record (UString::size_type a_from,
UString::size_type &a_to,
Output::StreamRecord &a_record);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]