Fixed: #270 AS decompilation - comma in ternar

This commit is contained in:
Jindra Petřík
2021-03-13 20:32:24 +01:00
parent b84ccc7005
commit 98703e4e5a
11 changed files with 212 additions and 15 deletions

View File

@@ -35,7 +35,7 @@ public class CommaExpressionItem extends GraphTargetItem {
public List<GraphTargetItem> commands;
public CommaExpressionItem(GraphSourceItem src, GraphSourceItem lineStartIns, List<GraphTargetItem> commands) {
super(src, lineStartIns, PRECEDENCE_PRIMARY);
super(src, lineStartIns, PRECEDENCE_COMMA);
this.commands = commands;
}

View File

@@ -53,31 +53,31 @@ public class TernarOpItem extends GraphTargetItem {
@Override
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
if (expression.getPrecedence() >= precedence){
if (expression.getPrecedence() >= precedence) {
writer.append("(");
}
expression.toString(writer, localData);
if (expression.getPrecedence() >= precedence){
if (expression.getPrecedence() >= precedence) {
writer.append(")");
}
writer.append(" ? ");
if (onTrue instanceof TernarOpItem){ //ternar in ternar better in parenthesis
if (onTrue.getPrecedence() >= precedence && onTrue.getPrecedence() != GraphTargetItem.NOPRECEDENCE) { // >= ternar in ternar better in parenthesis
writer.append("(");
}
onTrue.toString(writer, localData);
if (onTrue instanceof TernarOpItem){
if (onTrue.getPrecedence() >= precedence && onTrue.getPrecedence() != GraphTargetItem.NOPRECEDENCE) {
writer.append(")");
}
}
writer.append(" : ");
if (onFalse instanceof TernarOpItem){
writer.append("(");
if (onFalse.getPrecedence() >= precedence && onFalse.getPrecedence() != GraphTargetItem.NOPRECEDENCE) {
writer.append("(");
}
onFalse.toString(writer, localData);
if (onFalse instanceof TernarOpItem){
writer.append(")");
if (onFalse.getPrecedence() >= precedence && onFalse.getPrecedence() != GraphTargetItem.NOPRECEDENCE) {
writer.append(")");
}
return writer;
}