quoted moved to constOperator

git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@388 379699f6-c40d-0410-875b-85095c16579e
stable
jochen 26 years ago
parent 8f83cf07ad
commit a2225808c8
  1. 42
      jode/jode/expr/ConstOperator.java

@ -74,6 +74,46 @@ public class ConstOperator extends NoArgOperator {
isInitializer = true; isInitializer = true;
} }
private static String quoted(String str) {
StringBuffer result = new StringBuffer("\"");
for (int i=0; i< str.length(); i++) {
char c;
switch (c = str.charAt(i)) {
case '\0':
result.append("\\0");
break;
case '\t':
result.append("\\t");
break;
case '\n':
result.append("\\n");
break;
case '\r':
result.append("\\r");
break;
case '\\':
result.append("\\\\");
break;
case '\"':
result.append("\\\"");
break;
default:
if (c < 32) {
String oct = Integer.toOctalString(c);
result.append("\\000".substring(0, 4-oct.length()))
.append(oct);
} else if (c >= 32 && c < 127)
result.append(str.charAt(i));
else {
String hex = Integer.toHexString(c);
result.append("\\u0000".substring(0, 6-hex.length()))
.append(hex);
}
}
}
return result.append("\"").toString();
}
public String toString(String[] operands) { public String toString(String[] operands) {
String value = this.value; String value = this.value;
if (type.isOfType(Type.tBoolean)) { if (type.isOfType(Type.tBoolean)) {
@ -113,6 +153,8 @@ public class ConstOperator extends NoArgOperator {
String hex = Integer.toHexString(c); String hex = Integer.toHexString(c);
return "\'\\u0000".substring(0, 7-hex.length())+hex+"\'"; return "\'\\u0000".substring(0, 7-hex.length())+hex+"\'";
} }
} else if (type.equals(Type.tString)) {
return quoted(value);
} else if (parent != null) { } else if (parent != null) {
int opindex = parent.getOperator().getOperatorIndex(); int opindex = parent.getOperator().getOperatorIndex();
if (opindex >= OPASSIGN_OP + ADD_OP if (opindex >= OPASSIGN_OP + ADD_OP

Loading…
Cancel
Save