diff --git a/src/main/java/org/sablecc/sablecc/AcceptStates.java b/src/main/java/org/sablecc/sablecc/AcceptStates.java
index 76e46e1dbb02a30d4c25352c3d2e0ea55aaa1e2a..33088aac1995565382d416e602a1c599a99114cf 100644
--- a/src/main/java/org/sablecc/sablecc/AcceptStates.java
+++ b/src/main/java/org/sablecc/sablecc/AcceptStates.java
@@ -7,9 +7,8 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
-import org.sablecc.sablecc.node.*;
-import java.util.*;
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
+import org.sablecc.sablecc.node.Start;
 
 public class AcceptStates extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/AddAstProductions.java b/src/main/java/org/sablecc/sablecc/AddAstProductions.java
index 32150855be456b4efb79c2b3e5cfc25d59fd155f..5051639d33d1239cbb69d447f2351e777ebae9d8 100644
--- a/src/main/java/org/sablecc/sablecc/AddAstProductions.java
+++ b/src/main/java/org/sablecc/sablecc/AddAstProductions.java
@@ -7,10 +7,11 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 /*
  * AddAstProductions
diff --git a/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java b/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java
index 74641a9c0459e2f0ef01f042f3cedd8e34511dae..145eafe61bd0aab82adf6c588834d0d657bbd144 100644
--- a/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java
+++ b/src/main/java/org/sablecc/sablecc/AddEventualEmptyTransformationToProductions.java
@@ -7,10 +7,10 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.LinkedList;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 /*
  * AddEventualEmptyTransformationToProductions
diff --git a/src/main/java/org/sablecc/sablecc/AddProdTransformAndAltTransform.java b/src/main/java/org/sablecc/sablecc/AddProdTransformAndAltTransform.java
index 0b533ce18c674fe1df0bb242ea349a0c427a5a44..590d6a78c129d6917078eb670d061d15130ea8af 100644
--- a/src/main/java/org/sablecc/sablecc/AddProdTransformAndAltTransform.java
+++ b/src/main/java/org/sablecc/sablecc/AddProdTransformAndAltTransform.java
@@ -7,10 +7,11 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 /*
  * AddProdTransformAndAltTransform
diff --git a/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java b/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java
index 8d215b12c7fc4a7c59650754e9cc4a480f29c334..51fd2d0d44d193bc4542205410e50b31f8fa6770 100644
--- a/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java
+++ b/src/main/java/org/sablecc/sablecc/AltTransformAdapter.java
@@ -7,10 +7,11 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.util.List;
+import java.util.Map;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.io.*;
 
 public class AltTransformAdapter extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java b/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java
index 209be94dcf9bb422c1b2dad3e096d9fe258f18ea..37c9b384f62830792197d6b5a7667fad61e08045 100644
--- a/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java
+++ b/src/main/java/org/sablecc/sablecc/AlternativeElementTypes.java
@@ -7,10 +7,11 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 public class AlternativeElementTypes extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/CharSet.java b/src/main/java/org/sablecc/sablecc/CharSet.java
index f6ae0cb0c8aa474d3adb66cb264b98ddb9724185..38120872c39a593febcab89eda55370c7873bc06 100644
--- a/src/main/java/org/sablecc/sablecc/CharSet.java
+++ b/src/main/java/org/sablecc/sablecc/CharSet.java
@@ -7,7 +7,9 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
 
 public class CharSet implements Cloneable
 {
diff --git a/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java b/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java
index 06218a9a32c9669565e39f940502a049fdf146ba..5047dbbe965e372810a5705b5342d0f5a89f698d 100644
--- a/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java
+++ b/src/main/java/org/sablecc/sablecc/ComputeCGNomenclature.java
@@ -19,10 +19,11 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 public class ComputeCGNomenclature extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/ComputeInlining.java b/src/main/java/org/sablecc/sablecc/ComputeInlining.java
index 8a2e01e52e08cd1f2a0c4618e8f4b4326d6de883..dbbc7669e973e7526da44e72c3ad45e2d9c895af 100644
--- a/src/main/java/org/sablecc/sablecc/ComputeInlining.java
+++ b/src/main/java/org/sablecc/sablecc/ComputeInlining.java
@@ -7,8 +7,11 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
 
 /*
diff --git a/src/main/java/org/sablecc/sablecc/ComputeSimpleTermPosition.java b/src/main/java/org/sablecc/sablecc/ComputeSimpleTermPosition.java
index c86f5f7dcad269cc63034527547df222752116b3..003e60d9839c000e09e210567fda16acadf53e07 100644
--- a/src/main/java/org/sablecc/sablecc/ComputeSimpleTermPosition.java
+++ b/src/main/java/org/sablecc/sablecc/ComputeSimpleTermPosition.java
@@ -7,10 +7,11 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 public class ComputeSimpleTermPosition extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/ConflictException.java b/src/main/java/org/sablecc/sablecc/ConflictException.java
index 8120a9aac34f4f9b5e6f61fec19b0676f0abefb1..d3e8db8da4d4d8ea44c1564ea28c976650e605bf 100644
--- a/src/main/java/org/sablecc/sablecc/ConflictException.java
+++ b/src/main/java/org/sablecc/sablecc/ConflictException.java
@@ -7,7 +7,6 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.node.*;
 import java.util.Set;
 
 @SuppressWarnings("serial")
diff --git a/src/main/java/org/sablecc/sablecc/ConstructNFA.java b/src/main/java/org/sablecc/sablecc/ConstructNFA.java
index 284d5e62c419768972ba25a6de75804c8d838744..15a5708b1f33c08d08ab9fec4f527d320e55f2d0 100644
--- a/src/main/java/org/sablecc/sablecc/ConstructNFA.java
+++ b/src/main/java/org/sablecc/sablecc/ConstructNFA.java
@@ -7,8 +7,13 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
 
 public class ConstructNFA extends DepthFirstAdapter
diff --git a/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java b/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java
index c43996fbf3e0cb1ebbe3be20505f4c4539451218..41e525d22071ce5ba261c752203979f98be107a7 100644
--- a/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java
+++ b/src/main/java/org/sablecc/sablecc/ConstructParserGenerationDatas.java
@@ -7,8 +7,9 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.util.Map;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
 
 public class ConstructParserGenerationDatas extends DepthFirstAdapter
diff --git a/src/main/java/org/sablecc/sablecc/ConstructProdsMap.java b/src/main/java/org/sablecc/sablecc/ConstructProdsMap.java
index b0725fe7bbf840ef98960141fec1ffdefa713d83..16b86b8cf87b5669bcbd7286bf19f7401780d070 100644
--- a/src/main/java/org/sablecc/sablecc/ConstructProdsMap.java
+++ b/src/main/java/org/sablecc/sablecc/ConstructProdsMap.java
@@ -7,9 +7,11 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
-import org.sablecc.sablecc.node.*;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
+import org.sablecc.sablecc.node.AProd;
 
 public class ConstructProdsMap extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/DisplayLicense.java b/src/main/java/org/sablecc/sablecc/DisplayLicense.java
index 88c1f784656419a2882256a0cd5afe84afd0e011..75452da78c7e11502f8a9185b05cf6c15a267a62 100644
--- a/src/main/java/org/sablecc/sablecc/DisplayLicense.java
+++ b/src/main/java/org/sablecc/sablecc/DisplayLicense.java
@@ -7,7 +7,9 @@
 
 package org.sablecc.sablecc;
 
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
 
 class DisplayLicense
 {
diff --git a/src/main/java/org/sablecc/sablecc/GenAlts.java b/src/main/java/org/sablecc/sablecc/GenAlts.java
index 5c670d7efc2b4ba7ff90afdd4cfd75d2ab9c93a6..e2e706c9ff3be96128ed017a05b2cfa30ee4cd5c 100644
--- a/src/main/java/org/sablecc/sablecc/GenAlts.java
+++ b/src/main/java/org/sablecc/sablecc/GenAlts.java
@@ -7,10 +7,17 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 public class GenAlts extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/GenAnalyses.java b/src/main/java/org/sablecc/sablecc/GenAnalyses.java
index f5c0288bcf149d6f35792e557fad4957367c066f..629a7f4db76bae1f6257787b7c816b0f28435690 100644
--- a/src/main/java/org/sablecc/sablecc/GenAnalyses.java
+++ b/src/main/java/org/sablecc/sablecc/GenAnalyses.java
@@ -7,10 +7,17 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 public class GenAnalyses extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/GenLexer.java b/src/main/java/org/sablecc/sablecc/GenLexer.java
index 4f093a7e5a88f30daa4cf29e5266618bfb1bf88f..da9b0ca0ff96c6893c8c11b147735f062ff7d073 100644
--- a/src/main/java/org/sablecc/sablecc/GenLexer.java
+++ b/src/main/java/org/sablecc/sablecc/GenLexer.java
@@ -7,10 +7,23 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
-import org.sablecc.sablecc.node.*;
-import java.io.*;
+import java.io.BufferedOutputStream;
+import java.io.BufferedWriter;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+
+import org.sablecc.sablecc.analysis.AnalysisAdapter;
+import org.sablecc.sablecc.node.ATokenDef;
+import org.sablecc.sablecc.node.Start;
 
 public class GenLexer extends AnalysisAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/GenParser.java b/src/main/java/org/sablecc/sablecc/GenParser.java
index 06a677000db9114fd206587248119767fa1c18c6..a927be88d55818ec39027c90583d9f4bbf2c63d9 100644
--- a/src/main/java/org/sablecc/sablecc/GenParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenParser.java
@@ -7,10 +7,24 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.io.BufferedOutputStream;
+import java.io.BufferedWriter;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Deque;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.io.*;
 
 /*
  * GenParser
diff --git a/src/main/java/org/sablecc/sablecc/GenProds.java b/src/main/java/org/sablecc/sablecc/GenProds.java
index 140e579a6f837b631a69b9e9d3311204db2e3f7b..a327e0a2ce7b0dadcd442a8582b506768c5ff1a8 100644
--- a/src/main/java/org/sablecc/sablecc/GenProds.java
+++ b/src/main/java/org/sablecc/sablecc/GenProds.java
@@ -7,10 +7,14 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
-import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
+import org.sablecc.sablecc.node.AAstProd;
 
 public class GenProds extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/GenTokens.java b/src/main/java/org/sablecc/sablecc/GenTokens.java
index 4e863b7d5f5857c7bb7dfad7e8417b6067d417a1..f5abfaaa7e74183283ad3ae9e1885e00a97a536e 100644
--- a/src/main/java/org/sablecc/sablecc/GenTokens.java
+++ b/src/main/java/org/sablecc/sablecc/GenTokens.java
@@ -7,11 +7,16 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
-import org.sablecc.sablecc.node.*;
-import java.io.*;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
 import java.util.List;
 
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
+import org.sablecc.sablecc.node.*;
+
 public class GenTokens extends DepthFirstAdapter
 {
   private MacroExpander macros;
diff --git a/src/main/java/org/sablecc/sablecc/GenUtils.java b/src/main/java/org/sablecc/sablecc/GenUtils.java
index 6310ed2ab8c02613f591ee0a3d5597462b426867..051ab0fccf9a18b90c52a94a82ebe9a7f841c07e 100644
--- a/src/main/java/org/sablecc/sablecc/GenUtils.java
+++ b/src/main/java/org/sablecc/sablecc/GenUtils.java
@@ -7,10 +7,15 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
-import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
+import org.sablecc.sablecc.node.AAstProd;
+import org.sablecc.sablecc.node.Start;
 
 public class GenUtils extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
index 210d951b2408d067ebb122bc35b2a3e3dcca2de5..a2613bdb60eb04deb8716ac8fb1bddb2cabf6541 100644
--- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
@@ -7,10 +7,14 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.io.*;
 
 public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/Grammar.java b/src/main/java/org/sablecc/sablecc/Grammar.java
index 8ee609f8c4e0c1c7b0544e70cd9f6549413ba65e..fd612ab6bd2280f1f16a2ae53ff6e5896fc1d043 100644
--- a/src/main/java/org/sablecc/sablecc/Grammar.java
+++ b/src/main/java/org/sablecc/sablecc/Grammar.java
@@ -7,7 +7,12 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
 
 public final class Grammar
 {
diff --git a/src/main/java/org/sablecc/sablecc/In_Production.java b/src/main/java/org/sablecc/sablecc/In_Production.java
index 844dc51b22658a07f59405d3e3908c4933bacde2..63b00d5c871eae6549dcbd92657b19f690b18355 100644
--- a/src/main/java/org/sablecc/sablecc/In_Production.java
+++ b/src/main/java/org/sablecc/sablecc/In_Production.java
@@ -7,8 +7,11 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
 
 public class In_Production
diff --git a/src/main/java/org/sablecc/sablecc/Inlining.java b/src/main/java/org/sablecc/sablecc/Inlining.java
index 0450a29d026e02d3f51f02a2ffc97f4d16434358..4c6742d6621577d616bfd52b73aa6cea74b69c3c 100644
--- a/src/main/java/org/sablecc/sablecc/Inlining.java
+++ b/src/main/java/org/sablecc/sablecc/Inlining.java
@@ -16,8 +16,15 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
 
 public class Inlining
diff --git a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java
index a79d570f5e6e9d9b143e8fbb88afd999b97139ba..49571873505a673de3763a006a711f4b9db0e9e4 100644
--- a/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java
+++ b/src/main/java/org/sablecc/sablecc/InternalTransformationsToGrammar.java
@@ -15,10 +15,15 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.sablecc.sablecc.analysis.AnalysisAdapter;
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.io.*;
 
 public class InternalTransformationsToGrammar extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/LR0Collection.java b/src/main/java/org/sablecc/sablecc/LR0Collection.java
index 86afd7331800decd7431113ab43c09c7ea61cab3..669e54b893285ddd92caff04a8e18b84b2b801ad 100644
--- a/src/main/java/org/sablecc/sablecc/LR0Collection.java
+++ b/src/main/java/org/sablecc/sablecc/LR0Collection.java
@@ -7,7 +7,10 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
 
 final class LR0Collection
 {
diff --git a/src/main/java/org/sablecc/sablecc/LR0Item.java b/src/main/java/org/sablecc/sablecc/LR0Item.java
index b9bf3bdd7e710231ef0050c69aec3512b7dfc4e0..219ec70807fec97512d783863399e8aeca603773 100644
--- a/src/main/java/org/sablecc/sablecc/LR0Item.java
+++ b/src/main/java/org/sablecc/sablecc/LR0Item.java
@@ -7,7 +7,7 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.StringTokenizer;
 
 final class LR0Item implements Cloneable, Comparable<LR0Item>
 {
diff --git a/src/main/java/org/sablecc/sablecc/LR0ItemSet.java b/src/main/java/org/sablecc/sablecc/LR0ItemSet.java
index a8765d9bd85cb1dbb3090c2467e58c7ecd017419..7ff6f80c1b2bf71c6ba688f797ab18b351339b88 100644
--- a/src/main/java/org/sablecc/sablecc/LR0ItemSet.java
+++ b/src/main/java/org/sablecc/sablecc/LR0ItemSet.java
@@ -7,7 +7,9 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
 
 final class LR0ItemSet implements Cloneable, Comparable<LR0ItemSet>
 {
diff --git a/src/main/java/org/sablecc/sablecc/LR1Collection.java b/src/main/java/org/sablecc/sablecc/LR1Collection.java
index ddd62001337e88252149492554faeedbc9e869ab..74313fc761e9e60828a352b30056d76543ea1d58 100644
--- a/src/main/java/org/sablecc/sablecc/LR1Collection.java
+++ b/src/main/java/org/sablecc/sablecc/LR1Collection.java
@@ -7,7 +7,10 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
 
 final class LR1Collection
 {
diff --git a/src/main/java/org/sablecc/sablecc/LR1Item.java b/src/main/java/org/sablecc/sablecc/LR1Item.java
index 0936d085fdff40f3242facb194745816709d5796..dc509d8b0ffad184943178bd62c0e8c0dfb4270a 100644
--- a/src/main/java/org/sablecc/sablecc/LR1Item.java
+++ b/src/main/java/org/sablecc/sablecc/LR1Item.java
@@ -7,8 +7,6 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-
 final class LR1Item implements Cloneable, Comparable<LR1Item>
 {
   final LR0Item lr0Item;
diff --git a/src/main/java/org/sablecc/sablecc/LR1ItemSet.java b/src/main/java/org/sablecc/sablecc/LR1ItemSet.java
index 11553560b1b8e673b45d07c4d322dd15e6d3a8dd..c5cd49ec67a39c52cc2e86ceabae4047a62331b3 100644
--- a/src/main/java/org/sablecc/sablecc/LR1ItemSet.java
+++ b/src/main/java/org/sablecc/sablecc/LR1ItemSet.java
@@ -7,7 +7,11 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
 
 final class LR1ItemSet implements Cloneable, Comparable<LR1ItemSet>
 {
diff --git a/src/main/java/org/sablecc/sablecc/MacroExpander.java b/src/main/java/org/sablecc/sablecc/MacroExpander.java
index 5ff476f224ca4e22f173be12ad22f4fe5094a2f2..424011b8a56873d1b3d359bbd78d205358dfb738 100644
--- a/src/main/java/org/sablecc/sablecc/MacroExpander.java
+++ b/src/main/java/org/sablecc/sablecc/MacroExpander.java
@@ -7,8 +7,15 @@
 
 package org.sablecc.sablecc;
 
-import java.io.*;
-import java.util.*;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.Reader;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.TreeMap;
 
 public class MacroExpander
 {
diff --git a/src/main/java/org/sablecc/sablecc/NFA.java b/src/main/java/org/sablecc/sablecc/NFA.java
index 7ae0231f42892e43cb470ae7fbfd3cbf36559b01..162cebb5388041dca3a6c4d496c817741489f6c0 100644
--- a/src/main/java/org/sablecc/sablecc/NFA.java
+++ b/src/main/java/org/sablecc/sablecc/NFA.java
@@ -7,8 +7,6 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-
 public class NFA implements Cloneable
 {
   public State[] states;
diff --git a/src/main/java/org/sablecc/sablecc/PrettyPrinter.java b/src/main/java/org/sablecc/sablecc/PrettyPrinter.java
index 362b160722b5af1e81a8c4e8ae993f977d3a3185..c6ae145b485d5a3e2fa40f82afbcdfbbfe613cf8 100644
--- a/src/main/java/org/sablecc/sablecc/PrettyPrinter.java
+++ b/src/main/java/org/sablecc/sablecc/PrettyPrinter.java
@@ -7,8 +7,7 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
 
 public class PrettyPrinter extends DepthFirstAdapter
diff --git a/src/main/java/org/sablecc/sablecc/Production.java b/src/main/java/org/sablecc/sablecc/Production.java
index 9fd864ca9f4b699a34f0ff4185150dd53a76352f..ce880de815849cf538e600ac9dc190e20b5a502e 100644
--- a/src/main/java/org/sablecc/sablecc/Production.java
+++ b/src/main/java/org/sablecc/sablecc/Production.java
@@ -7,7 +7,10 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
 
 final class Production
 {
diff --git a/src/main/java/org/sablecc/sablecc/RecursiveProductionsDetections.java b/src/main/java/org/sablecc/sablecc/RecursiveProductionsDetections.java
index 942c3186b5ba71f8653aa906bfe3e71be6309348..fd3acd46bdaaa106428d7be301fcf045de345afc 100644
--- a/src/main/java/org/sablecc/sablecc/RecursiveProductionsDetections.java
+++ b/src/main/java/org/sablecc/sablecc/RecursiveProductionsDetections.java
@@ -7,8 +7,10 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
-import org.sablecc.sablecc.analysis.*;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
 
 public class RecursiveProductionsDetections extends DepthFirstAdapter
diff --git a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java
index 7f9df741e1e9865648424a94c5bee52034c13688..fadeb6e4945580d2339a5ce07244feabce063c96 100644
--- a/src/main/java/org/sablecc/sablecc/ResolveAltIds.java
+++ b/src/main/java/org/sablecc/sablecc/ResolveAltIds.java
@@ -17,10 +17,13 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 /**
  * This class computes semantic verifications for AST alternatives
diff --git a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java
index d3116a209a7e72222b356bb39167f51d342968c4..cc98cbf1ee301440d8eb02a2bd0eb8a6ae544ee4 100644
--- a/src/main/java/org/sablecc/sablecc/ResolveAstIds.java
+++ b/src/main/java/org/sablecc/sablecc/ResolveAstIds.java
@@ -7,10 +7,13 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 /*
  * Last Modification date : 18-10-2004
diff --git a/src/main/java/org/sablecc/sablecc/ResolveIds.java b/src/main/java/org/sablecc/sablecc/ResolveIds.java
index 4e7ea9c8266ee72392aa0e3b1e8859c5b471ee82..27cc669d0488ebe74dfb267be19bc445166427a0 100644
--- a/src/main/java/org/sablecc/sablecc/ResolveIds.java
+++ b/src/main/java/org/sablecc/sablecc/ResolveIds.java
@@ -7,10 +7,15 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.io.File;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 public class ResolveIds extends DepthFirstAdapter
 {
diff --git a/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java
index d6159426ec8c5f0fbbe81138217f47e66a199ff8..8a310c7edace8222c8d18dfe7e3052af849c2c92 100644
--- a/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java
+++ b/src/main/java/org/sablecc/sablecc/ResolveProdTransformIds.java
@@ -7,10 +7,14 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 /*
  * ResolveProdTransformIds
diff --git a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java
index cd2f224bf2ee3324ce384cd23c00a943c554181a..6b84e677ad13b142d1815ac38ff8f506601ac518 100644
--- a/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java
+++ b/src/main/java/org/sablecc/sablecc/ResolveTransformIds.java
@@ -11,10 +11,14 @@
  */
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
-import java.io.*;
 
 /*
  * ResolveTransformIds
diff --git a/src/main/java/org/sablecc/sablecc/SableCC.java b/src/main/java/org/sablecc/sablecc/SableCC.java
index 2936c014b000dd9efd8e708d228c54a9a9cdc851..2ed2bb3e4b9a89799401c4688217bc4d3f1f11b7 100644
--- a/src/main/java/org/sablecc/sablecc/SableCC.java
+++ b/src/main/java/org/sablecc/sablecc/SableCC.java
@@ -7,16 +7,20 @@
 
 package org.sablecc.sablecc;
 
-import java.io.*;
-import java.awt.*;
-import java.util.*;
-import org.sablecc.sablecc.node.*;
-import org.sablecc.sablecc.analysis.*;
-import org.sablecc.sablecc.lexer.*;
-import org.sablecc.sablecc.parser.*;
-
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.PushbackReader;
+import java.util.ArrayList;
 import java.util.List;
 
+import org.sablecc.sablecc.lexer.Lexer;
+import org.sablecc.sablecc.lexer.LexerException;
+import org.sablecc.sablecc.node.AGrammar;
+import org.sablecc.sablecc.node.Start;
+import org.sablecc.sablecc.parser.Parser;
+import org.sablecc.sablecc.parser.ParserException;
+
 public class SableCC {
   private static boolean processInlining = true;
   static int inliningMaxAlts = 20;
diff --git a/src/main/java/org/sablecc/sablecc/Symbol.java b/src/main/java/org/sablecc/sablecc/Symbol.java
index 7a7947ca197a070d437e1879aa22d419fe31682b..583639b3edb20a8bdff28bc3898dac4d4b6a954e 100644
--- a/src/main/java/org/sablecc/sablecc/Symbol.java
+++ b/src/main/java/org/sablecc/sablecc/Symbol.java
@@ -7,7 +7,10 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
 
 final class Symbol implements Comparable<Symbol>
 {
diff --git a/src/main/java/org/sablecc/sablecc/SymbolSet.java b/src/main/java/org/sablecc/sablecc/SymbolSet.java
index cf084443f6c1a92ab95a1933a10e5d80fe8635dd..6ed30a32655b4b68d59b2a173c7c8b167828651c 100644
--- a/src/main/java/org/sablecc/sablecc/SymbolSet.java
+++ b/src/main/java/org/sablecc/sablecc/SymbolSet.java
@@ -7,7 +7,8 @@
 
 package org.sablecc.sablecc;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
 
 final class SymbolSet implements Cloneable
 {
diff --git a/src/main/java/org/sablecc/sablecc/Transitions.java b/src/main/java/org/sablecc/sablecc/Transitions.java
index 59b3d520c90e67b03ab983f4a20275de7c447e81..e612a83ae812a23fe697aa56889422b76ae02e8f 100644
--- a/src/main/java/org/sablecc/sablecc/Transitions.java
+++ b/src/main/java/org/sablecc/sablecc/Transitions.java
@@ -7,9 +7,12 @@
 
 package org.sablecc.sablecc;
 
-import org.sablecc.sablecc.analysis.*;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.sablecc.sablecc.analysis.DepthFirstAdapter;
 import org.sablecc.sablecc.node.*;
-import java.util.*;
 
 public class Transitions extends DepthFirstAdapter
 {