diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
index e169187479cb715c6891f48223921f46efc02895..b5a4a696d15a494437e1e2c5df479556ab0231e4 100644
--- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
@@ -125,22 +125,16 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
     }
   }
   
-  private boolean generateVariableDeclaration(Node term, boolean generateOpeningBraceIfNeeded) throws IOException {
+  private void generateVariableDeclaration(Node term) 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;
-    }
-
-    if(generateOpeningBraceIfNeeded)
-    {
-      macros.apply(file, "ParserBraceOpening");
+      return;
     }
 
     macros.apply(file, "ParserVariableDeclaration", new String[] {variableTypeFromInternalType(typeName), getVariableName(term)});
-    return true;
   }
 
   @Override
@@ -150,7 +144,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
     {
       try
       {
-        generateVariableDeclaration(term, false);
+        generateVariableDeclaration(term);
       }
       catch(IOException e)
       {
@@ -261,10 +255,9 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
 
     try
     {
-      boolean openingBraceGenerated = false;
       for(PListTerm listTerm : node.getListTerms())
       {
-        openingBraceGenerated |= generateVariableDeclaration(listTerm, !openingBraceGenerated);
+        generateVariableDeclaration(listTerm);
         listTerm.apply(this);
       }
 
@@ -339,11 +332,6 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
           first = false;
         }
       }
-
-      if(openingBraceGenerated)
-      {
-        macros.apply(file, "ParserBraceClosing");
-      }
     }
     catch(IOException e)
     {
@@ -358,10 +346,9 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
 
     try
     {
-      boolean openingBraceGenerated = false;
       for(PTerm term : params)
       {
-        openingBraceGenerated |= generateVariableDeclaration(term, !openingBraceGenerated);
+        generateVariableDeclaration(term);
       }
       
       for(PTerm param : params)
@@ -383,10 +370,6 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
         }
       }
       macros.apply(file, "ParserNewBodyNewTail");
-      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 0ecb89060d737041412870dcd8b6df23cbb371c0..a31f6a72ad5a79e5c7cdbfb9a95aff59a7aba82e 100644
--- a/src/main/java/org/sablecc/sablecc/parser/Parser.java
+++ b/src/main/java/org/sablecc/sablecc/parser/Parser.java
@@ -1876,16 +1876,12 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -1899,12 +1895,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -1919,18 +1913,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -1944,12 +1934,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -1964,18 +1952,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -1990,14 +1974,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pstatesNode4 = (PStates)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2013,20 +1995,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2040,12 +2018,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PTokens ptokensNode5;
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -2060,18 +2036,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PTokens ptokensNode6;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         ptokensNode6 = (PTokens)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2086,14 +2058,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2109,20 +2079,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PTokens ptokensNode6;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2137,14 +2103,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PTokens ptokensNode5;
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         ptokensNode5 = (PTokens)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2160,20 +2124,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PTokens ptokensNode6;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2189,7 +2149,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PTokens ptokensNode5;
@@ -2198,7 +2157,6 @@ public class Parser implements IParser
         ptokensNode5 = (PTokens)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2215,22 +2173,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PTokens ptokensNode6;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         ptokensNode6 = (PTokens)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -2244,12 +2198,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PIgnTokens pigntokensNode6;
         pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, pigntokensNode6, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -2264,18 +2216,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PIgnTokens pigntokensNode7;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pigntokensNode7 = (PIgnTokens)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2290,14 +2238,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PIgnTokens pigntokensNode6;
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, pigntokensNode6, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2313,20 +2259,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PIgnTokens pigntokensNode7;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2341,14 +2283,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, pigntokensNode6, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2364,20 +2304,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PIgnTokens pigntokensNode7;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2393,7 +2329,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
@@ -2402,7 +2337,6 @@ public class Parser implements IParser
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, pigntokensNode6, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2419,22 +2353,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PIgnTokens pigntokensNode7;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -2449,14 +2379,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, pigntokensNode6, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2472,20 +2400,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         ptokensNode6 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2501,7 +2425,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
@@ -2510,7 +2433,6 @@ public class Parser implements IParser
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, pigntokensNode6, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2527,22 +2449,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -2558,7 +2476,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
@@ -2567,7 +2484,6 @@ public class Parser implements IParser
         pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, pigntokensNode6, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2584,22 +2500,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -2616,7 +2528,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PTokens ptokensNode5;
@@ -2627,7 +2538,6 @@ public class Parser implements IParser
         pigntokensNode6 = (PIgnTokens)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -2645,24 +2555,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         ptokensNode6 = (PTokens)nodeArrayList4.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, null, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -2676,12 +2582,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PProductions pproductionsNode7;
         pproductionsNode7 = (PProductions)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, null, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -2696,18 +2600,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pproductionsNode8 = (PProductions)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2722,14 +2622,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PProductions pproductionsNode7;
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, null, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2745,20 +2643,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2773,14 +2667,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PProductions pproductionsNode7;
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, null, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2796,20 +2688,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2825,7 +2713,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PProductions pproductionsNode7;
@@ -2834,7 +2721,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, null, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2851,22 +2737,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -2881,14 +2763,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, null, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -2904,20 +2784,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PTokens ptokensNode6;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         ptokensNode6 = (PTokens)nodeArrayList2.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2933,7 +2809,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
@@ -2942,7 +2817,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, null, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -2959,22 +2833,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PTokens ptokensNode6;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -2990,7 +2860,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
@@ -2999,7 +2868,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, null, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3016,22 +2884,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3048,7 +2912,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PTokens ptokensNode5;
@@ -3059,7 +2922,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, null, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3077,24 +2939,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         ptokensNode6 = (PTokens)nodeArrayList4.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -3109,14 +2967,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
         pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, pigntokensNode6, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -3132,20 +2988,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pigntokensNode7 = (PIgnTokens)nodeArrayList2.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3161,7 +3013,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
@@ -3170,7 +3021,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, pigntokensNode6, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3187,22 +3037,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3218,7 +3064,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
@@ -3227,7 +3072,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, pigntokensNode6, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3244,22 +3088,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3276,7 +3116,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
@@ -3287,7 +3126,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, pigntokensNode6, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3305,24 +3143,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -3338,7 +3172,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
@@ -3347,7 +3180,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3364,22 +3196,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         ptokensNode6 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3396,7 +3224,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
@@ -3407,7 +3234,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3425,24 +3251,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -3459,7 +3281,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
@@ -3470,7 +3291,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3488,24 +3308,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -3523,7 +3339,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PTokens ptokensNode5;
@@ -3536,7 +3351,6 @@ public class Parser implements IParser
         pproductionsNode7 = (PProductions)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -3555,18 +3369,15 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         ptokensNode6 = (PTokens)nodeArrayList4.get(0);
@@ -3574,7 +3385,6 @@ public class Parser implements IParser
         pproductionsNode8 = (PProductions)nodeArrayList6.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
         return nodeList;
@@ -3588,12 +3398,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PAst pastNode8;
         pastNode8 = (PAst)nodeArrayList1.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, null, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -3608,18 +3416,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pastNode9 = (PAst)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -3634,14 +3438,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PAst pastNode8;
         phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, null, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -3657,20 +3459,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pastNode9 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3685,14 +3483,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PAst pastNode8;
         pstatesNode4 = (PStates)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, null, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -3708,20 +3504,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         pastNode9 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3737,7 +3529,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PAst pastNode8;
