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"))