Block refactoring - uses same method.

Use a bit of line information to put commands on same line when needed.
This commit is contained in:
Jindra Petřík
2015-07-10 06:15:11 +02:00
parent 0ebfec640c
commit 9646a6e848
10 changed files with 49 additions and 103 deletions
@@ -94,13 +94,8 @@ public class ForEachInAVM2Item extends LoopItem implements Block {
}
writer.append("(");
expression.toString(writer, localData);
writer.append(")").startBlock();
for (GraphTargetItem ti : commands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, localData).newLine();
}
}
writer.endBlock();
writer.append(")");
appendBlock(expression, writer, localData, commands);
if (writer instanceof NulWriter) {
LoopWithType loopOjb = ((NulWriter) writer).endLoop(loop.id);
labelUsed = loopOjb.used;
@@ -94,13 +94,8 @@ public class ForInAVM2Item extends LoopItem implements Block {
}
writer.append("(");
expression.toString(writer, localData);
writer.append(")").startBlock();
for (GraphTargetItem ti : commands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, localData).newLine();
}
}
writer.endBlock();
writer.append(")");
appendBlock(expression, writer, localData, commands);
if (writer instanceof NulWriter) {
LoopWithType loopOjb = ((NulWriter) writer).endLoop(loop.id);
labelUsed = loopOjb.used;
@@ -76,13 +76,8 @@ public class TryAVM2Item extends AVM2Item implements Block {
@Override
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
writer.append("try").startBlock();
for (GraphTargetItem ti : tryCommands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, localData).newLine();
}
}
writer.endBlock();
writer.append("try");
appendBlock(null, writer, localData, tryCommands);
for (int e = 0; e < catchExceptions.size(); e++) {
writer.newLine();
writer.append("catch(");
@@ -102,24 +97,13 @@ public class TryAVM2Item extends AVM2Item implements Block {
writer.append(":");
writer.hilightSpecial(catchExceptions.get(e).getTypeName(localData.constantsAvm2, localData.fullyQualifiedNames), HighlightSpecialType.TRY_TYPE, e);
writer.append(")");
writer.startBlock();
List<GraphTargetItem> commands = catchCommands.get(e);
for (GraphTargetItem ti : commands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, localData).newLine();
}
}
writer.endBlock();
appendBlock(null, writer, localData, commands);
}
if (finallyCommands.size() > 0) {
writer.newLine();
writer.append("finally").startBlock();
for (GraphTargetItem ti : finallyCommands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, localData).newLine();
}
}
writer.endBlock();
writer.append("finally");
appendBlock(null, writer, localData, finallyCommands);
}
return writer;
}
@@ -68,13 +68,8 @@ public class TryActionItem extends ActionItem implements Block {
@Override
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
writer.append("try").startBlock();
for (GraphTargetItem ti : tryCommands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, localData).newLine();
}
}
writer.endBlock();
writer.append("try");
appendBlock(null, writer, localData, tryCommands);
for (int e = 0; e < catchExceptions.size(); e++) {
writer.newLine();
writer.append("catch");
@@ -83,24 +78,14 @@ public class TryActionItem extends ActionItem implements Block {
}
writer.append("(");
catchExceptions.get(e).toStringNoQuotes(writer, localData);
writer.append(")").startBlock();
writer.append(")");
List<GraphTargetItem> commands = catchCommands.get(e);
for (GraphTargetItem ti : commands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, localData).newLine();
}
}
writer.endBlock();
appendBlock(null, writer, localData, commands);
}
if (finallyCommands.size() > 0) {
writer.newLine();
writer.append("finally").startBlock();
for (GraphTargetItem ti : finallyCommands) {
if (!ti.isEmpty()) {
ti.toStringSemicoloned(writer, localData).newLine();
}
}
writer.endBlock();
writer.append("finally");
appendBlock(null, writer, localData, finallyCommands);
}
return writer;
}