diff --git a/src/main/java/org/sablecc/sablecc/GenAlts.java b/src/main/java/org/sablecc/sablecc/GenAlts.java
index e2e706c9ff3be96128ed017a05b2cfa30ee4cd5c..4e640fbb36b4dc8f8308e255d4befc13fddcef73 100644
--- a/src/main/java/org/sablecc/sablecc/GenAlts.java
+++ b/src/main/java/org/sablecc/sablecc/GenAlts.java
@@ -46,7 +46,7 @@ public class GenAlts extends DepthFirstAdapter
     }
 
     pkgDir = new File(ast_ids.astIds.pkgDir, "node");
-    pkgName = ast_ids.astIds.pkgName.equals("") ? "node" : ast_ids.astIds.pkgName + ".node";
+    pkgName = ast_ids.astIds.pkgNameDot + "node";
 
     if(!pkgDir.exists())
     {
@@ -139,9 +139,7 @@ public class GenAlts extends DepthFirstAdapter
           macros.apply(file, "AlternativeHeaderList", new String[] {});
       }
 
-      macros.apply(file, "AlternativeHeader2", new String[] {
-              ast_ids.astIds.pkgName.equals("") ? "analysis" : ast_ids.astIds.pkgName + ".analysis",
-              name, currentProd});
+      macros.apply(file, "AlternativeHeader2", new String[] {ast_ids.astIds.pkgNameDot, name, currentProd});
 
       for(ElemInfo info : elemList)
       {
diff --git a/src/main/java/org/sablecc/sablecc/GenAnalyses.java b/src/main/java/org/sablecc/sablecc/GenAnalyses.java
index 629a7f4db76bae1f6257787b7c816b0f28435690..195ac5058fb695992afed025610bd37124ba49a1 100644
--- a/src/main/java/org/sablecc/sablecc/GenAnalyses.java
+++ b/src/main/java/org/sablecc/sablecc/GenAnalyses.java
@@ -48,7 +48,7 @@ public class GenAnalyses extends DepthFirstAdapter
     }
 
     pkgDir = new File(ast_ids.astIds.pkgDir, "analysis");
