diff --git a/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java b/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java index 5328e57041089919ea3e74f34b3240b44cb7413e..4a7690495d7e8ce414cda13db24e70689e65d5b1 100644 --- a/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java +++ b/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java @@ -74,8 +74,15 @@ public class AltTransformAdapter extends DepthFirstAdapter } node.replaceBy(asimpleTerm); - String key = altIds.ids.elemTypes.get(elemNode) + "." + simpleTermTail.getText(); + String untransformedElementType = altIds.ids.elemTypes.get(elemNode); + String key = untransformedElementType + "." + simpleTermTail.getText(); String elementType = transformIds.getProdTransformIds().prodTransformElemTypesString.get(key); + if(elementType == null) + { + // This should only happen for plain token types + assert untransformedElementType.startsWith("T"); + elementType = untransformedElementType; + } simpleTermTransform.put(asimpleTerm, "L" + elementType); //Terms are added here only if they were implicitely transformed @@ -119,8 +126,15 @@ public class AltTransformAdapter extends DepthFirstAdapter } node.replaceBy(asimpleListTerm); - String key = altIds.ids.elemTypes.get(elemNode) + "." + simpleTermTail.getText(); + String untransformedElementType = altIds.ids.elemTypes.get(elemNode); + String key = untransformedElementType + "." + simpleTermTail.getText(); String elementType = transformIds.getProdTransformIds().prodTransformElemTypesString.get(key); + if(elementType == null) + { + // This should only happen for plain token types + assert untransformedElementType.startsWith("T"); + elementType = untransformedElementType; + } simpleTermTransform.put(asimpleListTerm, "L" + elementType); //Terms are added here only if they were implicitely transformed