Changed: #2228 AS1/2/3 bitwise operations use hexadecimal operands

This commit is contained in:
Jindra Petřík
2024-08-05 11:17:25 +02:00
parent 5fb20268b2
commit 9683dc6a6f
23 changed files with 226 additions and 33 deletions
@@ -73,10 +73,10 @@ public abstract class BinaryOpItem extends GraphTargetItem implements BinaryOp {
int leftPrecedence = leftSide.getPrecedence();
if (leftPrecedence > precedence && leftPrecedence != GraphTargetItem.NOPRECEDENCE) {
writer.append("(");
leftSide.toString(writer, localData, ""); //coerceLeft);
operandToString(leftSide, writer, localData);
writer.append(")");
} else {
leftSide.toString(writer, localData, ""); //coerceLeft);
operandToString(leftSide, writer, localData);
}
writer.append(" ");
@@ -86,13 +86,17 @@ public abstract class BinaryOpItem extends GraphTargetItem implements BinaryOp {
int rightPrecedence = rightSide.getPrecedence();
if (rightPrecedence >= precedence && rightPrecedence != GraphTargetItem.NOPRECEDENCE) {
writer.append("(");
rightSide.toString(writer, localData, ""); //coerceRight);
operandToString(rightSide, writer, localData);
writer.append(")");
} else {
rightSide.toString(writer, localData, ""); //coerceRight);
operandToString(rightSide, writer, localData);
}
return writer;
}
protected void operandToString(GraphTargetItem operand, GraphTextWriter writer, LocalData localData) throws InterruptedException {
operand.toString(writer, localData, "");
}
@Override
public List<GraphSourceItemPos> getNeededSources() {
@@ -53,10 +53,10 @@ public abstract class UnaryOpItem extends GraphTargetItem implements UnaryOp {
if (value != null) {
if (value.getPrecedence() > precedence) {
writer.append("(");
value.toString(writer, localData, ""); //coerce);
operandToString(value, writer, localData);
writer.append(")");
} else {
value.toString(writer, localData, ""); //coerce);
operandToString(value, writer, localData);
}
} else {
writer.append("null");
@@ -146,4 +146,8 @@ public abstract class UnaryOpItem extends GraphTargetItem implements UnaryOp {
int hash = 3;
return hash;
}
protected void operandToString(GraphTargetItem operand, GraphTextWriter writer, LocalData localData) throws InterruptedException {
operand.toString(writer, localData, "");
}
}