Skip to content
Snippets Groups Projects
Commit f1fc7f4e authored by Michael Haupt's avatar Michael Haupt
Browse files

attribute printing for matrices

parent a29e0b5c
Branches
No related tags found
No related merge requests found
......@@ -103,7 +103,13 @@ public abstract class PrettyPrinterNode extends RNode {
CompilerDirectives.transferToInterpreterAndInvalidate();
multiDimPrinter = adoptChild(PrintVectorMultiDimNodeFactory.create(null, null));
}
return (String) multiDimPrinter.executeString(frame, vector, RRuntime.asLogical(isListOrStringVector));
StringBuilder sb = new StringBuilder();
sb.append((String) multiDimPrinter.executeString(frame, vector, RRuntime.asLogical(isListOrStringVector)));
Map<String, Object> attributes = vector.getAttributes();
if (attributes != null) {
sb.append(printAttributes(frame, vector, attributes));
}
return builderToString(sb);
}
@Specialization
......@@ -179,8 +185,8 @@ public abstract class PrettyPrinterNode extends RNode {
// names attribute already printed
continue;
}
if (attr.getKey().equals(RRuntime.DIM_ATTR_KEY)) {
// dim attribute never gets printed
if (attr.getKey().equals(RRuntime.DIM_ATTR_KEY) || attr.getKey().equals(RRuntime.DIMNAMES_ATTR_KEY)) {
// dim and dimnames attributes never gets printed
continue;
}
builder.append("\n");
......@@ -887,7 +893,7 @@ public abstract class PrettyPrinterNode extends RNode {
} else {
int dimSize = dimensions[numDimensions - 1];
if (dimSize == 0) {
return null;
return "";
}
StringBuilder sb = new StringBuilder();
if (numDimensions == 3) {
......@@ -911,7 +917,7 @@ public abstract class PrettyPrinterNode extends RNode {
String dimId = getDimId(vector, numDimensions, dimInd);
String innerDims = printDim(frame, vector, isListOrStringVector, numDimensions - 1, arrayBase, accDimensions, dimId);
if (innerDims == null) {
return null;
return "";
} else {
sb.append(innerDims);
}
......
......@@ -50,7 +50,7 @@ public abstract class Print extends RBuiltinNode {
@Specialization
public Object print(VirtualFrame frame, Object o) {
String s = (String) prettyPrinter.executeString(frame, o, null);
if (s != null) {
if (s != null && !s.isEmpty()) {
printHelper(s);
}
return new RInvisible(o); // TODO should we actually call "invisible(o)"?
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment