FlatSetFieldNode fsfn=new FlatSetFieldNode(dst_tmp, fan.getField(), src_tmp);
fsfn.setNumLine(en.getNumLine());
+ addMapNode2FlatNodeSet(an,fsfn);
last.addNext(fsfn);
last=fsfn;
if (pre) {
last.addNext(fon2);
last=fon2;
}
+ addMapNode2FlatNodeSet(an,last);
return new NodePair(first, last);
} else if (an.getDest().kind()==Kind.NameNode) {
//We could be assigning a field or variable
FlatSetFieldNode fsfn=new FlatSetFieldNode(dst_tmp, fan.getField(), src_tmp);
fsfn.setNumLine(en.getNumLine());
+ addMapNode2FlatNodeSet(an,fsfn);
last.addNext(fsfn);
last=fsfn;
if (pre) {
fsfn=new FlatSetFieldNode(getTempforVar(nn.getVar()), nn.getField(), src_tmp);
fsfn.setNumLine(nn.getNumLine());
}
+ addMapNode2FlatNodeSet(an,fsfn);
if (first==null) {
first=fsfn;
} else {
FlatOpNode fon=new FlatOpNode(getTempforVar(nn.getVar()), src_tmp, null, new Operation(Operation.ASSIGN));
fon.setNumLine(an.getNumLine());
+ addMapNode2FlatNodeSet(an,fon);
last.addNext(fon);
last=fon;
return new NodePair(fgrn, fgrn);
}
+ private NodePair flattenGenDefReachNode(GenDefReachNode gdrn) {
+ FlatGenDefReachNode fgdrn = new FlatGenDefReachNode(gdrn.getOutputName() );
+ return new NodePair(fgdrn, fgdrn);
+ }
+
private NodePair flattenSESENode(SESENode sn) {
if( sn.isStart() ) {
FlatSESEEnterNode fsen=new FlatSESEEnterNode(sn);
case Kind.GenReachNode:
return flattenGenReachNode((GenReachNode)bsn);
+ case Kind.GenDefReachNode:
+ return flattenGenDefReachNode((GenDefReachNode)bsn);
+
case Kind.ContinueBreakNode:
return flattenContinueBreakNode((ContinueBreakNode)bsn);
}