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