-    pkgName = ast_ids.astIds.pkgName.equals("") ? "analysis" : ast_ids.astIds.pkgName + ".analysis";
+    pkgName = ast_ids.astIds.pkgNameDot + "analysis";
 
     if(!pkgDir.exists())
     {
@@ -152,8 +152,7 @@ public class GenAnalyses extends DepthFirstAdapter
   {
     try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "Analysis.java"))))
     {
-      macros.apply(file, "AnalysisHeader", new String[] {pkgName,
-                   ast_ids.astIds.pkgName.equals("") ? "node" : ast_ids.astIds.pkgName + ".node"});
+      macros.apply(file, "AnalysisHeader", new String[] {pkgName, ast_ids.astIds.pkgNameDot});
 
       if(mainProduction != null)
       {
@@ -187,8 +186,7 @@ public class GenAnalyses extends DepthFirstAdapter
   {
     try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "AnalysisAdapter.java"))))
     {
-      macros.apply(file, "AnalysisAdapterHeader", new String[] {pkgName,
-                   ast_ids.astIds.pkgName.equals("") ? "node" : ast_ids.astIds.pkgName + ".node"});
+      macros.apply(file, "AnalysisAdapterHeader", new String[] {pkgName, ast_ids.astIds.pkgNameDot});
 
       if(mainProduction != null)
       {
@@ -220,9 +218,7 @@ public class GenAnalyses extends DepthFirstAdapter
   {
     try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "DepthFirstAdapter.java"))))
     {
-      macros.apply(file, "DepthFirstAdapterHeader", new String[] {pkgName,
-                   ast_ids.astIds.pkgName.equals("") ? "node" : ast_ids.astIds.pkgName + ".node",
-                   mainProduction});
+      macros.apply(file, "DepthFirstAdapterHeader", new String[] {pkgName, ast_ids.astIds.pkgNameDot, mainProduction});
 
       for(AltInfo info : altList)
       {
@@ -271,9 +267,7 @@ public class GenAnalyses extends DepthFirstAdapter
   {
     try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "ReversedDepthFirstAdapter.java"))))
     {
-      macros.apply(file, "ReversedDepthFirstAdapterHeader", new String[] {pkgName,
-                   ast_ids.astIds.pkgName.equals("") ? "node" : ast_ids.astIds.pkgName + ".node",
-                   mainProduction});
+      macros.apply(file, "ReversedDepthFirstAdapterHeader", new String[] {pkgName, ast_ids.astIds.pkgNameDot, mainProduction});
 
       for(AltInfo info : altList)
       {
diff --git a/src/main/java/org/sablecc/sablecc/GenLexer.java b/src/main/java/org/sablecc/sablecc/GenLexer.java
index da9b0ca0ff96c6893c8c11b147735f062ff7d073..ccede2ab66d1ec434f88f4aa07e461b67d66c246 100644
--- a/src/main/java/org/sablecc/sablecc/GenLexer.java
+++ b/src/main/java/org/sablecc/sablecc/GenLexer.java
@@ -50,7 +50,7 @@ public class GenLexer extends AnalysisAdapter
     }
 
     pkgDir = new File(ids.pkgDir, "lexer");
-    pkgName = ids.pkgName.equals("") ? "lexer" : ids.pkgName + ".lexer";
+    pkgName = ids.pkgNameDot + "lexer";
 
     if(!pkgDir.exists())
     {
@@ -134,9 +134,7 @@ public class GenLexer extends AnalysisAdapter
         startState = ids.stateList.getFirst();
       }
 
-      macros.apply(file, "LexerHeader", new String[] {pkgName,
-                   ids.pkgName.equals("") ? "node" : ids.pkgName + ".node",
-                   startState});
+      macros.apply(file, "LexerHeader", new String[] {pkgName, ids.pkgNameDot, startState});
 
       for(ListIterator<String> i = ids.tokenList.listIterator(); i.hasNext();)
       {
diff --git a/src/main/java/org/sablecc/sablecc/GenParser.java b/src/main/java/org/sablecc/sablecc/GenParser.java
index 0ce34c5530e41aeebe4661417e259d4533a09b67..ef21b0311de857f5de4a39b6aec736c6c1f7fa68 100644
--- a/src/main/java/org/sablecc/sablecc/GenParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenParser.java
@@ -116,7 +116,7 @@ public class GenParser extends DepthFirstAdapter
     }
 
     pkgDir = new File(ids.pkgDir, "parser");
-    pkgName = ids.pkgName.equals("") ? "parser" : ids.pkgName + ".parser";
+    pkgName = ids.pkgNameDot + "parser";
 
     if(!pkgDir.exists())
     {
@@ -374,10 +374,7 @@ public class GenParser extends DepthFirstAdapter
       Symbol[] nonterminals = Symbol.nonterminals();
       Production[] productions = Production.productions();
 
-      macros.apply(file, "ParserHeader", new String[] {pkgName,
-                   ids.pkgName.equals("") ? "lexer" : ids.pkgName + ".lexer",
-                   ids.pkgName.equals("") ? "node" : ids.pkgName + ".node",
-      });
+      macros.apply(file, "ParserHeader", new String[] {pkgName, ids.pkgNameDot});
 
       if(activateFilter && !grammarHasTransformations)
       {
@@ -735,9 +732,7 @@ public class GenParser extends DepthFirstAdapter
     {
       Symbol[] terminals = Symbol.terminals();
 
-      macros.apply(file, "TokenIndexHeader", new String[] {pkgName,
-                   ids.pkgName.equals("") ? "node" : ids.pkgName + ".node",
-                   ids.pkgName.equals("") ? "analysis" : ids.pkgName + ".analysis"});
+      macros.apply(file, "TokenIndexHeader", new String[] {pkgName, ids.pkgNameDot});
 
       for(int i = 0; i < (terminals.length - 2); i++)
       {
@@ -757,8 +752,7 @@ public class GenParser extends DepthFirstAdapter
   {
     try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "ParserException.java"))))
     {
-      macros.apply(file, "ParserException", new String[] {pkgName,
-                   ids.pkgName.equals("") ? "node" : ids.pkgName + ".node"});
+      macros.apply(file, "ParserException", new String[] {pkgName, ids.pkgNameDot});
     }
     catch(IOException e)
     {
diff --git a/src/main/java/org/sablecc/sablecc/GenProds.java b/src/main/java/org/sablecc/sablecc/GenProds.java
index a327e0a2ce7b0dadcd442a8582b506768c5ff1a8..19fd2a34c4db1ddec3f187eb21f34c555b729700 100644
--- a/src/main/java/org/sablecc/sablecc/GenProds.java
+++ b/src/main/java/org/sablecc/sablecc/GenProds.java
@@ -39,7 +39,7 @@ public class GenProds extends DepthFirstAdapter
     }
 
     pkgDir = new File(ast_ids.astIds.pkgDir, "node");
-    pkgName = ast_ids.astIds.pkgName.equals("") ? "node" : ast_ids.astIds.pkgName + ".node";
+    pkgName = ast_ids.astIds.pkgNameDot + "node";
 
     if(!pkgDir.exists())
     {
diff --git a/src/main/java/org/sablecc/sablecc/GenTokens.java b/src/main/java/org/sablecc/sablecc/GenTokens.java
index f5abfaaa7e74183283ad3ae9e1885e00a97a536e..fe45ac60342ae07a1cfd3b6cb53e266fc465c462 100644
--- a/src/main/java/org/sablecc/sablecc/GenTokens.java
+++ b/src/main/java/org/sablecc/sablecc/GenTokens.java
@@ -43,7 +43,7 @@ public class GenTokens extends DepthFirstAdapter
     }
 
     pkgDir = new File(ids.pkgDir, "node");
-    pkgName = ids.pkgName.equals("") ? "node" : ids.pkgName + ".node";
+    pkgName = ids.pkgNameDot + "node";
 
     if(!pkgDir.exists())
     {
@@ -101,17 +101,13 @@ public class GenTokens extends DepthFirstAdapter
       {
         ids.fixedTokens.put(node, false);
 
-        macros.apply(file, "VariableTextToken", new String[] { pkgName,
-                     ids.pkgName.equals("") ? "analysis" : ids.pkgName + ".analysis",
-                     name});
+        macros.apply(file, "VariableTextToken", new String[] {pkgName, ids.pkgNameDot, name});
       }
       else
       {
         ids.fixedTokens.put(node, true);
 
-        macros.apply(file, "FixedTextToken", new String[] { pkgName,
-                     ids.pkgName.equals("") ? "analysis" : ids.pkgName + ".analysis",
-                     name, processText(text)});
+        macros.apply(file, "FixedTextToken", new String[] {pkgName, ids.pkgNameDot, name, processText(text)});
 
         ids.errorNames.put(node, "'" + text + "'");
       }
diff --git a/src/main/java/org/sablecc/sablecc/GenUtils.java b/src/main/java/org/sablecc/sablecc/GenUtils.java
index 051ab0fccf9a18b90c52a94a82ebe9a7f841c07e..d85c86b3e3cc7229ff19aba92382875f4e0a8e65 100644
--- a/src/main/java/org/sablecc/sablecc/GenUtils.java
+++ b/src/main/java/org/sablecc/sablecc/GenUtils.java
@@ -41,7 +41,7 @@ public class GenUtils extends DepthFirstAdapter
     }
 
     pkgDir = new File(ast_ids.astIds.pkgDir, "node");
-    pkgName = ast_ids.astIds.pkgName.equals("") ? "node" : ast_ids.astIds.pkgName + ".node";
+    pkgName = ast_ids.astIds.pkgNameDot + "node";
 
     if(!pkgDir.exists())
     {
@@ -92,8 +92,7 @@ public class GenUtils extends DepthFirstAdapter
   {
     try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "Start.java"))))
     {
-      macros.apply(file, "Start", new String[] {pkgName,
-                   ast_ids.astIds.pkgName.equals("") ? "analysis" : ast_ids.astIds.pkgName + ".analysis",
+      macros.apply(file, "Start", new String[] {pkgName, ast_ids.astIds.pkgNameDot,
                    mainProduction, GenAlts.nodeName(mainProduction)});
     }
     catch(IOException e)
@@ -107,8 +106,7 @@ public class GenUtils extends DepthFirstAdapter
   {
     try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "EOF.java"))))
     {
-      macros.apply(file, "EOF", new String[] {pkgName,
-                                              ast_ids.astIds.pkgName.equals("") ? "analysis" : ast_ids.astIds.pkgName + ".analysis"});
+      macros.apply(file, "EOF", new String[] {pkgName, ast_ids.astIds.pkgNameDot});
     }
     catch(IOException e)
     {
@@ -121,8 +119,7 @@ public class GenUtils extends DepthFirstAdapter
   {
     try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "Node.java"))))
     {
-      macros.apply(file, "Node", new String[] {pkgName,
-                   ast_ids.astIds.pkgName.equals("") ? "analysis" : ast_ids.astIds.pkgName + ".analysis"});
+      macros.apply(file, "Node", new String[] {pkgName});
     }
     catch(IOException e)
     {
diff --git a/src/main/java/org/sablecc/sablecc/ResolveIds.java b/src/main/java/org/sablecc/sablecc/ResolveIds.java
index 27cc669d0488ebe74dfb267be19bc445166427a0..6b6c4d0e85518b6efe784971fd514612b8f221ed 100644
--- a/src/main/java/org/sablecc/sablecc/ResolveIds.java
+++ b/src/main/java/org/sablecc/sablecc/ResolveIds.java
@@ -46,6 +46,8 @@ public class ResolveIds extends DepthFirstAdapter
   public final LinkedList<String> stateList = new LinkedList<>();
   public File pkgDir;
   public String pkgName = "";
+  // pkgNameDot has a dot appended if non-empty.
+  public String pkgNameDot = "";
 
   private boolean processingStates;
   private boolean processingIgnTokens;
@@ -75,6 +77,8 @@ public class ResolveIds extends DepthFirstAdapter
         pkgDir = new File(pkgDir, temp[i].getText());
       }
 
