diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java index 1e98fb0c9e05c6aaabd59ceae9b477c004483c99..79eee4334d614ff5ef653092336d0412878eb313 100644 --- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java +++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java @@ -64,16 +64,20 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter popCount++; } - private void generateVariableDeclaration(Node term) throws IOException { - String typeName; - if(simpleTermTransformMap.get(term) != null) + private String lookupInternalTypeName(Node term) { + String name = simpleTermTransformMap.get(term); + if(name != null) { - typeName = simpleTermTransformMap.get(term); + return name; } else { - typeName = CG.getAltTransformElemTypes().get(term); + return CG.getAltTransformElemTypes().get(term); } + } + + private void generateVariableDeclaration(Node term) throws IOException { + String typeName = lookupInternalTypeName(term); int position = CG.getTermNumbers().get(term); if(typeName.startsWith("L")) @@ -110,21 +114,13 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter @Override public void outAAltTransform(AAltTransform node) { - String type_name; int position; try { for(PTerm term : node.getTerms()) { - if(simpleTermTransformMap.get(term) != null) - { - type_name = simpleTermTransformMap.get(term); - } - else - { - type_name = CG.getAltTransformElemTypes().get(term); - } + String type_name = lookupInternalTypeName(term); position = CG.getTermNumbers().get(term); @@ -177,15 +173,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter { try { - String type_name; - if(simpleTermTransformMap.get(node) != null) - { - type_name = simpleTermTransformMap.get(node); - } - else - { - type_name = CG.getAltTransformElemTypes().get(node); - } + String type_name = lookupInternalTypeName(node); int position = CG.getTermNumbers().get(node).intValue(); String termKey = currentAlt+"."+node.getId().getText(); int elemPosition = CTP.elems_position.get(termKey); @@ -250,15 +238,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter { try { - String type_name; - if(simpleTermTransformMap.get(node) != null) - { - type_name = simpleTermTransformMap.get(node); - } - else - { - type_name = CG.getAltTransformElemTypes().get(node); - } + String type_name = lookupInternalTypeName(node); String termKey = currentAlt+"."+node.getId().getText(); int position = CG.getTermNumbers().get(node); @@ -378,15 +358,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter for(PListTerm listTerm : node.getListTerms()) { - String type_name; - if(simpleTermTransformMap.get(listTerm) != null) - { - type_name = simpleTermTransformMap.get(listTerm); - } - else - { - type_name = CG.getAltTransformElemTypes().get(listTerm); - } + String type_name = lookupInternalTypeName(listTerm); int position = CG.getTermNumbers().get(listTerm); if(!type_name.equals("null")) @@ -412,15 +384,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter private void generateNewTerm(Node node, AProdName prodName, List<PTerm> params) { - String type_name; - if(simpleTermTransformMap.get(node) != null) - { - type_name = simpleTermTransformMap.get(node); - } - else - { - type_name = CG.getAltTransformElemTypes().get(node); - } + String type_name = lookupInternalTypeName(node); int position = CG.getTermNumbers().get(node); String newAltName = name(prodName); @@ -442,14 +406,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter for(PTerm term : params) { - if(simpleTermTransformMap.get(term) != null) - { - type_name = simpleTermTransformMap.get(term); - } - else - { - type_name = CG.getAltTransformElemTypes().get(term); - } + type_name = lookupInternalTypeName(term); position = CG.getTermNumbers().get(term); if(type_name.equals("null"))