diff --git a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java index 7f3e3011aa6162da091921fdd081d2cb44a1ef8d..a79d570f5e6e9d9b143e8fbb88afd999b97139ba 100644 --- a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java +++ b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java @@ -92,8 +92,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter currentProd = ids.names.get(node); listOfAlts = new LinkedList<>(); - PAlt[] list_alt = node.getAlts().toArray(new PAlt[0]); - for(PAlt alt : list_alt) + for(PAlt alt : node.getAlts()) { alt.apply(this); } @@ -103,12 +102,12 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter private List<PElem> listElems; private AAlt aParsedAlt; - private LinkedList listElemsAltTransform; + private List<String> listElemsAltTransform; private String currentNewAltName; boolean countElementNecessary; - LinkedList listOfAlternativeElemsWHaveName; + List<String> listOfAlternativeElemsWHaveName; private final Map<AElem, Integer> elemOperators = new HashMap<>(); @@ -120,7 +119,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter AAltTransform currentAltTransform = (AAltTransform)node.getAltTransform(); - listOfAlternativeElemsWHaveName = new LinkedList(); + listOfAlternativeElemsWHaveName = new LinkedList<>(); node.apply(new DepthFirstAdapter() { @@ -155,18 +154,17 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter if(count == 1) { listElems = new LinkedList<>(); - listElemsAltTransform = new LinkedList(); + listElemsAltTransform = new LinkedList<>(); countElementNecessary = false; - Object temp[] = node.getElems().toArray(); - for(int i = 0; i < temp.length; i++) + for(PElem pElem : node.getElems()) { - Object obj = temp[i]; + final PUnOp unOp = ((AElem)pElem).getUnOp(); - if( ((AElem)obj).getUnOp() != null && - ( ((AElem)obj).getUnOp() instanceof AQMarkUnOp || - ((AElem)obj).getUnOp() instanceof AStarUnOp ) + if( unOp != null && + ( unOp instanceof AQMarkUnOp || + unOp instanceof AStarUnOp ) ) { if(!countElementNecessary) @@ -176,9 +174,9 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter } } - for(int i = 0; i < temp.length; i++) + for(PElem pElem : node.getElems()) { - ((PElem)temp[i]).apply(this); + pElem.apply(this); } TId nameOfAlt = null; @@ -216,7 +214,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter for(count = 0; count < max; count++) { listElems = new LinkedList<>(); - listElemsAltTransform = new LinkedList(); + listElemsAltTransform = new LinkedList<>(); elem = 0; @@ -224,14 +222,13 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter countElementNecessary = false; - Object temp[] = node.getElems().toArray(); - for(int i = 0; i < temp.length; i++) + for(PElem pElem : node.getElems()) { - Object obj = temp[i]; + final PUnOp unOp = ((AElem)pElem).getUnOp(); - if( ((AElem)obj).getUnOp() != null && - ( ((AElem)obj).getUnOp() instanceof AQMarkUnOp || - ((AElem)obj).getUnOp() instanceof AStarUnOp ) + if( unOp != null && + ( unOp instanceof AQMarkUnOp || + unOp instanceof AStarUnOp ) ) { if(!countElementNecessary) @@ -241,9 +238,9 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter } } - for(int i = 0; i < temp.length; i++) + for(PElem pElem : node.getElems()) { - ((PElem)temp[i]).apply(this); + pElem.apply(this); } altIds.alts_elems.put(currentNewAltName, listElemsAltTransform); diff --git a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java index 26a52e5ce6fc43d7c5fb2dcc0d8bb06e8544c9a3..a8930adb2bdb80c0e38b746e30a0448a762400fa 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java @@ -33,23 +33,23 @@ public class ResolveAltIds extends DepthFirstAdapter //Map of alternatives elements which are not list : // ie not followed by * or + operator. - public Map<String, LinkedList> alts_elems = new TreeMap<>(); + public Map<String, List<String>> alts_elems = new TreeMap<>(); //Map of only alternatives elements which are list : //followed by * or + operator. - public Map<String, LinkedList> alts_elems_list = new TreeMap<>(); + public Map<String, List<String>> alts_elems_list = new TreeMap<>(); //Map of all alternatives elements. Elements name are stored //if it is specified otherwise, it is its id. //(elem = elem_name? specifier? id un_op?) - public Map<String, LinkedList> alts_elemsGlobal = new TreeMap<>(); + public Map<String, List<String>> alts_elemsGlobal = new TreeMap<>(); //Map of all alternatives elements which have explicit name. - public Map<String, List> alts_elems_list_elemName = new TreeMap<>(); + public Map<String, List<String>> alts_elems_list_elemName = new TreeMap<>(); - private LinkedList listElemsGlobal; - private LinkedList listElems; - private LinkedList listElemslist; + private List<String> listElemsGlobal; + private List<String> listElems; + private List<String> listElemslist; String currentAlt; @@ -69,8 +69,7 @@ public class ResolveAltIds extends DepthFirstAdapter @Override public void caseAProd(AProd node) { - PAlt[] list_alts = node.getAlts().toArray(new PAlt[0]); - for(PAlt alt : list_alts) + for(PAlt alt : node.getAlts()) { alt.apply(this); } @@ -84,18 +83,17 @@ public class ResolveAltIds extends DepthFirstAdapter public void caseAAlt(AAlt alt) { //contains all the elements in the alternative, no matter if they are list or not - listElemsGlobal = new LinkedList(); + listElemsGlobal = new LinkedList<>(); //contains only single (without operator * or +) element of the alternative. - listElems = new LinkedList(); + listElems = new LinkedList<>(); //contains only element of the alternative which are list(operator * or +). - listElemslist = new LinkedList(); + listElemslist = new LinkedList<>(); currentAlt = ids.names.get(alt); - PElem[] list_elems = alt.getElems().toArray(new PElem[0]); - for(PElem elem : list_elems) + for(PElem elem : alt.getElems()) { elem.apply(this); } diff --git a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java index 8f1990578b7da8bd4fe66e303c0599cab91dc82e..dc26aee3be4496a9fa9b78233e928cafb0e5659a 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java @@ -71,9 +71,9 @@ public class ResolveTransformIds extends DepthFirstAdapter } } - private LinkedList listCurrentAltGlobal; - private LinkedList listCurrentAlt; - private LinkedList listOfListCurrentAlt; + private List<String> listCurrentAltGlobal; + private List<String> listCurrentAlt; + private List<String> listOfListCurrentAlt; @Override public void inAAlt(AAlt nodeAlt) @@ -81,9 +81,9 @@ public class ResolveTransformIds extends DepthFirstAdapter nbTransformAlt = 0; currentAlt = altIds.ids.names.get(nodeAlt); - listCurrentAltGlobal = (LinkedList)altIds.alts_elemsGlobal.get(currentAlt).clone(); - listCurrentAlt = (LinkedList)altIds.alts_elems.get(currentAlt).clone(); - listOfListCurrentAlt = (LinkedList)altIds.alts_elems_list.get(currentAlt).clone(); + listCurrentAltGlobal = new LinkedList<>(altIds.alts_elemsGlobal.get(currentAlt)); + listCurrentAlt = new LinkedList<>(altIds.alts_elems.get(currentAlt)); + listOfListCurrentAlt = new LinkedList<>(altIds.alts_elems_list.get(currentAlt)); } @Override @@ -360,12 +360,9 @@ public class ResolveTransformIds extends DepthFirstAdapter } else { - ListIterator iter = null; - iter = listCurrentAltGlobal.listIterator(); - - while(iter.hasNext()) + for(Iterator<String> iter = listCurrentAltGlobal.iterator(); iter.hasNext();) { - if( name.equals((String)iter.next()) ) + if( name.equals(iter.next()) ) { if( node.getSimpleTermTail() == null ) { @@ -382,12 +379,9 @@ public class ResolveTransformIds extends DepthFirstAdapter } else { - ListIterator iter = null; - iter = listCurrentAlt.listIterator(); - - while(iter.hasNext()) + for(Iterator<String> iter = listCurrentAlt.iterator(); iter.hasNext();) { - if( name.equals((String)iter.next()) ) + if( name.equals(iter.next()) ) { if( node.getSimpleTermTail() == null ) { @@ -587,12 +581,9 @@ public class ResolveTransformIds extends DepthFirstAdapter } else { - ListIterator iter = null; - iter = listCurrentAltGlobal.listIterator(); - - while(iter.hasNext()) + for(Iterator<String> iter = listCurrentAltGlobal.iterator(); iter.hasNext();) { - if( name.equals((String)iter.next()) ) + if( name.equals(iter.next()) ) { if( node.getSimpleTermTail() == null ) { @@ -609,19 +600,19 @@ public class ResolveTransformIds extends DepthFirstAdapter } else { - ListIterator iter = null; + Iterator<String> iter = null; if( (listCurrentAlt != null) && listCurrentAlt.contains(name) ) { - iter = listCurrentAlt.listIterator(); + iter = listCurrentAlt.iterator(); } else if( (listOfListCurrentAlt != null) && listOfListCurrentAlt.contains(name) ) { - iter = listOfListCurrentAlt.listIterator(); + iter = listOfListCurrentAlt.iterator(); } while(iter.hasNext()) { - if( name.equals((String)iter.next()) ) + if( name.equals(iter.next()) ) { if( node.getSimpleTermTail() == null ) {