diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
index 2b10aac53f74a8fb194b35bf45600c0fde402ec8..510cc4ca568b5c914ad6f2f73dfba2b2244e0fd7 100644
--- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
@@ -130,13 +130,18 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
   {
     try
     {
+      PTerm firstTerm = null;
       for(PTerm term : node.getTerms())
       {
+        if(firstTerm == null)
+        {
+          firstTerm = term;
+        }
         macros.apply(file, "ParserNewBodyListAdd", new String[] {getVariableName(term)});
       }
-      if (popCount > 0) {
+      if (firstTerm != null && popCount > 0) {
         // The nodeArrayList variables are numbered starting at 1, so the first popped variable has the number popCount and not popCount-1.
-        macros.apply(file, "ParserNewCheck", new String[] {String.valueOf(popCount)});
+        macros.apply(file, "ParserNewCheck", new String[] {getVariableName(firstTerm), String.valueOf(popCount)});
       }
       macros.apply(file, "ParserNewTail");
     }
diff --git a/src/main/java/org/sablecc/sablecc/parser/Parser.java b/src/main/java/org/sablecc/sablecc/parser/Parser.java
index be900986631fcf8f24bd0f349016d842a8997024..0dd7ee340f3447eaa69718921000471fa2feae20 100644
--- a/src/main/java/org/sablecc/sablecc/parser/Parser.java
+++ b/src/main/java/org/sablecc/sablecc/parser/Parser.java
@@ -1875,7 +1875,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -1888,7 +1888,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -1904,7 +1904,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -1917,7 +1917,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -1933,7 +1933,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -1948,7 +1948,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -1966,7 +1966,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -1979,7 +1979,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -1995,7 +1995,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2010,7 +2010,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2028,7 +2028,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2043,7 +2043,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2061,7 +2061,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2078,7 +2078,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2098,7 +2098,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2111,7 +2111,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, pigntokensNode6, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -2127,7 +2127,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2142,7 +2142,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, pigntokensNode6, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2160,7 +2160,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2175,7 +2175,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, pigntokensNode6, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2193,7 +2193,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2210,7 +2210,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, pigntokensNode6, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2230,7 +2230,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2245,7 +2245,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, pigntokensNode6, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2263,7 +2263,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2280,7 +2280,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, pigntokensNode6, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2300,7 +2300,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2317,7 +2317,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, pigntokensNode6, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2337,7 +2337,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2356,7 +2356,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2378,7 +2378,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, null, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -2391,7 +2391,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, null, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -2407,7 +2407,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2422,7 +2422,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, null, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2440,7 +2440,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2455,7 +2455,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, null, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2473,7 +2473,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2490,7 +2490,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, null, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2510,7 +2510,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2525,7 +2525,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, null, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2543,7 +2543,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2560,7 +2560,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, null, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2580,7 +2580,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2597,7 +2597,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, null, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2617,7 +2617,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2636,7 +2636,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, null, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2658,7 +2658,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -2673,7 +2673,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, pigntokensNode6, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -2691,7 +2691,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2708,7 +2708,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, pigntokensNode6, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2728,7 +2728,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2745,7 +2745,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, pigntokensNode6, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2765,7 +2765,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2784,7 +2784,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, pigntokensNode6, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2806,7 +2806,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -2823,7 +2823,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -2843,7 +2843,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2862,7 +2862,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2884,7 +2884,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -2903,7 +2903,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -2925,7 +2925,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -2946,7 +2946,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -2970,7 +2970,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList6);
         return nodeList;
     }
 
@@ -2983,7 +2983,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, null, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -2999,7 +2999,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -3014,7 +3014,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, null, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -3032,7 +3032,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3047,7 +3047,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, null, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -3065,7 +3065,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3082,7 +3082,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, null, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3102,7 +3102,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3117,7 +3117,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, null, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -3135,7 +3135,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3152,7 +3152,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, null, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3172,7 +3172,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3189,7 +3189,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, null, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3209,7 +3209,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3228,7 +3228,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, null, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3250,7 +3250,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3265,7 +3265,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, pigntokensNode6, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -3283,7 +3283,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3300,7 +3300,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, pigntokensNode6, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3320,7 +3320,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3337,7 +3337,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, pigntokensNode6, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3357,7 +3357,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3376,7 +3376,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, pigntokensNode6, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3398,7 +3398,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3415,7 +3415,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, pigntokensNode6, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3435,7 +3435,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3454,7 +3454,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, pigntokensNode6, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3476,7 +3476,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3495,7 +3495,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, pigntokensNode6, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3517,7 +3517,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3538,7 +3538,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, null, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3562,7 +3562,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, null, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList6);
         return nodeList;
     }
 
