Skip to content

Commit 0c4a62e

Browse files
committed
fixup! Add ControlFlowGraph and implementation
1 parent 1058683 commit 0c4a62e

File tree

4 files changed

+13
-13
lines changed

4 files changed

+13
-13
lines changed

delphi-frontend/src/main/java/au/com/integradev/delphi/cfg/ControlFlowGraphBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ public ProtoBlock addBlockBeforeCurrent() {
240240
}
241241

242242
public void addBlockBefore(ProtoBlock successor) {
243-
addBlock(ProtoBlockFactory.succeedingTo(successor));
243+
addBlock(ProtoBlockFactory.linear(successor));
244244
}
245245

246246
public void addBlock(ProtoBlock block) {

delphi-frontend/src/main/java/au/com/integradev/delphi/cfg/ControlFlowGraphVisitor.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ public ControlFlowGraphBuilder visit(IfStatementNode node, ControlFlowGraphBuild
263263
ProtoBlock thenBlock = builder.getCurrentBlock();
264264

265265
// process condition
266-
builder.addBlock(ProtoBlockFactory.withBranch(node, thenBlock, elseBlock));
266+
builder.addBlock(ProtoBlockFactory.branch(node, thenBlock, elseBlock));
267267
return buildCondition(builder, node.getGuardExpression(), thenBlock, elseBlock);
268268
}
269269

@@ -295,7 +295,7 @@ private ControlFlowGraphBuilder buildConditionAnd(
295295
buildCondition(builder, node.getRight(), trueBlock, falseBlock);
296296
ProtoBlock newTrueBlock = builder.getCurrentBlock();
297297
// LHS
298-
builder.addBlock(ProtoBlockFactory.withBranch(node, newTrueBlock, falseBlock));
298+
builder.addBlock(ProtoBlockFactory.branch(node, newTrueBlock, falseBlock));
299299
return buildCondition(builder, node.getLeft(), newTrueBlock, falseBlock);
300300
}
301301

@@ -308,7 +308,7 @@ private ControlFlowGraphBuilder buildConditionOr(
308308
buildCondition(builder, node.getRight(), trueBlock, falseBlock);
309309
ProtoBlock newFalseBlock = builder.getCurrentBlock();
310310
// LHS
311-
builder.addBlock(ProtoBlockFactory.withBranch(node, trueBlock, newFalseBlock));
311+
builder.addBlock(ProtoBlockFactory.branch(node, trueBlock, newFalseBlock));
312312
return buildCondition(builder, node.getLeft(), trueBlock, newFalseBlock);
313313
}
314314

@@ -412,7 +412,7 @@ public ControlFlowGraphBuilder visit(RepeatStatementNode node, ControlFlowGraphB
412412
ProtoBlock body = builder.addBlockBeforeCurrent();
413413

414414
// Condition
415-
builder.addBlock(ProtoBlockFactory.withBranch(node, after, body));
415+
builder.addBlock(ProtoBlockFactory.branch(node, after, body));
416416
buildCondition(builder, node.getGuardExpression(), after, body);
417417

418418
// Body
@@ -421,7 +421,7 @@ public ControlFlowGraphBuilder visit(RepeatStatementNode node, ControlFlowGraphB
421421
build(node.getStatementList(), builder);
422422
builder.popLoopContext();
423423

424-
body.update(ProtoBlockFactory.succeedingTo(builder.getCurrentBlock()));
424+
body.update(ProtoBlockFactory.linear(builder.getCurrentBlock()));
425425
builder.addBlockBeforeCurrent();
426426
return builder;
427427
}
@@ -458,10 +458,10 @@ public ControlFlowGraphBuilder visit(WhileStatementNode node, ControlFlowGraphBu
458458

459459
// Condition
460460
builder.setCurrentBlock(condition);
461-
builder.addBlock(ProtoBlockFactory.withBranch(node, body, after));
461+
builder.addBlock(ProtoBlockFactory.branch(node, body, after));
462462
buildCondition(builder, node.getGuardExpression(), body, after);
463463

464-
condition.update(ProtoBlockFactory.succeedingTo(builder.getCurrentBlock()));
464+
condition.update(ProtoBlockFactory.linear(builder.getCurrentBlock()));
465465
builder.addBlockBeforeCurrent();
466466
return builder;
467467
}
@@ -523,7 +523,7 @@ private ControlFlowGraphBuilder buildForLoop(
523523
build(node.getStatement(), builder);
524524
builder.popLoopContext();
525525

526-
loopback.update(ProtoBlockFactory.withBranch(node, builder.getCurrentBlock(), after));
526+
loopback.update(ProtoBlockFactory.branch(node, builder.getCurrentBlock(), after));
527527

528528
builder.setCurrentBlock(loopback);
529529
parts.forEach(
@@ -737,7 +737,7 @@ private ControlFlowGraphBuilder buildBooleanLHS(
737737
BinaryExpressionNode node,
738738
ProtoBlock trueBlock,
739739
ProtoBlock falseBlock) {
740-
builder.addBlock(ProtoBlockFactory.withBranch(node, trueBlock, falseBlock));
740+
builder.addBlock(ProtoBlockFactory.branch(node, trueBlock, falseBlock));
741741
return build(node.getLeft(), builder);
742742
}
743743

delphi-frontend/src/main/java/au/com/integradev/delphi/cfg/block/ProtoBlockFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public static ProtoBlock halt(DelphiNode terminator) {
4747
return new ProtoBlock(HaltImpl::new, (blocks, block) -> ((HaltImpl) block).setData(terminator));
4848
}
4949

50-
public static ProtoBlock withBranch(
50+
public static ProtoBlock branch(
5151
DelphiNode terminator, ProtoBlock trueBlock, ProtoBlock falseBlock) {
5252
return new ProtoBlock(
5353
BranchImpl::new,
@@ -63,7 +63,7 @@ public static ProtoBlock finallyBlock(ProtoBlock successor, ProtoBlock finallySu
6363
((FinallyImpl) block).setData(blocks.get(successor), blocks.get(finallySuccessor)));
6464
}
6565

66-
public static ProtoBlock succeedingTo(ProtoBlock successor) {
66+
public static ProtoBlock linear(ProtoBlock successor) {
6767
return new ProtoBlock(
6868
LinearImpl::new, (blocks, block) -> ((LinearImpl) block).setData(blocks.get(successor)));
6969
}

delphi-frontend/src/test/java/au/com/integradev/delphi/cfg/checker/BlockChecker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
import au.com.integradev.delphi.cfg.api.Branch;
2525
import au.com.integradev.delphi.cfg.api.Cases;
2626
import au.com.integradev.delphi.cfg.api.Finally;
27-
import au.com.integradev.delphi.cfg.api.Linear;
2827
import au.com.integradev.delphi.cfg.api.Halt;
28+
import au.com.integradev.delphi.cfg.api.Linear;
2929
import au.com.integradev.delphi.cfg.api.Terminated;
3030
import au.com.integradev.delphi.cfg.api.UnconditionalJump;
3131
import au.com.integradev.delphi.cfg.api.UnknownException;

0 commit comments

Comments
 (0)