@@ -3746,7 +3537,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, null, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3763,22 +3553,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3793,14 +3579,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PTokens ptokensNode5;
         PAst pastNode8;
         ptokensNode5 = (PTokens)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, null, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -3816,20 +3600,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PTokens ptokensNode6;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         ptokensNode6 = (PTokens)nodeArrayList2.get(0);
         pastNode9 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3845,7 +3625,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PAst pastNode8;
@@ -3854,7 +3633,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, null, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3871,22 +3649,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PTokens ptokensNode6;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3902,7 +3676,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PAst pastNode8;
@@ -3911,7 +3684,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, null, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -3928,22 +3700,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3960,7 +3728,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PTokens ptokensNode5;
@@ -3971,7 +3738,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, null, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -3989,24 +3755,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         ptokensNode6 = (PTokens)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -4021,14 +3783,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
         pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, pigntokensNode6, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -4044,20 +3804,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PIgnTokens pigntokensNode7;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pigntokensNode7 = (PIgnTokens)nodeArrayList2.get(0);
         pastNode9 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -4073,7 +3829,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
@@ -4082,7 +3837,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, pigntokensNode6, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -4099,22 +3853,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PIgnTokens pigntokensNode7;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4130,7 +3880,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
@@ -4139,7 +3888,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, pigntokensNode6, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -4156,22 +3904,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PIgnTokens pigntokensNode7;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4188,7 +3932,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
@@ -4199,7 +3942,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, pigntokensNode6, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4217,24 +3959,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PIgnTokens pigntokensNode7;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -4250,7 +3988,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PAst pastNode8;
@@ -4259,7 +3996,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, pigntokensNode6, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -4276,22 +4012,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         ptokensNode6 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4308,7 +4040,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
@@ -4319,7 +4050,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, pigntokensNode6, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4337,24 +4067,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -4371,7 +4097,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
@@ -4382,7 +4107,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, pigntokensNode6, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4400,24 +4124,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -4435,7 +4155,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PTokens ptokensNode5;
@@ -4448,7 +4167,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, null, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -4467,18 +4185,15 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         ptokensNode6 = (PTokens)nodeArrayList4.get(0);
@@ -4486,7 +4201,6 @@ public class Parser implements IParser
         pastNode9 = (PAst)nodeArrayList6.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, null, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
         return nodeList;
@@ -4501,14 +4215,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PProductions pproductionsNode7;
         PAst pastNode8;
         pproductionsNode7 = (PProductions)nodeArrayList1.get(0);
         pastNode8 = (PAst)nodeArrayList2.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, null, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -4524,20 +4236,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pproductionsNode8 = (PProductions)nodeArrayList2.get(0);
         pastNode9 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -4553,7 +4261,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PProductions pproductionsNode7;
         PAst pastNode8;
@@ -4562,7 +4269,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, null, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -4579,22 +4285,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4610,7 +4312,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PProductions pproductionsNode7;
         PAst pastNode8;
@@ -4619,7 +4320,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, null, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -4636,22 +4336,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4668,7 +4364,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PProductions pproductionsNode7;
@@ -4679,7 +4374,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, null, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4697,24 +4391,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -4730,7 +4420,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
         PAst pastNode8;
@@ -4739,7 +4428,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, null, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -4756,22 +4444,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PTokens ptokensNode6;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         ptokensNode6 = (PTokens)nodeArrayList2.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4788,7 +4472,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
@@ -4799,7 +4482,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, null, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4817,24 +4499,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PTokens ptokensNode6;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -4851,7 +4529,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PProductions pproductionsNode7;
@@ -4862,7 +4539,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, null, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -4880,24 +4556,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -4915,7 +4587,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PTokens ptokensNode5;
@@ -4928,7 +4599,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, null, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -4947,18 +4617,15 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         ptokensNode6 = (PTokens)nodeArrayList4.get(0);
@@ -4966,7 +4633,6 @@ public class Parser implements IParser
         pastNode9 = (PAst)nodeArrayList6.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
         return nodeList;
@@ -4982,7 +4648,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
         PAst pastNode8;
@@ -4991,7 +4656,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList3.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, pigntokensNode6, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -5008,22 +4672,18 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pigntokensNode7 = (PIgnTokens)nodeArrayList2.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
         pastNode9 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -5040,7 +4700,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
@@ -5051,7 +4710,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, pigntokensNode6, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -5069,24 +4727,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -5103,7 +4757,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
@@ -5114,7 +4767,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, pigntokensNode6, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -5132,24 +4784,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -5167,7 +4815,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PIgnTokens pigntokensNode6;
@@ -5180,7 +4827,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, pigntokensNode6, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -5199,18 +4845,15 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
@@ -5218,7 +4861,6 @@ public class Parser implements IParser
         pastNode9 = (PAst)nodeArrayList6.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
         return nodeList;
@@ -5235,7 +4877,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
         PProductions pproductionsNode7;
@@ -5246,7 +4887,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList4.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -5264,24 +4904,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         ptokensNode6 = (PTokens)nodeArrayList2.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
         pastNode9 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -5299,7 +4935,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
@@ -5312,7 +4947,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -5331,18 +4965,15 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
@@ -5350,7 +4981,6 @@ public class Parser implements IParser
         pastNode9 = (PAst)nodeArrayList6.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
         return nodeList;
@@ -5368,7 +4998,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PStates pstatesNode4;
         PTokens ptokensNode5;
         PIgnTokens pigntokensNode6;
@@ -5381,7 +5010,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList5.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -5400,18 +5028,15 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PStates pstatesNode5;
         PTokens ptokensNode6;
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         pstatesNode5 = (PStates)nodeArrayList2.get(0);
         ptokensNode6 = (PTokens)nodeArrayList3.get(0);
         pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
@@ -5419,7 +5044,6 @@ public class Parser implements IParser
         pastNode9 = (PAst)nodeArrayList6.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
         return nodeList;
@@ -5438,7 +5062,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         PHelpers phelpersNode3;
         PStates pstatesNode4;
         PTokens ptokensNode5;
@@ -5453,7 +5076,6 @@ public class Parser implements IParser
         pastNode8 = (PAst)nodeArrayList6.get(0);
 
         pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
         return nodeList;
