diff --git a/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java b/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java index 3c0d404456f46612798865334944a0ed069b5561..2cab3121dc8e5c1634e828419c22ddcdf5e499ae 100644 --- a/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java +++ b/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java @@ -40,7 +40,7 @@ public class AddEventualEmptyTransformationToProductions extends DepthFirstAdapt public void inAProd(AProd node) { - currentProd = (String)ids.names.get(node); + currentProd = ids.names.get(node); /* If there is no transformation specified for the production * and there is no AST production which has the same name as the current diff --git a/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java b/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java index fc127320fd8f10e726f0aa7da85168fcf9327524..9019ab450b0276d916c63ebcfd403ff99351e500 100644 --- a/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java +++ b/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java @@ -20,14 +20,14 @@ public class AltTransformAdapter extends DepthFirstAdapter private Map isElementIsAlist; private LinkedList listSimpleTermTransform; - private Map simpleTermTransform; - private Map simpleTermOrsimpleListTermTypes; + private Map<Node, String> simpleTermTransform; + private Map<Node, String> simpleTermOrsimpleListTermTypes; - AltTransformAdapter(Map simpleTermTransform, + AltTransformAdapter(Map<Node, String> simpleTermTransform, LinkedList listSimpleTermTransform, String currentNewAltName, ResolveAltIds altIds, Map isElementIsAlist, - Map simpleTermOrsimpleListTermTypes) + Map<Node, String> simpleTermOrsimpleListTermTypes) { this.currentNewAltName = currentNewAltName; this.altIds = altIds; @@ -63,7 +63,7 @@ public class AltTransformAdapter extends DepthFirstAdapter if(simpleTermOrsimpleListTermTypes.get(node) != null) { - simpleTermOrsimpleListTermTypes.put(asimpleTerm, (String)simpleTermOrsimpleListTermTypes.get(node)); + simpleTermOrsimpleListTermTypes.put(asimpleTerm, simpleTermOrsimpleListTermTypes.get(node)); } node.replaceBy(asimpleTerm); @@ -104,7 +104,7 @@ public class AltTransformAdapter extends DepthFirstAdapter if(simpleTermOrsimpleListTermTypes.get(node) != null) { - simpleTermOrsimpleListTermTypes.put(asimpleListTerm, (String)simpleTermOrsimpleListTermTypes.get(node)); + simpleTermOrsimpleListTermTypes.put(asimpleListTerm, simpleTermOrsimpleListTermTypes.get(node)); } node.replaceBy(asimpleListTerm); @@ -123,7 +123,7 @@ public class AltTransformAdapter extends DepthFirstAdapter if(simpleTermTransform.get(temp[0]) != null) { - String firstTermType = (String)simpleTermTransform.get(temp[0]); + String firstTermType = simpleTermTransform.get(temp[0]); if(firstTermType != null) { diff --git a/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java b/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java index 1c74f44b336a7e6dcb0037faeaf9c0f40937eb28..34de7054783c61a952d93e096c2d36e68ff41cf2 100644 --- a/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java +++ b/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java @@ -14,8 +14,7 @@ import java.io.*; public class AlternativeElementTypes extends DepthFirstAdapter { - private Map altElemTypes = new TypedHashMap(StringCast.instance, - StringCast.instance); + private Map<String, String> altElemTypes = new HashMap<>(); private ResolveIds ids; private String currentAlt; @@ -25,7 +24,7 @@ public class AlternativeElementTypes extends DepthFirstAdapter this.ids = ids; } - public Map getMapOfAltElemType() + public Map<String, String> getMapOfAltElemType() { return altElemTypes; } @@ -44,7 +43,7 @@ public class AlternativeElementTypes extends DepthFirstAdapter public void caseAAlt(AAlt node) { - currentAlt = (String)ids.names.get(node); + currentAlt = ids.names.get(node); Object []temp = node.getElems().toArray(); for(int i = 0; i<temp.length; i++) { @@ -54,7 +53,7 @@ public class AlternativeElementTypes extends DepthFirstAdapter public void inAElem(AElem node) { - String elemType = (String)ids.elemTypes.get(node); + String elemType = ids.elemTypes.get(node); if(node.getElemName() != null) { diff --git a/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java b/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java index 4452150d22efa1aea70c86306dd92bc4c46d9190..bb8ebf191ef2c6f820a2ff86b0013f378856287c 100644 --- a/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java +++ b/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java @@ -31,14 +31,11 @@ public class ComputeCGNomenclature extends DepthFirstAdapter private int counter; private ResolveIds ids; private ResolveProdTransformIds prodTransformIds; - private Map altElemTypes; + private Map<String, String> altElemTypes; - private final Map altTransformElemTypes = new TypedHashMap( - NodeCast.instance, - StringCast.instance); + private final Map<Node, String> altTransformElemTypes = new HashMap<>(); - private final Map termNumbers = new TypedHashMap(NodeCast.instance, - IntegerCast.instance); + private final Map<Node, Integer> termNumbers = new HashMap<>(); public ComputeCGNomenclature(ResolveIds ids, ResolveProdTransformIds prodTransformIds) { @@ -46,17 +43,17 @@ public class ComputeCGNomenclature extends DepthFirstAdapter this.prodTransformIds = prodTransformIds; } - public void setAltElemTypes(Map aMap) + public void setAltElemTypes(Map<String, String> aMap) { this.altElemTypes = aMap; } - public Map getAltTransformElemTypes() + public Map<Node, String> getAltTransformElemTypes() { return altTransformElemTypes; } - public Map getTermNumbers() + public Map<Node, Integer> getTermNumbers() { return termNumbers; } @@ -94,7 +91,7 @@ public class ComputeCGNomenclature extends DepthFirstAdapter public void inAElem(AElem node) { - String elemType = (String)ids.elemTypes.get(node); + String elemType = ids.elemTypes.get(node); if(node.getElemName() != null) { @@ -108,7 +105,7 @@ public class ComputeCGNomenclature extends DepthFirstAdapter String type = "P" + ids.name(aProdName.getId().getText()); altTransformElemTypes.put(node, type); - termNumbers.put(node, new Integer(++counter)); + termNumbers.put(node, ++counter); } public void inANewListTerm(ANewListTerm node) @@ -117,7 +114,7 @@ public class ComputeCGNomenclature extends DepthFirstAdapter String type = "P" + ids.name(aProdName.getId().getText()); altTransformElemTypes.put(node, type); - termNumbers.put(node, new Integer(++counter)); + termNumbers.put(node, ++counter); } public void outAListTerm(AListTerm node) @@ -126,7 +123,7 @@ public class ComputeCGNomenclature extends DepthFirstAdapter { Object[] temp = node.getListTerms().toArray(); - String firstTermType = (String)altTransformElemTypes.get(temp[0]); + String firstTermType = altTransformElemTypes.get(temp[0]); if(firstTermType != null) { @@ -144,13 +141,13 @@ public class ComputeCGNomenclature extends DepthFirstAdapter { altTransformElemTypes.put(node, "Lnull"); } - termNumbers.put(node, new Integer(++counter)); + termNumbers.put(node, ++counter); } public void caseASimpleTerm(ASimpleTerm node) { String name; - String elemType = (String) this.altElemTypes.get( currentAlt+"."+node.getId().getText() ); + String elemType = this.altElemTypes.get( currentAlt+"."+node.getId().getText() ); if(node.getSimpleTermTail() == null) { @@ -164,7 +161,7 @@ public class ComputeCGNomenclature extends DepthFirstAdapter else { String termTail = node.getSimpleTermTail().getText(); - name = (String)prodTransformIds.prodTransformElemTypesString.get(elemType+"."+termTail); + name = prodTransformIds.prodTransformElemTypesString.get(elemType+"."+termTail); } if(name.endsWith("?")) @@ -173,7 +170,7 @@ public class ComputeCGNomenclature extends DepthFirstAdapter } altTransformElemTypes.put(node, name); - termNumbers.put(node, new Integer(++counter)); + termNumbers.put(node, ++counter); } /* @@ -238,13 +235,13 @@ public class ComputeCGNomenclature extends DepthFirstAdapter public void caseANullTerm(ANullTerm node) { altTransformElemTypes.put(node, "null"); - termNumbers.put(node, new Integer(++counter)); + termNumbers.put(node, ++counter); } public void caseASimpleListTerm(ASimpleListTerm node) { String name; - String elemType = (String)altElemTypes.get( currentAlt+"."+node.getId().getText() ); + String elemType = altElemTypes.get( currentAlt+"."+node.getId().getText() ); if(node.getSimpleTermTail() == null) { @@ -258,7 +255,7 @@ public class ComputeCGNomenclature extends DepthFirstAdapter else { String termTail = node.getSimpleTermTail().getText(); - name = (String)prodTransformIds.prodTransformElemTypesString.get(elemType+"."+termTail); + name = prodTransformIds.prodTransformElemTypesString.get(elemType+"."+termTail); } if(name.endsWith("?")) @@ -266,7 +263,7 @@ public class ComputeCGNomenclature extends DepthFirstAdapter name = name.substring(0, name.length()-1); } altTransformElemTypes.put(node, name); - termNumbers.put(node, new Integer(++counter)); + termNumbers.put(node, ++counter); } /* public void caseASimpleListTerm(ASimpleListTerm node) diff --git a/src/main/java/org/sablecc/sablecc/ComputeSimpleTermPosition.java b/src/main/java/org/sablecc/sablecc/ComputeSimpleTermPosition.java index 792f9c487372e60b3d4a58ffde0b591981e40b76..f6fe21ba3cc06f1b126eea0212731c6465da65bd 100644 --- a/src/main/java/org/sablecc/sablecc/ComputeSimpleTermPosition.java +++ b/src/main/java/org/sablecc/sablecc/ComputeSimpleTermPosition.java @@ -20,13 +20,9 @@ public class ComputeSimpleTermPosition extends DepthFirstAdapter private ResolveIds ids; private int counter; - public final Map positionsMap = new TypedHashMap( - StringCast.instance, - StringCast.instance); + public final Map<String, String> positionsMap = new HashMap<>(); - public final Map elems_position = new TypedHashMap( - StringCast.instance, - IntegerCast.instance); + public final Map<String, Integer> elems_position = new HashMap<>(); public ComputeSimpleTermPosition(ResolveIds ids) { @@ -72,7 +68,7 @@ public class ComputeSimpleTermPosition extends DepthFirstAdapter currentElemName = currentAlt + "." + node.getId().getText(); } - elems_position.put(currentElemName, new Integer(++counter)); + elems_position.put(currentElemName, ++counter); } if(node.getSpecifier() != null && @@ -83,7 +79,7 @@ public class ComputeSimpleTermPosition extends DepthFirstAdapter String name = ids.name( node.getId().getText() ); - String elemType = (String)ids.elemTypes.get(node); + String elemType = ids.elemTypes.get(node); if(processingParsedAlt && elemType.startsWith("P")) { String elemName; diff --git a/src/main/java/org/sablecc/sablecc/ConstructNFA.java b/src/main/java/org/sablecc/sablecc/ConstructNFA.java index 33c65ecd543bf08c5269c7ce93ddd97e920e9019..59fdf178098daaf0782983cb11133525f8435b92 100644 --- a/src/main/java/org/sablecc/sablecc/ConstructNFA.java +++ b/src/main/java/org/sablecc/sablecc/ConstructNFA.java @@ -92,7 +92,7 @@ public class ConstructNFA extends DepthFirstAdapter //System.out.print("*"); NFA n1 = (o1 instanceof NFA) ? (NFA) o1 : new NFA((CharSet) o1); - String name = (String) ids.names.get(node); + String name = ids.names.get(node); n1.states[n1.states.length - 1].accept = name; setOut(node, n1); diff --git a/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java b/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java index c14f56ae44d6fa8a4e245f1c256d3bf61c995445..dac5ebdf2ca693b07ec0bc2ac9d35e42c769e888 100644 --- a/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java +++ b/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java @@ -18,9 +18,9 @@ public class ConstructParserGenerationDatas extends DepthFirstAdapter private boolean processingAst; private String currentProd; - private Map alts; + private Map<String, Node> alts; - public ConstructParserGenerationDatas(ResolveIds ids, Map alts) + public ConstructParserGenerationDatas(ResolveIds ids, Map<String, Node> alts) { this.ids = ids; this.alts = alts; @@ -31,7 +31,7 @@ public class ConstructParserGenerationDatas extends DepthFirstAdapter public void caseAProd(AProd node) { - currentProd = (String) ids.names.get(node); + currentProd = ids.names.get(node); AAlt[] alts = (AAlt[])node.getAlts().toArray(new AAlt[0]); for(int i=0; i<alts.length; i++) { @@ -41,7 +41,7 @@ public class ConstructParserGenerationDatas extends DepthFirstAdapter public void caseAAlt(AAlt node) { - currentAlt = Grammar.addProduction(currentProd, (String) ids.names.get(node)); + currentAlt = Grammar.addProduction(currentProd, ids.names.get(node)); alts.put(ids.names.get(node), node); AElem[] temp = (AElem[])node.getElems().toArray(new AElem[0]); @@ -80,7 +80,7 @@ public class ConstructParserGenerationDatas extends DepthFirstAdapter ids.elemTypes.put(node, "P" + name); } } - name = (String) ids.elemTypes.get(node); + name = ids.elemTypes.get(node); Grammar.addSymbolToProduction(name, currentAlt); } } diff --git a/src/main/java/org/sablecc/sablecc/GenAlts.java b/src/main/java/org/sablecc/sablecc/GenAlts.java index db62b6d9eb2750bd8eb810d57b093322e81e8d97..dfd886a52383c6246a3e554a14e77a6f0824e3e4 100644 --- a/src/main/java/org/sablecc/sablecc/GenAlts.java +++ b/src/main/java/org/sablecc/sablecc/GenAlts.java @@ -52,7 +52,7 @@ public class GenAlts extends DepthFirstAdapter public void inAAstProd(AAstProd node) { - currentProd = (String) ast_ids.ast_names.get(node); + currentProd = ast_ids.ast_names.get(node); } public void inAAstAlt(AAstAlt node) @@ -66,8 +66,8 @@ public class GenAlts extends DepthFirstAdapter public void inAElem(AElem node) { info = new ElemInfo(); - info.name = (String) ast_ids.ast_names.get(node); - info.type = (String) ast_ids.ast_elemTypes.get(node); + info.name = ast_ids.ast_names.get(node); + info.type = ast_ids.ast_elemTypes.get(node); info.operator = ElemInfo.NONE; if(node.getUnOp() != null) @@ -97,7 +97,7 @@ public class GenAlts extends DepthFirstAdapter public void outAAstAlt(AAstAlt node) { - String name = (String) ast_ids.ast_names.get(node); + String name = ast_ids.ast_names.get(node); BufferedWriter file; diff --git a/src/main/java/org/sablecc/sablecc/GenAnalyses.java b/src/main/java/org/sablecc/sablecc/GenAnalyses.java index 2e7eb94e7f3194e89920e783e1a212681c859dd6..f21830436ea11f95e71fafdb9a32764c0646e277 100644 --- a/src/main/java/org/sablecc/sablecc/GenAnalyses.java +++ b/src/main/java/org/sablecc/sablecc/GenAnalyses.java @@ -56,7 +56,7 @@ public class GenAnalyses extends DepthFirstAdapter { if(mainProduction == null) { - mainProduction = (String) ast_ids.ast_names.get(node); + mainProduction = ast_ids.ast_names.get(node); } } @@ -77,8 +77,8 @@ public class GenAnalyses extends DepthFirstAdapter { info = new ElemInfo(); - info.name = (String) ast_ids.ast_names.get(node); - info.type = (String) ast_ids.ast_elemTypes.get(node); + info.name = ast_ids.ast_names.get(node); + info.type = ast_ids.ast_elemTypes.get(node); info.operator = ElemInfo.NONE; if(node.getUnOp() != null) @@ -112,7 +112,7 @@ public class GenAnalyses extends DepthFirstAdapter { AltInfo info = new AltInfo(); - info.name = (String) ast_ids.ast_names.get(node); + info.name = ast_ids.ast_names.get(node); info.elems.addAll(elemList); elemList = null; diff --git a/src/main/java/org/sablecc/sablecc/GenLexer.java b/src/main/java/org/sablecc/sablecc/GenLexer.java index 05ea7991187be01a899eb96e527b607b43255006..9b633e247f989be79a6409f7c0b4106f1d0bae45 100644 --- a/src/main/java/org/sablecc/sablecc/GenLexer.java +++ b/src/main/java/org/sablecc/sablecc/GenLexer.java @@ -163,8 +163,7 @@ public class GenLexer extends AnalysisAdapter { String name = (String) i.next(); Node node = (Node) ids.tokens.get(name); - boolean fixed = ((Boolean) ids.fixedTokens.get(node)) - .booleanValue(); + boolean fixed = ids.fixedTokens.get(node); if(fixed) { @@ -177,7 +176,7 @@ public class GenLexer extends AnalysisAdapter new String[] {"" + i.previousIndex(), name}); } - Map map = (Map) transitions.tokenStates.get(node); + Map map = transitions.tokenStates.get(node); if(map.size() > 0) { macros.apply(file, "TokenSwitchHeader", null); @@ -203,8 +202,7 @@ public class GenLexer extends AnalysisAdapter { String name = (String) i.next(); Node node = (Node) ids.tokens.get(name); - boolean fixed = ((Boolean) ids.fixedTokens.get(node)) - .booleanValue(); + boolean fixed = ids.fixedTokens.get(node); if(fixed) { diff --git a/src/main/java/org/sablecc/sablecc/GenParser.java b/src/main/java/org/sablecc/sablecc/GenParser.java index 84230dd97dd50e7faeb6e8ce252cf2dea1fca2e7..41ed6b52891bf555a02b0189a7aa283023da3698 100644 --- a/src/main/java/org/sablecc/sablecc/GenParser.java +++ b/src/main/java/org/sablecc/sablecc/GenParser.java @@ -69,17 +69,13 @@ public class GenParser extends DepthFirstAdapter private LinkedList listSimpleTermTransform = new LinkedList(); - public final Map simpleTermTransform = - new TypedHashMap(NodeCast.instance, - StringCast.instance); + public final Map<Node, String> simpleTermTransform = new HashMap<>(); //This map contains Productions which were explicitely transformed in the grammar //Those transformations was specified by the grammar-writer. - private final Map mapProductionTransformations = - new TypedHashMap(StringCast.instance, - ListCast.instance); + private final Map<String, LinkedList> mapProductionTransformations = new HashMap<>(); - private Map alts; + private Map<String, Node> alts; public GenParser(ResolveIds ids, ResolveAltIds altIds, ResolveTransformIds transformIds, String firstProductionName, boolean processInlining, boolean prettyPrinting, @@ -130,7 +126,7 @@ public class GenParser extends DepthFirstAdapter if(node.getProdTransform() != null) { mapProductionTransformations.put("P"+ResolveIds.name(node.getId().getText()), - node.getProdTransform().clone() ); + (LinkedList)node.getProdTransform().clone() ); } } } @@ -177,8 +173,8 @@ public class GenParser extends DepthFirstAdapter public void caseATokenDef(ATokenDef node) { - String name = (String) ids.names.get(node); - String errorName = (String) ids.errorNames.get(node); + String name = ids.names.get(node); + String errorName = ids.errorNames.get(node); if(!ids.ignTokens.containsKey(name)) { @@ -200,7 +196,7 @@ public class GenParser extends DepthFirstAdapter { if(hasAlternative) { - Grammar.addNonterminal((String) ids.names.get(node)); + Grammar.addNonterminal(ids.names.get(node)); } } } @@ -208,7 +204,7 @@ public class GenParser extends DepthFirstAdapter //Construct all necessary informations for generation of the parser. //This map contains all the alternatives of the transformed final grammar - alts = new TypedHashMap(StringCast.instance, NodeCast.instance); + alts = new HashMap<>(); tree.getPGrammar().apply(new ConstructParserGenerationDatas(ids, alts)); @@ -390,8 +386,6 @@ public class GenParser extends DepthFirstAdapter //the node needed to be created at a local point. for(int i = 0; i < (productions.length - 1); i++) { - Node node = (Node) alts.get(productions[i].name); - if(activateFilter && !grammarHasTransformations) { macros.apply(file, "ParserNoInliningReduce", new String[] { @@ -419,7 +413,7 @@ public class GenParser extends DepthFirstAdapter "" + productions[i].index, productions[i].name}); - final Node node = (Node) alts.get(productions[i].name); + final Node node = alts.get(productions[i].name); final BufferedWriter finalFile = file; final LinkedList stack = new LinkedList(); @@ -452,8 +446,8 @@ public class GenParser extends DepthFirstAdapter new File(pkgDir, "Parser.java").getAbsolutePath()); } - String nodeName = (String)ids.names.get(node); - String realnodeName = (String)ids.names.get(node); + String nodeName = ids.names.get(node); + String realnodeName = ids.names.get(node); aParsedAltAdapter = new GenerateAlternativeCodeForParser(pkgDir, nodeName, realnodeName, file, transformIds, CG, CTP, diff --git a/src/main/java/org/sablecc/sablecc/GenProds.java b/src/main/java/org/sablecc/sablecc/GenProds.java index 5e47012b49ca94a81c9112c7a0e09f253df98b0d..2bd082d547dbf7925833ed3ae341be7127a7a858 100644 --- a/src/main/java/org/sablecc/sablecc/GenProds.java +++ b/src/main/java/org/sablecc/sablecc/GenProds.java @@ -52,7 +52,7 @@ public class GenProds extends DepthFirstAdapter public void inAAstProd(AAstProd node) { - String name = (String) ast_ids.ast_names.get(node); + String name = ast_ids.ast_names.get(node); createProduction(name); } diff --git a/src/main/java/org/sablecc/sablecc/GenTokens.java b/src/main/java/org/sablecc/sablecc/GenTokens.java index dac7d0cf13b7ec77b90ebe12033414ef3f565523..110833abe499d6911223a5ad6517891985b62e43 100644 --- a/src/main/java/org/sablecc/sablecc/GenTokens.java +++ b/src/main/java/org/sablecc/sablecc/GenTokens.java @@ -51,7 +51,7 @@ public class GenTokens extends DepthFirstAdapter public void inATokenDef(ATokenDef node) { - String name = (String) ids.names.get(node); + String name = ids.names.get(node); BufferedWriter file; @@ -107,7 +107,7 @@ public class GenTokens extends DepthFirstAdapter { if(text == null) { - ids.fixedTokens.put(node, new Boolean(false)); + ids.fixedTokens.put(node, false); macros.apply(file, "VariableTextToken", new String[] { pkgName, ids.pkgName.equals("") ? "analysis" : ids.pkgName + ".analysis", @@ -115,7 +115,7 @@ public class GenTokens extends DepthFirstAdapter } else { - ids.fixedTokens.put(node, new Boolean(true)); + ids.fixedTokens.put(node, true); macros.apply(file, "FixedTextToken", new String[] { pkgName, ids.pkgName.equals("") ? "analysis" : ids.pkgName + ".analysis", diff --git a/src/main/java/org/sablecc/sablecc/GenUtils.java b/src/main/java/org/sablecc/sablecc/GenUtils.java index 06ea7360064cea70e8c0b36dd89f537a065666a2..8e76bf0a26d9d0f0aa5f8fda8b611ded0581708b 100644 --- a/src/main/java/org/sablecc/sablecc/GenUtils.java +++ b/src/main/java/org/sablecc/sablecc/GenUtils.java @@ -63,7 +63,7 @@ public class GenUtils extends DepthFirstAdapter { if(mainProduction == null) { - mainProduction = (String) ast_ids.ast_names.get(node); + mainProduction = ast_ids.ast_names.get(node); } } diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java index 8a532a4d6a9803acc7699a772661eeecabf484b7..743d452b05d2ad10710100286f4f7fe0bf7c0db9 100644 --- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java +++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java @@ -26,9 +26,9 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter private ComputeCGNomenclature CG; private ComputeSimpleTermPosition CTP; private MacroExpander macros; - private Map simpleTermTransformMap; + private Map<Node, String> simpleTermTransformMap; private LinkedList listSimpleTermTransform; - private Map simpleTermOrsimpleListTermTypes; + private Map<Node, String> simpleTermOrsimpleListTermTypes; GenerateAlternativeCodeForParser(File pkgDir, String aParsedAltName, String raParsedAltName, @@ -39,7 +39,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter Map simpleTermTransformMap, MacroExpander macros, LinkedList listSimpleTermTransform, - Map simpleTermOrsimpleListTermTypes) + Map<Node, String> simpleTermOrsimpleListTermTypes) { this.pkgDir = pkgDir; this.file = file; @@ -64,14 +64,14 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter { if(simpleTermTransformMap.get(temp[i]) != null) { - type_name = (String)simpleTermTransformMap.get(temp[i]); + type_name = simpleTermTransformMap.get(temp[i]); } else { - type_name = (String)CG.getAltTransformElemTypes().get(temp[i]); + type_name = CG.getAltTransformElemTypes().get(temp[i]); } - position = ((Integer)CG.getTermNumbers().get(temp[i])).intValue(); + position = CG.getTermNumbers().get(temp[i]); try { @@ -108,14 +108,14 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter { if(simpleTermTransformMap.get(temp[i]) != null) { - type_name = (String)simpleTermTransformMap.get(temp[i]); + type_name = simpleTermTransformMap.get(temp[i]); } else { - type_name = (String)CG.getAltTransformElemTypes().get(temp[i]); + type_name = CG.getAltTransformElemTypes().get(temp[i]); } - position = ((Integer)CG.getTermNumbers().get(temp[i])).intValue(); + position = CG.getTermNumbers().get(temp[i]); if(type_name.startsWith("L")) { @@ -152,13 +152,13 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter { if(simpleTermTransformMap.get(temp[i]) != null) { - type_name = (String)simpleTermTransformMap.get(temp[i]); + type_name = simpleTermTransformMap.get(temp[i]); } else { - type_name = (String)CG.getAltTransformElemTypes().get(temp[i]); + type_name = CG.getAltTransformElemTypes().get(temp[i]); } - position = ((Integer)CG.getTermNumbers().get(temp[i])).intValue(); + position = CG.getTermNumbers().get(temp[i]); try { @@ -190,22 +190,22 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter String type_name; if(simpleTermTransformMap.get(node) != null) { - type_name = (String)simpleTermTransformMap.get(node); + type_name = simpleTermTransformMap.get(node); } else { - type_name = (String)CG.getAltTransformElemTypes().get(node); + type_name = CG.getAltTransformElemTypes().get(node); } - int position = ((Integer)CG.getTermNumbers().get(node)).intValue(); + int position = CG.getTermNumbers().get(node).intValue(); String termKey = currentAlt+"."+node.getId().getText(); - int elemPosition = ((Integer)CTP.elems_position.get(termKey)).intValue(); + int elemPosition = CTP.elems_position.get(termKey); int positionMap = 0; if(node.getSimpleTermTail() != null ) { if( !listSimpleTermTransform.contains(node.getId().getText() ) ) { - String type = (String)CTP.positionsMap.get( realcurrentAlt+"."+node.getId().getText() ); + String type = CTP.positionsMap.get( realcurrentAlt+"."+node.getId().getText() ); LinkedList list = (LinkedList)transformIds.getProdTransformIds().prod_transforms.get(type); if( list.indexOf( node.getSimpleTermTail().getText() ) >= 0 ) { @@ -215,7 +215,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter if(simpleTermOrsimpleListTermTypes.get(node) != null) { - String type = (String)simpleTermOrsimpleListTermTypes.get(node); + String type = simpleTermOrsimpleListTermTypes.get(node); LinkedList list = (LinkedList)transformIds.getProdTransformIds().prod_transforms.get(type); if( list.indexOf( node.getSimpleTermTail().getText() ) >= 0 ) { @@ -261,17 +261,17 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter String type_name; if(simpleTermTransformMap.get(node) != null) { - type_name = (String)simpleTermTransformMap.get(node); + type_name = simpleTermTransformMap.get(node); } else { - type_name = (String)CG.getAltTransformElemTypes().get(node); + type_name = CG.getAltTransformElemTypes().get(node); } String termKey = currentAlt+"."+node.getId().getText(); - int position = ((Integer)CG.getTermNumbers().get(node)).intValue(); + int position = CG.getTermNumbers().get(node); - int elemPosition = ((Integer)CTP.elems_position.get(termKey)).intValue(); + int elemPosition = CTP.elems_position.get(termKey); int positionMap = 0; @@ -279,7 +279,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter { if( !listSimpleTermTransform.contains(node.getId().getText()) ) { - String type = (String)CTP.positionsMap.get( realcurrentAlt+"."+node.getId().getText() ); + String type = CTP.positionsMap.get( realcurrentAlt+"."+node.getId().getText() ); LinkedList list = (LinkedList)transformIds.getProdTransformIds().prod_transforms.get(type); if( list.indexOf( node.getSimpleTermTail().getText() ) >= 0 ) { @@ -289,7 +289,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter if(simpleTermOrsimpleListTermTypes.get(node) != null) { - String type = (String)simpleTermOrsimpleListTermTypes.get(node); + String type = simpleTermOrsimpleListTermTypes.get(node); LinkedList list = (LinkedList)transformIds.getProdTransformIds().prod_transforms.get(type); if( list.indexOf( node.getSimpleTermTail().getText() ) >= 0 ) { @@ -368,13 +368,13 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter String type_name; if(simpleTermTransformMap.get(temp[i]) != null) { - type_name = (String)simpleTermTransformMap.get(temp[i]); + type_name = simpleTermTransformMap.get(temp[i]); } else { - type_name = (String)CG.getAltTransformElemTypes().get(temp[i]); + type_name = CG.getAltTransformElemTypes().get(temp[i]); } - int position = ((Integer)CG.getTermNumbers().get(temp[i])).intValue(); + int position = CG.getTermNumbers().get(temp[i]); if(type_name.startsWith("L")) { @@ -402,20 +402,20 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter try { Object temp[] = node.getListTerms().toArray(); - int listPosition = ((Integer)CG.getTermNumbers().get(node)).intValue(); + int listPosition = CG.getTermNumbers().get(node); for(int i = 0; i < temp.length; i++) { String type_name; if(simpleTermTransformMap.get(temp[i]) != null) { - type_name = (String)simpleTermTransformMap.get(temp[i]); + type_name = simpleTermTransformMap.get(temp[i]); } else { - type_name = (String)CG.getAltTransformElemTypes().get(temp[i]); + type_name = CG.getAltTransformElemTypes().get(temp[i]); } - int position = ((Integer)CG.getTermNumbers().get(temp[i])).intValue(); + int position = CG.getTermNumbers().get(temp[i]); if(!type_name.equals("null")) { @@ -440,16 +440,16 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter public void outANewTerm(ANewTerm node) { - String type_name = (String)CG.getAltTransformElemTypes().get(node); + String type_name; if(simpleTermTransformMap.get(node) != null) { - type_name = (String)simpleTermTransformMap.get(node); + type_name = simpleTermTransformMap.get(node); } else { - type_name = (String)CG.getAltTransformElemTypes().get(node); + type_name = CG.getAltTransformElemTypes().get(node); } - int position = ((Integer)CG.getTermNumbers().get(node)).intValue(); + int position = CG.getTermNumbers().get(node); String newAltName = name((AProdName)node.getProdName()); try @@ -473,13 +473,13 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter { if(simpleTermTransformMap.get(temp[i]) != null) { - type_name = (String)simpleTermTransformMap.get(temp[i]); + type_name = simpleTermTransformMap.get(temp[i]); } else { - type_name = (String)CG.getAltTransformElemTypes().get(temp[i]); + type_name = CG.getAltTransformElemTypes().get(temp[i]); } - position = ((Integer)CG.getTermNumbers().get(temp[i])).intValue(); + position = CG.getTermNumbers().get(temp[i]); if(i != 0) { @@ -520,13 +520,13 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter String type_name; if(simpleTermTransformMap.get(node) != null) { - type_name = (String)simpleTermTransformMap.get(node); + type_name = simpleTermTransformMap.get(node); } else { - type_name = (String)CG.getAltTransformElemTypes().get(node); + type_name = CG.getAltTransformElemTypes().get(node); } - int position = ((Integer)CG.getTermNumbers().get(node)).intValue(); + int position = CG.getTermNumbers().get(node); String newAltName = name((AProdName)node.getProdName()); try { @@ -549,13 +549,13 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter { if(simpleTermTransformMap.get(temp[i]) != null) { - type_name = (String)simpleTermTransformMap.get(temp[i]); + type_name = simpleTermTransformMap.get(temp[i]); } else { - type_name = (String)CG.getAltTransformElemTypes().get(temp[i]); + type_name = CG.getAltTransformElemTypes().get(temp[i]); } - position = ((Integer)CG.getTermNumbers().get(temp[i])).intValue(); + position = CG.getTermNumbers().get(temp[i]); if(i != 0) { diff --git a/src/main/java/org/sablecc/sablecc/In_Production.java b/src/main/java/org/sablecc/sablecc/In_Production.java index 79aedb39dc3b5818d2fe5f2958b861e9f5c972e1..304131af96c9e6d22b14aca1ef6c7746d9d60d60 100644 --- a/src/main/java/org/sablecc/sablecc/In_Production.java +++ b/src/main/java/org/sablecc/sablecc/In_Production.java @@ -84,7 +84,7 @@ public class In_Production String name; int nbElems; AElem[] elements; - Map prodTransform_altTransform; + Map<String, Node> prodTransform_altTransform; In_Alternative(AAlt alt, String[] prodTransformElems, String prodName) { @@ -113,10 +113,7 @@ public class In_Production nbElems = listOfElems.length; - prodTransform_altTransform = - new TypedHashMap(prodTransformElems.length, - StringCast.instance, - NodeCast.instance); + prodTransform_altTransform = new HashMap<>(prodTransformElems.length); LinkedList list = ((AAltTransform)alt.getAltTransform()).getTerms(); for(int i=0; i<list.size(); i++) @@ -155,7 +152,7 @@ public class In_Production return nbElems; } - Map getProdTransform_AlTransformMap() + Map<String, Node> getProdTransform_AlTransformMap() { return prodTransform_altTransform; } diff --git a/src/main/java/org/sablecc/sablecc/Inlining.java b/src/main/java/org/sablecc/sablecc/Inlining.java index a1361eda85327063dbbe6a6661a53e41d79e36f3..79393bfb947c3cf0aaa3fc4c10da459de21f0d76 100644 --- a/src/main/java/org/sablecc/sablecc/Inlining.java +++ b/src/main/java/org/sablecc/sablecc/Inlining.java @@ -238,7 +238,7 @@ public class Inlining LinkedList resultList = new LinkedList(); AAlt[] alts = (AAlt[])altsList.toArray(new AAlt[0]); AAlt aParsed_alt; - Map mapOfNewTermNames; + Map<String, String> mapOfNewTermNames; for(int i=0; i<alts.length; i++) { @@ -246,15 +246,14 @@ public class Inlining for(int j=0; j<prod_to_inline.getNbAlts(); j++) { - mapOfNewTermNames = new TypedHashMap(StringCast.instance, - StringCast.instance); + mapOfNewTermNames = new HashMap<>(); LinkedList listElems = inlineList(aParsed_alt.getElems(), prod_to_inline.getAlternative(j).getElems(), mapOfNewTermNames); AAltTransform aAltTransform = (AAltTransform)((AAltTransform)aParsed_alt.getAltTransform()).clone(); - final Map currentMap = prod_to_inline.getAlternative(j).getProdTransform_AlTransformMap(); + final Map<String, Node> currentMap = prod_to_inline.getAlternative(j).getProdTransform_AlTransformMap(); aAltTransform.apply(new DepthFirstAdapter() { @@ -273,7 +272,7 @@ public class Inlining termTail = prod_to_inline.getName(); } - PTerm term = (PTerm)((PTerm)currentMap.get(termTail)).clone(); + PTerm term = (PTerm)currentMap.get(termTail).clone(); if(currentMap.get(termTail) != null) { @@ -404,7 +403,7 @@ public class Inlining public LinkedList inlineList(LinkedList oldElemsList, AElem[] inliningProductionsElems, - Map mapOfNewTermNames) + Map<String, String> mapOfNewTermNames) { int position = 0; AElem[] listElems = (AElem[]) oldElemsList.toArray(new AElem[0]); @@ -469,7 +468,7 @@ public class Inlining } private void fixSimpleTermOrSimpleListTermNames(AAltTransform tmpaAltTransform, - final Map mapOldNameNewNames) + final Map<String, String> mapOldNameNewNames) { tmpaAltTransform.apply(new DepthFirstAdapter() { @@ -477,7 +476,7 @@ public class Inlining { if(mapOldNameNewNames.get(node.getId().getText()) != null) { - node.setId(new TId( (String)mapOldNameNewNames.get(node.getId().getText()) )); + node.setId(new TId(mapOldNameNewNames.get(node.getId().getText()))); } } @@ -485,7 +484,7 @@ public class Inlining { if(mapOldNameNewNames.get(node.getId().getText()) != null) { - node.setId(new TId( (String)mapOldNameNewNames.get(node.getId().getText()) )); + node.setId(new TId(mapOldNameNewNames.get(node.getId().getText()))); } } } diff --git a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java index 2cd0a92b257b449e301625cafea61b1c07eeb31f..310c42369a2b26e59b12c1ff905b759bd22301d3 100644 --- a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java +++ b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java @@ -42,9 +42,9 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter private LinkedList listSimpleTermTransform; - public final Map simpleTermTransform; - Map mapProductionTransformations; - Map simpleTermOrsimpleListTermTypes; + public final Map<Node, String> simpleTermTransform; + Map<String, LinkedList> mapProductionTransformations; + Map<Node, String> simpleTermOrsimpleListTermTypes; private Map isElementIsAlist = new TypedTreeMap( StringComparator.instance, @@ -56,9 +56,9 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter public InternalTransformationsToGrammar(ResolveIds ids, ResolveAltIds altIds, ResolveTransformIds transformIds, LinkedList listSimpleTermTransform, - Map simpleTermTransform, - Map mapProductionTransformations, - Map simpleTermOrsimpleListTermTypes) + Map<Node, String> simpleTermTransform, + Map<String, LinkedList> mapProductionTransformations, + Map<Node, String> simpleTermOrsimpleListTermTypes) { this.ids = ids; this.altIds = altIds; @@ -88,7 +88,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter public void caseAProd(AProd node) { - currentProd = (String) ids.names.get(node); + currentProd = ids.names.get(node); listOfAlts = new LinkedList(); Object[] list_alt = (Object[])node.getAlts().toArray(); @@ -112,7 +112,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter public void caseAAlt(AAlt node) { count = 1; - currentAltName = (String) ids.names.get(node); + currentAltName = ids.names.get(node); AAltTransform currentAltTransform = (AAltTransform)node.getAltTransform(); @@ -269,7 +269,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter if(!processingAst) { int op = ((Integer) getOut(node)).intValue(); - String name = (String) ids.elemTypes.get(node); + String name = ids.elemTypes.get(node); String numero = (countElementNecessary == true ? ""+(count+1) : "" ); String qMarkOrPlusElemType; String elemNameOfElem = null; @@ -321,8 +321,8 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter if((count & (1 << elem)) != 0) { - qMarkOrPlusElemType = (String)ids.elemTypes.get(node); - LinkedList tmpProdTransform = (LinkedList)mapProductionTransformations.get(qMarkOrPlusElemType); + qMarkOrPlusElemType = ids.elemTypes.get(node); + LinkedList tmpProdTransform = mapProductionTransformations.get(qMarkOrPlusElemType); if(!checkCreationOfXElem.contains("$" + elemName)) { @@ -373,8 +373,8 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter break; case PLUS: { - qMarkOrPlusElemType = (String)ids.elemTypes.get(node); - LinkedList tmpProdTransform = (LinkedList)mapProductionTransformations.get(qMarkOrPlusElemType); + qMarkOrPlusElemType = ids.elemTypes.get(node); + LinkedList tmpProdTransform = mapProductionTransformations.get(qMarkOrPlusElemType); if(!checkCreationOfXElem.contains("$" + elemName)) { diff --git a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java index e6f42f08556999c86ed43e952bb11d745841f858..838c81f4af8303ab59dab5b4081926b3ebf80ba4 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java @@ -107,7 +107,7 @@ public class ResolveAltIds extends DepthFirstAdapter //contains only element of the alternative which are list(operator * or +). listElemslist = new LinkedList(); - currentAlt = (String)ids.names.get(alt); + currentAlt = ids.names.get(alt); AElem[] list_elems = (AElem[])alt.getElems().toArray(new AElem[0]); for(int i=0; i<list_elems.length; i++) diff --git a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java index a0613dfc373240d7f4de635f30c425e0ac79335f..5d2319fe29c3347f5c05c96d638e6078bdc3fe66 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java @@ -54,12 +54,8 @@ public class ResolveAstIds extends DepthFirstAdapter NodeCast.instance); //Map of all names of AST productions. //They are essentially used to generate AST node classes. - public final Map ast_names = new TypedHashMap( - NodeCast.instance, - StringCast.instance); - public final Map ast_elemTypes = new TypedHashMap( - NodeCast.instance, - StringCast.instance); + public final Map<Node, String> ast_names = new HashMap<>(); + public final Map<Node, String> ast_elemTypes = new HashMap<>(); public ResolveIds astIds; private String firstAstProduction; diff --git a/src/main/java/org/sablecc/sablecc/ResolveIds.java b/src/main/java/org/sablecc/sablecc/ResolveIds.java index cfc425603b5bca11af95a953b82282aefc66c755..e542fe84bdea0611e9c13d196c2c9ad0088b75f7 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveIds.java @@ -35,38 +35,22 @@ public class ResolveIds extends DepthFirstAdapter StringCast.instance, NodeCast.instance); - public final Map alts = new TypedHashMap( - StringCast.instance, - NodeCast.instance); + public final Map<String, AAlt> alts = new HashMap<>(); - public final Map elems = new TypedHashMap( - StringCast.instance, - NodeCast.instance); + public final Map<String, AElem> elems = new HashMap<>(); - public final Map names = new TypedHashMap( - NodeCast.instance, - StringCast.instance); + public final Map<Node, String> names = new HashMap<>(); - public final Map errorNames = new TypedHashMap( - NodeCast.instance, - StringCast.instance); - public final Map elemTypes = new TypedHashMap( - NodeCast.instance, - StringCast.instance); + public final Map<Node, String> errorNames = new HashMap<>(); + public final Map<Node, String> elemTypes = new HashMap<>(); - public final Map altsElemNameTypes = new TypedHashMap( - StringCast.instance, - StringCast.instance); + public final Map<String, String> altsElemNameTypes = new HashMap<>(); // This map will serve for simpleTerm and simplelistTerm type within an altTransform // Inside an altTransform, one would look at this map to know its type. (P... or T...) - public final Map altsElemTypes = new TypedHashMap( - StringCast.instance, - StringCast.instance); + public final Map<String, String> altsElemTypes = new HashMap<>(); - public final Map fixedTokens = new TypedHashMap( - NodeCast.instance, - BooleanCast.instance); + public final Map<Node, Boolean> fixedTokens = new HashMap<>(); public final List tokenList = new TypedLinkedList(StringCast.instance); public final LinkedList stateList = new TypedLinkedList(StringCast.instance); @@ -194,7 +178,7 @@ public class ResolveIds extends DepthFirstAdapter error((TId)list_id[i], name); } - names.put(list_id[i], name); + names.put((Node)list_id[i], name); stateList.add(name); } } @@ -217,7 +201,7 @@ public class ResolveIds extends DepthFirstAdapter { error((TId)list_id[i], name); } - names.put(list_id[i], name); + names.put((Node)list_id[i], name); } } diff --git a/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java index ab242d12baa5cbee14522621124375961dd1f559..019e3fe1e2a3353d6117ed8b3783552408df16da 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java @@ -34,15 +34,11 @@ public class ResolveProdTransformIds extends DepthFirstAdapter //Map of production transformation element type. The key of this map //is the node of this element in the AST. - public final Map prodTransformElemTypes = new TypedHashMap( - NoCast.instance, - StringCast.instance); + public final Map<Object, String> prodTransformElemTypes = new HashMap<>(); //This map contains the same information as the other one just above. //But the keys for this map are String ("ProdName.ElemTransformationName") - public final Map prodTransformElemTypesString = new TypedHashMap( - StringCast.instance, - StringCast.instance); + public final Map<String, String> prodTransformElemTypesString = new HashMap<>(); //Map of Productions which transformations contains list elements. public Map mapProdTransformContainsList = new TypedTreeMap( @@ -63,7 +59,7 @@ public class ResolveProdTransformIds extends DepthFirstAdapter public void caseAProd(final AProd production) { - prod_name = (String)transformIds.astIds.names.get(production); + prod_name = transformIds.astIds.names.get(production); AElem temp[] = (AElem [])production.getProdTransform().toArray(new AElem[0]); diff --git a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java index d7089fcf2dd8afdc6d130954fb267fb7dbdd2564..0908782fc5e28a5d5056a61fb512740d58ea4cea 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java @@ -41,17 +41,11 @@ public class ResolveTransformIds extends DepthFirstAdapter private String currentAstProdName; //This Map contains the type of any term of alternative transformation(altTransform) - public final Map altTransformElemTypes = new TypedHashMap( - NodeCast.instance, - StringCast.instance); + public final Map<Node, String> altTransformElemTypes = new HashMap<>(); - public final Map mapSimpleTermProdTransformation = new TypedHashMap( - StringCast.instance, - ListCast.instance); + public final Map<String, LinkedList> mapSimpleTermProdTransformation = new HashMap<>(); - public final Map simpleTermOrsimpleListTermTypes = new TypedHashMap( - NodeCast.instance, - StringCast.instance); + public final Map<Node, String> simpleTermOrsimpleListTermTypes = new HashMap<>(); public ResolveTransformIds(ResolveAstIds ast_ids, ResolveAltIds alt_ids, ResolveProdTransformIds p_ids) { @@ -68,7 +62,7 @@ public class ResolveTransformIds extends DepthFirstAdapter public void inAProd(final AProd production) { nbTransformProd = 0; - currentProd = (String)altIds.ids.names.get(production); + currentProd = altIds.ids.names.get(production); if(production.getArrow() != null) { @@ -84,7 +78,7 @@ public class ResolveTransformIds extends DepthFirstAdapter { nbTransformAlt = 0; - currentAlt = (String)altIds.ids.names.get(nodeAlt); + currentAlt = altIds.ids.names.get(nodeAlt); listCurrentAltGlobal = (LinkedList)((LinkedList)altIds.alts_elemsGlobal.get(currentAlt)).clone(); listCurrentAlt = (LinkedList)((LinkedList)altIds.alts_elems.get(currentAlt)).clone(); listOfListCurrentAlt = (LinkedList)((LinkedList)altIds.alts_elems_list.get(currentAlt)).clone(); @@ -193,8 +187,8 @@ public class ResolveTransformIds extends DepthFirstAdapter //here, we're checking the type compabitlity between for a new node creation for(int j=0; j<elemsTable.length; j++) { - termType = (String)altTransformElemTypes.get(paramsTable[j]); - elemType = (String)transformIds.ast_elemTypes.get(elemsTable[j]); + termType = altTransformElemTypes.get(paramsTable[j]); + elemType = transformIds.ast_elemTypes.get(elemsTable[j]); PUnOp eventual_ast_alt_elemOperator = ((AElem)elemsTable[j]).getUnOp(); @@ -283,8 +277,8 @@ public class ResolveTransformIds extends DepthFirstAdapter //here, we're checking the type compabitlity between for a new node creation for(int j=0; j<elemsTable.length; j++) { - termType = (String)altTransformElemTypes.get(paramsTable[j]); - elemType = (String)transformIds.ast_elemTypes.get(elemsTable[j]); + termType = altTransformElemTypes.get(paramsTable[j]); + elemType = transformIds.ast_elemTypes.get(elemsTable[j]); PUnOp elemOp = ((AElem)elemsTable[j]).getUnOp(); @@ -305,7 +299,7 @@ public class ResolveTransformIds extends DepthFirstAdapter if( (node.getListTerms() != null) && (node.getListTerms().size() != 0) ) { Object temp[] = node.getListTerms().toArray(); - String firstTermType = (String)altTransformElemTypes.get(temp[0]); + String firstTermType = altTransformElemTypes.get(temp[0]); if(firstTermType.endsWith("?")) { firstTermType = firstTermType.substring(0, firstTermType.length()-1); @@ -313,7 +307,7 @@ public class ResolveTransformIds extends DepthFirstAdapter for(int i=1; i<temp.length; i++) { - String termType = (String)altTransformElemTypes.get(temp[i]); + String termType = altTransformElemTypes.get(temp[i]); if(termType.endsWith("?")) { termType = termType.substring(0, termType.length()-1); @@ -347,8 +341,8 @@ public class ResolveTransformIds extends DepthFirstAdapter public void inASimpleTerm(ASimpleTerm node) { String name = node.getId().getText(); - String typeOfExplicitElemName = (String)transformIds.astIds.altsElemNameTypes.get( currentAlt+"."+node.getId().getText() ); - String alternativeElemType = (String)transformIds.astIds.altsElemTypes.get( currentAlt+"."+node.getId().getText() ); + String typeOfExplicitElemName = transformIds.astIds.altsElemNameTypes.get( currentAlt+"."+node.getId().getText() ); + String alternativeElemType = transformIds.astIds.altsElemTypes.get( currentAlt+"."+node.getId().getText() ); boolean okTermtail = false; String tmpName = name; @@ -432,7 +426,7 @@ public class ResolveTransformIds extends DepthFirstAdapter } else { - listL = (LinkedList)mapSimpleTermProdTransformation.get(currentAlt+"."+tmpName); + listL = mapSimpleTermProdTransformation.get(currentAlt+"."+tmpName); } } if( mapSimpleTermProdTransformation.get(currentAlt+".P"+tmpName) == null ) @@ -446,7 +440,7 @@ public class ResolveTransformIds extends DepthFirstAdapter } else { - listP = (LinkedList)mapSimpleTermProdTransformation.get(currentAlt+".P"+tmpName); + listP = mapSimpleTermProdTransformation.get(currentAlt+".P"+tmpName); } listCurrentAlt.remove(lastSimpleTerm); @@ -562,7 +556,7 @@ public class ResolveTransformIds extends DepthFirstAdapter alternativeElemType = alternativeElemType.substring(0, alternativeElemType.length()-1); qmark_op = true; } - String typeOfTerm = (String)prodTransformIds.prodTransformElemTypesString.get(alternativeElemType+"."+termTail); + String typeOfTerm = prodTransformIds.prodTransformElemTypesString.get(alternativeElemType+"."+termTail); // The substring is done because we want to ensures that lists term should be wrapped by square brackets if(typeOfTerm.startsWith("L")) @@ -586,8 +580,8 @@ public class ResolveTransformIds extends DepthFirstAdapter public void inASimpleListTerm(ASimpleListTerm node) { String name = node.getId().getText(); - String typeOfExplicitElemName = (String)transformIds.astIds.altsElemNameTypes.get( currentAlt+"."+node.getId().getText() ); - String alternativeElemType = (String)transformIds.astIds.altsElemTypes.get( currentAlt+"."+node.getId().getText() ); + String typeOfExplicitElemName = transformIds.astIds.altsElemNameTypes.get( currentAlt+"."+node.getId().getText() ); + String alternativeElemType = transformIds.astIds.altsElemTypes.get( currentAlt+"."+node.getId().getText() ); String strTermTail; String tmpName = name; @@ -675,7 +669,7 @@ public class ResolveTransformIds extends DepthFirstAdapter } else { - listL = (LinkedList)mapSimpleTermProdTransformation.get(currentAlt+"."+tmpName); + listL = mapSimpleTermProdTransformation.get(currentAlt+"."+tmpName); } } if( mapSimpleTermProdTransformation.get(currentAlt+".P"+tmpName) == null ) @@ -689,7 +683,7 @@ public class ResolveTransformIds extends DepthFirstAdapter } else { - listP = (LinkedList)mapSimpleTermProdTransformation.get(currentAlt+".P"+tmpName); + listP = mapSimpleTermProdTransformation.get(currentAlt+".P"+tmpName); } listCurrentAlt.remove(lastSimpleTerm); @@ -810,7 +804,7 @@ public class ResolveTransformIds extends DepthFirstAdapter alternativeElemType = alternativeElemType.substring(0, alternativeElemType.length()-1); qmark_op = true; } - String typeOfTerm = (String)prodTransformIds.prodTransformElemTypesString.get(alternativeElemType+"."+termTail); + String typeOfTerm = prodTransformIds.prodTransformElemTypesString.get(alternativeElemType+"."+termTail); // The substring is done because we want to ensures that lists term should be wrapped by square brackets if(typeOfTerm.startsWith("L")) @@ -858,7 +852,7 @@ public class ResolveTransformIds extends DepthFirstAdapter { curr_prod_has_prodTransform = true; curr_prodTransformElems = prodTransform.toArray(); - prodTransformElemType = (String)prodTransformIds.prodTransformElemTypes.get(curr_prodTransformElems[0]); + prodTransformElemType = prodTransformIds.prodTransformElemTypes.get(curr_prodTransformElems[0]); } else if(production.getArrow() == null) { @@ -898,13 +892,13 @@ public class ResolveTransformIds extends DepthFirstAdapter if(curr_prod_has_prodTransform) { - prodTransformElemType = (String)prodTransformIds.prodTransformElemTypes.get(curr_prodTransformElems[k]); + prodTransformElemType = prodTransformIds.prodTransformElemTypes.get(curr_prodTransformElems[k]); } else { prodTransformElemType = (String)curr_prodTransformElems[k]; } - altTransformTermType = (String)altTransformElemTypes.get(curr_altTransformTerms[k]); + altTransformTermType = altTransformElemTypes.get(curr_altTransformTerms[k]); PUnOp elemOp = ((AElem)curr_prodTransformElems[k]).getUnOp(); @@ -921,7 +915,7 @@ public class ResolveTransformIds extends DepthFirstAdapter if(curr_altTransformTerms.length == 0) { String prodTransformElemType = (String)curr_prodTransformElems[0]; - String altTransformTermType = (String)altTransformElemTypes.get(node); + String altTransformTermType = altTransformElemTypes.get(node); if(!prodTransformElemType.equals(altTransformTermType)) { error10(node.getLBrace(), prodTransformElemType, altTransformTermType); diff --git a/src/main/java/org/sablecc/sablecc/Transitions.java b/src/main/java/org/sablecc/sablecc/Transitions.java index 817c7541e01037a56be45bc4aa94ba50b486f4cf..fb65877cc74bd805a17c75bb3b4ec900865be4bb 100644 --- a/src/main/java/org/sablecc/sablecc/Transitions.java +++ b/src/main/java/org/sablecc/sablecc/Transitions.java @@ -13,9 +13,7 @@ import java.util.*; public class Transitions extends DepthFirstAdapter { - public final Map tokenStates = new TypedHashMap( - NodeCast.instance, - NoCast.instance); + public final Map<Node, Map> tokenStates = new HashMap<>(); private String state; private String transition; diff --git a/src/main/java/org/sablecc/sablecc/TypedHashMap.java b/src/main/java/org/sablecc/sablecc/TypedHashMap.java deleted file mode 100644 index 0a20b3f52fcd6e95a9d6aa9959c1dec36ed16fad..0000000000000000000000000000000000000000 --- a/src/main/java/org/sablecc/sablecc/TypedHashMap.java +++ /dev/null @@ -1,175 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * This file is part of SableCC. * - * See the file "LICENSE" for copyright information and the * - * terms and conditions for copying, distribution and * - * modification of SableCC. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -package org.sablecc.sablecc; - -import java.util.*; - -public class TypedHashMap extends HashMap -{ - private Cast keyCast; - private Cast valueCast; - private Set entries; - - public TypedHashMap() - { - super(); - - keyCast = NoCast.instance; - valueCast = NoCast.instance; - } - - public TypedHashMap(int initialCapacity, Cast keyCast, Cast valueCast) - { - super(initialCapacity); - - this.keyCast = keyCast; - this.valueCast = valueCast; - } - - public TypedHashMap(Map map) - { - super(); - - keyCast = NoCast.instance; - valueCast = NoCast.instance; - - Map.Entry[] entries = (Map.Entry[]) map.entrySet().toArray(new Map.Entry[0]); - for(int i = 0; i < entries.length; i++) - { - this.put(entries[i].getKey(),entries[i].getValue()); - } - - } - - public TypedHashMap(Cast keyCast, Cast valueCast) - { - super(); - - this.keyCast = keyCast; - this.valueCast = valueCast; - } - - public Object clone() - { - return new TypedHashMap(this, keyCast, valueCast); - } - - public TypedHashMap(Map map, Cast keyCast, Cast valueCast) - { - super(); - - this.keyCast = keyCast; - this.valueCast = valueCast; - - Map.Entry[] entries = (Map.Entry[]) map.entrySet().toArray(new Map.Entry[0]); - for(int i = 0; i < entries.length; i++) - { - this.put(entries[i].getKey(),entries[i].getValue()); - } - - } - - public Cast getKeyCast() - { - return keyCast; - } - - public Cast getValueCast() - { - return valueCast; - } - - public Set entrySet() - { - if(entries == null) - { - entries = new EntrySet(super.entrySet()); - } - - return entries; - } - - public Object put(Object key, Object value) - { - return super.put(keyCast.cast(key), valueCast.cast(value)); - } - - private class EntrySet extends AbstractSet - { - private Set set - ; - - EntrySet(Set set - ) - { - this.set = set - ; - } - - public int size() - { - return set.size(); - } - - public Iterator iterator() - { - return new EntryIterator(set.iterator()); - } - } - - private class EntryIterator implements Iterator - { - private Iterator iterator; - - EntryIterator(Iterator iterator) - { - this.iterator = iterator; - } - - public boolean hasNext() - { - return iterator.hasNext(); - } - - public Object next() - { - return new TypedEntry((Map.Entry) iterator.next()); - } - - public void remove - () - { - iterator.remove(); - } - } - - private class TypedEntry implements Map.Entry - { - private Map.Entry entry; - - TypedEntry(Map.Entry entry) - { - this.entry = entry; - } - - public Object getKey() - { - return entry.getKey(); - } - - public Object getValue() - { - return entry.getValue(); - } - - public Object setValue(Object value) - { - return entry.setValue(valueCast.cast(value)); - } - } -}