From 9fbc91f3e5fd8b7ebbb1ce434fa9362737d2d3c0 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Fri, 21 Jul 2023 11:43:33 +0200 Subject: [PATCH] Fix handling of plain tokens in AltTransformAdapter --- .../sablecc/sablecc/AltTransformAdapter.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java b/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java index 5328e57..4a76904 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 -- GitLab