+      pkgNameDot = pkgName + ".";
+
       if(!pkgDir.exists())
       {
         if(!pkgDir.mkdirs())
diff --git a/src/main/java/org/sablecc/sablecc/node/EOF.java b/src/main/java/org/sablecc/sablecc/node/EOF.java
index 5097f39cd8213c78aa0567870c15183e3ece638d..db29f86d5d0e07a18ad1999eb9f2161513e5c877 100644
--- a/src/main/java/org/sablecc/sablecc/node/EOF.java
+++ b/src/main/java/org/sablecc/sablecc/node/EOF.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class EOF extends Token
 {
     public EOF()
diff --git a/src/main/java/org/sablecc/sablecc/node/TAbstract.java b/src/main/java/org/sablecc/sablecc/node/TAbstract.java
index 8fc5a72b365fe61494c9fdfaab219458755ee22a..f66d260df160fce1dc63ce00967b7006fd1a32e0 100644
--- a/src/main/java/org/sablecc/sablecc/node/TAbstract.java
+++ b/src/main/java/org/sablecc/sablecc/node/TAbstract.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TAbstract extends Token
 {
     public TAbstract()
diff --git a/src/main/java/org/sablecc/sablecc/node/TArrow.java b/src/main/java/org/sablecc/sablecc/node/TArrow.java
index ac885099e845cb6a413aa715be5fddeb0d197760..a7ae84061e885f66118a69702aebdf13e8792124 100644
--- a/src/main/java/org/sablecc/sablecc/node/TArrow.java
+++ b/src/main/java/org/sablecc/sablecc/node/TArrow.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TArrow extends Token
 {
     public TArrow()
diff --git a/src/main/java/org/sablecc/sablecc/node/TBar.java b/src/main/java/org/sablecc/sablecc/node/TBar.java
index 1fd5831e2d3da63e9bf44dcd4ba952d3689c2a72..7b3d24df70d21ccda4eddc0581f619e2e101b114 100644
--- a/src/main/java/org/sablecc/sablecc/node/TBar.java
+++ b/src/main/java/org/sablecc/sablecc/node/TBar.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TBar extends Token
 {
     public TBar()
diff --git a/src/main/java/org/sablecc/sablecc/node/TBlank.java b/src/main/java/org/sablecc/sablecc/node/TBlank.java
index 70b8ecf905be3f22432f256b9af5730ca4ccaa68..3a9bcccc87e705d92dccc5d4951a8990de8be849 100644
--- a/src/main/java/org/sablecc/sablecc/node/TBlank.java
+++ b/src/main/java/org/sablecc/sablecc/node/TBlank.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TBlank extends Token
 {
     public TBlank(String text)
diff --git a/src/main/java/org/sablecc/sablecc/node/TChar.java b/src/main/java/org/sablecc/sablecc/node/TChar.java
index 6f70e04472fec0daf5c881dfa00395cd23804314..580f2ba223d3c65f80e749915869dbfddb1c4508 100644
--- a/src/main/java/org/sablecc/sablecc/node/TChar.java
+++ b/src/main/java/org/sablecc/sablecc/node/TChar.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TChar extends Token
 {
     public TChar(String text)
diff --git a/src/main/java/org/sablecc/sablecc/node/TColon.java b/src/main/java/org/sablecc/sablecc/node/TColon.java
index ac8d6aca2f401d5c5e0a42c9a6a6da557c3ef032..2747eb1dbf8d9d3a854eba2bdafc0a1ac639ed70 100644
--- a/src/main/java/org/sablecc/sablecc/node/TColon.java
+++ b/src/main/java/org/sablecc/sablecc/node/TColon.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TColon extends Token
 {
     public TColon()
diff --git a/src/main/java/org/sablecc/sablecc/node/TComma.java b/src/main/java/org/sablecc/sablecc/node/TComma.java
index 0905a298f6958cdbdc0543475ec90515512bd714..bd6d1d65cbfbdead3a3c9f4b37bf744b031f08c8 100644
--- a/src/main/java/org/sablecc/sablecc/node/TComma.java
+++ b/src/main/java/org/sablecc/sablecc/node/TComma.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TComma extends Token
 {
     public TComma()
diff --git a/src/main/java/org/sablecc/sablecc/node/TComment.java b/src/main/java/org/sablecc/sablecc/node/TComment.java
index 67275750b6300598089f24bbe9c1909553c9ea5e..11741341b5432fccc74ab0441fd9201d4f46dfbc 100644
--- a/src/main/java/org/sablecc/sablecc/node/TComment.java
+++ b/src/main/java/org/sablecc/sablecc/node/TComment.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TComment extends Token
 {
     public TComment(String text)
diff --git a/src/main/java/org/sablecc/sablecc/node/TDDot.java b/src/main/java/org/sablecc/sablecc/node/TDDot.java
index d650fed9dc243d1ea193c31edf1365beac8a9b07..2d3f331abed5827cbb6f71168a2ab37de0017d0c 100644
--- a/src/main/java/org/sablecc/sablecc/node/TDDot.java
+++ b/src/main/java/org/sablecc/sablecc/node/TDDot.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TDDot extends Token
 {
     public TDDot()
diff --git a/src/main/java/org/sablecc/sablecc/node/TDecChar.java b/src/main/java/org/sablecc/sablecc/node/TDecChar.java
index 11fef1ec15e9712027b9143d86223cd97607c04e..e2d371d3f8d2c10b2e34e8cbc99a03ba846f7624 100644
--- a/src/main/java/org/sablecc/sablecc/node/TDecChar.java
+++ b/src/main/java/org/sablecc/sablecc/node/TDecChar.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TDecChar extends Token
 {
     public TDecChar(String text)
diff --git a/src/main/java/org/sablecc/sablecc/node/TDot.java b/src/main/java/org/sablecc/sablecc/node/TDot.java
index 8606648faa48a431d52e2e793d5631387c4c1598..d70aab4c8e834e6b0c53743bc539073c798b1730 100644
--- a/src/main/java/org/sablecc/sablecc/node/TDot.java
+++ b/src/main/java/org/sablecc/sablecc/node/TDot.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TDot extends Token
 {
     public TDot()
diff --git a/src/main/java/org/sablecc/sablecc/node/TEqual.java b/src/main/java/org/sablecc/sablecc/node/TEqual.java
index fc57280efbb718e118e6691530e99a55ffc2b7ec..45267a6fd4831f5d64b86450e1939c2199e595ed 100644
--- a/src/main/java/org/sablecc/sablecc/node/TEqual.java
+++ b/src/main/java/org/sablecc/sablecc/node/TEqual.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TEqual extends Token
 {
     public TEqual()
diff --git a/src/main/java/org/sablecc/sablecc/node/THelpers.java b/src/main/java/org/sablecc/sablecc/node/THelpers.java
index 01bf376ef0f2930fe8b085705f1ce94d35727616..73a6bf93474fcc602a201a683aa06c5e972e94b9 100644
--- a/src/main/java/org/sablecc/sablecc/node/THelpers.java
+++ b/src/main/java/org/sablecc/sablecc/node/THelpers.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class THelpers extends Token
 {
     public THelpers()
diff --git a/src/main/java/org/sablecc/sablecc/node/THexChar.java b/src/main/java/org/sablecc/sablecc/node/THexChar.java
index be72cbca158910c92060f95f0de855c5e90b3acd..7f9a467ff46ee1c7617d9ae90684e4fc6d4a9804 100644
--- a/src/main/java/org/sablecc/sablecc/node/THexChar.java
+++ b/src/main/java/org/sablecc/sablecc/node/THexChar.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class THexChar extends Token
 {
     public THexChar(String text)
diff --git a/src/main/java/org/sablecc/sablecc/node/TId.java b/src/main/java/org/sablecc/sablecc/node/TId.java
index 6ecb2e6e46e54fc9c703cfcbb94a1c7964ba833f..2358ae4e1b3fecf270f8392b0f112482567cb988 100644
--- a/src/main/java/org/sablecc/sablecc/node/TId.java
+++ b/src/main/java/org/sablecc/sablecc/node/TId.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TId extends Token
 {
     public TId(String text)
diff --git a/src/main/java/org/sablecc/sablecc/node/TIgnored.java b/src/main/java/org/sablecc/sablecc/node/TIgnored.java
index 872e211f8f7b3c84889f2e1d6ded01dc450ac17c..650d981e9e4cafe098c1a4204a236d3b52a96959 100644
--- a/src/main/java/org/sablecc/sablecc/node/TIgnored.java
+++ b/src/main/java/org/sablecc/sablecc/node/TIgnored.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TIgnored extends Token
 {
     public TIgnored()
diff --git a/src/main/java/org/sablecc/sablecc/node/TLBkt.java b/src/main/java/org/sablecc/sablecc/node/TLBkt.java
index 18e858af26c5285283cc3358a11b549c22382061..162c1e399233eae8551205797b51edacf21e6ad3 100644
--- a/src/main/java/org/sablecc/sablecc/node/TLBkt.java
+++ b/src/main/java/org/sablecc/sablecc/node/TLBkt.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TLBkt extends Token
 {
     public TLBkt()
diff --git a/src/main/java/org/sablecc/sablecc/node/TLBrace.java b/src/main/java/org/sablecc/sablecc/node/TLBrace.java
index ce2f4d2fdfc4b4cae4a6e5fcb21b8962a9405f1a..463e48bb95934bd17186c4fa737fa7ad0d63e0c9 100644
--- a/src/main/java/org/sablecc/sablecc/node/TLBrace.java
+++ b/src/main/java/org/sablecc/sablecc/node/TLBrace.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TLBrace extends Token
 {
     public TLBrace()
diff --git a/src/main/java/org/sablecc/sablecc/node/TLPar.java b/src/main/java/org/sablecc/sablecc/node/TLPar.java
index 411908f7500df45e288ca932660e9babc73570fe..ed5fca6f52da36531009ae344bae5dc746a8f7ae 100644
--- a/src/main/java/org/sablecc/sablecc/node/TLPar.java
+++ b/src/main/java/org/sablecc/sablecc/node/TLPar.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TLPar extends Token
 {
     public TLPar()
diff --git a/src/main/java/org/sablecc/sablecc/node/TMinus.java b/src/main/java/org/sablecc/sablecc/node/TMinus.java
index 1894edab789708133f693902cf61ad598781a33b..2c9f4eb87c921011279e0349036fce4e12f7d410 100644
--- a/src/main/java/org/sablecc/sablecc/node/TMinus.java
+++ b/src/main/java/org/sablecc/sablecc/node/TMinus.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TMinus extends Token
 {
     public TMinus()
diff --git a/src/main/java/org/sablecc/sablecc/node/TNew.java b/src/main/java/org/sablecc/sablecc/node/TNew.java
index 445cc6fc691ccee972228200d71c517e6dcf6bfa..4a0ad795e8dcba6bdf0b308aba35708c46e2537f 100644
--- a/src/main/java/org/sablecc/sablecc/node/TNew.java
+++ b/src/main/java/org/sablecc/sablecc/node/TNew.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TNew extends Token
 {
     public TNew()
diff --git a/src/main/java/org/sablecc/sablecc/node/TNull.java b/src/main/java/org/sablecc/sablecc/node/TNull.java
index c41eea7f545d26d90ae0c3dd56f0123d6a6ab649..8e34cb3a1f713970c00a8cfee00dec08900b1f71 100644
--- a/src/main/java/org/sablecc/sablecc/node/TNull.java
+++ b/src/main/java/org/sablecc/sablecc/node/TNull.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TNull extends Token
 {
     public TNull()
diff --git a/src/main/java/org/sablecc/sablecc/node/TPackage.java b/src/main/java/org/sablecc/sablecc/node/TPackage.java
index 9d0dce2619f3974934ab072eaa0009352343fe14..05d320ddbbd82f260249ae123fc2a93d80276aed 100644
--- a/src/main/java/org/sablecc/sablecc/node/TPackage.java
+++ b/src/main/java/org/sablecc/sablecc/node/TPackage.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TPackage extends Token
 {
     public TPackage()
diff --git a/src/main/java/org/sablecc/sablecc/node/TPkgId.java b/src/main/java/org/sablecc/sablecc/node/TPkgId.java
index 4a35d8f5f549c3c4a32bfae3cfc7d07d7a68ec75..4fd244121edcbfc554b6b62c9851ef04a27dbaa2 100644
--- a/src/main/java/org/sablecc/sablecc/node/TPkgId.java
+++ b/src/main/java/org/sablecc/sablecc/node/TPkgId.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TPkgId extends Token
 {
     public TPkgId(String text)
diff --git a/src/main/java/org/sablecc/sablecc/node/TPlus.java b/src/main/java/org/sablecc/sablecc/node/TPlus.java
index 72b8346a4e57954405b13894183e46b6e3d165d0..e3416089c15011f990f33ea5e27959aafd4e40d5 100644
--- a/src/main/java/org/sablecc/sablecc/node/TPlus.java
+++ b/src/main/java/org/sablecc/sablecc/node/TPlus.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TPlus extends Token
 {
     public TPlus()
diff --git a/src/main/java/org/sablecc/sablecc/node/TProductionSpecifier.java b/src/main/java/org/sablecc/sablecc/node/TProductionSpecifier.java
index f392e9651087b846862ce8c2971a39af374a1f54..fca83af68ee36e4829a0261b5373a7c4c1a131e7 100644
--- a/src/main/java/org/sablecc/sablecc/node/TProductionSpecifier.java
+++ b/src/main/java/org/sablecc/sablecc/node/TProductionSpecifier.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TProductionSpecifier extends Token
 {
     public TProductionSpecifier()
diff --git a/src/main/java/org/sablecc/sablecc/node/TProductions.java b/src/main/java/org/sablecc/sablecc/node/TProductions.java
index 0420f850b56cab9cf6fbe7c60b7213805ac971d2..4c638eddcabf3e2430e0a3e45e3d14d9350170ae 100644
--- a/src/main/java/org/sablecc/sablecc/node/TProductions.java
+++ b/src/main/java/org/sablecc/sablecc/node/TProductions.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TProductions extends Token
 {
     public TProductions()
diff --git a/src/main/java/org/sablecc/sablecc/node/TQMark.java b/src/main/java/org/sablecc/sablecc/node/TQMark.java
index c7db1cc7f75e7a8ec826622387d745d7b9e7f913..caf4b18ddf178f7032a2af1b9013831d46b5d8bb 100644
--- a/src/main/java/org/sablecc/sablecc/node/TQMark.java
+++ b/src/main/java/org/sablecc/sablecc/node/TQMark.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TQMark extends Token
 {
     public TQMark()
diff --git a/src/main/java/org/sablecc/sablecc/node/TRBkt.java b/src/main/java/org/sablecc/sablecc/node/TRBkt.java
index 63f0c0e361bab2e54db2dbcdabff0bfa0902d6dc..af3b0d0cdc3cabce900358fa2478a73c0706c1c4 100644
--- a/src/main/java/org/sablecc/sablecc/node/TRBkt.java
+++ b/src/main/java/org/sablecc/sablecc/node/TRBkt.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TRBkt extends Token
 {
     public TRBkt()
diff --git a/src/main/java/org/sablecc/sablecc/node/TRBrace.java b/src/main/java/org/sablecc/sablecc/node/TRBrace.java
index e90c27d6dee70dd075ca7844d602431aee26263d..1fea9e0fb889e2713b42b91723250774416a51f9 100644
--- a/src/main/java/org/sablecc/sablecc/node/TRBrace.java
+++ b/src/main/java/org/sablecc/sablecc/node/TRBrace.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TRBrace extends Token
 {
     public TRBrace()
diff --git a/src/main/java/org/sablecc/sablecc/node/TRPar.java b/src/main/java/org/sablecc/sablecc/node/TRPar.java
index 0e29764edb7c57a09311e3f852f04f61f90baac9..acd235f46ee293870a67be3f236360d79ca226fb 100644
--- a/src/main/java/org/sablecc/sablecc/node/TRPar.java
+++ b/src/main/java/org/sablecc/sablecc/node/TRPar.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TRPar extends Token
 {
     public TRPar()
diff --git a/src/main/java/org/sablecc/sablecc/node/TSemicolon.java b/src/main/java/org/sablecc/sablecc/node/TSemicolon.java
index f8cfe4bad16641eb598b9d4752a7785aa8dcdfcf..31b4ad2f2a6bcde8444e01daebc3a4306ab3704d 100644
--- a/src/main/java/org/sablecc/sablecc/node/TSemicolon.java
+++ b/src/main/java/org/sablecc/sablecc/node/TSemicolon.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TSemicolon extends Token
 {
     public TSemicolon()
diff --git a/src/main/java/org/sablecc/sablecc/node/TSlash.java b/src/main/java/org/sablecc/sablecc/node/TSlash.java
index a4ff8b0149081b01b05dd237c388b815714cb473..fd8ed5672a175700d64df11c7ead8e7b25868052 100644
--- a/src/main/java/org/sablecc/sablecc/node/TSlash.java
+++ b/src/main/java/org/sablecc/sablecc/node/TSlash.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TSlash extends Token
 {
     public TSlash()
diff --git a/src/main/java/org/sablecc/sablecc/node/TStar.java b/src/main/java/org/sablecc/sablecc/node/TStar.java
index fc3d36be16a1aef6c4945072d9e2ebebdcc31832..812ff234e709d76401105f1241da3c041fd176e5 100644
--- a/src/main/java/org/sablecc/sablecc/node/TStar.java
+++ b/src/main/java/org/sablecc/sablecc/node/TStar.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TStar extends Token
 {
     public TStar()
diff --git a/src/main/java/org/sablecc/sablecc/node/TStates.java b/src/main/java/org/sablecc/sablecc/node/TStates.java
index 4ae149afc9bf39a254172a291a6e875d03f06c16..18efef1e44c9f82b1085a3bb30a0f2f1b3a5a85a 100644
--- a/src/main/java/org/sablecc/sablecc/node/TStates.java
+++ b/src/main/java/org/sablecc/sablecc/node/TStates.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TStates extends Token
 {
     public TStates()
diff --git a/src/main/java/org/sablecc/sablecc/node/TString.java b/src/main/java/org/sablecc/sablecc/node/TString.java
index 74779c4e44efefd91718cf0712817f334f138fa0..d328437c04d61df324f217bc7926016107220856 100644
--- a/src/main/java/org/sablecc/sablecc/node/TString.java
+++ b/src/main/java/org/sablecc/sablecc/node/TString.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TString extends Token
 {
     public TString(String text)
diff --git a/src/main/java/org/sablecc/sablecc/node/TSyntax.java b/src/main/java/org/sablecc/sablecc/node/TSyntax.java
index 64e466c6da6b7cc22606f8df895a75d61e729e0e..fc898d04f66e3803779caa8beb50644a51fc0748 100644
--- a/src/main/java/org/sablecc/sablecc/node/TSyntax.java
+++ b/src/main/java/org/sablecc/sablecc/node/TSyntax.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TSyntax extends Token
 {
     public TSyntax()
diff --git a/src/main/java/org/sablecc/sablecc/node/TTokenSpecifier.java b/src/main/java/org/sablecc/sablecc/node/TTokenSpecifier.java
index 96a1eaa692c628fbc545cb4a377a7554ee2d1850..dab322575953849354ddd026eacb91c41f7cb479 100644
--- a/src/main/java/org/sablecc/sablecc/node/TTokenSpecifier.java
+++ b/src/main/java/org/sablecc/sablecc/node/TTokenSpecifier.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TTokenSpecifier extends Token
 {
     public TTokenSpecifier()
diff --git a/src/main/java/org/sablecc/sablecc/node/TTokens.java b/src/main/java/org/sablecc/sablecc/node/TTokens.java
index 977178fd29dbccfdc151d6b09f6c0f07378e2660..ae2f7a001f6cb6c507f2d18ad8d6c2276a6712da 100644
--- a/src/main/java/org/sablecc/sablecc/node/TTokens.java
+++ b/src/main/java/org/sablecc/sablecc/node/TTokens.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TTokens extends Token
 {
     public TTokens()
diff --git a/src/main/java/org/sablecc/sablecc/node/TTree.java b/src/main/java/org/sablecc/sablecc/node/TTree.java
index f90670bac79ab701591ca9deb239ed1fee8415e2..e168bc9422c8002647555821b47515f245d691d2 100644
--- a/src/main/java/org/sablecc/sablecc/node/TTree.java
+++ b/src/main/java/org/sablecc/sablecc/node/TTree.java
@@ -4,7 +4,6 @@ package org.sablecc.sablecc.node;
 
 import org.sablecc.sablecc.analysis.*;
 
-
 public final class TTree extends Token
 {
     public TTree()
diff --git a/src/main/java/org/sablecc/sablecc/parser/TokenIndex.java b/src/main/java/org/sablecc/sablecc/parser/TokenIndex.java
index 1876b21bd095f7f27fb0405c5c3efcb5a931ffa3..65801152a768e119dbadbb1fa79b1158406dd91a 100644
--- a/src/main/java/org/sablecc/sablecc/parser/TokenIndex.java
+++ b/src/main/java/org/sablecc/sablecc/parser/TokenIndex.java
@@ -2,8 +2,8 @@
 
 package org.sablecc.sablecc.parser;
 
-import org.sablecc.sablecc.node.*;
 import org.sablecc.sablecc.analysis.*;
+import org.sablecc.sablecc.node.*;
 
 class TokenIndex extends AnalysisAdapter
 {
diff --git a/src/main/resources/org/sablecc/sablecc/alternatives.txt b/src/main/resources/org/sablecc/sablecc/alternatives.txt
index ba456e56bb41f9594723efdf9ea7813f2a613fab..a2bfe8377562004fdd75890da8f5cb0a67b72bfc 100644
--- a/src/main/resources/org/sablecc/sablecc/alternatives.txt
+++ b/src/main/resources/org/sablecc/sablecc/alternatives.txt
@@ -22,7 +22,7 @@ import java.util.ListIterator;
 $
 
 Macro:AlternativeHeader2
-import $0$.*;
+import $0$analysis.*;
 
 
 public final class $1$ extends $2$
diff --git a/src/main/resources/org/sablecc/sablecc/analyses.txt b/src/main/resources/org/sablecc/sablecc/analyses.txt
index 18d24a46da3cd5a3fb1873202fae1d68c649d723..5072ac86803e0295218a4d3e6b5f16dca0f5ea7a 100644
--- a/src/main/resources/org/sablecc/sablecc/analyses.txt
+++ b/src/main/resources/org/sablecc/sablecc/analyses.txt
@@ -10,7 +10,7 @@ Macro:AnalysisHeader
 
 package $0$;
 
-import $1$.*;
+import $1$node.*;
 
 public interface Analysis extends Switch
 {
@@ -37,7 +37,7 @@ Macro:AnalysisAdapterHeader
 
 package $0$;
 
-import $1$.*;
+import $1$node.*;
 
 public class AnalysisAdapter implements Analysis
 {
@@ -87,7 +87,7 @@ package $0$;
 import java.util.ArrayList;
 import java.util.List;
 
-import $1$.*;
+import $1$node.*;
 
 public class DepthFirstAdapter extends AnalysisAdapter
 {
@@ -131,7 +131,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import $1$.*;
+import $1$node.*;
 
 public class ReversedDepthFirstAdapter extends AnalysisAdapter
 {
diff --git a/src/main/resources/org/sablecc/sablecc/lexer.txt b/src/main/resources/org/sablecc/sablecc/lexer.txt
index 03c36e5a735da0b6fc9e26de4b3dba6c5c8afe88..f40429d2b46655f1796a06e47618e7be7ad7e9ec 100644
--- a/src/main/resources/org/sablecc/sablecc/lexer.txt
+++ b/src/main/resources/org/sablecc/sablecc/lexer.txt
@@ -39,7 +39,7 @@ import java.util.concurrent.LinkedBlockingQueue;
 import de.hhu.stups.sablecc.patch.IToken;
 import de.hhu.stups.sablecc.patch.ITokenListContainer;
 
-import $1$.*;
+import $1$node.*;
 
 @SuppressWarnings({"unused"})
 public class Lexer implements ITokenListContainer
diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt
index 4c5723792f0858918d7596cfead33ef1161ef114..5804b991467dea00d75fa070be13514b5f5b9158 100644
--- a/src/main/resources/org/sablecc/sablecc/parser.txt
+++ b/src/main/resources/org/sablecc/sablecc/parser.txt
@@ -26,8 +26,8 @@ import de.hhu.stups.sablecc.patch.IToken;
 import de.hhu.stups.sablecc.patch.PositionedNode;
 import de.hhu.stups.sablecc.patch.SourcecodeRange;
 
-import $1$.*;
-import $2$.*;
+import $1$lexer.*;
+import $1$node.*;
 
 @SuppressWarnings({"rawtypes","unchecked","unused"})
 public class Parser implements IParser
@@ -582,8 +582,8 @@ Macro:TokenIndexHeader
 
 package $0$;
 
-import $1$.*;
-import $2$.*;
+import $1$analysis.*;
+import $1$node.*;
 
 class TokenIndex extends AnalysisAdapter
 {
@@ -617,7 +617,7 @@ Macro:ParserException
 
 package $0$;
 
-import $1$.*;
+import $1$node.*;
 
 @SuppressWarnings("serial")
 public class ParserException extends Exception
diff --git a/src/main/resources/org/sablecc/sablecc/tokens.txt b/src/main/resources/org/sablecc/sablecc/tokens.txt
index 28294f026b95ce442b5e3fa99f1966350feeaac3..6838cb43a122cfc6b37c544885c683e843f64b05 100644
--- a/src/main/resources/org/sablecc/sablecc/tokens.txt
+++ b/src/main/resources/org/sablecc/sablecc/tokens.txt
@@ -13,8 +13,7 @@ Macro:VariableTextToken
 
 package $0$;
 
-import $1$.*;
-
+import $1$analysis.*;
 
 public final class $2$ extends Token
 {
@@ -57,8 +56,7 @@ Macro:FixedTextToken
 
 package $0$;
 
-import $1$.*;
-
+import $1$analysis.*;
 
 public final class $2$ extends Token
 {
diff --git a/src/main/resources/org/sablecc/sablecc/utils.txt b/src/main/resources/org/sablecc/sablecc/utils.txt
index 13ce65183810bdd68b5171378238c8e11090b6e0..6b95c06b6194c5fad0b5926fddce84165ce105b1 100644
--- a/src/main/resources/org/sablecc/sablecc/utils.txt
+++ b/src/main/resources/org/sablecc/sablecc/utils.txt
@@ -10,7 +10,7 @@ Macro:Start
 
 package $0$;
 
-import $1$.*;
+import $1$analysis.*;
 
 public final class Start extends Node
 {
@@ -151,8 +151,7 @@ Macro:EOF
 
 package $0$;
 
-import $1$.*;
-
+import $1$analysis.*;
 
 public final class EOF extends Token
 {