Issue #237 Substract parentheses Fix

This commit is contained in:
Jindra Pet��k
2013-07-16 13:24:37 +02:00
parent 38bb6513d8
commit 0085aedca0
4 changed files with 31 additions and 37 deletions
@@ -29,23 +29,6 @@ public class AddAVM2Item extends BinaryOpItem {
super(instruction, PRECEDENCE_ADDITIVE, leftSide, rightSide, "+");
}
@Override
public String toString(List<Object> localData) {
if (rightSide.precedence >= precedence) {
String ret = "";
if (leftSide.precedence > precedence) {
ret += "(" + leftSide.toString(localData) + ")";
} else {
ret += leftSide.toString(localData);
}
ret += hilight(operator);
ret += "(" + rightSide.toString(localData) + ")";
return ret;
} else {
return super.toString(localData);
}
}
@Override
public Object getResult() {
if (EcmaScript.type(leftSide.getResult()) == EcmaType.STRING || EcmaScript.type(rightSide.getResult()) == EcmaType.STRING) {
@@ -35,17 +35,21 @@ public class SubtractAVM2Item extends BinaryOpItem {
@Override
public String toString(List<Object> localData) {
if (!(getLeftMostItem(rightSide) instanceof NegAVM2Item)) { // a - (-b*c*d)
if (rightSide.precedence >= precedence) { // >= add or subtract too
String ret = "";
if (leftSide.precedence > precedence) {
ret += "(" + leftSide.toString(localData) + ")";
} else {
ret += leftSide.toString(localData);
}
ret += " ";
ret += hilight(operator);
ret += " ";
ret += "(" + rightSide.toString(localData) + ")";
return ret;
} else {
return super.toString(localData);
}
String ret = "";
if (leftSide.getPrecedence() > precedence) {
ret += "(" + leftSide.toString(localData) + ")";
} else {
ret += leftSide.toString(localData);
}
ret += hilight(operator);
ret += "(" + rightSide.toString(localData) + ")";
return ret;
}
}
@@ -38,18 +38,22 @@ public class SubtractActionItem extends BinaryOpItem {
@Override
public String toString(List<Object> localData) {
if (rightSide instanceof DirectValueActionItem) {
if (rightSide.precedence >= precedence) { // >= add or subtract too
String ret = "";
if (leftSide.precedence > precedence) {
ret += "(" + leftSide.toString(localData) + ")";
} else {
ret += leftSide.toString(localData);
}
ret += " ";
ret += hilight(operator);
ret += " ";
ret += "(" + rightSide.toString(localData) + ")";
return ret;
} else {
return super.toString(localData);
}
String ret = "";
if (leftSide.getPrecedence() > precedence) {
ret += "(" + leftSide.toString(localData) + ")";
} else {
ret += leftSide.toString(localData);
}
ret += hilight(operator);
ret += "(" + rightSide.toString(localData) + ")";
return ret;
}
@Override
@@ -52,7 +52,10 @@ public abstract class BinaryOpItem extends GraphTargetItem implements BinaryOp {
} else {
ret += leftSide.toString(localData);
}
ret += " ";
ret += hilight(operator);
ret += " ";
if (rightSide.getPrecedence() > precedence) {
ret += "(" + rightSide.toString(localData) + ")";