@@ -3577,7 +3577,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, null, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -3595,7 +3595,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3612,7 +3612,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, null, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3632,7 +3632,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3649,7 +3649,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, null, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3669,7 +3669,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3688,7 +3688,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, null, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3710,7 +3710,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3727,7 +3727,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, null, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3747,7 +3747,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3766,7 +3766,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, null, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3788,7 +3788,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3807,7 +3807,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, null, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3829,7 +3829,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3850,7 +3850,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, null, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3874,7 +3874,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList6);
         return nodeList;
     }
 
@@ -3891,7 +3891,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, null, pigntokensNode6, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -3911,7 +3911,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3930,7 +3930,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, null, pigntokensNode6, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3952,7 +3952,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -3971,7 +3971,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, null, pigntokensNode6, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -3993,7 +3993,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4014,7 +4014,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, null, pigntokensNode6, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4038,7 +4038,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList6);
         return nodeList;
     }
 
@@ -4057,7 +4057,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, null, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -4079,7 +4079,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4100,7 +4100,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, null, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4124,7 +4124,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList6);
         return nodeList;
     }
 
@@ -4145,7 +4145,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, null, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4169,7 +4169,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList6);
         return nodeList;
     }
 
@@ -4192,7 +4192,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(Collections.EMPTY_LIST, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList6);
         return nodeList;
     }
 
@@ -4218,7 +4218,7 @@ public class Parser implements IParser
         AGrammar pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
 
         nodeList.add(pgrammarNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList7);
+        checkResult(pgrammarNode1, nodeArrayList1, nodeArrayList7);
         return nodeList;
     }
 
