From caf79cd0f7e7701bb0b3f1055aae23e16f4e1056 Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Wed, 3 May 2023 13:07:51 +0200
Subject: [PATCH] Simplify handling of generated package names in templates

---
 src/main/java/org/sablecc/sablecc/GenAlts.java   |  6 ++----
 .../java/org/sablecc/sablecc/GenAnalyses.java    | 16 +++++-----------
 src/main/java/org/sablecc/sablecc/GenLexer.java  |  6 ++----
 src/main/java/org/sablecc/sablecc/GenParser.java | 14 ++++----------
 src/main/java/org/sablecc/sablecc/GenProds.java  |  2 +-
 src/main/java/org/sablecc/sablecc/GenTokens.java | 10 +++-------
 src/main/java/org/sablecc/sablecc/GenUtils.java  | 11 ++++-------
 .../java/org/sablecc/sablecc/ResolveIds.java     |  4 ++++
 src/main/java/org/sablecc/sablecc/node/EOF.java  |  1 -
 .../java/org/sablecc/sablecc/node/TAbstract.java |  1 -
 .../java/org/sablecc/sablecc/node/TArrow.java    |  1 -
 src/main/java/org/sablecc/sablecc/node/TBar.java |  1 -
 .../java/org/sablecc/sablecc/node/TBlank.java    |  1 -
 .../java/org/sablecc/sablecc/node/TChar.java     |  1 -
 .../java/org/sablecc/sablecc/node/TColon.java    |  1 -
 .../java/org/sablecc/sablecc/node/TComma.java    |  1 -
 .../java/org/sablecc/sablecc/node/TComment.java  |  1 -
 .../java/org/sablecc/sablecc/node/TDDot.java     |  1 -
 .../java/org/sablecc/sablecc/node/TDecChar.java  |  1 -
 src/main/java/org/sablecc/sablecc/node/TDot.java |  1 -
 .../java/org/sablecc/sablecc/node/TEqual.java    |  1 -
 .../java/org/sablecc/sablecc/node/THelpers.java  |  1 -
 .../java/org/sablecc/sablecc/node/THexChar.java  |  1 -
 src/main/java/org/sablecc/sablecc/node/TId.java  |  1 -
 .../java/org/sablecc/sablecc/node/TIgnored.java  |  1 -
 .../java/org/sablecc/sablecc/node/TLBkt.java     |  1 -
 .../java/org/sablecc/sablecc/node/TLBrace.java   |  1 -
 .../java/org/sablecc/sablecc/node/TLPar.java     |  1 -
 .../java/org/sablecc/sablecc/node/TMinus.java    |  1 -
 src/main/java/org/sablecc/sablecc/node/TNew.java |  1 -
 .../java/org/sablecc/sablecc/node/TNull.java     |  1 -
 .../java/org/sablecc/sablecc/node/TPackage.java  |  1 -
 .../java/org/sablecc/sablecc/node/TPkgId.java    |  1 -
 .../java/org/sablecc/sablecc/node/TPlus.java     |  1 -
 .../sablecc/node/TProductionSpecifier.java       |  1 -
 .../org/sablecc/sablecc/node/TProductions.java   |  1 -
 .../java/org/sablecc/sablecc/node/TQMark.java    |  1 -
 .../java/org/sablecc/sablecc/node/TRBkt.java     |  1 -
 .../java/org/sablecc/sablecc/node/TRBrace.java   |  1 -
 .../java/org/sablecc/sablecc/node/TRPar.java     |  1 -
 .../org/sablecc/sablecc/node/TSemicolon.java     |  1 -
 .../java/org/sablecc/sablecc/node/TSlash.java    |  1 -
 .../java/org/sablecc/sablecc/node/TStar.java     |  1 -
 .../java/org/sablecc/sablecc/node/TStates.java   |  1 -
 .../java/org/sablecc/sablecc/node/TString.java   |  1 -
 .../java/org/sablecc/sablecc/node/TSyntax.java   |  1 -
 .../sablecc/sablecc/node/TTokenSpecifier.java    |  1 -
 .../java/org/sablecc/sablecc/node/TTokens.java   |  1 -
 .../java/org/sablecc/sablecc/node/TTree.java     |  1 -
 .../org/sablecc/sablecc/parser/TokenIndex.java   |  2 +-
 .../org/sablecc/sablecc/alternatives.txt         |  2 +-
 .../resources/org/sablecc/sablecc/analyses.txt   |  8 ++++----
 src/main/resources/org/sablecc/sablecc/lexer.txt |  2 +-
 .../resources/org/sablecc/sablecc/parser.txt     | 10 +++++-----
 .../resources/org/sablecc/sablecc/tokens.txt     |  6 ++----
 src/main/resources/org/sablecc/sablecc/utils.txt |  5 ++---
 56 files changed, 41 insertions(+), 104 deletions(-)

diff --git a/src/main/java/org/sablecc/sablecc/GenAlts.java b/src/main/java/org/sablecc/sablecc/GenAlts.java
index e2e706c..4e640fb 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 629a7f4..195ac50 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 da9b0ca..ccede2a 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 0ce34c5..ef21b03 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 a327e0a..19fd2a3 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 f5abfaa..fe45ac6 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 051ab0f..d85c86b 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 27cc669..6b6c4d0 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 5097f39..db29f86 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 8fc5a72..f66d260 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 ac88509..a7ae840 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 1fd5831..7b3d24d 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 70b8ecf..3a9bccc 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 6f70e04..580f2ba 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 ac8d6ac..2747eb1 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 0905a29..bd6d1d6 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 6727575..1174134 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 d650fed..2d3f331 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 11fef1e..e2d371d 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 8606648..d70aab4 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 fc57280..45267a6 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 01bf376..73a6bf9 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 be72cbc..7f9a467 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 6ecb2e6..2358ae4 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 872e211..650d981 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 18e858a..162c1e3 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 ce2f4d2..463e48b 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 411908f..ed5fca6 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 1894eda..2c9f4eb 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 445cc6f..4a0ad79 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 c41eea7..8e34cb3 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 9d0dce2..05d320d 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 4a35d8f..4fd2441 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 72b8346..e341608 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 f392e96..fca83af 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 0420f85..4c638ed 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 c7db1cc..caf4b18 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 63f0c0e..af3b0d0 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 e90c27d..1fea9e0 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 0e29764..acd235f 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 f8cfe4b..31b4ad2 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 a4ff8b0..fd8ed56 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 fc3d36b..812ff23 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 4ae149a..18efef1 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 74779c4..d328437 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 64e466c..fc898d0 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 96a1eaa..dab3225 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 977178f..ae2f7a0 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 f90670b..e168bc9 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 1876b21..6580115 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 ba456e5..a2bfe83 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 18d24a4..5072ac8 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 03c36e5..f40429d 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 4c57237..5804b99 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 28294f0..6838cb4 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 13ce651..6b95c06 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
 {
-- 
GitLab