summaryrefslogtreecommitdiff
path: root/python/pydevSrc/com/jetbrains/python/debugger/pydev/ProtocolParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'python/pydevSrc/com/jetbrains/python/debugger/pydev/ProtocolParser.java')
-rw-r--r--python/pydevSrc/com/jetbrains/python/debugger/pydev/ProtocolParser.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/python/pydevSrc/com/jetbrains/python/debugger/pydev/ProtocolParser.java b/python/pydevSrc/com/jetbrains/python/debugger/pydev/ProtocolParser.java
index 0801077fbea3..1822b17efaa3 100644
--- a/python/pydevSrc/com/jetbrains/python/debugger/pydev/ProtocolParser.java
+++ b/python/pydevSrc/com/jetbrains/python/debugger/pydev/ProtocolParser.java
@@ -122,6 +122,32 @@ public class ProtocolParser {
}
@NotNull
+ public static List<PyDebugValue> parseReferrers(final String text, final PyFrameAccessor frameAccessor) throws PyDebuggerException {
+ final List<PyDebugValue> values = new LinkedList<PyDebugValue>();
+
+ final XppReader reader = openReader(text, false);
+
+ while (reader.hasMoreChildren()) {
+ reader.moveDown();
+ if (reader.getNodeName().equals("var")) {
+ PyDebugValue value = parseValue(reader, frameAccessor);
+ value.setId(readString(reader, "id", null));
+ values.add(value);
+ }
+ else if (reader.getNodeName().equals("for")) {
+ //TODO
+ }
+ else {
+ throw new PyDebuggerException("Expected <var> or <for>, found " + reader.getNodeName());
+ }
+ reader.moveUp();
+ }
+
+ return values;
+ }
+
+
+ @NotNull
public static List<PyDebugValue> parseValues(final String text, final PyFrameAccessor frameAccessor) throws PyDebuggerException {
final List<PyDebugValue> values = new LinkedList<PyDebugValue>();