@@ -4231,7 +4231,7 @@ public class Parser implements IParser
         List<TPkgId> listNode1 = (List<TPkgId>)nodeArrayList2.get(0);
         List<TPkgId> listNode2 = listNode1;
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4249,7 +4249,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4273,7 +4273,7 @@ public class Parser implements IParser
             listNode3.addAll(listNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -4285,7 +4285,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         TPkgId tpkgidNode1 = (TPkgId)nodeArrayList2.get(0);
         nodeList.add(tpkgidNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(tpkgidNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4300,7 +4300,7 @@ public class Parser implements IParser
         AHelpers phelpersNode1 = new AHelpers(listNode3);
 
         nodeList.add(phelpersNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(phelpersNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4317,7 +4317,7 @@ public class Parser implements IParser
         AHelperDef phelperdefNode1 = new AHelperDef(tidNode2, pregexpNode3);
 
         nodeList.add(phelperdefNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(phelperdefNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -4333,7 +4333,7 @@ public class Parser implements IParser
         AStates pstatesNode1 = new AStates(listNode3);
 
         nodeList.add(pstatesNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pstatesNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -4350,7 +4350,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4373,7 +4373,7 @@ public class Parser implements IParser
             listNode3.addAll(listNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4385,7 +4385,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         TId tidNode1 = (TId)nodeArrayList2.get(0);
         nodeList.add(tidNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(tidNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4400,7 +4400,7 @@ public class Parser implements IParser
         ATokens ptokensNode1 = new ATokens(listNode3);
 
         nodeList.add(ptokensNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(ptokensNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4417,7 +4417,7 @@ public class Parser implements IParser
         ATokenDef ptokendefNode1 = new ATokenDef(null, tidNode3, pregexpNode4, null, null);
 
         nodeList.add(ptokendefNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(ptokendefNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -4436,7 +4436,7 @@ public class Parser implements IParser
         ATokenDef ptokendefNode1 = new ATokenDef(pstatelistNode2, tidNode3, pregexpNode4, null, null);
 
         nodeList.add(ptokendefNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(ptokendefNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4456,7 +4456,7 @@ public class Parser implements IParser
         ATokenDef ptokendefNode1 = new ATokenDef(null, tidNode3, pregexpNode4, tslashNode5, pregexpNode6);
 
         nodeList.add(ptokendefNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(ptokendefNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4478,7 +4478,7 @@ public class Parser implements IParser
         ATokenDef ptokendefNode1 = new ATokenDef(pstatelistNode2, tidNode3, pregexpNode4, tslashNode5, pregexpNode6);
 
         nodeList.add(ptokendefNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList6);
+        checkResult(ptokendefNode1, nodeArrayList1, nodeArrayList6);
         return nodeList;
     }
 
@@ -4493,7 +4493,7 @@ public class Parser implements IParser
         AStateList pstatelistNode1 = new AStateList(tidNode2, null, Collections.EMPTY_LIST);
 
         nodeList.add(pstatelistNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pstatelistNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -4510,7 +4510,7 @@ public class Parser implements IParser
         AStateList pstatelistNode1 = new AStateList(tidNode2, ptransitionNode3, Collections.EMPTY_LIST);
 
         nodeList.add(pstatelistNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pstatelistNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -4528,7 +4528,7 @@ public class Parser implements IParser
         AStateList pstatelistNode1 = new AStateList(tidNode2, null, listNode5);
 
         nodeList.add(pstatelistNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pstatelistNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -4548,7 +4548,7 @@ public class Parser implements IParser
         AStateList pstatelistNode1 = new AStateList(tidNode2, ptransitionNode3, listNode5);
 
         nodeList.add(pstatelistNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pstatelistNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4562,7 +4562,7 @@ public class Parser implements IParser
         AStateListTail pstatelisttailNode1 = new AStateListTail(tidNode2, null);
 
         nodeList.add(pstatelisttailNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pstatelisttailNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4578,7 +4578,7 @@ public class Parser implements IParser
         AStateListTail pstatelisttailNode1 = new AStateListTail(tidNode2, ptransitionNode3);
 
         nodeList.add(pstatelisttailNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pstatelisttailNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -4592,7 +4592,7 @@ public class Parser implements IParser
         ATransition ptransitionNode1 = new ATransition(tidNode2);
 
         nodeList.add(ptransitionNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(ptransitionNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4606,7 +4606,7 @@ public class Parser implements IParser
         AIgnTokens pigntokensNode1 = new AIgnTokens(Collections.EMPTY_LIST);
 
         nodeList.add(pigntokensNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pigntokensNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -4623,7 +4623,7 @@ public class Parser implements IParser
         AIgnTokens pigntokensNode1 = new AIgnTokens(listNode3);
 
         nodeList.add(pigntokensNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pigntokensNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -4637,7 +4637,7 @@ public class Parser implements IParser
         PRegExp pregexpNode2 = (PRegExp)nodeArrayList2.get(0);
         nodeList.add(tslashNode1);
         nodeList.add(pregexpNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(tslashNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4656,7 +4656,7 @@ public class Parser implements IParser
         ARegExp pregexpNode1 = new ARegExp(listNode3);
 
         nodeList.add(pregexpNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pregexpNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4681,7 +4681,7 @@ public class Parser implements IParser
         ARegExp pregexpNode1 = new ARegExp(listNode4);
 
         nodeList.add(pregexpNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pregexpNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4693,7 +4693,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         PConcat pconcatNode1 = (PConcat)nodeArrayList2.get(0);
         nodeList.add(pconcatNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pconcatNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4717,7 +4717,7 @@ public class Parser implements IParser
         AConcat pconcatNode1 = new AConcat(listNode3);
 
         nodeList.add(pconcatNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pconcatNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4730,7 +4730,7 @@ public class Parser implements IParser
         AUnExp punexpNode1 = new AUnExp(pbasicNode2, null);
 
         nodeList.add(punexpNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(punexpNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4745,7 +4745,7 @@ public class Parser implements IParser
         AUnExp punexpNode1 = new AUnExp(pbasicNode2, punopNode3);
 
         nodeList.add(punexpNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(punexpNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4758,7 +4758,7 @@ public class Parser implements IParser
         ACharBasic pbasicNode1 = new ACharBasic(pcharNode2);
 
         nodeList.add(pbasicNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pbasicNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4771,7 +4771,7 @@ public class Parser implements IParser
         ASetBasic pbasicNode1 = new ASetBasic(psetNode2);
 
         nodeList.add(pbasicNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pbasicNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4784,7 +4784,7 @@ public class Parser implements IParser
         AStringBasic pbasicNode1 = new AStringBasic(tstringNode2);
 
         nodeList.add(pbasicNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pbasicNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4797,7 +4797,7 @@ public class Parser implements IParser
         AIdBasic pbasicNode1 = new AIdBasic(tidNode2);
 
         nodeList.add(pbasicNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pbasicNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4812,7 +4812,7 @@ public class Parser implements IParser
         ARegExpBasic pbasicNode1 = new ARegExpBasic(pregexpNode2);
 
         nodeList.add(pbasicNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pbasicNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -4825,7 +4825,7 @@ public class Parser implements IParser
         ACharChar pcharNode1 = new ACharChar(tcharNode2);
 
         nodeList.add(pcharNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pcharNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4838,7 +4838,7 @@ public class Parser implements IParser
         ADecChar pcharNode1 = new ADecChar(tdeccharNode2);
 
         nodeList.add(pcharNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pcharNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4851,7 +4851,7 @@ public class Parser implements IParser
         AHexChar pcharNode1 = new AHexChar(thexcharNode2);
 
         nodeList.add(pcharNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pcharNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4870,7 +4870,7 @@ public class Parser implements IParser
         AOperationSet psetNode1 = new AOperationSet(pbasicNode2, pbinopNode3, pbasicNode4);
 
         nodeList.add(psetNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(psetNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4888,7 +4888,7 @@ public class Parser implements IParser
         AIntervalSet psetNode1 = new AIntervalSet(pcharNode2, pcharNode3);
 
         nodeList.add(psetNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(psetNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -4901,7 +4901,7 @@ public class Parser implements IParser
         AStarUnOp punopNode1 = new AStarUnOp(tstarNode2);
 
         nodeList.add(punopNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(punopNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4914,7 +4914,7 @@ public class Parser implements IParser
         AQMarkUnOp punopNode1 = new AQMarkUnOp(tqmarkNode2);
 
         nodeList.add(punopNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(punopNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4927,7 +4927,7 @@ public class Parser implements IParser
         APlusUnOp punopNode1 = new APlusUnOp(tplusNode2);
 
         nodeList.add(punopNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(punopNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4939,7 +4939,7 @@ public class Parser implements IParser
         APlusBinOp pbinopNode1 = new APlusBinOp();
 
         nodeList.add(pbinopNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pbinopNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4951,7 +4951,7 @@ public class Parser implements IParser
         AMinusBinOp pbinopNode1 = new AMinusBinOp();
 
         nodeList.add(pbinopNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pbinopNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -4966,7 +4966,7 @@ public class Parser implements IParser
         AProductions pproductionsNode1 = new AProductions(listNode3);
 
         nodeList.add(pproductionsNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pproductionsNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -4984,7 +4984,7 @@ public class Parser implements IParser
         AProd pprodNode1 = new AProd(tidNode2, null, Collections.EMPTY_LIST, listNode6);
 
         nodeList.add(pprodNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pprodNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -5006,7 +5006,7 @@ public class Parser implements IParser
         AProd pprodNode1 = new AProd(tidNode2, tarrowNode3, listNode5, listNode7);
 
         nodeList.add(pprodNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(pprodNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -5020,7 +5020,7 @@ public class Parser implements IParser
         TArrow tarrowNode1 = (TArrow)nodeArrayList2.get(0);
         nodeList.add(tarrowNode1);
         nodeList.add(Collections.EMPTY_LIST);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(tarrowNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5037,7 +5037,7 @@ public class Parser implements IParser
         List<PElem> listNode3 = listNode2;
         nodeList.add(tarrowNode1);
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(tarrowNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -5054,7 +5054,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5077,7 +5077,7 @@ public class Parser implements IParser
             listNode3.addAll(listNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5089,7 +5089,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         PAlt paltNode1 = (PAlt)nodeArrayList2.get(0);
         nodeList.add(paltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(paltNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5112,7 +5112,7 @@ public class Parser implements IParser
         AAlt paltNode1 = new AAlt(tidNode2, Collections.EMPTY_LIST, null);
 
         nodeList.add(paltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(paltNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5126,7 +5126,7 @@ public class Parser implements IParser
         AAlt paltNode1 = new AAlt(null, listNode4, null);
 
         nodeList.add(paltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(paltNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5142,7 +5142,7 @@ public class Parser implements IParser
         AAlt paltNode1 = new AAlt(tidNode2, listNode4, null);
 
         nodeList.add(paltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(paltNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5155,7 +5155,7 @@ public class Parser implements IParser
         AAlt paltNode1 = new AAlt(null, Collections.EMPTY_LIST, palttransformNode4);
 
         nodeList.add(paltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(paltNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5170,7 +5170,7 @@ public class Parser implements IParser
         AAlt paltNode1 = new AAlt(tidNode2, Collections.EMPTY_LIST, palttransformNode4);
 
         nodeList.add(paltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(paltNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5186,7 +5186,7 @@ public class Parser implements IParser
         AAlt paltNode1 = new AAlt(null, listNode4, palttransformNode5);
 
         nodeList.add(paltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(paltNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5204,7 +5204,7 @@ public class Parser implements IParser
         AAlt paltNode1 = new AAlt(tidNode2, listNode4, palttransformNode5);
 
         nodeList.add(paltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(paltNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5220,7 +5220,7 @@ public class Parser implements IParser
         AAltTransform palttransformNode1 = new AAltTransform(tlbraceNode2, Collections.EMPTY_LIST, trbraceNode4);
 
         nodeList.add(palttransformNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(palttransformNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5239,7 +5239,7 @@ public class Parser implements IParser
         AAltTransform palttransformNode1 = new AAltTransform(tlbraceNode2, listNode4, trbraceNode5);
 
         nodeList.add(palttransformNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(palttransformNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -5256,7 +5256,7 @@ public class Parser implements IParser
         ANewTerm ptermNode1 = new ANewTerm(pprodnameNode2, tlparNode3, Collections.EMPTY_LIST);
 
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -5276,7 +5276,7 @@ public class Parser implements IParser
         ANewTerm ptermNode1 = new ANewTerm(pprodnameNode2, tlparNode3, listNode5);
 
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -5290,7 +5290,7 @@ public class Parser implements IParser
         AListTerm ptermNode1 = new AListTerm(tlbktNode2, Collections.EMPTY_LIST);
 
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5307,7 +5307,7 @@ public class Parser implements IParser
         AListTerm ptermNode1 = new AListTerm(tlbktNode2, listNode4);
 
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5320,7 +5320,7 @@ public class Parser implements IParser
         ASimpleTerm ptermNode1 = new ASimpleTerm(null, tidNode3, null);
 
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5335,7 +5335,7 @@ public class Parser implements IParser
         ASimpleTerm ptermNode1 = new ASimpleTerm(pspecifierNode2, tidNode3, null);
 
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5350,7 +5350,7 @@ public class Parser implements IParser
         ASimpleTerm ptermNode1 = new ASimpleTerm(null, tidNode3, tidNode4);
 
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5367,7 +5367,7 @@ public class Parser implements IParser
         ASimpleTerm ptermNode1 = new ASimpleTerm(pspecifierNode2, tidNode3, tidNode4);
 
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5379,7 +5379,7 @@ public class Parser implements IParser
         ANullTerm ptermNode1 = new ANullTerm();
 
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5396,7 +5396,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5419,7 +5419,7 @@ public class Parser implements IParser
             listNode3.addAll(listNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5436,7 +5436,7 @@ public class Parser implements IParser
         ANewListTerm plisttermNode1 = new ANewListTerm(pprodnameNode2, tlparNode3, Collections.EMPTY_LIST);
 
         nodeList.add(plisttermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(plisttermNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -5456,7 +5456,7 @@ public class Parser implements IParser
         ANewListTerm plisttermNode1 = new ANewListTerm(pprodnameNode2, tlparNode3, listNode5);
 
         nodeList.add(plisttermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList5);
+        checkResult(plisttermNode1, nodeArrayList1, nodeArrayList5);
         return nodeList;
     }
 
@@ -5469,7 +5469,7 @@ public class Parser implements IParser
         ASimpleListTerm plisttermNode1 = new ASimpleListTerm(null, tidNode3, null);
 
         nodeList.add(plisttermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(plisttermNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5484,7 +5484,7 @@ public class Parser implements IParser
         ASimpleListTerm plisttermNode1 = new ASimpleListTerm(pspecifierNode2, tidNode3, null);
 
         nodeList.add(plisttermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(plisttermNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5499,7 +5499,7 @@ public class Parser implements IParser
         ASimpleListTerm plisttermNode1 = new ASimpleListTerm(null, tidNode3, tidNode4);
 
         nodeList.add(plisttermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(plisttermNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5516,7 +5516,7 @@ public class Parser implements IParser
         ASimpleListTerm plisttermNode1 = new ASimpleListTerm(pspecifierNode2, tidNode3, tidNode4);
 
         nodeList.add(plisttermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(plisttermNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5528,7 +5528,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         PListTerm plisttermNode1 = (PListTerm)nodeArrayList2.get(0);
         nodeList.add(plisttermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(plisttermNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5540,7 +5540,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         TId tidNode1 = (TId)nodeArrayList2.get(0);
         nodeList.add(tidNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(tidNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5553,7 +5553,7 @@ public class Parser implements IParser
         AProdName pprodnameNode1 = new AProdName(tidNode2, null);
 
         nodeList.add(pprodnameNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pprodnameNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5568,7 +5568,7 @@ public class Parser implements IParser
         AProdName pprodnameNode1 = new AProdName(tidNode2, tidNode3);
 
         nodeList.add(pprodnameNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pprodnameNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5580,7 +5580,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         TId tidNode1 = (TId)nodeArrayList2.get(0);
         nodeList.add(tidNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(tidNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5597,7 +5597,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5620,7 +5620,7 @@ public class Parser implements IParser
             listNode3.addAll(listNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5632,7 +5632,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         PTerm ptermNode1 = (PTerm)nodeArrayList2.get(0);
         nodeList.add(ptermNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(ptermNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5645,7 +5645,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         TId tidNode1 = (TId)nodeArrayList2.get(0);
         nodeList.add(tidNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(tidNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5658,7 +5658,7 @@ public class Parser implements IParser
         AElem pelemNode1 = new AElem(null, null, tidNode4, null);
 
         nodeList.add(pelemNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pelemNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5673,7 +5673,7 @@ public class Parser implements IParser
         AElem pelemNode1 = new AElem(tidNode2, null, tidNode4, null);
 
         nodeList.add(pelemNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pelemNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5688,7 +5688,7 @@ public class Parser implements IParser
         AElem pelemNode1 = new AElem(null, pspecifierNode3, tidNode4, null);
 
         nodeList.add(pelemNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pelemNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5705,7 +5705,7 @@ public class Parser implements IParser
         AElem pelemNode1 = new AElem(tidNode2, pspecifierNode3, tidNode4, null);
 
         nodeList.add(pelemNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pelemNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5720,7 +5720,7 @@ public class Parser implements IParser
         AElem pelemNode1 = new AElem(null, null, tidNode4, punopNode5);
 
         nodeList.add(pelemNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pelemNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5737,7 +5737,7 @@ public class Parser implements IParser
         AElem pelemNode1 = new AElem(tidNode2, null, tidNode4, punopNode5);
 
         nodeList.add(pelemNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pelemNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5754,7 +5754,7 @@ public class Parser implements IParser
         AElem pelemNode1 = new AElem(null, pspecifierNode3, tidNode4, punopNode5);
 
         nodeList.add(pelemNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList3);
+        checkResult(pelemNode1, nodeArrayList1, nodeArrayList3);
         return nodeList;
     }
 
@@ -5773,7 +5773,7 @@ public class Parser implements IParser
         AElem pelemNode1 = new AElem(tidNode2, pspecifierNode3, tidNode4, punopNode5);
 
         nodeList.add(pelemNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pelemNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -5787,7 +5787,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         TId tidNode1 = (TId)nodeArrayList2.get(0);
         nodeList.add(tidNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(tidNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -5800,7 +5800,7 @@ public class Parser implements IParser
         ATokenSpecifier pspecifierNode1 = new ATokenSpecifier();
 
         nodeList.add(pspecifierNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pspecifierNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5813,7 +5813,7 @@ public class Parser implements IParser
         AProductionSpecifier pspecifierNode1 = new AProductionSpecifier();
 
         nodeList.add(pspecifierNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pspecifierNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5830,7 +5830,7 @@ public class Parser implements IParser
         AAst pastNode1 = new AAst(listNode3);
 
         nodeList.add(pastNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pastNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -5848,7 +5848,7 @@ public class Parser implements IParser
         AAstProd pastprodNode1 = new AAstProd(tidNode2, listNode4);
 
         nodeList.add(pastprodNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList4);
+        checkResult(pastprodNode1, nodeArrayList1, nodeArrayList4);
         return nodeList;
     }
 
@@ -5865,7 +5865,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5888,7 +5888,7 @@ public class Parser implements IParser
             listNode3.addAll(listNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5900,7 +5900,7 @@ public class Parser implements IParser
         List<Object> nodeArrayList1 = pop();
         PAstAlt pastaltNode1 = (PAstAlt)nodeArrayList2.get(0);
         nodeList.add(pastaltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pastaltNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5923,7 +5923,7 @@ public class Parser implements IParser
         AAstAlt pastaltNode1 = new AAstAlt(tidNode2, Collections.EMPTY_LIST);
 
         nodeList.add(pastaltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pastaltNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5937,7 +5937,7 @@ public class Parser implements IParser
         AAstAlt pastaltNode1 = new AAstAlt(null, listNode4);
 
         nodeList.add(pastaltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(pastaltNode1, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5953,7 +5953,7 @@ public class Parser implements IParser
         AAstAlt pastaltNode1 = new AAstAlt(tidNode2, listNode4);
 
         nodeList.add(pastaltNode1);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(pastaltNode1, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -5970,7 +5970,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -5993,7 +5993,7 @@ public class Parser implements IParser
             listNode3.add(tpkgidNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6010,7 +6010,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6033,7 +6033,7 @@ public class Parser implements IParser
             listNode3.add(phelperdefNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6050,7 +6050,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6073,7 +6073,7 @@ public class Parser implements IParser
             listNode3.add(tidNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6090,7 +6090,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6113,7 +6113,7 @@ public class Parser implements IParser
             listNode3.add(ptokendefNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6130,7 +6130,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6153,7 +6153,7 @@ public class Parser implements IParser
             listNode3.add(pstatelisttailNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6170,7 +6170,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6193,7 +6193,7 @@ public class Parser implements IParser
             listNode3.add(pconcatNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6210,7 +6210,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6233,7 +6233,7 @@ public class Parser implements IParser
             listNode3.add(punexpNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6250,7 +6250,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6273,7 +6273,7 @@ public class Parser implements IParser
             listNode3.add(pprodNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6290,7 +6290,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6313,7 +6313,7 @@ public class Parser implements IParser
             listNode3.add(pelemNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6330,7 +6330,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6353,7 +6353,7 @@ public class Parser implements IParser
             listNode3.add(paltNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6370,7 +6370,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6393,7 +6393,7 @@ public class Parser implements IParser
             listNode3.add(ptermNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6410,7 +6410,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6433,7 +6433,7 @@ public class Parser implements IParser
             listNode3.add(plisttermNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6450,7 +6450,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6473,7 +6473,7 @@ public class Parser implements IParser
             listNode3.add(ptermNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6490,7 +6490,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6513,7 +6513,7 @@ public class Parser implements IParser
             listNode3.add(pastprodNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
         return nodeList;
     }
 
@@ -6530,7 +6530,7 @@ public class Parser implements IParser
             listNode2 = Collections.emptyList();
         }
         nodeList.add(listNode2);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList1);
+        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
         return nodeList;
     }
 
@@ -6553,7 +6553,7 @@ public class Parser implements IParser
             listNode3.add(pastaltNode2);
         }
         nodeList.add(listNode3);
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList2);
+        checkResult(listNode3, 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 a8222cd40d918b67f2e8f3d395b08ab51719aa94..1b50dc8626c4665ae6d447a31a7c301ae7522795 100644
--- a/src/main/resources/org/sablecc/sablecc/parser.txt
+++ b/src/main/resources/org/sablecc/sablecc/parser.txt
@@ -396,7 +396,7 @@ Macro:ParserNewBodyListAdd
 $
 
 Macro:ParserNewCheck
-        checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList$0$);
+        checkResult($0$, nodeArrayList1, nodeArrayList$1$);
 
 $