changes
This commit is contained in:
@@ -84,7 +84,67 @@ public class HierarchicalRegrouperForC {
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return reActionSets;
|
List<HierarchicalActionSet> reActionSets1 = new ArrayList<>();
|
||||||
|
for(HierarchicalActionSet a:reActionSets){
|
||||||
|
HierarchicalActionSet hierarchicalActionSet = removeBlocks(a);
|
||||||
|
hierarchicalActionSet = removeIFthenBlocks(hierarchicalActionSet);
|
||||||
|
reActionSets1.add(hierarchicalActionSet);
|
||||||
|
|
||||||
|
}
|
||||||
|
return reActionSets1;
|
||||||
|
// return reActionSets;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HierarchicalActionSet removeBlocks(HierarchicalActionSet actionSet){
|
||||||
|
List<HierarchicalActionSet> subActions = actionSet.getSubActions();
|
||||||
|
if (subActions.size() == 1){
|
||||||
|
HierarchicalActionSet subaction = subActions.get(0);
|
||||||
|
//else,then,block
|
||||||
|
if(subaction.getAstNodeType().equals("block")){//|| subaction.getAstNodeType().equals("then") || subaction.getAstNodeType().equals("else")){
|
||||||
|
List<HierarchicalActionSet> subSubActions = subaction.getSubActions();
|
||||||
|
if(subSubActions.size() == 1){
|
||||||
|
|
||||||
|
HierarchicalActionSet subsubsubAction = subSubActions.get(0);
|
||||||
|
List<Integer> keysByValue = NodeMap_new.getKeysByValue(NodeMap_new.StatementMap, subsubsubAction.getAstNodeType());
|
||||||
|
if(keysByValue != null && keysByValue.size() ==1){
|
||||||
|
subsubsubAction.setParent(null);
|
||||||
|
return removeBlocks(subsubsubAction);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return actionSet;
|
||||||
|
|
||||||
|
}
|
||||||
|
private HierarchicalActionSet removeIFthenBlocks(HierarchicalActionSet actionSet){
|
||||||
|
List<HierarchicalActionSet> subActions = actionSet.getSubActions();
|
||||||
|
if (subActions.size() == 1){
|
||||||
|
HierarchicalActionSet subaction = subActions.get(0);
|
||||||
|
//else,then,block
|
||||||
|
if(subaction.getAstNodeType().equals("then")|| subaction.getAstNodeType().equals("else")){//|| subaction.getAstNodeType().equals("then") || subaction.getAstNodeType().equals("else")){
|
||||||
|
List<HierarchicalActionSet> subSubActions = subaction.getSubActions();
|
||||||
|
if(subSubActions.size() == 1){
|
||||||
|
|
||||||
|
HierarchicalActionSet subsubsubAction = subSubActions.get(0);
|
||||||
|
if(subsubsubAction.getAstNodeType().equals("block")){
|
||||||
|
List<HierarchicalActionSet> subActions1 = subsubsubAction.getSubActions();
|
||||||
|
if (subActions1.size() ==1){
|
||||||
|
HierarchicalActionSet hierarchicalActionSet = subActions1.get(0);
|
||||||
|
List<Integer> keysByValue = NodeMap_new.getKeysByValue(NodeMap_new.StatementMap, hierarchicalActionSet.getAstNodeType());
|
||||||
|
if(keysByValue != null && keysByValue.size() ==1){
|
||||||
|
hierarchicalActionSet.setParent(null);
|
||||||
|
return removeBlocks(hierarchicalActionSet);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return actionSet;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private HierarchicalActionSet createActionSet(Action act, Action parentAct, HierarchicalActionSet parent) {
|
private HierarchicalActionSet createActionSet(Action act, Action parentAct, HierarchicalActionSet parent) {
|
||||||
|
|||||||
Reference in New Issue
Block a user