private static void combineParentSelectorListToChild(BlockNode node) { ArrayList<String> newList = new ArrayList<String>(); BlockNode parentBlock = (BlockNode) node.getParentNode(); for (String parentSelector : parentBlock.getSelectorList()) { for (String childSelector : node.getSelectorList()) { // handle parent selector if (childSelector.contains("&")) { newList.add(childSelector.replace("&", parentSelector)); } else { newList.add(parentSelector + " " + childSelector); } } } node.setSelectorList(newList); Node oldParent = node.getParentNode(); HashMap<Node, Node> lastNodeAdded = ScssStylesheet.getLastNodeAdded(); Node lastAdded = lastNodeAdded.get(oldParent.getParentNode()); if (lastAdded == null) { lastAdded = oldParent; } oldParent.getParentNode().appendChild(node, lastAdded); lastNodeAdded.put(oldParent.getParentNode(), node); } }