From 635744bad1243e39d6e0ca705c3bb3002b2a46bc Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Thu, 7 Apr 2022 15:29:14 +0200 Subject: [PATCH] Use generics in many simple cases --- .../sablecc/sablecc/AddAstProductions.java | 7 +- ...ntualEmptyTransformationToProductions.java | 10 +-- .../AddProdTransformAndAltTransform.java | 17 +++-- .../sablecc/AlternativeElementTypes.java | 12 ++-- .../sablecc/ComputeCGNomenclature.java | 8 +-- .../org/sablecc/sablecc/In_Production.java | 10 +-- .../java/org/sablecc/sablecc/Inlining.java | 14 ++-- .../InternalTransformationsToGrammar.java | 18 ++--- .../org/sablecc/sablecc/LR0Collection.java | 20 +++--- .../org/sablecc/sablecc/PrettyPrinter.java | 67 +++++++++---------- .../java/org/sablecc/sablecc/Production.java | 15 ++--- .../RecursiveProductionsDetections.java | 12 ++-- .../org/sablecc/sablecc/ResolveAltIds.java | 14 ++-- .../org/sablecc/sablecc/ResolveAstIds.java | 4 +- .../java/org/sablecc/sablecc/ResolveIds.java | 54 +++++++-------- .../sablecc/ResolveProdTransformIds.java | 7 +- .../sablecc/sablecc/ResolveTransformIds.java | 35 +++++----- .../java/org/sablecc/sablecc/SableCC.java | 4 +- .../java/org/sablecc/sablecc/Transitions.java | 6 +- 19 files changed, 159 insertions(+), 175 deletions(-) diff --git a/src/main/java/org/sablecc/sablecc/AddAstProductions.java b/src/main/java/org/sablecc/sablecc/AddAstProductions.java index 7ad1e10..3215085 100644 --- a/src/main/java/org/sablecc/sablecc/AddAstProductions.java +++ b/src/main/java/org/sablecc/sablecc/AddAstProductions.java @@ -47,10 +47,9 @@ public class AddAstProductions extends DepthFirstAdapter error(node.getArrow()); } - Object []list_alt = (Object[]) node.getAlts().toArray(); - for(int i=0; i<list_alt.length; i++) - { - ((PAlt)list_alt[i]).apply(this); + PAlt[] list_alt = node.getAlts().toArray(new PAlt[0]); + for (PAlt alt : list_alt) { + alt.apply(this); } AAstProd astProd = new AAstProd(new TId(node.getId().getText()), listOfAstAlts); diff --git a/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java b/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java index 3612052..74641a9 100644 --- a/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java +++ b/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java @@ -50,13 +50,13 @@ public class AddEventualEmptyTransformationToProductions extends DepthFirstAdapt if(node.getArrow() == null && ast_ids.ast_prods.get(currentProd) == null ) { node.setArrow(new TArrow(node.getId().getLine(), node.getId().getPos()+node.getId().getText().length() )); - node.setProdTransform(new LinkedList()); + node.setProdTransform(new LinkedList<PElem>()); - AAlt []alts = (AAlt[]) node.getAlts().toArray(new AAlt[0]); + PAlt[] alts = node.getAlts().toArray(new PAlt[0]); - for(int i=0; i<alts.length; i++) + for(PAlt alt : alts) { - alts[i].apply( new DepthFirstAdapter() + alt.apply( new DepthFirstAdapter() { @Override public void inAAlt(AAlt node) @@ -65,7 +65,7 @@ public class AddEventualEmptyTransformationToProductions extends DepthFirstAdapt { error(((AAltTransform)node.getAltTransform()).getLBrace()); } - node.setAltTransform( new AAltTransform(new TLBrace(), new LinkedList(), new TRBrace()) ); + node.setAltTransform( new AAltTransform(new TLBrace(), new LinkedList<PTerm>(), new TRBrace()) ); } } ); diff --git a/src/main/java/org/sablecc/sablecc/AddProdTransformAndAltTransform.java b/src/main/java/org/sablecc/sablecc/AddProdTransformAndAltTransform.java index 9ec3746..0b533ce 100644 --- a/src/main/java/org/sablecc/sablecc/AddProdTransformAndAltTransform.java +++ b/src/main/java/org/sablecc/sablecc/AddProdTransformAndAltTransform.java @@ -38,15 +38,14 @@ public class AddProdTransformAndAltTransform extends DepthFirstAdapter if(production.getArrow() == null) { AElem elem = new AElem(null, new AProductionSpecifier(), new TId(currentProdId), null); - LinkedList listOfProdTransformElem = new LinkedList(); + List<PElem> listOfProdTransformElem = new LinkedList<>(); listOfProdTransformElem.add(elem); production.setProdTransform(listOfProdTransformElem); production.setArrow(new TArrow()); } } - private int i; - private LinkedList list; + private List<PTerm> list; @Override public void inAAlt(AAlt alt) @@ -54,7 +53,7 @@ public class AddProdTransformAndAltTransform extends DepthFirstAdapter if(alt.getAltTransform() == null) { currentAlt = currentProdId; - list = new LinkedList(); + list = new LinkedList<>(); AProdName aProdName = new AProdName(new TId(currentProdId), null); if(alt.getAltName() != null) @@ -64,11 +63,11 @@ public class AddProdTransformAndAltTransform extends DepthFirstAdapter if( alt.getElems().size() > 0 ) { - Object temp[] = alt.getElems().toArray(); + PElem[] temp = alt.getElems().toArray(new PElem[0]); - for(i = 0; i < temp.length; i++) + for(PElem e : temp) { - ((PElem) temp[i]).apply(new DepthFirstAdapter() + e.apply(new DepthFirstAdapter() { @Override public void caseAElem(AElem elem) @@ -90,7 +89,7 @@ public class AddProdTransformAndAltTransform extends DepthFirstAdapter if( (elem.getUnOp() != null) && ( (elem.getUnOp() instanceof AStarUnOp) || (elem.getUnOp() instanceof APlusUnOp) ) ) { - LinkedList listP = new LinkedList(); + List<PListTerm> listP = new LinkedList<>(); if( !elemNameExplicitelySpecified && (elem.getSpecifier()!= null) ) { if(elem.getSpecifier() instanceof ATokenSpecifier) @@ -138,7 +137,7 @@ public class AddProdTransformAndAltTransform extends DepthFirstAdapter } ANewTerm newTerm = new ANewTerm(aProdName, new TLPar(), list); - LinkedList lst = new LinkedList(); + List<PTerm> lst = new LinkedList<>(); lst.add(newTerm); alt.setAltTransform(new AAltTransform(new TLBrace(), lst, new TRBrace())); diff --git a/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java b/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java index d275aba..209be94 100644 --- a/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java +++ b/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java @@ -36,10 +36,10 @@ public class AlternativeElementTypes extends DepthFirstAdapter @Override public void caseAProd(final AProd production) { - Object []temp = production.getAlts().toArray(); - for(int i = 0; i<temp.length; i++) + PAlt[] temp = production.getAlts().toArray(new PAlt[0]); + for(PAlt alt : temp) { - ((PAlt)temp[i]).apply(this); + alt.apply(this); } } @@ -47,10 +47,10 @@ public class AlternativeElementTypes extends DepthFirstAdapter public void caseAAlt(AAlt node) { currentAlt = ids.names.get(node); - Object []temp = node.getElems().toArray(); - for(int i = 0; i<temp.length; i++) + PElem[] temp = node.getElems().toArray(new PElem[0]); + for(PElem elem : temp) { - ((PElem)temp[i]).apply(this); + elem.apply(this); } } diff --git a/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java b/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java index d135374..06218a9 100644 --- a/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java +++ b/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java @@ -62,10 +62,10 @@ public class ComputeCGNomenclature extends DepthFirstAdapter public void caseAProd(final AProd production) { currentProd = "P" + ResolveIds.name(production.getId().getText()); - Object []temp = production.getAlts().toArray(); - for(int i = 0; i<temp.length; i++) + PAlt[] temp = production.getAlts().toArray(new PAlt[0]); + for(PAlt alt : temp) { - ((PAlt)temp[i]).apply(this); + alt.apply(this); } } @@ -128,7 +128,7 @@ public class ComputeCGNomenclature extends DepthFirstAdapter { if( node.getListTerms().size() > 0 ) { - Object[] temp = node.getListTerms().toArray(); + PListTerm[] temp = node.getListTerms().toArray(new PListTerm[0]); String firstTermType = altTransformElemTypes.get(temp[0]); diff --git a/src/main/java/org/sablecc/sablecc/In_Production.java b/src/main/java/org/sablecc/sablecc/In_Production.java index bbb4a6e..844dc51 100644 --- a/src/main/java/org/sablecc/sablecc/In_Production.java +++ b/src/main/java/org/sablecc/sablecc/In_Production.java @@ -22,7 +22,7 @@ public class In_Production { setName(prod.getId().getText()); - AElem[] prodTransforms = (AElem [])prod.getProdTransform().toArray(new AElem[0]); + AElem[] prodTransforms = prod.getProdTransform().toArray(new AElem[0]); prodTransformElems = new String[prodTransforms.length]; for(int i=0; i<prodTransforms.length; i++) @@ -43,7 +43,7 @@ public class In_Production prodTransformElems[0] = new String(" "); } - AAlt[] alts = (AAlt[])prod.getAlts().toArray(new AAlt[0]); + AAlt[] alts = prod.getAlts().toArray(new AAlt[0]); alternatives = new In_Alternative[alts.length]; for(int i=0; i<alts.length; i++) @@ -91,7 +91,7 @@ public class In_Production setName(alt.getAltName() != null ? alt.getAltName().getText() : ""); elements = new AElem[alt.getElems().size()]; - AElem[] listOfElems = (AElem[]) alt.getElems().toArray(new AElem[0]); + AElem[] listOfElems = alt.getElems().toArray(new AElem[0]); final String newElemName = (name.equals("") ? prodName : prodName + "#" + name ); @@ -115,10 +115,10 @@ public class In_Production prodTransform_altTransform = new HashMap<>(prodTransformElems.length); - LinkedList list = ((AAltTransform)alt.getAltTransform()).getTerms(); + List<PTerm> list = ((AAltTransform)alt.getAltTransform()).getTerms(); for(int i=0; i<list.size(); i++) { - PTerm tmpTerm = (PTerm)list.get(i); + PTerm tmpTerm = list.get(i); tmpTerm.apply(new DepthFirstAdapter() { @Override diff --git a/src/main/java/org/sablecc/sablecc/Inlining.java b/src/main/java/org/sablecc/sablecc/Inlining.java index 185316b..35a4fa9 100644 --- a/src/main/java/org/sablecc/sablecc/Inlining.java +++ b/src/main/java/org/sablecc/sablecc/Inlining.java @@ -42,16 +42,16 @@ public class Inlining */ public boolean inlineProduction() { - AAlt[] alts = (AAlt[])current_production.getAlts().toArray(new AAlt[0]); + PAlt[] alts = current_production.getAlts().toArray(new PAlt[0]); final BooleanEx prodMustBeInlined = new BooleanEx(false); /* We're trying to detect if the current production must be inlined. ie one of its alternatives contains production to inline */ - for(int i=0; i<alts.length; i++) + for(PAlt alt : alts) { - ((PAlt)alts[i]).apply( new DepthFirstAdapter() + alt.apply( new DepthFirstAdapter() { @Override public void caseAElem(AElem node) @@ -83,7 +83,7 @@ public class Inlining List<PAlt> listOfAlts = new LinkedList<>(); for(int i=0; i<alts.length; i++) { - listOfAlts.addAll( inlineAlternative(alts[i]) ); + listOfAlts.addAll( inlineAlternative((AAlt)alts[i]) ); } /* if( !containsDoubloons(listOfAlts) ) @@ -117,8 +117,8 @@ public class Inlining for(int i=0; i<alts.length; i++) { - LinkedList elems = alts[i].getElems(); - AElem[] arrayOfElems = (AElem []) elems.toArray(new AElem[0]); + List<PElem> elems = alts[i].getElems(); + AElem[] arrayOfElems = elems.toArray(new AElem[0]); List<String> listOfElems = new LinkedList<>(); for(int j=0; j<arrayOfElems.length; j++) { @@ -186,7 +186,7 @@ public class Inlining */ public List<AAlt> inlineAlternative(AAlt alt) { - AElem[] elems = (AElem[])alt.getElems().toArray(new AElem[0]); + AElem[] elems = alt.getElems().toArray(new AElem[0]); String elem_name ; // This list contains the names of elements to inline within an alternative diff --git a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java index 856307c..cf2fb0f 100644 --- a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java +++ b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java @@ -48,7 +48,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter private Map<String, String> isElementIsAlist = new TreeMap<>(); - private LinkedList listProd; + private List<PProd> listProd; public InternalTransformationsToGrammar(ResolveIds ids, ResolveAltIds altIds, ResolveTransformIds transformIds, @@ -72,7 +72,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter listProd = node.getProds(); } - private LinkedList listOfAlts; + private List<PAlt> listOfAlts; @Override public void inAAst(AAst node) @@ -90,18 +90,18 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter public void caseAProd(AProd node) { currentProd = ids.names.get(node); - listOfAlts = new LinkedList(); + listOfAlts = new LinkedList<>(); - Object[] list_alt = (Object[])node.getAlts().toArray(); - for(int i=0; i<list_alt.length; i++) + PAlt[] list_alt = node.getAlts().toArray(new PAlt[0]); + for(PAlt alt : list_alt) { - ((PAlt) list_alt[i]).apply(this); + alt.apply(this); } node.setAlts(listOfAlts); } - private LinkedList listElems; + private List<PElem> listElems; private AAlt aParsedAlt; private LinkedList listElemsAltTransform; private String currentNewAltName; @@ -152,7 +152,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter if(count == 1) { - listElems = new LinkedList(); + listElems = new LinkedList<>(); listElemsAltTransform = new LinkedList(); countElementNecessary = false; @@ -213,7 +213,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter for(count = 0; count < max; count++) { - listElems = new LinkedList(); + listElems = new LinkedList<>(); listElemsAltTransform = new LinkedList(); elem = 0; diff --git a/src/main/java/org/sablecc/sablecc/LR0Collection.java b/src/main/java/org/sablecc/sablecc/LR0Collection.java index f2d6634..69ce858 100644 --- a/src/main/java/org/sablecc/sablecc/LR0Collection.java +++ b/src/main/java/org/sablecc/sablecc/LR0Collection.java @@ -12,10 +12,10 @@ import java.util.Vector; final class LR0Collection { - private final Vector sets = new Vector(0); - private final TreeMap setIndices = new TreeMap(); - private final Vector GOTO = new Vector(0); - final Vector names = new Vector(0); + private final Vector<LR0ItemSet> sets = new Vector<>(0); + private final TreeMap<LR0ItemSet, Integer> setIndices = new TreeMap<>(); + private final Vector<TreeMap<Symbol, Integer>> GOTO = new Vector<>(0); + final Vector<String> names = new Vector<>(0); LR0Collection(LR0ItemSet set ) @@ -54,7 +54,7 @@ final class LR0Collection , result); sets.addElement(set ); - GOTO.addElement(new TreeMap()); + GOTO.addElement(new TreeMap<Symbol, Integer>()); if(from == -1) { names.addElement(" "); @@ -79,7 +79,7 @@ final class LR0Collection { if(!to.equals(empty)) { - ((TreeMap) GOTO.elementAt(from)).put(symbol, add(to, from, symbol)); + GOTO.elementAt(from).put(symbol, add(to, from, symbol)); } } @@ -87,14 +87,13 @@ final class LR0Collection (LR0ItemSet set ) { - return (Integer) setIndices.get(set - ); + return setIndices.get(set); } private LR0ItemSet set (int index) { - return (LR0ItemSet) sets.elementAt(index); + return sets.elementAt(index); } LR0ItemSet[] sets() @@ -108,8 +107,7 @@ final class LR0Collection Integer GOTO(int set , Symbol symbol) { - return (Integer) ((TreeMap) GOTO.elementAt(set - )).get(symbol); + return GOTO.elementAt(set).get(symbol); } @Override diff --git a/src/main/java/org/sablecc/sablecc/PrettyPrinter.java b/src/main/java/org/sablecc/sablecc/PrettyPrinter.java index 4c24e5e..362b160 100644 --- a/src/main/java/org/sablecc/sablecc/PrettyPrinter.java +++ b/src/main/java/org/sablecc/sablecc/PrettyPrinter.java @@ -22,11 +22,10 @@ public class PrettyPrinter extends DepthFirstAdapter public void caseAProductions(AProductions node) { System.err.println("Productions \n"); - AProd [] prods = - (AProd [])node.getProds().toArray(new AProd[0]); - for(int i = 0; i < prods.length; i++) + PProd[] prods = node.getProds().toArray(new PProd[0]); + for(PProd prod : prods) { - prods[i].apply(this); + prod.apply(this); } } @@ -42,29 +41,28 @@ public class PrettyPrinter extends DepthFirstAdapter } System.err.println(); - AElem[] elems = (AElem [])node.getProdTransform().toArray(new AElem[0]); + PElem[] elems = node.getProdTransform().toArray(new PElem[0]); //if(node.getArrow() != null) if(elems.length > 0) { System.err.print(prod_transform_INDENT + "{-> "); - for(int i=0; i<elems.length; i++) + for(PElem elem : elems) { - //System.err.print(elems[i] + " "); - elems[i].apply(this); + elem.apply(this); System.err.print(" "); } System.err.println(" } " + hasProdTransform); } - Object[] alts = (Object[])node.getAlts().toArray(); + PAlt[] alts = node.getAlts().toArray(new PAlt[0]); for(int i=0; i<alts.length-1; i++) { - ((PAlt)alts[i]).apply(this); + alts[i].apply(this); System.err.println( " |"); } - ((PAlt)alts[alts.length-1]).apply(this); + alts[alts.length-1].apply(this); System.err.println("\n" + alternative_INDENT + ";\n"); } @@ -79,11 +77,10 @@ public class PrettyPrinter extends DepthFirstAdapter System.err.print("{" + node.getAltName().getText()+"} "); } - AElem[] listElems = (AElem[])node.getElems().toArray(new AElem[0]); - for(int i=0; i<listElems.length; i++) + PElem[] listElems = node.getElems().toArray(new PElem[0]); + for(PElem elem : listElems) { - //System.err.print(listElems[i]); - listElems[i].apply(this); + elem.apply(this); System.err.print(" "); } @@ -98,10 +95,10 @@ public class PrettyPrinter extends DepthFirstAdapter { System.err.print("\n" + alt_transform_INDENT + "{-> "); - Object []terms = (Object[]) node.getTerms().toArray(); - for(int i=0; i<terms.length; i++) + PTerm[] terms = node.getTerms().toArray(new PTerm[0]); + for(PTerm term : terms) { - ((PTerm)terms[i]).apply(this); + term.apply(this); System.err.print(" "); } @@ -125,15 +122,15 @@ public class PrettyPrinter extends DepthFirstAdapter node.getProdName().apply(this); System.err.print(" (" ); - Object []params = node.getParams().toArray(); + PTerm[] params = node.getParams().toArray(new PTerm[0]); if(params.length > 0) { for(int i=0; i<params.length-1; i++) { - ((PTerm)params[i]).apply(this); + params[i].apply(this); System.err.print(", "); } - ((PTerm)params[params.length-1]).apply(this); + params[params.length-1].apply(this); } System.err.print(" )"); } @@ -142,11 +139,11 @@ public class PrettyPrinter extends DepthFirstAdapter public void caseAListTerm(AListTerm node) { System.err.print("[ "); - Object []list_terms = node.getListTerms().toArray(); + PListTerm[] list_terms = node.getListTerms().toArray(new PListTerm[0]); - for(int i=0; i<list_terms.length; i++) + for(PListTerm listTerm : list_terms) { - ((PListTerm)list_terms[i]).apply(this); + listTerm.apply(this); } System.err.print(" ]"); } @@ -186,15 +183,15 @@ public class PrettyPrinter extends DepthFirstAdapter node.getProdName().apply(this); System.err.print(" (" ); - Object []params = node.getParams().toArray(); + PTerm[] params = node.getParams().toArray(new PTerm[0]); if(params.length > 0) { for(int i=0; i<params.length-1; i++) { - ((PTerm)params[i]).apply(this); + params[i].apply(this); System.err.print(", "); } - ((PTerm)params[params.length-1]).apply(this); + params[params.length-1].apply(this); } System.err.print(" )"); } @@ -226,11 +223,10 @@ public class PrettyPrinter extends DepthFirstAdapter { System.err.print("Abstract Syntax Tree\n"); - AAstProd [] prods = - (AAstProd [])node.getProds().toArray(new AAstProd[0]); - for(int i = 0; i < prods.length; i++) + PAstProd[] prods = node.getProds().toArray(new PAstProd[0]); + for(PAstProd prod : prods) { - prods[i].apply(this); + prod.apply(this); } } @@ -239,7 +235,7 @@ public class PrettyPrinter extends DepthFirstAdapter { System.err.println(production_INDENT + node.getId().getText() + " ="); - AAstAlt[] alts = (AAstAlt[])node.getAlts().toArray(new AAstAlt[0]); + PAstAlt[] alts = node.getAlts().toArray(new PAstAlt[0]); for(int i=0; i<alts.length-1; i++) { alts[i].apply(this); @@ -260,11 +256,10 @@ public class PrettyPrinter extends DepthFirstAdapter System.err.print("{" + node.getAltName().getText()+"} "); } - AElem[] listElems = (AElem[])node.getElems().toArray(new AElem[0]); - for(int i=0; i<listElems.length; i++) + PElem[] listElems = node.getElems().toArray(new PElem[0]); + for(PElem elem : listElems) { - //System.err.print(listElems[i]); - listElems[i].apply(this); + elem.apply(this); System.err.print(" "); } } diff --git a/src/main/java/org/sablecc/sablecc/Production.java b/src/main/java/org/sablecc/sablecc/Production.java index f2901da..808c8f4 100644 --- a/src/main/java/org/sablecc/sablecc/Production.java +++ b/src/main/java/org/sablecc/sablecc/Production.java @@ -9,7 +9,6 @@ package org.sablecc.sablecc; import java.util.*; import java.util.Vector; -import java.util.Enumeration; final class Production { @@ -17,8 +16,8 @@ final class Production final int index; final String name; - private final Vector rightside = new Vector(); - private static final Vector productions = new Vector(0); + private final Vector<Symbol> rightside = new Vector<>(); + private static final Vector<Production> productions = new Vector<>(0); private static TreeMap<Integer, Production[]> alternatives_ = new TreeMap<>(); private static boolean modified_ = true; private static Production[] productions_; @@ -78,12 +77,12 @@ final class Production Symbol rightside(int index) { - return (Symbol) rightside.elementAt(index); + return rightside.elementAt(index); } static Production production(int index) { - return (Production) productions.elementAt(index); + return productions.elementAt(index); } static Production[] alternatives(int nonterminal) @@ -97,12 +96,10 @@ final class Production if(result == null) { - Vector alternatives = new Vector(0); + Vector<Production> alternatives = new Vector<>(0); - for(Enumeration e = productions.elements(); e.hasMoreElements();) + for(Production production : productions) { - Production production = (Production) e.nextElement(); - if(production.leftside == nonterminal) { alternatives.addElement(production); diff --git a/src/main/java/org/sablecc/sablecc/RecursiveProductionsDetections.java b/src/main/java/org/sablecc/sablecc/RecursiveProductionsDetections.java index 71a9409..942c318 100644 --- a/src/main/java/org/sablecc/sablecc/RecursiveProductionsDetections.java +++ b/src/main/java/org/sablecc/sablecc/RecursiveProductionsDetections.java @@ -22,11 +22,11 @@ public class RecursiveProductionsDetections extends DepthFirstAdapter currentProd = node.getId().getText(); if(!node.getId().getText().startsWith("$")) { - Object []alts = node.getAlts().toArray(); + PAlt[] alts = node.getAlts().toArray(new PAlt[0]); - for(int i=0; i<alts.length; i++) + for(PAlt alt : alts) { - ((PAlt)alts[i]).apply(this); + alt.apply(this); } } else @@ -38,10 +38,10 @@ public class RecursiveProductionsDetections extends DepthFirstAdapter @Override public void caseAAlt(AAlt node) { - Object temp[] = node.getElems().toArray(); - for(int i = 0; i < temp.length; i++) + PElem[] temp = node.getElems().toArray(new PElem[0]); + for(PElem elem : temp) { - ((PElem) temp[i]).apply(this); + elem.apply(this); } } /* diff --git a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java index fffb94f..26a52e5 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java @@ -69,12 +69,10 @@ public class ResolveAltIds extends DepthFirstAdapter @Override public void caseAProd(AProd node) { - AElem []temp = (AElem[]) node.getProdTransform().toArray(new AElem[0]); - - Object []list_alts = node.getAlts().toArray(); - for(int j=0; j<list_alts.length; j++) + PAlt[] list_alts = node.getAlts().toArray(new PAlt[0]); + for(PAlt alt : list_alts) { - ((PAlt)list_alts[j]).apply(this); + alt.apply(this); } } @@ -96,10 +94,10 @@ public class ResolveAltIds extends DepthFirstAdapter currentAlt = ids.names.get(alt); - AElem[] list_elems = (AElem[])alt.getElems().toArray(new AElem[0]); - for(int i=0; i<list_elems.length; i++) + PElem[] list_elems = alt.getElems().toArray(new PElem[0]); + for(PElem elem : list_elems) { - list_elems[i].apply(this); + elem.apply(this); } alts_elemsGlobal.put(currentAlt, listElemsGlobal); diff --git a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java index 616844a..8964d39 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java @@ -65,10 +65,10 @@ public class ResolveAstIds extends DepthFirstAdapter @Override public void inAAst(AAst node) { - LinkedList listProds = node.getProds(); + List<PAstProd> listProds = node.getProds(); if(listProds.size() > 0) { - AAstProd firstAstProd = (AAstProd)listProds.getFirst(); + AAstProd firstAstProd = (AAstProd)listProds.get(0); firstAstProduction = "P" + ResolveIds.name(firstAstProd.getId().getText()); } } diff --git a/src/main/java/org/sablecc/sablecc/ResolveIds.java b/src/main/java/org/sablecc/sablecc/ResolveIds.java index 4f05c70..e41992a 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveIds.java @@ -58,7 +58,7 @@ public class ResolveIds extends DepthFirstAdapter @Override public void inAGrammar(AGrammar node) { - TPkgId[] temp = (TPkgId []) node.getPackage().toArray(new TPkgId[0]); + TPkgId[] temp = node.getPackage().toArray(new TPkgId[0]); if(temp.length > 0) { pkgName = temp[0].getText(); @@ -95,10 +95,10 @@ public class ResolveIds extends DepthFirstAdapter names.put(node, name); //list of inAAlt code. - Object []list_alt = (Object [])node.getAlts().toArray(); - for(int i = 0; i< list_alt.length; i++) + PAlt[] list_alt = node.getAlts().toArray(new PAlt[0]); + for(PAlt alt : list_alt) { - ((PAlt)list_alt[i]).apply(this); + alt.apply(this); } } @@ -147,7 +147,7 @@ public class ResolveIds extends DepthFirstAdapter if(node.getLookAhead() != null) { - Token token = (Token) node.getSlash(); + Token token = node.getSlash(); throw new RuntimeException( "[" + token.getLine() + "," + token.getPos() + "] " + "Look ahead not yet supported."); @@ -157,19 +157,19 @@ public class ResolveIds extends DepthFirstAdapter @Override public void inAStates(AStates node) { - Object [] list_id = (Object[]) node.getListId().toArray(); + TId[] list_id = node.getListId().toArray(new TId[0]); String name; - for(int i=0; i<list_id.length; i++) + for(TId id : list_id) { - name = ((TId)list_id[i]).getText().toUpperCase(); + name = id.getText().toUpperCase(); - if(states.put(name, (Node)list_id[i]) != null) + if(states.put(name, id) != null) { - error((TId)list_id[i], name); + error(id, name); } - names.put((Node)list_id[i], name); + names.put(id, name); stateList.add(name); } } @@ -177,23 +177,23 @@ public class ResolveIds extends DepthFirstAdapter @Override public void inAIgnTokens(AIgnTokens node) { - Object [] list_id = (Object[]) node.getListId().toArray(); + TId[] list_id = node.getListId().toArray(new TId[0]); String name; - for(int i=0; i<list_id.length; i++) + for(TId id : list_id) { - name = "T" + name(((TId)list_id[i]).getText()); + name = "T" + name(id.getText()); if(tokens.get(name) == null) { - error2((TId)list_id[i], name); + error2(id, name); } - if(ignTokens.put(name, (Node)list_id[i]) != null) + if(ignTokens.put(name, id) != null) { - error((TId)list_id[i], name); + error(id, name); } - names.put((Node)list_id[i], name); + names.put(id, name); } } @@ -279,10 +279,10 @@ public class ResolveIds extends DepthFirstAdapter names.put(alt, currentAlt); } - AElem list_elem[] = (AElem[]) alt.getElems().toArray(new AElem[0]); - for(int i=0; i<list_elem.length;i++) + PElem[] list_elem = alt.getElems().toArray(new PElem[0]); + for(PElem elem : list_elem) { - list_elem[i].apply(this); + elem.apply(this); } } @@ -352,10 +352,10 @@ public class ResolveIds extends DepthFirstAdapter currentProd = name(node.getId().getText()); //list of inAAlt code. - Object []list_alt = (Object [])node.getAlts().toArray(); - for(int i = 0; i< list_alt.length; i++) + PAlt[] list_alt = node.getAlts().toArray(new PAlt[0]); + for(PAlt alt : list_alt) { - ((PAlt)list_alt[i]).apply(this); + alt.apply(this); } } @@ -371,10 +371,10 @@ public class ResolveIds extends DepthFirstAdapter currentAlt = "A" + currentProd; } - AElem[] list_elem = (AElem[]) alt.getElems().toArray(new AElem[0]); - for(int i=0; i<list_elem.length;i++) + PElem[] list_elem = alt.getElems().toArray(new PElem[0]); + for(PElem elem : list_elem) { - list_elem[i].apply(this); + elem.apply(this); } } diff --git a/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java index 3f3bba2..064041b 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java @@ -56,8 +56,7 @@ public class ResolveProdTransformIds extends DepthFirstAdapter { prod_name = transformIds.astIds.names.get(production); - AElem temp[] = - (AElem [])production.getProdTransform().toArray(new AElem[0]); + PElem[] temp = production.getProdTransform().toArray(new PElem[0]); listProdTransformContainsList = new LinkedList(); @@ -68,9 +67,9 @@ public class ResolveProdTransformIds extends DepthFirstAdapter listProdTransformList.add(prod_name); } - for(int i=0; i<temp.length; i++) + for(PElem elem : temp) { - ((PElem) temp[i]).apply(new DepthFirstAdapter() + elem.apply(new DepthFirstAdapter() { @Override public void caseAElem(AElem node) diff --git a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java index 5af4b26..8f19905 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java @@ -184,8 +184,8 @@ public class ResolveTransformIds extends DepthFirstAdapter if(node.getParams().size() > 0 && astAlt.getElems().size() > 0) { - Object elemsTable[] = astAlt.getElems().toArray(); - Object paramsTable[] = node.getParams().toArray(); + PElem[] elemsTable = astAlt.getElems().toArray(new PElem[0]); + PTerm[] paramsTable = node.getParams().toArray(new PTerm[0]); String termType, elemType; @@ -274,8 +274,8 @@ public class ResolveTransformIds extends DepthFirstAdapter if(node.getParams().size() > 0 && astAlt.getElems().size() > 0) { - Object elemsTable[] = astAlt.getElems().toArray(); - Object paramsTable[] = node.getParams().toArray(); + PElem[] elemsTable = astAlt.getElems().toArray(new PElem[0]); + PTerm[] paramsTable = node.getParams().toArray(new PTerm[0]); String termType, elemType; @@ -304,7 +304,7 @@ public class ResolveTransformIds extends DepthFirstAdapter { if( (node.getListTerms() != null) && (node.getListTerms().size() != 0) ) { - Object temp[] = node.getListTerms().toArray(); + PListTerm[] temp = node.getListTerms().toArray(new PListTerm[0]); String firstTermType = altTransformElemTypes.get(temp[0]); if(firstTermType.endsWith("?")) { @@ -797,15 +797,15 @@ public class ResolveTransformIds extends DepthFirstAdapter } } - private Object curr_prodTransformElems[]; + private Object[] curr_prodTransformElems; private boolean curr_prod_has_prodTransform; private boolean firstProduction = false; @Override public void outAProductions(AProductions node) { - LinkedList list = node.getProds(); - AProd prod = (AProd)list.getFirst(); + List<PProd> list = node.getProds(); + AProd prod = (AProd)list.get(0); firstProduction = true; if( prodTransformIds.listProdTransformList.contains("P"+ ResolveIds.name( prod.getId().getText()) ) ) @@ -813,16 +813,15 @@ public class ResolveTransformIds extends DepthFirstAdapter error_0(prod.getId()); } - Object temp[] = node.getProds().toArray(); - for(int i = 0; i < temp.length; i++) + PProd[] temp = node.getProds().toArray(new PProd[0]); + for(PProd p : temp) { - - ((PProd) temp[i]).apply(new DepthFirstAdapter() + p.apply(new DepthFirstAdapter() { @Override public void inAProd(AProd production) { - LinkedList prodTransform = production.getProdTransform(); + List<PElem> prodTransform = production.getProdTransform(); String prodTransformElemType = ""; curr_prodTransformElems = null; curr_prod_has_prodTransform = false; @@ -836,17 +835,17 @@ public class ResolveTransformIds extends DepthFirstAdapter else if(production.getArrow() == null) { curr_prod_has_prodTransform = false; - String []tab = new String[1]; + String[] tab = new String[1]; tab[0] = "P" + ResolveIds.name(production.getId().getText()); - curr_prodTransformElems = (Object[])tab; + curr_prodTransformElems = tab; prodTransformElemType = (String)curr_prodTransformElems[0]; } else { curr_prod_has_prodTransform = false; - String []tab = new String[1]; + String[] tab = new String[1]; tab[0] = "nothing"; - curr_prodTransformElems = (Object[])tab; + curr_prodTransformElems = tab; prodTransformIds.prodTransformElemTypes.put(prodTransform, "nothing"); prodTransformElemType = (String)curr_prodTransformElems[0]; } @@ -864,7 +863,7 @@ public class ResolveTransformIds extends DepthFirstAdapter @Override public void inAAltTransform(AAltTransform node) { - Object curr_altTransformTerms[] = node.getTerms().toArray(); + PTerm[] curr_altTransformTerms = node.getTerms().toArray(new PTerm[0]); for(int k = 0; k < curr_altTransformTerms.length; k++) { diff --git a/src/main/java/org/sablecc/sablecc/SableCC.java b/src/main/java/org/sablecc/sablecc/SableCC.java index 3c80cb6..88445db 100644 --- a/src/main/java/org/sablecc/sablecc/SableCC.java +++ b/src/main/java/org/sablecc/sablecc/SableCC.java @@ -55,7 +55,7 @@ public class SableCC { public static void main(String[] arguments) { String d_option = null; - Vector filename = new Vector(); + Vector<String> filename = new Vector<>(); if (arguments.length == 0) { displayCopyright(); @@ -115,7 +115,7 @@ public class SableCC { try { for (int i = 0; i < filename.size(); i++) { - processGrammar((String) filename.elementAt(i), d_option); + processGrammar(filename.elementAt(i), d_option); } } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/sablecc/sablecc/Transitions.java b/src/main/java/org/sablecc/sablecc/Transitions.java index 4720756..59b3d52 100644 --- a/src/main/java/org/sablecc/sablecc/Transitions.java +++ b/src/main/java/org/sablecc/sablecc/Transitions.java @@ -35,10 +35,10 @@ public class Transitions extends DepthFirstAdapter outAStateList(node); // We moved this... { - Object temp[] = node.getStateLists().toArray(); - for(int i = 0; i < temp.length; i++) + PStateListTail[] temp = node.getStateLists().toArray(new PStateListTail[0]); + for(PStateListTail tail : temp) { - ((PStateListTail) temp[i]).apply(this); + tail.apply(this); } } } -- GitLab