@@ -5473,7 +5095,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PGrammar pgrammarNode1;
-        {
         List<TPkgId> listNode3;
         PHelpers phelpersNode4;
         PStates pstatesNode5;
@@ -5481,11 +5102,9 @@ public class Parser implements IParser
         PIgnTokens pigntokensNode7;
         PProductions pproductionsNode8;
         PAst pastNode9;
-        {
         List<TPkgId> listNode2;
         listNode2 = (List<TPkgId>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
         phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         pstatesNode5 = (PStates)nodeArrayList3.get(0);
         ptokensNode6 = (PTokens)nodeArrayList4.get(0);
@@ -5494,7 +5113,6 @@ public class Parser implements IParser
         pastNode9 = (PAst)nodeArrayList7.get(0);
 
         pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
-        }
         nodeList.add(pgrammarNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList7);
         return nodeList;
@@ -5509,11 +5127,9 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<TPkgId> listNode2;
-        {
         List<TPkgId> listNode1;
         listNode1 = (List<TPkgId>)nodeArrayList2.get(0);
         listNode2 = listNode1;
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -5528,7 +5144,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<TPkgId> listNode2;
-        {
         TPkgId tpkgidNode1;
         tpkgidNode1 = (TPkgId)nodeArrayList1.get(0);
         if(tpkgidNode1 != null) {
@@ -5536,7 +5151,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -5552,7 +5166,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<TPkgId> listNode3;
-        {
         TPkgId tpkgidNode1;
         tpkgidNode1 = (TPkgId)nodeArrayList1.get(0);
         List<TPkgId> listNode2;
@@ -5567,7 +5180,6 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -5597,16 +5209,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PHelpers phelpersNode1;
-        {
         List<PHelperDef> listNode3;
-        {
         List<PHelperDef> listNode2;
         listNode2 = (List<PHelperDef>)nodeArrayList2.get(0);
         listNode3 = listNode2;
-        }
 
         phelpersNode1 = new AHelpers(listNode3);
-        }
         nodeList.add(phelpersNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -5623,14 +5231,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PHelperDef phelperdefNode1;
-        {
         TId tidNode2;
         PRegExp pregexpNode3;
         tidNode2 = (TId)nodeArrayList1.get(0);
         pregexpNode3 = (PRegExp)nodeArrayList3.get(0);
 
         phelperdefNode1 = new AHelperDef(tidNode2, pregexpNode3);
-        }
         nodeList.add(phelperdefNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -5646,16 +5252,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PStates pstatesNode1;
-        {
         List<TId> listNode3;
-        {
         List<TId> listNode2;
         listNode2 = (List<TId>)nodeArrayList2.get(0);
         listNode3 = listNode2;
-        }
 
         pstatesNode1 = new AStates(listNode3);
-        }
         nodeList.add(pstatesNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -5669,7 +5271,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<TId> listNode2;
-        {
         TId tidNode1;
         tidNode1 = (TId)nodeArrayList1.get(0);
         if(tidNode1 != null) {
@@ -5677,7 +5278,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -5692,7 +5292,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<TId> listNode3;
-        {
         TId tidNode1;
         tidNode1 = (TId)nodeArrayList1.get(0);
         List<TId> listNode2;
@@ -5707,7 +5306,6 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -5737,16 +5335,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTokens ptokensNode1;
-        {
         List<PTokenDef> listNode3;
-        {
         List<PTokenDef> listNode2;
         listNode2 = (List<PTokenDef>)nodeArrayList2.get(0);
         listNode3 = listNode2;
-        }
 
         ptokensNode1 = new ATokens(listNode3);
-        }
         nodeList.add(ptokensNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -5763,14 +5357,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTokenDef ptokendefNode1;
-        {
         TId tidNode3;
         PRegExp pregexpNode4;
         tidNode3 = (TId)nodeArrayList1.get(0);
         pregexpNode4 = (PRegExp)nodeArrayList3.get(0);
 
         ptokendefNode1 = new ATokenDef(null, tidNode3, pregexpNode4, null, null);
-        }
         nodeList.add(ptokendefNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -5788,7 +5380,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTokenDef ptokendefNode1;
-        {
         PStateList pstatelistNode2;
         TId tidNode3;
         PRegExp pregexpNode4;
@@ -5797,7 +5388,6 @@ public class Parser implements IParser
         pregexpNode4 = (PRegExp)nodeArrayList4.get(0);
 
         ptokendefNode1 = new ATokenDef(pstatelistNode2, tidNode3, pregexpNode4, null, null);
-        }
         nodeList.add(ptokendefNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -5815,7 +5405,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTokenDef ptokendefNode1;
-        {
         TId tidNode3;
         PRegExp pregexpNode4;
         TSlash tslashNode5;
@@ -5826,7 +5415,6 @@ public class Parser implements IParser
         pregexpNode6 = (PRegExp)nodeArrayList4.get(1);
 
         ptokendefNode1 = new ATokenDef(null, tidNode3, pregexpNode4, tslashNode5, pregexpNode6);
-        }
         nodeList.add(ptokendefNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -5845,7 +5433,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTokenDef ptokendefNode1;
-        {
         PStateList pstatelistNode2;
         TId tidNode3;
         PRegExp pregexpNode4;
@@ -5858,7 +5445,6 @@ public class Parser implements IParser
         pregexpNode6 = (PRegExp)nodeArrayList5.get(1);
 
         ptokendefNode1 = new ATokenDef(pstatelistNode2, tidNode3, pregexpNode4, tslashNode5, pregexpNode6);
-        }
         nodeList.add(ptokendefNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
         return nodeList;
@@ -5874,12 +5460,10 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PStateList pstatelistNode1;
-        {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList2.get(0);
 
         pstatelistNode1 = new AStateList(tidNode2, null, Collections.EMPTY_LIST);
-        }
         nodeList.add(pstatelistNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -5896,14 +5480,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PStateList pstatelistNode1;
-        {
         TId tidNode2;
         PTransition ptransitionNode3;
         tidNode2 = (TId)nodeArrayList2.get(0);
         ptransitionNode3 = (PTransition)nodeArrayList3.get(0);
 
         pstatelistNode1 = new AStateList(tidNode2, ptransitionNode3, Collections.EMPTY_LIST);
-        }
         nodeList.add(pstatelistNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -5920,18 +5502,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PStateList pstatelistNode1;
-        {
         TId tidNode2;
         List<PStateListTail> listNode5;
         tidNode2 = (TId)nodeArrayList2.get(0);
-        {
         List<PStateListTail> listNode4;
         listNode4 = (List<PStateListTail>)nodeArrayList3.get(0);
         listNode5 = listNode4;
-        }
 
         pstatelistNode1 = new AStateList(tidNode2, null, listNode5);
-        }
         nodeList.add(pstatelistNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -5949,20 +5527,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PStateList pstatelistNode1;
-        {
         TId tidNode2;
         PTransition ptransitionNode3;
         List<PStateListTail> listNode5;
         tidNode2 = (TId)nodeArrayList2.get(0);
         ptransitionNode3 = (PTransition)nodeArrayList3.get(0);
-        {
         List<PStateListTail> listNode4;
         listNode4 = (List<PStateListTail>)nodeArrayList4.get(0);
         listNode5 = listNode4;
-        }
 
         pstatelistNode1 = new AStateList(tidNode2, ptransitionNode3, listNode5);
-        }
         nodeList.add(pstatelistNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -5977,12 +5551,10 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PStateListTail pstatelisttailNode1;
-        {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList2.get(0);
 
         pstatelisttailNode1 = new AStateListTail(tidNode2, null);
-        }
         nodeList.add(pstatelisttailNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -5998,14 +5570,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PStateListTail pstatelisttailNode1;
-        {
         TId tidNode2;
         PTransition ptransitionNode3;
         tidNode2 = (TId)nodeArrayList2.get(0);
         ptransitionNode3 = (PTransition)nodeArrayList3.get(0);
 
         pstatelisttailNode1 = new AStateListTail(tidNode2, ptransitionNode3);
-        }
         nodeList.add(pstatelisttailNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -6020,12 +5590,10 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTransition ptransitionNode1;
-        {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList2.get(0);
 
         ptransitionNode1 = new ATransition(tidNode2);
-        }
         nodeList.add(ptransitionNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -6059,16 +5627,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PIgnTokens pigntokensNode1;
-        {
         List<TId> listNode3;
-        {
         List<TId> listNode2;
         listNode2 = (List<TId>)nodeArrayList3.get(0);
         listNode3 = listNode2;
-        }
 
         pigntokensNode1 = new AIgnTokens(listNode3);
-        }
         nodeList.add(pigntokensNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -6100,9 +5664,7 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PRegExp pregexpNode1;
-        {
         List<PConcat> listNode3;
-        {
         PConcat pconcatNode2;
         pconcatNode2 = (PConcat)nodeArrayList1.get(0);
         if(pconcatNode2 != null) {
@@ -6110,10 +5672,8 @@ public class Parser implements IParser
         } else {
             listNode3 = Collections.emptyList();
         }
-        }
 
         pregexpNode1 = new ARegExp(listNode3);
-        }
         nodeList.add(pregexpNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6128,9 +5688,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PRegExp pregexpNode1;
-        {
         List<PConcat> listNode4;
-        {
         PConcat pconcatNode2;
         pconcatNode2 = (PConcat)nodeArrayList1.get(0);
         List<PConcat> listNode3;
@@ -6145,10 +5703,8 @@ public class Parser implements IParser
         } else {
             listNode4.addAll(listNode3);
         }
-        }
 
         pregexpNode1 = new ARegExp(listNode4);
-        }
         nodeList.add(pregexpNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -6190,16 +5746,12 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PConcat pconcatNode1;
-        {
         List<PUnExp> listNode3;
-        {
         List<PUnExp> listNode2;
         listNode2 = (List<PUnExp>)nodeArrayList1.get(0);
         listNode3 = listNode2;
-        }
 
         pconcatNode1 = new AConcat(listNode3);
-        }
         nodeList.add(pconcatNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6213,12 +5765,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PUnExp punexpNode1;
-        {
         PBasic pbasicNode2;
         pbasicNode2 = (PBasic)nodeArrayList1.get(0);
 
         punexpNode1 = new AUnExp(pbasicNode2, null);
-        }
         nodeList.add(punexpNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6233,14 +5783,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PUnExp punexpNode1;
-        {
         PBasic pbasicNode2;
         PUnOp punopNode3;
         pbasicNode2 = (PBasic)nodeArrayList1.get(0);
         punopNode3 = (PUnOp)nodeArrayList2.get(0);
 
         punexpNode1 = new AUnExp(pbasicNode2, punopNode3);
-        }
         nodeList.add(punexpNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -6254,12 +5802,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PBasic pbasicNode1;
-        {
         PChar pcharNode2;
         pcharNode2 = (PChar)nodeArrayList1.get(0);
 
         pbasicNode1 = new ACharBasic(pcharNode2);
-        }
         nodeList.add(pbasicNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6273,12 +5819,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PBasic pbasicNode1;
-        {
         PSet psetNode2;
         psetNode2 = (PSet)nodeArrayList1.get(0);
 
         pbasicNode1 = new ASetBasic(psetNode2);
-        }
         nodeList.add(pbasicNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6292,12 +5836,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PBasic pbasicNode1;
-        {
         TString tstringNode2;
         tstringNode2 = (TString)nodeArrayList1.get(0);
 
         pbasicNode1 = new AStringBasic(tstringNode2);
-        }
         nodeList.add(pbasicNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6311,12 +5853,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PBasic pbasicNode1;
-        {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList1.get(0);
 
         pbasicNode1 = new AIdBasic(tidNode2);
-        }
         nodeList.add(pbasicNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6332,12 +5872,10 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PBasic pbasicNode1;
-        {
         PRegExp pregexpNode2;
         pregexpNode2 = (PRegExp)nodeArrayList2.get(0);
 
         pbasicNode1 = new ARegExpBasic(pregexpNode2);
-        }
         nodeList.add(pbasicNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -6351,12 +5889,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PChar pcharNode1;
-        {
         TChar tcharNode2;
         tcharNode2 = (TChar)nodeArrayList1.get(0);
 
         pcharNode1 = new ACharChar(tcharNode2);
-        }
         nodeList.add(pcharNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6370,12 +5906,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PChar pcharNode1;
-        {
         TDecChar tdeccharNode2;
         tdeccharNode2 = (TDecChar)nodeArrayList1.get(0);
 
         pcharNode1 = new ADecChar(tdeccharNode2);
-        }
         nodeList.add(pcharNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6389,12 +5923,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PChar pcharNode1;
-        {
         THexChar thexcharNode2;
         thexcharNode2 = (THexChar)nodeArrayList1.get(0);
 
         pcharNode1 = new AHexChar(thexcharNode2);
-        }
         nodeList.add(pcharNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6412,7 +5944,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PSet psetNode1;
-        {
         PBasic pbasicNode2;
         PBinOp pbinopNode3;
         PBasic pbasicNode4;
@@ -6421,7 +5952,6 @@ public class Parser implements IParser
         pbasicNode4 = (PBasic)nodeArrayList4.get(0);
 
         psetNode1 = new AOperationSet(pbasicNode2, pbinopNode3, pbasicNode4);
-        }
         nodeList.add(psetNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -6439,14 +5969,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PSet psetNode1;
-        {
         PChar pcharNode2;
         PChar pcharNode3;
         pcharNode2 = (PChar)nodeArrayList2.get(0);
         pcharNode3 = (PChar)nodeArrayList4.get(0);
 
         psetNode1 = new AIntervalSet(pcharNode2, pcharNode3);
-        }
         nodeList.add(psetNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -6460,12 +5988,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PUnOp punopNode1;
-        {
         TStar tstarNode2;
         tstarNode2 = (TStar)nodeArrayList1.get(0);
 
         punopNode1 = new AStarUnOp(tstarNode2);
-        }
         nodeList.add(punopNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6479,12 +6005,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PUnOp punopNode1;
-        {
         TQMark tqmarkNode2;
         tqmarkNode2 = (TQMark)nodeArrayList1.get(0);
 
         punopNode1 = new AQMarkUnOp(tqmarkNode2);
-        }
         nodeList.add(punopNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6498,12 +6022,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PUnOp punopNode1;
-        {
         TPlus tplusNode2;
         tplusNode2 = (TPlus)nodeArrayList1.get(0);
 
         punopNode1 = new APlusUnOp(tplusNode2);
-        }
         nodeList.add(punopNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6548,16 +6070,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PProductions pproductionsNode1;
-        {
         List<PProd> listNode3;
-        {
         List<PProd> listNode2;
         listNode2 = (List<PProd>)nodeArrayList2.get(0);
         listNode3 = listNode2;
-        }
 
         pproductionsNode1 = new AProductions(listNode3);
-        }
         nodeList.add(pproductionsNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -6574,18 +6092,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PProd pprodNode1;
-        {
         TId tidNode2;
         List<PAlt> listNode6;
         tidNode2 = (TId)nodeArrayList1.get(0);
-        {
         List<PAlt> listNode5;
         listNode5 = (List<PAlt>)nodeArrayList3.get(0);
         listNode6 = listNode5;
-        }
 
         pprodNode1 = new AProd(tidNode2, null, Collections.EMPTY_LIST, listNode6);
-        }
         nodeList.add(pprodNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -6603,26 +6117,20 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PProd pprodNode1;
-        {
         TId tidNode2;
         TArrow tarrowNode3;
         List<PElem> listNode5;
         List<PAlt> listNode7;
         tidNode2 = (TId)nodeArrayList1.get(0);
         tarrowNode3 = (TArrow)nodeArrayList2.get(0);
-        {
         List<PElem> listNode4;
         listNode4 = (List<PElem>)nodeArrayList2.get(1);
         listNode5 = listNode4;
-        }
-        {
         List<PAlt> listNode6;
         listNode6 = (List<PAlt>)nodeArrayList4.get(0);
         listNode7 = listNode6;
-        }
 
         pprodNode1 = new AProd(tidNode2, tarrowNode3, listNode5, listNode7);
-        }
         nodeList.add(pprodNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -6658,11 +6166,9 @@ public class Parser implements IParser
         TArrow tarrowNode1;
         List<PElem> listNode3;
         tarrowNode1 = (TArrow)nodeArrayList2.get(0);
-        {
         List<PElem> listNode2;
         listNode2 = (List<PElem>)nodeArrayList3.get(0);
         listNode3 = listNode2;
-        }
         nodeList.add(tarrowNode1);
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
@@ -6677,7 +6183,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PAlt> listNode2;
-        {
         PAlt paltNode1;
         paltNode1 = (PAlt)nodeArrayList1.get(0);
         if(paltNode1 != null) {
@@ -6685,7 +6190,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6700,7 +6204,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PAlt> listNode3;
-        {
         PAlt paltNode1;
         paltNode1 = (PAlt)nodeArrayList1.get(0);
         List<PAlt> listNode2;
@@ -6715,7 +6218,6 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -6757,12 +6259,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PAlt paltNode1;
-        {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList1.get(0);
 
         paltNode1 = new AAlt(tidNode2, Collections.EMPTY_LIST, null);
-        }
         nodeList.add(paltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6776,16 +6276,12 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PAlt paltNode1;
-        {
         List<PElem> listNode4;
-        {
         List<PElem> listNode3;
         listNode3 = (List<PElem>)nodeArrayList1.get(0);
         listNode4 = listNode3;
-        }
 
         paltNode1 = new AAlt(null, listNode4, null);
-        }
         nodeList.add(paltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6800,18 +6296,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PAlt paltNode1;
-        {
         TId tidNode2;
         List<PElem> listNode4;
         tidNode2 = (TId)nodeArrayList1.get(0);
-        {
         List<PElem> listNode3;
         listNode3 = (List<PElem>)nodeArrayList2.get(0);
         listNode4 = listNode3;
-        }
 
         paltNode1 = new AAlt(tidNode2, listNode4, null);
-        }
         nodeList.add(paltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -6825,12 +6317,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PAlt paltNode1;
-        {
         PAltTransform palttransformNode4;
         palttransformNode4 = (PAltTransform)nodeArrayList1.get(0);
 
         paltNode1 = new AAlt(null, Collections.EMPTY_LIST, palttransformNode4);
-        }
         nodeList.add(paltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -6845,14 +6335,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PAlt paltNode1;
-        {
         TId tidNode2;
         PAltTransform palttransformNode4;
         tidNode2 = (TId)nodeArrayList1.get(0);
         palttransformNode4 = (PAltTransform)nodeArrayList2.get(0);
 
         paltNode1 = new AAlt(tidNode2, Collections.EMPTY_LIST, palttransformNode4);
-        }
         nodeList.add(paltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -6867,18 +6355,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PAlt paltNode1;
-        {
         List<PElem> listNode4;
         PAltTransform palttransformNode5;
-        {
         List<PElem> listNode3;
         listNode3 = (List<PElem>)nodeArrayList1.get(0);
         listNode4 = listNode3;
-        }
         palttransformNode5 = (PAltTransform)nodeArrayList2.get(0);
 
         paltNode1 = new AAlt(null, listNode4, palttransformNode5);
-        }
         nodeList.add(paltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -6894,20 +6378,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PAlt paltNode1;
-        {
         TId tidNode2;
         List<PElem> listNode4;
         PAltTransform palttransformNode5;
         tidNode2 = (TId)nodeArrayList1.get(0);
-        {
         List<PElem> listNode3;
         listNode3 = (List<PElem>)nodeArrayList2.get(0);
         listNode4 = listNode3;
-        }
         palttransformNode5 = (PAltTransform)nodeArrayList3.get(0);
 
         paltNode1 = new AAlt(tidNode2, listNode4, palttransformNode5);
-        }
         nodeList.add(paltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -6923,14 +6403,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PAltTransform palttransformNode1;
-        {
         TLBrace tlbraceNode2;
         TRBrace trbraceNode4;
         tlbraceNode2 = (TLBrace)nodeArrayList1.get(0);
         trbraceNode4 = (TRBrace)nodeArrayList3.get(0);
 
         palttransformNode1 = new AAltTransform(tlbraceNode2, Collections.EMPTY_LIST, trbraceNode4);
-        }
         nodeList.add(palttransformNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -6947,20 +6425,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PAltTransform palttransformNode1;
-        {
         TLBrace tlbraceNode2;
         List<PTerm> listNode4;
         TRBrace trbraceNode5;
         tlbraceNode2 = (TLBrace)nodeArrayList1.get(0);
-        {
         List<PTerm> listNode3;
         listNode3 = (List<PTerm>)nodeArrayList3.get(0);
         listNode4 = listNode3;
-        }
         trbraceNode5 = (TRBrace)nodeArrayList4.get(0);
 
         palttransformNode1 = new AAltTransform(tlbraceNode2, listNode4, trbraceNode5);
-        }
         nodeList.add(palttransformNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -6977,14 +6451,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1;
-        {
         PProdName pprodnameNode2;
         TLPar tlparNode3;
         pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
         tlparNode3 = (TLPar)nodeArrayList3.get(0);
 
         ptermNode1 = new ANewTerm(pprodnameNode2, tlparNode3, Collections.EMPTY_LIST);
-        }
         nodeList.add(ptermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -7002,20 +6474,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1;
-        {
         PProdName pprodnameNode2;
         TLPar tlparNode3;
         List<PTerm> listNode5;
         pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
         tlparNode3 = (TLPar)nodeArrayList3.get(0);
-        {
         List<PTerm> listNode4;
         listNode4 = (List<PTerm>)nodeArrayList4.get(0);
         listNode5 = listNode4;
-        }
 
         ptermNode1 = new ANewTerm(pprodnameNode2, tlparNode3, listNode5);
-        }
         nodeList.add(ptermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -7030,12 +6498,10 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1;
-        {
         TLBkt tlbktNode2;
         tlbktNode2 = (TLBkt)nodeArrayList1.get(0);
 
         ptermNode1 = new AListTerm(tlbktNode2, Collections.EMPTY_LIST);
-        }
         nodeList.add(ptermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7051,18 +6517,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1;
-        {
         TLBkt tlbktNode2;
         List<PListTerm> listNode4;
         tlbktNode2 = (TLBkt)nodeArrayList1.get(0);
-        {
         List<PListTerm> listNode3;
         listNode3 = (List<PListTerm>)nodeArrayList2.get(0);
         listNode4 = listNode3;
-        }
 
         ptermNode1 = new AListTerm(tlbktNode2, listNode4);
-        }
         nodeList.add(ptermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -7076,12 +6538,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1;
-        {
         TId tidNode3;
         tidNode3 = (TId)nodeArrayList1.get(0);
 
         ptermNode1 = new ASimpleTerm(null, tidNode3, null);
-        }
         nodeList.add(ptermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7096,14 +6556,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1;
-        {
         PSpecifier pspecifierNode2;
         TId tidNode3;
         pspecifierNode2 = (PSpecifier)nodeArrayList1.get(0);
         tidNode3 = (TId)nodeArrayList2.get(0);
 
         ptermNode1 = new ASimpleTerm(pspecifierNode2, tidNode3, null);
-        }
         nodeList.add(ptermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7118,14 +6576,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1;
-        {
         TId tidNode3;
         TId tidNode4;
         tidNode3 = (TId)nodeArrayList1.get(0);
         tidNode4 = (TId)nodeArrayList2.get(0);
 
         ptermNode1 = new ASimpleTerm(null, tidNode3, tidNode4);
-        }
         nodeList.add(ptermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7141,7 +6597,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1;
-        {
         PSpecifier pspecifierNode2;
         TId tidNode3;
         TId tidNode4;
@@ -7150,7 +6605,6 @@ public class Parser implements IParser
         tidNode4 = (TId)nodeArrayList3.get(0);
 
         ptermNode1 = new ASimpleTerm(pspecifierNode2, tidNode3, tidNode4);
-        }
         nodeList.add(ptermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -7179,7 +6633,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PListTerm> listNode2;
-        {
         PListTerm plisttermNode1;
         plisttermNode1 = (PListTerm)nodeArrayList1.get(0);
         if(plisttermNode1 != null) {
@@ -7187,7 +6640,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7202,7 +6654,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PListTerm> listNode3;
-        {
         PListTerm plisttermNode1;
         plisttermNode1 = (PListTerm)nodeArrayList1.get(0);
         List<PListTerm> listNode2;
@@ -7217,7 +6668,6 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7234,14 +6684,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PListTerm plisttermNode1;
-        {
         PProdName pprodnameNode2;
         TLPar tlparNode3;
         pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
         tlparNode3 = (TLPar)nodeArrayList3.get(0);
 
         plisttermNode1 = new ANewListTerm(pprodnameNode2, tlparNode3, Collections.EMPTY_LIST);
-        }
         nodeList.add(plisttermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -7259,20 +6707,16 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PListTerm plisttermNode1;
-        {
         PProdName pprodnameNode2;
         TLPar tlparNode3;
         List<PTerm> listNode5;
         pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
         tlparNode3 = (TLPar)nodeArrayList3.get(0);
-        {
         List<PTerm> listNode4;
         listNode4 = (List<PTerm>)nodeArrayList4.get(0);
         listNode5 = listNode4;
-        }
 
         plisttermNode1 = new ANewListTerm(pprodnameNode2, tlparNode3, listNode5);
-        }
         nodeList.add(plisttermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
         return nodeList;
@@ -7286,12 +6730,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PListTerm plisttermNode1;
-        {
         TId tidNode3;
         tidNode3 = (TId)nodeArrayList1.get(0);
 
         plisttermNode1 = new ASimpleListTerm(null, tidNode3, null);
-        }
         nodeList.add(plisttermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7306,14 +6748,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PListTerm plisttermNode1;
-        {
         PSpecifier pspecifierNode2;
         TId tidNode3;
         pspecifierNode2 = (PSpecifier)nodeArrayList1.get(0);
         tidNode3 = (TId)nodeArrayList2.get(0);
 
         plisttermNode1 = new ASimpleListTerm(pspecifierNode2, tidNode3, null);
-        }
         nodeList.add(plisttermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7328,14 +6768,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PListTerm plisttermNode1;
-        {
         TId tidNode3;
         TId tidNode4;
         tidNode3 = (TId)nodeArrayList1.get(0);
         tidNode4 = (TId)nodeArrayList2.get(0);
 
         plisttermNode1 = new ASimpleListTerm(null, tidNode3, tidNode4);
-        }
         nodeList.add(plisttermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7351,7 +6789,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PListTerm plisttermNode1;
-        {
         PSpecifier pspecifierNode2;
         TId tidNode3;
         TId tidNode4;
@@ -7360,7 +6797,6 @@ public class Parser implements IParser
         tidNode4 = (TId)nodeArrayList3.get(0);
 
         plisttermNode1 = new ASimpleListTerm(pspecifierNode2, tidNode3, tidNode4);
-        }
         nodeList.add(plisttermNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -7404,12 +6840,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PProdName pprodnameNode1;
-        {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList1.get(0);
 
         pprodnameNode1 = new AProdName(tidNode2, null);
-        }
         nodeList.add(pprodnameNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7424,14 +6858,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PProdName pprodnameNode1;
-        {
         TId tidNode2;
         TId tidNode3;
         tidNode2 = (TId)nodeArrayList1.get(0);
         tidNode3 = (TId)nodeArrayList2.get(0);
 
         pprodnameNode1 = new AProdName(tidNode2, tidNode3);
-        }
         nodeList.add(pprodnameNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7460,7 +6892,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PTerm> listNode2;
-        {
         PTerm ptermNode1;
         ptermNode1 = (PTerm)nodeArrayList1.get(0);
         if(ptermNode1 != null) {
@@ -7468,7 +6899,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7483,7 +6913,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PTerm> listNode3;
-        {
         PTerm ptermNode1;
         ptermNode1 = (PTerm)nodeArrayList1.get(0);
         List<PTerm> listNode2;
@@ -7498,7 +6927,6 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7543,12 +6971,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PElem pelemNode1;
-        {
         TId tidNode4;
         tidNode4 = (TId)nodeArrayList1.get(0);
 
         pelemNode1 = new AElem(null, null, tidNode4, null);
-        }
         nodeList.add(pelemNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7563,14 +6989,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PElem pelemNode1;
-        {
         TId tidNode2;
         TId tidNode4;
         tidNode2 = (TId)nodeArrayList1.get(0);
         tidNode4 = (TId)nodeArrayList2.get(0);
 
         pelemNode1 = new AElem(tidNode2, null, tidNode4, null);
-        }
         nodeList.add(pelemNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7585,14 +7009,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PElem pelemNode1;
-        {
         PSpecifier pspecifierNode3;
         TId tidNode4;
         pspecifierNode3 = (PSpecifier)nodeArrayList1.get(0);
         tidNode4 = (TId)nodeArrayList2.get(0);
 
         pelemNode1 = new AElem(null, pspecifierNode3, tidNode4, null);
-        }
         nodeList.add(pelemNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7608,7 +7030,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PElem pelemNode1;
-        {
         TId tidNode2;
         PSpecifier pspecifierNode3;
         TId tidNode4;
@@ -7617,7 +7038,6 @@ public class Parser implements IParser
         tidNode4 = (TId)nodeArrayList3.get(0);
 
         pelemNode1 = new AElem(tidNode2, pspecifierNode3, tidNode4, null);
-        }
         nodeList.add(pelemNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -7632,14 +7052,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PElem pelemNode1;
-        {
         TId tidNode4;
         PUnOp punopNode5;
         tidNode4 = (TId)nodeArrayList1.get(0);
         punopNode5 = (PUnOp)nodeArrayList2.get(0);
 
         pelemNode1 = new AElem(null, null, tidNode4, punopNode5);
-        }
         nodeList.add(pelemNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7655,7 +7073,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PElem pelemNode1;
-        {
         TId tidNode2;
         TId tidNode4;
         PUnOp punopNode5;
@@ -7664,7 +7081,6 @@ public class Parser implements IParser
         punopNode5 = (PUnOp)nodeArrayList3.get(0);
 
         pelemNode1 = new AElem(tidNode2, null, tidNode4, punopNode5);
-        }
         nodeList.add(pelemNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -7680,7 +7096,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PElem pelemNode1;
-        {
         PSpecifier pspecifierNode3;
         TId tidNode4;
         PUnOp punopNode5;
@@ -7689,7 +7104,6 @@ public class Parser implements IParser
         punopNode5 = (PUnOp)nodeArrayList3.get(0);
 
         pelemNode1 = new AElem(null, pspecifierNode3, tidNode4, punopNode5);
-        }
         nodeList.add(pelemNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
         return nodeList;
@@ -7706,7 +7120,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PElem pelemNode1;
-        {
         TId tidNode2;
         PSpecifier pspecifierNode3;
         TId tidNode4;
@@ -7717,7 +7130,6 @@ public class Parser implements IParser
         punopNode5 = (PUnOp)nodeArrayList4.get(0);
 
         pelemNode1 = new AElem(tidNode2, pspecifierNode3, tidNode4, punopNode5);
-        }
         nodeList.add(pelemNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -7783,16 +7195,12 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PAst pastNode1;
-        {
         List<PAstProd> listNode3;
-        {
         List<PAstProd> listNode2;
         listNode2 = (List<PAstProd>)nodeArrayList4.get(0);
         listNode3 = listNode2;
-        }
 
         pastNode1 = new AAst(listNode3);
-        }
         nodeList.add(pastNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -7809,18 +7217,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PAstProd pastprodNode1;
-        {
         TId tidNode2;
         List<PAstAlt> listNode4;
         tidNode2 = (TId)nodeArrayList1.get(0);
-        {
         List<PAstAlt> listNode3;
         listNode3 = (List<PAstAlt>)nodeArrayList3.get(0);
         listNode4 = listNode3;
-        }
 
         pastprodNode1 = new AAstProd(tidNode2, listNode4);
-        }
         nodeList.add(pastprodNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
         return nodeList;
@@ -7834,7 +7238,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PAstAlt> listNode2;
-        {
         PAstAlt pastaltNode1;
         pastaltNode1 = (PAstAlt)nodeArrayList1.get(0);
         if(pastaltNode1 != null) {
@@ -7842,7 +7245,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7857,7 +7259,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PAstAlt> listNode3;
-        {
         PAstAlt pastaltNode1;
         pastaltNode1 = (PAstAlt)nodeArrayList1.get(0);
         List<PAstAlt> listNode2;
@@ -7872,7 +7273,6 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7914,12 +7314,10 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PAstAlt pastaltNode1;
-        {
         TId tidNode2;
         tidNode2 = (TId)nodeArrayList1.get(0);
 
         pastaltNode1 = new AAstAlt(tidNode2, Collections.EMPTY_LIST);
-        }
         nodeList.add(pastaltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7933,16 +7331,12 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         PAstAlt pastaltNode1;
-        {
         List<PElem> listNode4;
-        {
         List<PElem> listNode3;
         listNode3 = (List<PElem>)nodeArrayList1.get(0);
         listNode4 = listNode3;
-        }
 
         pastaltNode1 = new AAstAlt(null, listNode4);
-        }
         nodeList.add(pastaltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -7957,18 +7351,14 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         PAstAlt pastaltNode1;
-        {
         TId tidNode2;
         List<PElem> listNode4;
         tidNode2 = (TId)nodeArrayList1.get(0);
-        {
         List<PElem> listNode3;
         listNode3 = (List<PElem>)nodeArrayList2.get(0);
         listNode4 = listNode3;
-        }
 
         pastaltNode1 = new AAstAlt(tidNode2, listNode4);
-        }
         nodeList.add(pastaltNode1);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -7982,7 +7372,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<TPkgId> listNode2;
-        {
         TPkgId tpkgidNode1;
         tpkgidNode1 = (TPkgId)nodeArrayList1.get(0);
         if(tpkgidNode1 != null) {
@@ -7990,7 +7379,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8005,7 +7393,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<TPkgId> listNode3;
-        {
         List<TPkgId> listNode1;
         listNode1 = (List<TPkgId>)nodeArrayList1.get(0);
         TPkgId tpkgidNode2;
@@ -8019,7 +7406,6 @@ public class Parser implements IParser
         {
             listNode3.add(tpkgidNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8033,7 +7419,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PHelperDef> listNode2;
-        {
         PHelperDef phelperdefNode1;
         phelperdefNode1 = (PHelperDef)nodeArrayList1.get(0);
         if(phelperdefNode1 != null) {
@@ -8041,7 +7426,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8056,7 +7440,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PHelperDef> listNode3;
-        {
         List<PHelperDef> listNode1;
         listNode1 = (List<PHelperDef>)nodeArrayList1.get(0);
         PHelperDef phelperdefNode2;
@@ -8070,7 +7453,6 @@ public class Parser implements IParser
         {
             listNode3.add(phelperdefNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8084,7 +7466,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<TId> listNode2;
-        {
         TId tidNode1;
         tidNode1 = (TId)nodeArrayList1.get(0);
         if(tidNode1 != null) {
@@ -8092,7 +7473,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8107,7 +7487,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<TId> listNode3;
-        {
         List<TId> listNode1;
         listNode1 = (List<TId>)nodeArrayList1.get(0);
         TId tidNode2;
@@ -8121,7 +7500,6 @@ public class Parser implements IParser
         {
             listNode3.add(tidNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8135,7 +7513,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PTokenDef> listNode2;
-        {
         PTokenDef ptokendefNode1;
         ptokendefNode1 = (PTokenDef)nodeArrayList1.get(0);
         if(ptokendefNode1 != null) {
@@ -8143,7 +7520,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8158,7 +7534,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PTokenDef> listNode3;
-        {
         List<PTokenDef> listNode1;
         listNode1 = (List<PTokenDef>)nodeArrayList1.get(0);
         PTokenDef ptokendefNode2;
@@ -8172,7 +7547,6 @@ public class Parser implements IParser
         {
             listNode3.add(ptokendefNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8186,7 +7560,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PStateListTail> listNode2;
-        {
         PStateListTail pstatelisttailNode1;
         pstatelisttailNode1 = (PStateListTail)nodeArrayList1.get(0);
         if(pstatelisttailNode1 != null) {
@@ -8194,7 +7567,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8209,7 +7581,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PStateListTail> listNode3;
-        {
         List<PStateListTail> listNode1;
         listNode1 = (List<PStateListTail>)nodeArrayList1.get(0);
         PStateListTail pstatelisttailNode2;
@@ -8223,7 +7594,6 @@ public class Parser implements IParser
         {
             listNode3.add(pstatelisttailNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8237,7 +7607,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PConcat> listNode2;
-        {
         PConcat pconcatNode1;
         pconcatNode1 = (PConcat)nodeArrayList1.get(0);
         if(pconcatNode1 != null) {
@@ -8245,7 +7614,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8260,7 +7628,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PConcat> listNode3;
-        {
         List<PConcat> listNode1;
         listNode1 = (List<PConcat>)nodeArrayList1.get(0);
         PConcat pconcatNode2;
@@ -8274,7 +7641,6 @@ public class Parser implements IParser
         {
             listNode3.add(pconcatNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8288,7 +7654,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PUnExp> listNode2;
-        {
         PUnExp punexpNode1;
         punexpNode1 = (PUnExp)nodeArrayList1.get(0);
         if(punexpNode1 != null) {
@@ -8296,7 +7661,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8311,7 +7675,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PUnExp> listNode3;
-        {
         List<PUnExp> listNode1;
         listNode1 = (List<PUnExp>)nodeArrayList1.get(0);
         PUnExp punexpNode2;
@@ -8325,7 +7688,6 @@ public class Parser implements IParser
         {
             listNode3.add(punexpNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8339,7 +7701,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PProd> listNode2;
-        {
         PProd pprodNode1;
         pprodNode1 = (PProd)nodeArrayList1.get(0);
         if(pprodNode1 != null) {
@@ -8347,7 +7708,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8362,7 +7722,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PProd> listNode3;
-        {
         List<PProd> listNode1;
         listNode1 = (List<PProd>)nodeArrayList1.get(0);
         PProd pprodNode2;
@@ -8376,7 +7735,6 @@ public class Parser implements IParser
         {
             listNode3.add(pprodNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8390,7 +7748,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PElem> listNode2;
-        {
         PElem pelemNode1;
         pelemNode1 = (PElem)nodeArrayList1.get(0);
         if(pelemNode1 != null) {
@@ -8398,7 +7755,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8413,7 +7769,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PElem> listNode3;
-        {
         List<PElem> listNode1;
         listNode1 = (List<PElem>)nodeArrayList1.get(0);
         PElem pelemNode2;
@@ -8427,7 +7782,6 @@ public class Parser implements IParser
         {
             listNode3.add(pelemNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8441,7 +7795,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PAlt> listNode2;
-        {
         PAlt paltNode1;
         paltNode1 = (PAlt)nodeArrayList1.get(0);
         if(paltNode1 != null) {
@@ -8449,7 +7802,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8464,7 +7816,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PAlt> listNode3;
-        {
         List<PAlt> listNode1;
         listNode1 = (List<PAlt>)nodeArrayList1.get(0);
         PAlt paltNode2;
@@ -8478,7 +7829,6 @@ public class Parser implements IParser
         {
             listNode3.add(paltNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8492,7 +7842,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PTerm> listNode2;
-        {
         PTerm ptermNode1;
         ptermNode1 = (PTerm)nodeArrayList1.get(0);
         if(ptermNode1 != null) {
@@ -8500,7 +7849,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8515,7 +7863,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PTerm> listNode3;
-        {
         List<PTerm> listNode1;
         listNode1 = (List<PTerm>)nodeArrayList1.get(0);
         PTerm ptermNode2;
@@ -8529,7 +7876,6 @@ public class Parser implements IParser
         {
             listNode3.add(ptermNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8543,7 +7889,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PListTerm> listNode2;
-        {
         PListTerm plisttermNode1;
         plisttermNode1 = (PListTerm)nodeArrayList1.get(0);
         if(plisttermNode1 != null) {
@@ -8551,7 +7896,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8566,7 +7910,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PListTerm> listNode3;
-        {
         List<PListTerm> listNode1;
         listNode1 = (List<PListTerm>)nodeArrayList1.get(0);
         PListTerm plisttermNode2;
@@ -8580,7 +7923,6 @@ public class Parser implements IParser
         {
             listNode3.add(plisttermNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8594,7 +7936,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PTerm> listNode2;
-        {
         PTerm ptermNode1;
         ptermNode1 = (PTerm)nodeArrayList1.get(0);
         if(ptermNode1 != null) {
@@ -8602,7 +7943,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8617,7 +7957,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PTerm> listNode3;
-        {
         List<PTerm> listNode1;
         listNode1 = (List<PTerm>)nodeArrayList1.get(0);
         PTerm ptermNode2;
@@ -8631,7 +7970,6 @@ public class Parser implements IParser
         {
             listNode3.add(ptermNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8645,7 +7983,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PAstProd> listNode2;
-        {
         PAstProd pastprodNode1;
         pastprodNode1 = (PAstProd)nodeArrayList1.get(0);
         if(pastprodNode1 != null) {
@@ -8653,7 +7990,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8668,7 +8004,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PAstProd> listNode3;
-        {
         List<PAstProd> listNode1;
         listNode1 = (List<PAstProd>)nodeArrayList1.get(0);
         PAstProd pastprodNode2;
@@ -8682,7 +8017,6 @@ public class Parser implements IParser
         {
             listNode3.add(pastprodNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
@@ -8696,7 +8030,6 @@ public class Parser implements IParser
 
         List<Object> nodeArrayList1 = pop();
         List<PAstAlt> listNode2;
-        {
         PAstAlt pastaltNode1;
         pastaltNode1 = (PAstAlt)nodeArrayList1.get(0);
         if(pastaltNode1 != null) {
@@ -8704,7 +8037,6 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        }
         nodeList.add(listNode2);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
         return nodeList;
@@ -8719,7 +8051,6 @@ public class Parser implements IParser
         List<Object> nodeArrayList2 = pop();
         List<Object> nodeArrayList1 = pop();
         List<PAstAlt> listNode3;
-        {
         List<PAstAlt> listNode1;
         listNode1 = (List<PAstAlt>)nodeArrayList1.get(0);
         PAstAlt pastaltNode2;
@@ -8733,7 +8064,6 @@ public class Parser implements IParser
         {
             listNode3.add(pastaltNode2);
         }
-        }
         nodeList.add(listNode3);
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
         return nodeList;
diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt
index 5fc8e9973fdd3a3518443ce15cc5823f0611a38c..8313c88a8545589636f3edfcca82daa0fa8d688a 100644
--- a/src/main/resources/org/sablecc/sablecc/parser.txt
+++ b/src/main/resources/org/sablecc/sablecc/parser.txt
@@ -331,16 +331,6 @@ Macro:ParserNewBodyDeclNull
 
 $
 
-Macro:ParserBraceOpening
-        {
-
-$
-
-Macro:ParserBraceClosing
-        }
-
-$
-
 Macro:ParserVariableDeclaration
         $0$ $1$;