diff --git a/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java b/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java index 9019ab450b0276d916c63ebcfd403ff99351e500..396bfefa15984ccb5000fe0d856b90d4e2eaa919 100644 --- a/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java +++ b/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java @@ -17,7 +17,7 @@ public class AltTransformAdapter extends DepthFirstAdapter ResolveAltIds altIds; String currentNewAltName; - private Map isElementIsAlist; + private Map<String, String> isElementIsAlist; private LinkedList listSimpleTermTransform; private Map<Node, String> simpleTermTransform; @@ -26,7 +26,7 @@ public class AltTransformAdapter extends DepthFirstAdapter AltTransformAdapter(Map<Node, String> simpleTermTransform, LinkedList listSimpleTermTransform, String currentNewAltName, - ResolveAltIds altIds, Map isElementIsAlist, + ResolveAltIds altIds, Map<String, String> isElementIsAlist, Map<Node, String> simpleTermOrsimpleListTermTypes) { this.currentNewAltName = currentNewAltName; @@ -41,8 +41,8 @@ public class AltTransformAdapter extends DepthFirstAdapter { String name = node.getId().getText(); - if( !((LinkedList)altIds.alts_elems.get(currentNewAltName)).contains(name) && - !((LinkedList)altIds.alts_elems.get(currentNewAltName)).contains("$"+name) ) + if( !altIds.alts_elems.get(currentNewAltName).contains(name) && + !altIds.alts_elems.get(currentNewAltName).contains("$"+name) ) { node.replaceBy( new ANullTerm() ); } @@ -56,7 +56,7 @@ public class AltTransformAdapter extends DepthFirstAdapter } else { - simpleTermTail = new TId( (String)isElementIsAlist.get(currentNewAltName+name) ); + simpleTermTail = new TId(isElementIsAlist.get(currentNewAltName+name)); } ASimpleTerm asimpleTerm = new ASimpleTerm( node.getSpecifier(), node.getId(), simpleTermTail); @@ -67,7 +67,7 @@ public class AltTransformAdapter extends DepthFirstAdapter } node.replaceBy(asimpleTerm); - simpleTermTransform.put(asimpleTerm, "L"+ResolveIds.name((String)isElementIsAlist.get(currentNewAltName+name)) ); + simpleTermTransform.put(asimpleTerm, "L"+ResolveIds.name(isElementIsAlist.get(currentNewAltName+name)) ); //Terms are added here only if they were implicitely transformed listSimpleTermTransform.add( asimpleTerm ); @@ -78,8 +78,8 @@ public class AltTransformAdapter extends DepthFirstAdapter { String name = node.getId().getText(); - if( !((LinkedList)altIds.alts_elems.get(currentNewAltName)).contains(name) && - !((LinkedList)altIds.alts_elems.get(currentNewAltName)).contains("$"+name) ) + if( !altIds.alts_elems.get(currentNewAltName).contains(name) && + !altIds.alts_elems.get(currentNewAltName).contains("$"+name) ) { node.replaceBy( null ); } @@ -93,11 +93,11 @@ public class AltTransformAdapter extends DepthFirstAdapter } else { - simpleTermTail = new TId((String)isElementIsAlist.get(currentNewAltName+name)); + simpleTermTail = new TId(isElementIsAlist.get(currentNewAltName+name)); } TId tid; - tid = ( ((LinkedList)altIds.alts_elems_list_elemName.get(currentNewAltName)).contains(name) ? + tid = ( altIds.alts_elems_list_elemName.get(currentNewAltName).contains(name) ? node.getId() : new TId( "$" + node.getId().getText() ) ); ASimpleListTerm asimpleListTerm = new ASimpleListTerm( node.getSpecifier(), tid, simpleTermTail); @@ -108,7 +108,7 @@ public class AltTransformAdapter extends DepthFirstAdapter } node.replaceBy(asimpleListTerm); - simpleTermTransform.put(asimpleListTerm, "L"+ResolveIds.name((String)isElementIsAlist.get(currentNewAltName+name) )); + simpleTermTransform.put(asimpleListTerm, "L"+ResolveIds.name(isElementIsAlist.get(currentNewAltName+name))); //Terms are added here only if they were implicitely transformed listSimpleTermTransform.add( asimpleListTerm ); diff --git a/src/main/java/org/sablecc/sablecc/ComputeInlining.java b/src/main/java/org/sablecc/sablecc/ComputeInlining.java index 7926289b4b5861c7ddf500168a3d33bdef2113b9..fada5751a09a240a50f8d02a95621c5198802e81 100644 --- a/src/main/java/org/sablecc/sablecc/ComputeInlining.java +++ b/src/main/java/org/sablecc/sablecc/ComputeInlining.java @@ -31,12 +31,12 @@ public class ComputeInlining private Set setOfProdToBeInline; //Map of all productions in the grammar - private Map productionsMap; + private Map<String, AProd> productionsMap; private Start tree; public ComputeInlining(Set set , - Map productionsMap, + Map<String, AProd> productionsMap, Start tree) { this.setOfProdToBeInline = set @@ -59,7 +59,7 @@ public class ComputeInlining for(int i=0; i<nameOfProds.length; i++) { - final AProd prod = (AProd)productionsMap.get(nameOfProds[i]); + final AProd prod = productionsMap.get(nameOfProds[i]); //We proceed inlining only if the production to inline is not recursive //and if it doesn't have more than SableCC.inliningMaxAlts alternatives. diff --git a/src/main/java/org/sablecc/sablecc/ConstructNFA.java b/src/main/java/org/sablecc/sablecc/ConstructNFA.java index 59fdf178098daaf0782983cb11133525f8435b92..c7ceff4c68b932254696d1832781ecda7716739d 100644 --- a/src/main/java/org/sablecc/sablecc/ConstructNFA.java +++ b/src/main/java/org/sablecc/sablecc/ConstructNFA.java @@ -277,7 +277,7 @@ public class ConstructNFA extends DepthFirstAdapter public void outAIdBasic(AIdBasic node) { - Object o = getOut((Node) ids.helpers.get(node.getId().getText())); + Object o = getOut(ids.helpers.get(node.getId().getText())); if(o instanceof NFA) { diff --git a/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java b/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java index dac5ebdf2ca693b07ec0bc2ac9d35e42c769e888..f0f559d48060d3ddad2e7da170279b51d7c1515d 100644 --- a/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java +++ b/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java @@ -68,8 +68,7 @@ public class ConstructParserGenerationDatas extends DepthFirstAdapter } else { - Object token = ids.tokens.get("T" + name); - Object production = ids.prods.get("P" + name); + ATokenDef token = ids.tokens.get("T" + name); if(token != null) { diff --git a/src/main/java/org/sablecc/sablecc/ConstructProdsMap.java b/src/main/java/org/sablecc/sablecc/ConstructProdsMap.java index cd02575b46d8d4691fa69a2f116ce602ce79fc7a..52e06391d7c6839e800c4435c974bfba4fd791a7 100644 --- a/src/main/java/org/sablecc/sablecc/ConstructProdsMap.java +++ b/src/main/java/org/sablecc/sablecc/ConstructProdsMap.java @@ -13,9 +13,7 @@ import org.sablecc.sablecc.node.*; public class ConstructProdsMap extends DepthFirstAdapter { - public Map productionsMap = - new TypedTreeMap(StringCast.instance, - NodeCast.instance); + public Map<String, AProd> productionsMap = new TreeMap<>(); private String currentProd; diff --git a/src/main/java/org/sablecc/sablecc/GenLexer.java b/src/main/java/org/sablecc/sablecc/GenLexer.java index 9b633e247f989be79a6409f7c0b4106f1d0bae45..22f048ccb21be70f1ac8ea0c68ee284df078204b 100644 --- a/src/main/java/org/sablecc/sablecc/GenLexer.java +++ b/src/main/java/org/sablecc/sablecc/GenLexer.java @@ -162,7 +162,7 @@ public class GenLexer extends AnalysisAdapter for(ListIterator i = ids.tokenList.listIterator(); i.hasNext();) { String name = (String) i.next(); - Node node = (Node) ids.tokens.get(name); + ATokenDef node = ids.tokens.get(name); boolean fixed = ids.fixedTokens.get(node); if(fixed) @@ -176,18 +176,15 @@ public class GenLexer extends AnalysisAdapter new String[] {"" + i.previousIndex(), name}); } - Map map = transitions.tokenStates.get(node); + Map<String, String> map = transitions.tokenStates.get(node); if(map.size() > 0) { macros.apply(file, "TokenSwitchHeader", null); - for(Iterator j = map.entrySet().iterator(); j.hasNext();) + for(Map.Entry<String, String> entry : map.entrySet()) { - Map.Entry entry = (Map.Entry) j.next(); - macros.apply(file, "TokenCase", - new String[] {ids.stateList.indexOf((String) entry.getKey()) + "", - (String) entry.getValue()}); + new String[] {ids.stateList.indexOf(entry.getKey()) + "", entry.getValue()}); } macros.apply(file, "TokenSwitchTail", null); @@ -201,7 +198,7 @@ public class GenLexer extends AnalysisAdapter for(ListIterator i = ids.tokenList.listIterator(); i.hasNext();) { String name = (String) i.next(); - Node node = (Node) ids.tokens.get(name); + ATokenDef node = ids.tokens.get(name); 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 41ed6b52891bf555a02b0189a7aa283023da3698..8bb50c4c4f9718e0ce8bbda9c8f6dc172141c2fd 100644 --- a/src/main/java/org/sablecc/sablecc/GenParser.java +++ b/src/main/java/org/sablecc/sablecc/GenParser.java @@ -630,10 +630,7 @@ public class GenParser extends DepthFirstAdapter StringBuffer index = new StringBuffer(); int nextIndex = 0; - Map errorIndex = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - IntegerCast.instance); + Map<String, Integer> errorIndex = new TreeMap<>(); outerArray = new Vector(); Vector indexArray = new Vector(); diff --git a/src/main/java/org/sablecc/sablecc/GenProds.java b/src/main/java/org/sablecc/sablecc/GenProds.java index 2bd082d547dbf7925833ed3ae341be7127a7a858..d5e29b90517c6a171edeba3cb9f8157d06fec860 100644 --- a/src/main/java/org/sablecc/sablecc/GenProds.java +++ b/src/main/java/org/sablecc/sablecc/GenProds.java @@ -18,10 +18,6 @@ public class GenProds extends DepthFirstAdapter private ResolveAstIds ast_ids; private File pkgDir; private String pkgName; - private Map hiddenProds = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); public GenProds(ResolveAstIds ast_ids) { diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java index 743d452b05d2ad10710100286f4f7fe0bf7c0db9..1093899308b738a5c46b1477130be07fb8305387 100644 --- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java +++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java @@ -206,7 +206,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter if( !listSimpleTermTransform.contains(node.getId().getText() ) ) { String type = CTP.positionsMap.get( realcurrentAlt+"."+node.getId().getText() ); - LinkedList list = (LinkedList)transformIds.getProdTransformIds().prod_transforms.get(type); + LinkedList list = transformIds.getProdTransformIds().prod_transforms.get(type); if( list.indexOf( node.getSimpleTermTail().getText() ) >= 0 ) { positionMap = list.indexOf( node.getSimpleTermTail().getText() ); @@ -216,7 +216,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter if(simpleTermOrsimpleListTermTypes.get(node) != null) { String type = simpleTermOrsimpleListTermTypes.get(node); - LinkedList list = (LinkedList)transformIds.getProdTransformIds().prod_transforms.get(type); + LinkedList list = transformIds.getProdTransformIds().prod_transforms.get(type); if( list.indexOf( node.getSimpleTermTail().getText() ) >= 0 ) { positionMap = list.indexOf( node.getSimpleTermTail().getText() ); @@ -280,7 +280,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter if( !listSimpleTermTransform.contains(node.getId().getText()) ) { String type = CTP.positionsMap.get( realcurrentAlt+"."+node.getId().getText() ); - LinkedList list = (LinkedList)transformIds.getProdTransformIds().prod_transforms.get(type); + LinkedList list = transformIds.getProdTransformIds().prod_transforms.get(type); if( list.indexOf( node.getSimpleTermTail().getText() ) >= 0 ) { positionMap = list.indexOf( node.getSimpleTermTail().getText() ); @@ -290,7 +290,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter if(simpleTermOrsimpleListTermTypes.get(node) != null) { String type = simpleTermOrsimpleListTermTypes.get(node); - LinkedList list = (LinkedList)transformIds.getProdTransformIds().prod_transforms.get(type); + LinkedList list = transformIds.getProdTransformIds().prod_transforms.get(type); if( list.indexOf( node.getSimpleTermTail().getText() ) >= 0 ) { positionMap = list.indexOf( node.getSimpleTermTail().getText() ); diff --git a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java index 310c42369a2b26e59b12c1ff905b759bd22301d3..6865badb09c1b93f07cba36e9101bf98cf7a84bd 100644 --- a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java +++ b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java @@ -46,10 +46,7 @@ public class InternalTransformationsToGrammar extends DepthFirstAdapter Map<String, LinkedList> mapProductionTransformations; Map<Node, String> simpleTermOrsimpleListTermTypes; - private Map isElementIsAlist = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - StringCast.instance); + private Map<String, String> isElementIsAlist = new TreeMap<>(); private LinkedList listProd; diff --git a/src/main/java/org/sablecc/sablecc/MacroExpander.java b/src/main/java/org/sablecc/sablecc/MacroExpander.java index 1cc8b667fdad2b72b9ad50baf4482992ccb709a9..9f15a0e29d3188341a8c621dceef4afbed36491d 100644 --- a/src/main/java/org/sablecc/sablecc/MacroExpander.java +++ b/src/main/java/org/sablecc/sablecc/MacroExpander.java @@ -15,10 +15,7 @@ public class MacroExpander private static final String MACRO = "Macro:"; private static final String lineSeparator = System.getProperty("line.separator"); - private Map macros = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - ListCast.instance); + private Map<String, List> macros = new TreeMap<>(); public MacroExpander(Reader in) throws IOException { @@ -69,7 +66,7 @@ public class MacroExpander public void apply(BufferedWriter out, String macroName, String[] arguments) throws IOException { - List macro = (List) macros.get(macroName); + List macro = macros.get(macroName); for(ListIterator li = macro.listIterator(); li.hasNext();) { diff --git a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java index 838c81f4af8303ab59dab5b4081926b3ebf80ba4..267de0ee0e9c39dade3855b81e7264c94d918dc9 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java @@ -36,31 +36,19 @@ public class ResolveAltIds extends DepthFirstAdapter //Map of alternatives elements which are not list : // ie not followed by * or + operator. - public Map alts_elems = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - ListCast.instance); + public Map<String, LinkedList> alts_elems = new TreeMap<>(); //Map of only alternatives elements which are list : //followed by * or + operator. - public Map alts_elems_list = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - ListCast.instance); + public Map<String, LinkedList> 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 alts_elemsGlobal = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - ListCast.instance); + public Map<String, LinkedList> alts_elemsGlobal = new TreeMap<>(); //Map of all alternatives elements which have explicit name. - public Map alts_elems_list_elemName = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - ListCast.instance); + public Map<String, List> alts_elems_list_elemName = new TreeMap<>(); private LinkedList listElemsGlobal; private LinkedList listElems; diff --git a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java index 5d2319fe29c3347f5c05c96d638e6078bdc3fe66..cea989a9bb987870d74abbffa2ea7b15a2e85a1a 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java @@ -38,20 +38,11 @@ public class ResolveAstIds extends DepthFirstAdapter //by giving the name of this production // Example :: PAstProd is the name of the declared the following productions // ast_prod = id equal [alts]:ast_alt* semicolon; - public final Map ast_prods = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); + public final Map<String, AAstProd> ast_prods = new TreeMap<>(); //Same thing that above for AST alternatives. - public final Map ast_alts = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); + public final Map<String, AAstAlt> ast_alts = new TreeMap<>(); //Same thing that above for AST alternatives elements. - public final Map ast_elems = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); + public final Map<String, AElem> ast_elems = new TreeMap<>(); //Map of all names of AST productions. //They are essentially used to generate AST node classes. public final Map<Node, String> ast_names = new HashMap<>(); @@ -179,7 +170,7 @@ public class ResolveAstIds extends DepthFirstAdapter } else { - Object token = astIds.tokens.get("T" + name); + ATokenDef token = astIds.tokens.get("T" + name); if(token != null) { @@ -230,10 +221,10 @@ public class ResolveAstIds extends DepthFirstAdapter } else { - Object token = astIds.tokens.get("T" + name); - Object ignToken = astIds.ignTokens.get("T" + name); + ATokenDef token = astIds.tokens.get("T" + name); + Node ignToken = astIds.ignTokens.get("T" + name); //Object production = astIds.prods.get("P" + name); - Object ast_production = ast_prods.get("P" + name); + AAstProd ast_production = ast_prods.get("P" + name); //if() if((token == null) && (ast_production == null)) { diff --git a/src/main/java/org/sablecc/sablecc/ResolveIds.java b/src/main/java/org/sablecc/sablecc/ResolveIds.java index e542fe84bdea0611e9c13d196c2c9ad0088b75f7..99a4fc2869264c5af4276b488db18948fbe32fbf 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveIds.java @@ -14,26 +14,11 @@ import java.io.*; public class ResolveIds extends DepthFirstAdapter { - public final Map helpers = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); - public final Map states = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); - public final Map tokens = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); - public final Map ignTokens = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); - public final Map prods = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); + public final Map<String, AHelperDef> helpers = new TreeMap<>(); + public final Map<String, Node> states = new TreeMap<>(); + public final Map<String, ATokenDef> tokens = new TreeMap<>(); + public final Map<String, Node> ignTokens = new TreeMap<>(); + public final Map<String, AProd> prods = new TreeMap<>(); public final Map<String, AAlt> alts = new HashMap<>(); @@ -50,7 +35,7 @@ public class ResolveIds extends DepthFirstAdapter // Inside an altTransform, one would look at this map to know its type. (P... or T...) public final Map<String, String> altsElemTypes = new HashMap<>(); - public final Map<Node, Boolean> fixedTokens = new HashMap<>(); + public final Map<ATokenDef, Boolean> fixedTokens = new HashMap<>(); public final List tokenList = new TypedLinkedList(StringCast.instance); public final LinkedList stateList = new TypedLinkedList(StringCast.instance); @@ -173,7 +158,7 @@ public class ResolveIds extends DepthFirstAdapter { name = ((TId)list_id[i]).getText().toUpperCase(); - if(states.put(name, list_id[i]) != null) + if(states.put(name, (Node)list_id[i]) != null) { error((TId)list_id[i], name); } @@ -197,7 +182,7 @@ public class ResolveIds extends DepthFirstAdapter error2((TId)list_id[i], name); } - if(ignTokens.put(name, list_id[i]) != null) + if(ignTokens.put(name, (Node)list_id[i]) != null) { error((TId)list_id[i], name); } @@ -205,14 +190,11 @@ public class ResolveIds extends DepthFirstAdapter } } - private Map stateMap; + private Map<String, Node> stateMap; public void inAStateList(AStateList node) { - stateMap = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NodeCast.instance); + stateMap = new TreeMap<>(); String name = node.getId().getText().toUpperCase(); @@ -445,9 +427,9 @@ public class ResolveIds extends DepthFirstAdapter } else { - Object token = tokens.get("T" + name); - Object ignToken = ignTokens.get("T" + name); - Object production = prods.get("P" + name); + ATokenDef token = tokens.get("T" + name); + Node ignToken = ignTokens.get("T" + name); + AProd production = prods.get("P" + name); if((token == null) && (production == null)) { diff --git a/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java index 019e3fe1e2a3353d6117ed8b3783552408df16da..79deaaab6e1537042283cc4e8eed8b784fab82c9 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java @@ -41,16 +41,10 @@ public class ResolveProdTransformIds extends DepthFirstAdapter public final Map<String, String> prodTransformElemTypesString = new HashMap<>(); //Map of Productions which transformations contains list elements. - public Map mapProdTransformContainsList = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - ListCast.instance); + public Map<String, LinkedList> mapProdTransformContainsList = new TreeMap<>(); //Map of all Production transformations elements. - public final Map prod_transforms = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - NoCast.instance); + public final Map<String, LinkedList> prod_transforms = new TreeMap<>(); public ResolveProdTransformIds(ResolveAstIds ids) { @@ -211,10 +205,9 @@ public class ResolveProdTransformIds extends DepthFirstAdapter } else { - Object token = transformIds.astIds.tokens.get("T" + name); - Object ignToken = transformIds.astIds.ignTokens.get("T" + name); - Object production = transformIds.astIds.prods.get("P" + name); - Object ast_production = transformIds.ast_prods.get("P" + name); + ATokenDef token = transformIds.astIds.tokens.get("T" + name); + AProd production = transformIds.astIds.prods.get("P" + name); + AAstProd ast_production = transformIds.ast_prods.get("P" + name); if((token == null) && (ast_production == null) && (production == null)) { diff --git a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java index 0908782fc5e28a5d5056a61fb512740d58ea4cea..df31e1f814814aee1e66824096f3bce78065aa1d 100644 --- a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java +++ b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java @@ -79,9 +79,9 @@ public class ResolveTransformIds extends DepthFirstAdapter nbTransformAlt = 0; 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(); + 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(); } public void inAAltTransform(AAltTransform node) @@ -116,7 +116,6 @@ public class ResolveTransformIds extends DepthFirstAdapter public void outANewTerm(ANewTerm node) { - LinkedList list = (LinkedList)prodTransformIds.prod_transforms.get(currentProd); AProdName prodNameNode = (AProdName)node.getProdName(); currentAstProd = "P" + ResolveIds.name(prodNameNode.getId().getText()); @@ -159,9 +158,9 @@ public class ResolveTransformIds extends DepthFirstAdapter } int sizeAstAlt = 0; - if( ((AAstAlt)transformIds.ast_alts.get(currentAstAlt) ).getElems() != null) + if( transformIds.ast_alts.get(currentAstAlt).getElems() != null) { - sizeAstAlt = ( (LinkedList)((AAstAlt)transformIds.ast_alts.get(currentAstAlt) ).getElems()).size(); + sizeAstAlt = transformIds.ast_alts.get(currentAstAlt).getElems().size(); } if(sizeNewTerm != sizeAstAlt) @@ -175,7 +174,7 @@ public class ResolveTransformIds extends DepthFirstAdapter altTransformElemTypes.put(node, type); - AAstAlt astAlt = (AAstAlt)transformIds.ast_alts.get(currentAstAlt); + AAstAlt astAlt = transformIds.ast_alts.get(currentAstAlt); if(node.getParams().size() > 0 && astAlt.getElems().size() > 0) { @@ -206,7 +205,6 @@ public class ResolveTransformIds extends DepthFirstAdapter public void outANewListTerm(ANewListTerm node) { - LinkedList list = (LinkedList)prodTransformIds.prod_transforms.get(currentProd); AProdName prodNameNode = (AProdName)node.getProdName(); currentAstProdName = prodNameNode.getId().getText(); @@ -249,9 +247,9 @@ public class ResolveTransformIds extends DepthFirstAdapter } int sizeAstAlt = 0; - if( ((AAstAlt)transformIds.ast_alts.get(currentAstAlt) ).getElems() != null) + if( transformIds.ast_alts.get(currentAstAlt).getElems() != null) { - sizeAstAlt = ( (LinkedList)((AAstAlt)transformIds.ast_alts.get(currentAstAlt) ).getElems()).size(); + sizeAstAlt = transformIds.ast_alts.get(currentAstAlt).getElems().size(); } if(sizeNewTerm != sizeAstAlt) @@ -265,7 +263,7 @@ public class ResolveTransformIds extends DepthFirstAdapter altTransformElemTypes.put(node, type); - AAstAlt astAlt = (AAstAlt)transformIds.ast_alts.get(currentAstAlt); + AAstAlt astAlt = transformIds.ast_alts.get(currentAstAlt); if(node.getParams().size() > 0 && astAlt.getElems().size() > 0) { @@ -420,7 +418,7 @@ public class ResolveTransformIds extends DepthFirstAdapter { if(prodTransformIds.prod_transforms.get(typeOfExplicitElemName) != null) { - listL = (LinkedList)((LinkedList)prodTransformIds.prod_transforms.get(typeOfExplicitElemName)).clone(); + listL = (LinkedList)prodTransformIds.prod_transforms.get(typeOfExplicitElemName).clone(); mapSimpleTermProdTransformation.put(currentAlt+"."+tmpName, listL); } } @@ -431,10 +429,10 @@ public class ResolveTransformIds extends DepthFirstAdapter } if( mapSimpleTermProdTransformation.get(currentAlt+".P"+tmpName) == null ) { - listP = (LinkedList)prodTransformIds.prod_transforms.get(name); + listP = prodTransformIds.prod_transforms.get(name); if(prodTransformIds.prod_transforms.get(name) != null) { - listP = (LinkedList)((LinkedList)prodTransformIds.prod_transforms.get(name)).clone(); + listP = (LinkedList)prodTransformIds.prod_transforms.get(name).clone(); mapSimpleTermProdTransformation.put(currentAlt+".P"+tmpName, listP); } } @@ -518,19 +516,6 @@ public class ResolveTransformIds extends DepthFirstAdapter } } - if(node.getSimpleTermTail() != null) - { - String termtail = node.getSimpleTermTail().getText(); - LinkedList listProdContains = null; - if(typeOfExplicitElemName != null) - { - listProdContains = (LinkedList)prodTransformIds.mapProdTransformContainsList.get(typeOfExplicitElemName); - } - else - { - listProdContains = (LinkedList)prodTransformIds.mapProdTransformContainsList.get("P" + ResolveIds.name(node.getId().getText())); - } - } //The Type of the element without his eventual termtail (term.termtail :: (type of term)) if(typeOfExplicitElemName != null) { @@ -663,7 +648,7 @@ public class ResolveTransformIds extends DepthFirstAdapter { if(prodTransformIds.prod_transforms.get(typeOfExplicitElemName) != null) { - listL = (LinkedList)((LinkedList)prodTransformIds.prod_transforms.get(typeOfExplicitElemName)).clone(); + listL = (LinkedList)prodTransformIds.prod_transforms.get(typeOfExplicitElemName).clone(); mapSimpleTermProdTransformation.put(currentAlt+"."+tmpName, listL); } } @@ -674,10 +659,10 @@ public class ResolveTransformIds extends DepthFirstAdapter } if( mapSimpleTermProdTransformation.get(currentAlt+".P"+tmpName) == null ) { - listP = (LinkedList)prodTransformIds.prod_transforms.get(name); + listP = prodTransformIds.prod_transforms.get(name); if(prodTransformIds.prod_transforms.get(name) != null) { - listP = (LinkedList)((LinkedList)prodTransformIds.prod_transforms.get(name)).clone(); + listP = (LinkedList)prodTransformIds.prod_transforms.get(name).clone(); mapSimpleTermProdTransformation.put(currentAlt+".P"+tmpName, listP); } } @@ -759,25 +744,6 @@ public class ResolveTransformIds extends DepthFirstAdapter } } - if(node.getSimpleTermTail() != null) - { - String termtail = node.getSimpleTermTail().getText(); - LinkedList listProdContains = null; - LinkedList prodContains = null; - if(typeOfExplicitElemName != null) - { - listProdContains = (LinkedList)prodTransformIds.mapProdTransformContainsList.get(typeOfExplicitElemName); - prodContains = (LinkedList)prodTransformIds.prod_transforms.get(typeOfExplicitElemName); - } - else - { - listProdContains = (LinkedList)prodTransformIds.mapProdTransformContainsList.get("P" + ResolveIds.name(node.getId().getText())); - prodContains = (LinkedList)prodTransformIds.prod_transforms.get("P" + ResolveIds.name(node.getId().getText())); - } - - LinkedList lst = (LinkedList)altIds.alts_elems_list.get(currentAlt); - } - //The Type of the element without his eventual termtail (term.termtail :: (type of term)) if(typeOfExplicitElemName != null) diff --git a/src/main/java/org/sablecc/sablecc/Transitions.java b/src/main/java/org/sablecc/sablecc/Transitions.java index fb65877cc74bd805a17c75bb3b4ec900865be4bb..699cb7ee4374bfeeaae3b50a15d1eaaf8bbe7e27 100644 --- a/src/main/java/org/sablecc/sablecc/Transitions.java +++ b/src/main/java/org/sablecc/sablecc/Transitions.java @@ -13,11 +13,11 @@ import java.util.*; public class Transitions extends DepthFirstAdapter { - public final Map<Node, Map> tokenStates = new HashMap<>(); + public final Map<ATokenDef, Map<String, String>> tokenStates = new HashMap<>(); private String state; private String transition; - private Map map; + private Map<String, String> map; public void caseAStateList(AStateList node) { @@ -44,10 +44,7 @@ public class Transitions extends DepthFirstAdapter public void inATokenDef(ATokenDef node) { - map = new TypedTreeMap( - StringComparator.instance, - StringCast.instance, - StringCast.instance); + map = new TreeMap<>(); } public void inAStateList(AStateList node) diff --git a/src/main/java/org/sablecc/sablecc/TypedTreeMap.java b/src/main/java/org/sablecc/sablecc/TypedTreeMap.java deleted file mode 100644 index e0b3ec21b2d536d4c69201c846024161f1dbcac8..0000000000000000000000000000000000000000 --- a/src/main/java/org/sablecc/sablecc/TypedTreeMap.java +++ /dev/null @@ -1,251 +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 TypedTreeMap extends TreeMap -{ - private Cast keyCast; - private Cast valueCast; - private Set entries; - - public TypedTreeMap() - { - super(); - - keyCast = NoCast.instance; - valueCast = NoCast.instance; - } - - public TypedTreeMap(Comparator comparator) - { - super(comparator); - - keyCast = NoCast.instance; - valueCast = NoCast.instance; - } - - public TypedTreeMap(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 TypedTreeMap(Map map) - { - super(map); - - keyCast = NoCast.instance; - valueCast = NoCast.instance; - } - */ - - public TypedTreeMap(SortedMap smap) - { - super(smap.comparator()); - - keyCast = NoCast.instance; - valueCast = NoCast.instance; - - Map.Entry[] entries = (Map.Entry[])smap.entrySet().toArray(new Map.Entry[0]); - for(int i=0; i < entries.length; i++) - { - this.put(entries[i].getKey(),entries[i].getValue()); - } - - } - /* - public TypedTreeMap(SortedMap smap) - { - super(smap); - - keyCast = NoCast.instance; - valueCast = NoCast.instance; - } - */ - - public TypedTreeMap(Cast keyCast, Cast valueCast) - { - super(); - - this.keyCast = keyCast; - this.valueCast = valueCast; - } - - public TypedTreeMap(Comparator comparator, Cast keyCast, Cast valueCast) - { - super(comparator); - - this.keyCast = keyCast; - this.valueCast = valueCast; - } - - public Object clone() - { - return new TypedTreeMap(this, keyCast, valueCast); - } - - public TypedTreeMap(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 TypedTreeMap(Map map, Cast keyCast, Cast valueCast) - { - super(map); - - this.keyCast = keyCast; - this.valueCast = valueCast; - } - */ - - public TypedTreeMap(SortedMap smap, Cast keyCast, Cast valueCast) - { - super(smap.comparator()); - - this.keyCast = keyCast; - this.valueCast = valueCast; - - Map.Entry[] entries = (Map.Entry[])smap.entrySet().toArray(new Map.Entry[0]); - for(int i=0; i < entries.length; i++) - { - this.put(entries[i].getKey(),entries[i].getValue()); - } - - } - - /* - public TypedTreeMap(SortedMap smap, Cast keyCast, Cast valueCast) - { - super(smap); - - this.keyCast = keyCast; - this.valueCast = valueCast; - } - */ - - 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)); - } - } -}