return new NodePair(cond.getBegin(),rnflat);
} else
return new NodePair(rnflat,rnflat);
-
+ }
+
+ private NodePair flattenTaskExitNode(TaskExitNode ten) {
+ FlatTaskExitNode tenflat=new FlatTaskExitNode();
+ return new NodePair(tenflat,tenflat);
}
private NodePair flattenSubBlockNode(SubBlockNode sbn) {
case Kind.ReturnNode:
return flattenReturnNode((IR.Tree.ReturnNode)bsn);
+
+ case Kind.TaskExitNode:
+ return flattenTaskExitNode((IR.Tree.TaskExitNode)bsn);
case Kind.SubBlockNode:
return flattenSubBlockNode((SubBlockNode)bsn);
public static final int FlatNop=10;
public static final int FlatSetElementNode=11;
public static final int FlatElementNode=12;
+ public static final int FlatTaskExitNode=13;
}
--- /dev/null
+package IR.Flat;
+
+public class FlatTaskExitNode extends FlatNode {
+ public FlatTaskExitNode() {
+ }
+
+ public int kind() {
+ return FKind.FlatTaskExitNode;
+ }
+
+ public TempDescriptor [] readsTemps() {
+ return new TempDescriptor [0];
+ }
+}
IR/Flat/FlatLiteralNode.class IR/Flat/FlatMethod.class \
IR/Flat/FlatNew.class IR/Flat/FlatNode.class IR/Flat/FlatNop.class \
IR/Flat/FlatOpNode.class IR/Flat/FlatReturnNode.class \
-IR/Flat/FlatSetElementNode.class IR/Flat/FlatSetFieldNode.class \
-IR/Flat/NodePair.class IR/Flat/ParamsObject.class \
-IR/Flat/TempDescriptor.class IR/Flat/TempObject.class \
-IR/MethodDescriptor.class IR/NameDescriptor.class IR/Operation.class \
-IR/State.class IR/SymbolTable.class IR/TaskDescriptor.class \
+IR/Flat/FlatTaskExitNode.class IR/Flat/FlatSetElementNode.class \
+IR/Flat/FlatSetFieldNode.class IR/Flat/NodePair.class \
+IR/Flat/ParamsObject.class IR/Flat/TempDescriptor.class \
+IR/Flat/TempObject.class IR/MethodDescriptor.class \
+IR/NameDescriptor.class IR/Operation.class IR/State.class \
+IR/SymbolTable.class IR/TaskDescriptor.class \
IR/Tree/ArrayAccessNode.class IR/Tree/AssignmentNode.class \
IR/Tree/BlockExpressionNode.class IR/Tree/BlockNode.class \
IR/Tree/BlockStatementNode.class IR/Tree/BuildIR.class \