diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
index eb6de911ccf217873f06d349b749e3a83db9a667..7f3206556dabdda14fb79b8aee02e827f2c73054 100644
--- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
@@ -125,14 +125,21 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
     }
   }
   
-  private void generateVariableDeclaration(Node term) throws IOException {
+  private boolean generateVariableDeclaration(Node term, boolean generateOpeningBraceIfNeeded) throws IOException {
     String typeName = lookupInternalTypeName(term);
 
     if("null".equals(typeName) || "Lnull".equals(typeName))
     {
       // No intermediate variable needed for null or empty list arguments
+      return false;
     }
-    else if(typeName.startsWith("L"))
+
+    if(generateOpeningBraceIfNeeded)
+    {
+      macros.apply(file, "ParserBraceOpening");
+    }
+
+    if(typeName.startsWith("L"))
     {
       macros.apply(file, "ParserListVariableDeclaration", new String[] {variableTypeFromInternalType(typeName), getVariableName(term)});
     }
@@ -140,6 +147,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
     {
       macros.apply(file, "ParserSimpleVariableDeclaration", new String[] {variableTypeFromInternalType(typeName), getVariableName(term)});
     }
+    return true;
   }
 
   @Override
@@ -149,7 +157,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
     {
       try
       {
-        generateVariableDeclaration(term);
+        generateVariableDeclaration(term, false);
       }
       catch(IOException e)
       {
@@ -254,10 +262,10 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
   {
     try
     {
-      macros.apply(file, "ParserBraceOpening");
+      boolean openingBraceGenerated = false;
       for(Node term : node.getListTerms())
       {
-        generateVariableDeclaration(term);
+        openingBraceGenerated |= generateVariableDeclaration(term, !openingBraceGenerated);
       }
 
       for(PListTerm listTerm : node.getListTerms())
@@ -281,7 +289,11 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
           }
         }
       }
-      macros.apply(file, "ParserBraceClosing");
+
+      if(openingBraceGenerated)
+      {
+        macros.apply(file, "ParserBraceClosing");
+      }
     }
     catch(IOException e)
     {
@@ -296,10 +308,10 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
 
     try
     {
-      macros.apply(file, "ParserBraceOpening");
+      boolean openingBraceGenerated = false;
       for(PTerm term : params)
       {
-        generateVariableDeclaration(term);
+        openingBraceGenerated |= generateVariableDeclaration(term, !openingBraceGenerated);
       }
       
       for(PTerm param : params)
@@ -321,7 +333,10 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
         }
       }
       macros.apply(file, "ParserNewBodyNewTail");
-      macros.apply(file, "ParserBraceClosing");
+      if(openingBraceGenerated)
+      {
+        macros.apply(file, "ParserBraceClosing");
+      }
     }
     catch(IOException e)
     {
diff --git a/src/main/java/org/sablecc/sablecc/parser/Parser.java b/src/main/java/org/sablecc/sablecc/parser/Parser.java
index 9c626ba4bbb1263cc9f647aa35707479fd209000..1dfa84e83bd547dfa1e5b3a8728515f518ff8998 100644
--- a/src/main/java/org/sablecc/sablecc/parser/Parser.java
+++ b/src/main/java/org/sablecc/sablecc/parser/Parser.java
@@ -1862,12 +1862,8 @@ public class Parser implements IParser
         List<Object> nodeList = new ArrayList<>();
 
         PGrammar pgrammarNode1;
-        {
-        {
-        }
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         return nodeList;
     }
@@ -1912,8 +1908,6 @@ public class Parser implements IParser
         PGrammar pgrammarNode1;
         {
         PHelpers phelpersNode3;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, null, null, null);
@@ -1966,8 +1960,6 @@ public class Parser implements IParser
         PGrammar pgrammarNode1;
         {
         PStates pstatesNode4;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, null, null, null);
@@ -2022,8 +2014,6 @@ public class Parser implements IParser
         {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
 
@@ -2080,8 +2070,6 @@ public class Parser implements IParser
         PGrammar pgrammarNode1;
         {
         PTokens ptokensNode5;
-        {
-        }
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, null, null, null);
@@ -2136,8 +2124,6 @@ public class Parser implements IParser
         {
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
 
@@ -2196,8 +2182,6 @@ public class Parser implements IParser
         {
         PStates pstatesNode4;
         PTokens ptokensNode5;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
 
@@ -2258,8 +2242,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PTokens ptokensNode5;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         ptokensNode5 = (PTokens)nodeArrayList3.get(0);
@@ -2320,8 +2302,6 @@ public class Parser implements IParser
         PGrammar pgrammarNode1;
         {
         PIgnTokens pigntokensNode6;
-        {
-        }
         pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, pigntokensNode6, null, null);
@@ -2376,8 +2356,6 @@ public class Parser implements IParser
         {
         PHelpers phelpersNode3;
         PIgnTokens pigntokensNode6;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
 
@@ -2436,8 +2414,6 @@ public class Parser implements IParser
         {
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
 
@@ -2498,8 +2474,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -2562,8 +2536,6 @@ public class Parser implements IParser
         {
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
-        {
-        }
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
 
@@ -2624,8 +2596,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -2690,8 +2660,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -2758,8 +2726,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         ptokensNode5 = (PTokens)nodeArrayList3.get(0);
@@ -2824,8 +2790,6 @@ public class Parser implements IParser
         PGrammar pgrammarNode1;
         {
         PProductions pproductionsNode7;
-        {
-        }
         pproductionsNode7 = (PProductions)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, null, pproductionsNode7, null);
@@ -2880,8 +2844,6 @@ public class Parser implements IParser
         {
         PHelpers phelpersNode3;
         PProductions pproductionsNode7;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
 
@@ -2940,8 +2902,6 @@ public class Parser implements IParser
         {
         PStates pstatesNode4;
         PProductions pproductionsNode7;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
 
@@ -3002,8 +2962,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PProductions pproductionsNode7;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -3066,8 +3024,6 @@ public class Parser implements IParser
         {
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
-        {
-        }
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
 
@@ -3128,8 +3084,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -3194,8 +3148,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -3262,8 +3214,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         ptokensNode5 = (PTokens)nodeArrayList3.get(0);
@@ -3330,8 +3280,6 @@ public class Parser implements IParser
         {
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
-        {
-        }
         pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
 
@@ -3392,8 +3340,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -3458,8 +3404,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -3526,8 +3470,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -3596,8 +3538,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
-        {
-        }
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -3664,8 +3604,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -3736,8 +3674,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -3810,8 +3746,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         ptokensNode5 = (PTokens)nodeArrayList3.get(0);
@@ -3880,8 +3814,6 @@ public class Parser implements IParser
         PGrammar pgrammarNode1;
         {
         PAst pastNode8;
-        {
-        }
         pastNode8 = (PAst)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, null, null, pastNode8);
@@ -3936,8 +3868,6 @@ public class Parser implements IParser
         {
         PHelpers phelpersNode3;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
@@ -3996,8 +3926,6 @@ public class Parser implements IParser
         {
         PStates pstatesNode4;
         PAst pastNode8;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
@@ -4058,8 +3986,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -4122,8 +4048,6 @@ public class Parser implements IParser
         {
         PTokens ptokensNode5;
         PAst pastNode8;
-        {
-        }
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
@@ -4184,8 +4108,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -4250,8 +4172,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PAst pastNode8;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -4318,8 +4238,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         ptokensNode5 = (PTokens)nodeArrayList3.get(0);
@@ -4386,8 +4304,6 @@ public class Parser implements IParser
         {
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
-        {
-        }
         pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
@@ -4448,8 +4364,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -4514,8 +4428,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -4582,8 +4494,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -4652,8 +4562,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
-        {
-        }
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -4720,8 +4628,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -4792,8 +4698,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -4866,8 +4770,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         ptokensNode5 = (PTokens)nodeArrayList3.get(0);
@@ -4938,8 +4840,6 @@ public class Parser implements IParser
         {
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         pproductionsNode7 = (PProductions)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
@@ -5000,8 +4900,6 @@ public class Parser implements IParser
         PHelpers phelpersNode3;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -5066,8 +4964,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -5134,8 +5030,6 @@ public class Parser implements IParser
         PStates pstatesNode4;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -5204,8 +5098,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -5272,8 +5164,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -5344,8 +5234,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -5418,8 +5306,6 @@ public class Parser implements IParser
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         ptokensNode5 = (PTokens)nodeArrayList3.get(0);
@@ -5492,8 +5378,6 @@ public class Parser implements IParser
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
         pastNode8 = (PAst)nodeArrayList3.get(0);
@@ -5560,8 +5444,6 @@ public class Parser implements IParser
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -5632,8 +5514,6 @@ public class Parser implements IParser
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -5706,8 +5586,6 @@ public class Parser implements IParser
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -5782,8 +5660,6 @@ public class Parser implements IParser
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
@@ -5856,8 +5732,6 @@ public class Parser implements IParser
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -5934,8 +5808,6 @@ public class Parser implements IParser
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
@@ -6014,8 +5886,6 @@ public class Parser implements IParser
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         PAst pastNode8;
-        {
-        }
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
         ptokensNode5 = (PTokens)nodeArrayList3.get(0);
@@ -6485,8 +6355,6 @@ public class Parser implements IParser
         {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList2.get(0);
-        {
-        }
 
         pstatelistNode1 = new AStateList(tidNode2, null, Collections.EMPTY_LIST);
         }
@@ -6511,8 +6379,6 @@ public class Parser implements IParser
         PTransition ptransitionNode3;
         tidNode2 = (TId)nodeArrayList2.get(0);
         ptransitionNode3 = (PTransition)nodeArrayList3.get(0);
-        {
-        }
 
         pstatelistNode1 = new AStateList(tidNode2, ptransitionNode3, Collections.EMPTY_LIST);
         }
@@ -6667,12 +6533,8 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PIgnTokens pigntokensNode1;
-        {
-        {
-        }
 
         pigntokensNode1 = new AIgnTokens(Collections.EMPTY_LIST);
-        }
         nodeList.add(pigntokensNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -6814,12 +6676,8 @@ public class Parser implements IParser
         List<Object> nodeList = new ArrayList<>();
 
         PConcat pconcatNode1;
-        {
-        {
-        }
 
         pconcatNode1 = new AConcat(Collections.EMPTY_LIST);
-        }
         nodeList.add(pconcatNode1);
         return nodeList;
     }
@@ -7166,10 +7024,8 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PBinOp pbinopNode1;
-        {
 
         pbinopNode1 = new APlusBinOp();
-        }
         nodeList.add(pbinopNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7183,10 +7039,8 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PBinOp pbinopNode1;
-        {
 
         pbinopNode1 = new AMinusBinOp();
-        }
         nodeList.add(pbinopNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7239,8 +7093,6 @@ public class Parser implements IParser
         List<PAlt> listNode6 = new LinkedList<>();
         tidNode2 = (TId)nodeArrayList1.get(0);
         {
-        }
-        {
         List<PAlt> listNode5 = new LinkedList<>();
         listNode5 = (List<PAlt>)nodeArrayList3.get(0);
         if(listNode5 != null)
@@ -7322,8 +7174,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         TArrow tarrowNode1;
         tarrowNode1 = (TArrow)nodeArrayList2.get(0);
-        {
-        }
         nodeList.add(tarrowNode1);
         nodeList.add(Collections.EMPTY_LIST);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
@@ -7436,12 +7286,8 @@ public class Parser implements IParser
         List<Object> nodeList = new ArrayList<>();
 
         PAlt paltNode1;
-        {
-        {
-        }
 
         paltNode1 = new AAlt(null, Collections.EMPTY_LIST, null);
-        }
         nodeList.add(paltNode1);
         return nodeList;
     }
@@ -7457,8 +7303,6 @@ public class Parser implements IParser
         {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList1.get(0);
-        {
-        }
 
         paltNode1 = new AAlt(tidNode2, Collections.EMPTY_LIST, null);
         }
@@ -7540,8 +7384,6 @@ public class Parser implements IParser
         PAlt paltNode1;
         {
         PAltTransform palttransformNode4;
-        {
-        }
         palttransformNode4 = (PAltTransform)nodeArrayList1.get(0);
 
         paltNode1 = new AAlt(null, Collections.EMPTY_LIST, palttransformNode4);
@@ -7564,8 +7406,6 @@ public class Parser implements IParser
         TId tidNode2;
         PAltTransform palttransformNode4;
         tidNode2 = (TId)nodeArrayList1.get(0);
-        {
-        }
         palttransformNode4 = (PAltTransform)nodeArrayList2.get(0);
 
         paltNode1 = new AAlt(tidNode2, Collections.EMPTY_LIST, palttransformNode4);
@@ -7658,8 +7498,6 @@ public class Parser implements IParser
         TLBrace tlbraceNode2;
         TRBrace trbraceNode4;
         tlbraceNode2 = (TLBrace)nodeArrayList1.get(0);
-        {
-        }
         trbraceNode4 = (TRBrace)nodeArrayList3.get(0);
 
         palttransformNode1 = new AAltTransform(tlbraceNode2, Collections.EMPTY_LIST, trbraceNode4);
@@ -7722,8 +7560,6 @@ public class Parser implements IParser
         TLPar tlparNode3;
         pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
         tlparNode3 = (TLPar)nodeArrayList3.get(0);
-        {
-        }
 
         ptermNode1 = new ANewTerm(pprodnameNode2, tlparNode3, Collections.EMPTY_LIST);
         }
@@ -7782,8 +7618,6 @@ public class Parser implements IParser
         {
         TLBkt tlbktNode2;
         tlbktNode2 = (TLBkt)nodeArrayList1.get(0);
-        {
-        }
 
         ptermNode1 = new AListTerm(tlbktNode2, Collections.EMPTY_LIST);
         }
@@ -7922,10 +7756,8 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1;
-        {
 
         ptermNode1 = new ANullTerm();
-        }
         nodeList.add(ptermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8000,8 +7832,6 @@ public class Parser implements IParser
         TLPar tlparNode3;
         pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
         tlparNode3 = (TLPar)nodeArrayList3.get(0);
-        {
-        }
 
         plisttermNode1 = new ANewListTerm(pprodnameNode2, tlparNode3, Collections.EMPTY_LIST);
         }
@@ -8520,10 +8350,8 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PSpecifier pspecifierNode1;
-        {
 
         pspecifierNode1 = new ATokenSpecifier();
-        }
         nodeList.add(pspecifierNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8538,10 +8366,8 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PSpecifier pspecifierNode1;
-        {
 
         pspecifierNode1 = new AProductionSpecifier();
-        }
         nodeList.add(pspecifierNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8690,12 +8516,8 @@ public class Parser implements IParser
         List<Object> nodeList = new ArrayList<>();
 
         PAstAlt pastaltNode1;
-        {
-        {
-        }
 
         pastaltNode1 = new AAstAlt(null, Collections.EMPTY_LIST);
-        }
         nodeList.add(pastaltNode1);
         return nodeList;
     }
@@ -8711,8 +8533,6 @@ public class Parser implements IParser
         {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList1.get(0);
-        {
-        }
 
         pastaltNode1 = new AAstAlt(tidNode2, Collections.EMPTY_LIST);
         }