diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
index e43380f7875a817f9f3d9e4727eb91ba3abd5177..1cd8b6b1c91a4357d84f3d38f6e1d0ae42887441 100644
--- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
@@ -139,7 +139,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
         PTerm firstTerm = node.getTerms().get(0);
         if (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[] {getVariableName(firstTerm), String.valueOf(popCount)});
+          macros.apply(file, "ParserNewComputePositions", new String[] {getVariableName(firstTerm), String.valueOf(popCount)});
         }
 
         if(node.getTerms().size() == 1)
diff --git a/src/main/java/org/sablecc/sablecc/parser/Parser.java b/src/main/java/org/sablecc/sablecc/parser/Parser.java
index e6306940ca57a943d17301dd53bddc2d9bd7f0dc..6a5b459ee60cd088289f7ace0eeb37ba0f381e5f 100644
--- a/src/main/java/org/sablecc/sablecc/parser/Parser.java
+++ b/src/main/java/org/sablecc/sablecc/parser/Parser.java
@@ -37,22 +37,22 @@ public class Parser implements IParser
         this.lexer = lexer;
     }
 
-    private void checkResult(Object elementToCheck, List<?> beginNodeList, List<?> endNodeList) {
-        if (elementToCheck instanceof List<?>) {
+    private void computePositions(Object resultNodeOrList, List<?> beginNodeList, List<?> endNodeList) {
+        if (resultNodeOrList instanceof List<?>) {
             /*
              * special case: this is a list of nodes, for example an identifier
-             * list, so we don't want to check the list but the last element
-             * added to it
+             * list, so we don't want to assign positions to the entire list,
+             * but the last element added to it
              */
-            final List<?> nodeList = (List<?>) elementToCheck;
+            final List<?> nodeList = (List<?>) resultNodeOrList;
             if (nodeList.isEmpty()) {
                 // no positions for empty lists...
                 return;
             }
-            elementToCheck = nodeList.get(nodeList.size() - 1);
+            resultNodeOrList = nodeList.get(nodeList.size() - 1);
         }
 
-        final PositionedNode node = (PositionedNode) elementToCheck;
+        final PositionedNode node = (PositionedNode) resultNodeOrList;
 
         // Add node positions if they haven't been calculated yet.
         // Tokens are skipped because they always have positions -
@@ -1866,7 +1866,7 @@ public class Parser implements IParser
         List<TPkgId> listNode3 = listNode2;
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, null, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1876,7 +1876,7 @@ public class Parser implements IParser
         PHelpers pHelpersNode3 = (PHelpers)nodeArrayList1.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, null, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1889,7 +1889,7 @@ public class Parser implements IParser
         PHelpers pHelpersNode4 = (PHelpers)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, null, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1899,7 +1899,7 @@ public class Parser implements IParser
         PStates pStatesNode4 = (PStates)nodeArrayList1.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, null, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1912,7 +1912,7 @@ public class Parser implements IParser
         PStates pStatesNode5 = (PStates)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, null, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1924,7 +1924,7 @@ public class Parser implements IParser
         PStates pStatesNode4 = (PStates)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, null, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1939,7 +1939,7 @@ public class Parser implements IParser
         PStates pStatesNode5 = (PStates)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, null, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1949,7 +1949,7 @@ public class Parser implements IParser
         PTokens pTokensNode5 = (PTokens)nodeArrayList1.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, pTokensNode5, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1962,7 +1962,7 @@ public class Parser implements IParser
         PTokens pTokensNode6 = (PTokens)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, pTokensNode6, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1974,7 +1974,7 @@ public class Parser implements IParser
         PTokens pTokensNode5 = (PTokens)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, pTokensNode5, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -1989,7 +1989,7 @@ public class Parser implements IParser
         PTokens pTokensNode6 = (PTokens)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, pTokensNode6, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2001,7 +2001,7 @@ public class Parser implements IParser
         PTokens pTokensNode5 = (PTokens)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, pTokensNode5, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2016,7 +2016,7 @@ public class Parser implements IParser
         PTokens pTokensNode6 = (PTokens)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, pTokensNode6, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2030,7 +2030,7 @@ public class Parser implements IParser
         PTokens pTokensNode5 = (PTokens)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, pTokensNode5, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2047,7 +2047,7 @@ public class Parser implements IParser
         PTokens pTokensNode6 = (PTokens)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, pTokensNode6, null, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2057,7 +2057,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, null, pIgnTokensNode6, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2070,7 +2070,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode7 = (PIgnTokens)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, null, pIgnTokensNode7, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2082,7 +2082,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, null, pIgnTokensNode6, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2097,7 +2097,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, null, pIgnTokensNode7, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2109,7 +2109,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, null, pIgnTokensNode6, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2124,7 +2124,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, null, pIgnTokensNode7, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2138,7 +2138,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, null, pIgnTokensNode6, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2155,7 +2155,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, null, pIgnTokensNode7, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2167,7 +2167,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, pTokensNode5, pIgnTokensNode6, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2182,7 +2182,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, pTokensNode6, pIgnTokensNode7, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2196,7 +2196,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, pTokensNode5, pIgnTokensNode6, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2213,7 +2213,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, pTokensNode6, pIgnTokensNode7, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2227,7 +2227,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, pTokensNode5, pIgnTokensNode6, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2244,7 +2244,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, pTokensNode6, pIgnTokensNode7, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2260,7 +2260,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode6 = (PIgnTokens)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, pTokensNode5, pIgnTokensNode6, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2279,7 +2279,7 @@ public class Parser implements IParser
         PIgnTokens pIgnTokensNode7 = (PIgnTokens)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, pTokensNode6, pIgnTokensNode7, null, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2289,7 +2289,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList1.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, null, null, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2302,7 +2302,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, null, null, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2314,7 +2314,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, null, null, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2329,7 +2329,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, null, null, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2341,7 +2341,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, null, null, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2356,7 +2356,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, null, null, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2370,7 +2370,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, null, null, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2387,7 +2387,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, null, null, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2399,7 +2399,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, pTokensNode5, null, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2414,7 +2414,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, pTokensNode6, null, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2428,7 +2428,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, pTokensNode5, null, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2445,7 +2445,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, pTokensNode6, null, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2459,7 +2459,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, pTokensNode5, null, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2476,7 +2476,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, pTokensNode6, null, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2492,7 +2492,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, pTokensNode5, null, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2511,7 +2511,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, pTokensNode6, null, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2523,7 +2523,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, null, pIgnTokensNode6, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2538,7 +2538,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, null, pIgnTokensNode7, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2552,7 +2552,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, null, pIgnTokensNode6, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2569,7 +2569,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, null, pIgnTokensNode7, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2583,7 +2583,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, null, pIgnTokensNode6, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2600,7 +2600,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, null, pIgnTokensNode7, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2616,7 +2616,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, null, pIgnTokensNode6, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2635,7 +2635,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, null, pIgnTokensNode7, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2649,7 +2649,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, pTokensNode5, pIgnTokensNode6, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2666,7 +2666,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, pTokensNode6, pIgnTokensNode7, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2682,7 +2682,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, pTokensNode5, pIgnTokensNode6, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2701,7 +2701,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, pTokensNode6, pIgnTokensNode7, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2717,7 +2717,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, pTokensNode5, pIgnTokensNode6, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2736,7 +2736,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, pTokensNode6, pIgnTokensNode7, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2754,7 +2754,7 @@ public class Parser implements IParser
         PProductions pProductionsNode7 = (PProductions)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, pTokensNode5, pIgnTokensNode6, pProductionsNode7, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2775,7 +2775,7 @@ public class Parser implements IParser
         PProductions pProductionsNode8 = (PProductions)nodeArrayList6.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, pTokensNode6, pIgnTokensNode7, pProductionsNode8, null);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList6);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList6);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2785,7 +2785,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList1.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, null, null, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2798,7 +2798,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, null, null, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2810,7 +2810,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, null, null, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2825,7 +2825,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, null, null, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2837,7 +2837,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, null, null, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2852,7 +2852,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, null, null, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2866,7 +2866,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, null, null, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2883,7 +2883,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, null, null, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2895,7 +2895,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, pTokensNode5, null, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2910,7 +2910,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, pTokensNode6, null, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2924,7 +2924,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, pTokensNode5, null, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2941,7 +2941,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, pTokensNode6, null, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2955,7 +2955,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, pTokensNode5, null, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2972,7 +2972,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, pTokensNode6, null, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -2988,7 +2988,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, pTokensNode5, null, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3007,7 +3007,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, pTokensNode6, null, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3019,7 +3019,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, null, pIgnTokensNode6, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3034,7 +3034,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, null, pIgnTokensNode7, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3048,7 +3048,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, null, pIgnTokensNode6, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3065,7 +3065,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, null, pIgnTokensNode7, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3079,7 +3079,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, null, pIgnTokensNode6, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3096,7 +3096,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, null, pIgnTokensNode7, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3112,7 +3112,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, null, pIgnTokensNode6, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3131,7 +3131,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, null, pIgnTokensNode7, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3145,7 +3145,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, pTokensNode5, pIgnTokensNode6, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3162,7 +3162,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, pTokensNode6, pIgnTokensNode7, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3178,7 +3178,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, pTokensNode5, pIgnTokensNode6, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3197,7 +3197,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, pTokensNode6, pIgnTokensNode7, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3213,7 +3213,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, pTokensNode5, pIgnTokensNode6, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3232,7 +3232,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, pTokensNode6, pIgnTokensNode7, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3250,7 +3250,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, pTokensNode5, pIgnTokensNode6, null, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3271,7 +3271,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList6.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, pTokensNode6, pIgnTokensNode7, null, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList6);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList6);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3283,7 +3283,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList2.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, null, null, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3298,7 +3298,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, null, null, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3312,7 +3312,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, null, null, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3329,7 +3329,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, null, null, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3343,7 +3343,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, null, null, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3360,7 +3360,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, null, null, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3376,7 +3376,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, null, null, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3395,7 +3395,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, null, null, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3409,7 +3409,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, pTokensNode5, null, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3426,7 +3426,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, pTokensNode6, null, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3442,7 +3442,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, pTokensNode5, null, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3461,7 +3461,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, pTokensNode6, null, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3477,7 +3477,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, pTokensNode5, null, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3496,7 +3496,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, pTokensNode6, null, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3514,7 +3514,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, pTokensNode5, null, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3535,7 +3535,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList6.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, pTokensNode6, null, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList6);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList6);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3549,7 +3549,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList3.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, null, pIgnTokensNode6, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3566,7 +3566,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, null, pIgnTokensNode7, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3582,7 +3582,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, null, pIgnTokensNode6, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3601,7 +3601,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, null, pIgnTokensNode7, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3617,7 +3617,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, null, pIgnTokensNode6, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3636,7 +3636,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, null, pIgnTokensNode7, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3654,7 +3654,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, null, pIgnTokensNode6, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3675,7 +3675,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList6.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, null, pIgnTokensNode7, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList6);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList6);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3691,7 +3691,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList4.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, null, pTokensNode5, pIgnTokensNode6, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3710,7 +3710,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, null, pTokensNode6, pIgnTokensNode7, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3728,7 +3728,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, null, pTokensNode5, pIgnTokensNode6, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3749,7 +3749,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList6.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, null, pTokensNode6, pIgnTokensNode7, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList6);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList6);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3767,7 +3767,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList5.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), null, pStatesNode4, pTokensNode5, pIgnTokensNode6, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3788,7 +3788,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList6.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, null, pStatesNode5, pTokensNode6, pIgnTokensNode7, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList6);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList6);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3808,7 +3808,7 @@ public class Parser implements IParser
         PAst pAstNode8 = (PAst)nodeArrayList6.get(0);
         AGrammar pGrammarNode1 = new AGrammar(Collections.emptyList(), pHelpersNode3, pStatesNode4, pTokensNode5, pIgnTokensNode6, pProductionsNode7, pAstNode8);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList6);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList6);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3831,7 +3831,7 @@ public class Parser implements IParser
         PAst pAstNode9 = (PAst)nodeArrayList7.get(0);
         AGrammar pGrammarNode1 = new AGrammar(listNode3, pHelpersNode4, pStatesNode5, pTokensNode6, pIgnTokensNode7, pProductionsNode8, pAstNode9);
 
-        checkResult(pGrammarNode1, nodeArrayList1, nodeArrayList7);
+        computePositions(pGrammarNode1, nodeArrayList1, nodeArrayList7);
         return Collections.singletonList(pGrammarNode1);
     }
 
@@ -3841,7 +3841,7 @@ public class Parser implements IParser
         List<?> nodeArrayList1 = pop();
         List<TPkgId> listNode1 = (List<TPkgId>)nodeArrayList2.get(0);
         List<TPkgId> listNode2 = listNode1;
-        checkResult(listNode2, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode2);
     }
 
@@ -3856,7 +3856,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode2);
     }
 
@@ -3877,7 +3877,7 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList3);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(listNode3);
     }
 
@@ -3886,7 +3886,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         TPkgId tPkgIdNode1 = (TPkgId)nodeArrayList2.get(0);
-        checkResult(tPkgIdNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(tPkgIdNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(tPkgIdNode1);
     }
 
@@ -3898,7 +3898,7 @@ public class Parser implements IParser
         List<PHelperDef> listNode3 = listNode2;
         AHelpers pHelpersNode1 = new AHelpers(listNode3);
 
-        checkResult(pHelpersNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pHelpersNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pHelpersNode1);
     }
 
@@ -3912,7 +3912,7 @@ public class Parser implements IParser
         PRegExp pRegExpNode3 = (PRegExp)nodeArrayList3.get(0);
         AHelperDef pHelperDefNode1 = new AHelperDef(tIdNode2, pRegExpNode3);
 
-        checkResult(pHelperDefNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pHelperDefNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pHelperDefNode1);
     }
 
@@ -3925,7 +3925,7 @@ public class Parser implements IParser
         List<TId> listNode3 = listNode2;
         AStates pStatesNode1 = new AStates(listNode3);
 
-        checkResult(pStatesNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pStatesNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pStatesNode1);
     }
 
@@ -3939,7 +3939,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -3959,7 +3959,7 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -3968,7 +3968,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         TId tIdNode1 = (TId)nodeArrayList2.get(0);
-        checkResult(tIdNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(tIdNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(tIdNode1);
     }
 
@@ -3980,7 +3980,7 @@ public class Parser implements IParser
         List<PTokenDef> listNode3 = listNode2;
         ATokens pTokensNode1 = new ATokens(listNode3);
 
-        checkResult(pTokensNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pTokensNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pTokensNode1);
     }
 
@@ -3994,7 +3994,7 @@ public class Parser implements IParser
         PRegExp pRegExpNode4 = (PRegExp)nodeArrayList3.get(0);
         ATokenDef pTokenDefNode1 = new ATokenDef(null, tIdNode3, pRegExpNode4, null, null);
 
-        checkResult(pTokenDefNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pTokenDefNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pTokenDefNode1);
     }
 
@@ -4010,7 +4010,7 @@ public class Parser implements IParser
         PRegExp pRegExpNode4 = (PRegExp)nodeArrayList4.get(0);
         ATokenDef pTokenDefNode1 = new ATokenDef(pStateListNode2, tIdNode3, pRegExpNode4, null, null);
 
-        checkResult(pTokenDefNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pTokenDefNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pTokenDefNode1);
     }
 
@@ -4027,7 +4027,7 @@ public class Parser implements IParser
         PRegExp pRegExpNode6 = (PRegExp)nodeArrayList4.get(1);
         ATokenDef pTokenDefNode1 = new ATokenDef(null, tIdNode3, pRegExpNode4, tSlashNode5, pRegExpNode6);
 
-        checkResult(pTokenDefNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pTokenDefNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pTokenDefNode1);
     }
 
@@ -4046,7 +4046,7 @@ public class Parser implements IParser
         PRegExp pRegExpNode6 = (PRegExp)nodeArrayList5.get(1);
         ATokenDef pTokenDefNode1 = new ATokenDef(pStateListNode2, tIdNode3, pRegExpNode4, tSlashNode5, pRegExpNode6);
 
-        checkResult(pTokenDefNode1, nodeArrayList1, nodeArrayList6);
+        computePositions(pTokenDefNode1, nodeArrayList1, nodeArrayList6);
         return Collections.singletonList(pTokenDefNode1);
     }
 
@@ -4058,7 +4058,7 @@ public class Parser implements IParser
         TId tIdNode2 = (TId)nodeArrayList2.get(0);
         AStateList pStateListNode1 = new AStateList(tIdNode2, null, Collections.emptyList());
 
-        checkResult(pStateListNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pStateListNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pStateListNode1);
     }
 
@@ -4072,7 +4072,7 @@ public class Parser implements IParser
         PTransition pTransitionNode3 = (PTransition)nodeArrayList3.get(0);
         AStateList pStateListNode1 = new AStateList(tIdNode2, pTransitionNode3, Collections.emptyList());
 
-        checkResult(pStateListNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pStateListNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pStateListNode1);
     }
 
@@ -4087,7 +4087,7 @@ public class Parser implements IParser
         List<PStateListTail> listNode5 = listNode4;
         AStateList pStateListNode1 = new AStateList(tIdNode2, null, listNode5);
 
-        checkResult(pStateListNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pStateListNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pStateListNode1);
     }
 
@@ -4104,7 +4104,7 @@ public class Parser implements IParser
         List<PStateListTail> listNode5 = listNode4;
         AStateList pStateListNode1 = new AStateList(tIdNode2, pTransitionNode3, listNode5);
 
-        checkResult(pStateListNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pStateListNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pStateListNode1);
     }
 
@@ -4115,7 +4115,7 @@ public class Parser implements IParser
         TId tIdNode2 = (TId)nodeArrayList2.get(0);
         AStateListTail pStateListTailNode1 = new AStateListTail(tIdNode2, null);
 
-        checkResult(pStateListTailNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pStateListTailNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pStateListTailNode1);
     }
 
@@ -4128,7 +4128,7 @@ public class Parser implements IParser
         PTransition pTransitionNode3 = (PTransition)nodeArrayList3.get(0);
         AStateListTail pStateListTailNode1 = new AStateListTail(tIdNode2, pTransitionNode3);
 
-        checkResult(pStateListTailNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pStateListTailNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pStateListTailNode1);
     }
 
@@ -4139,7 +4139,7 @@ public class Parser implements IParser
         TId tIdNode2 = (TId)nodeArrayList2.get(0);
         ATransition pTransitionNode1 = new ATransition(tIdNode2);
 
-        checkResult(pTransitionNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pTransitionNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pTransitionNode1);
     }
 
@@ -4150,7 +4150,7 @@ public class Parser implements IParser
         List<?> nodeArrayList1 = pop();
         AIgnTokens pIgnTokensNode1 = new AIgnTokens(Collections.emptyList());
 
-        checkResult(pIgnTokensNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pIgnTokensNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pIgnTokensNode1);
     }
 
@@ -4164,7 +4164,7 @@ public class Parser implements IParser
         List<TId> listNode3 = listNode2;
         AIgnTokens pIgnTokensNode1 = new AIgnTokens(listNode3);
 
-        checkResult(pIgnTokensNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pIgnTokensNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pIgnTokensNode1);
     }
 
@@ -4174,7 +4174,7 @@ public class Parser implements IParser
         List<?> nodeArrayList1 = pop();
         TSlash tSlashNode1 = (TSlash)nodeArrayList1.get(0);
         PRegExp pRegExpNode2 = (PRegExp)nodeArrayList2.get(0);
-        checkResult(tSlashNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(tSlashNode1, nodeArrayList1, nodeArrayList2);
         return Arrays.asList(new Object[] {
             tSlashNode1,
             pRegExpNode2,
@@ -4193,7 +4193,7 @@ public class Parser implements IParser
         }
         ARegExp pRegExpNode1 = new ARegExp(listNode3);
 
-        checkResult(pRegExpNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pRegExpNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pRegExpNode1);
     }
 
@@ -4215,7 +4215,7 @@ public class Parser implements IParser
         }
         ARegExp pRegExpNode1 = new ARegExp(listNode4);
 
-        checkResult(pRegExpNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pRegExpNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pRegExpNode1);
     }
 
@@ -4224,7 +4224,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         PConcat pConcatNode1 = (PConcat)nodeArrayList2.get(0);
-        checkResult(pConcatNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pConcatNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pConcatNode1);
     }
 
@@ -4242,7 +4242,7 @@ public class Parser implements IParser
         List<PUnExp> listNode3 = listNode2;
         AConcat pConcatNode1 = new AConcat(listNode3);
 
-        checkResult(pConcatNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pConcatNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pConcatNode1);
     }
 
@@ -4252,7 +4252,7 @@ public class Parser implements IParser
         PBasic pBasicNode2 = (PBasic)nodeArrayList1.get(0);
         AUnExp pUnExpNode1 = new AUnExp(pBasicNode2, null);
 
-        checkResult(pUnExpNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pUnExpNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pUnExpNode1);
     }
 
@@ -4264,7 +4264,7 @@ public class Parser implements IParser
         PUnOp pUnOpNode3 = (PUnOp)nodeArrayList2.get(0);
         AUnExp pUnExpNode1 = new AUnExp(pBasicNode2, pUnOpNode3);
 
-        checkResult(pUnExpNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pUnExpNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pUnExpNode1);
     }
 
@@ -4274,7 +4274,7 @@ public class Parser implements IParser
         PChar pCharNode2 = (PChar)nodeArrayList1.get(0);
         ACharBasic pBasicNode1 = new ACharBasic(pCharNode2);
 
-        checkResult(pBasicNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pBasicNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pBasicNode1);
     }
 
@@ -4284,7 +4284,7 @@ public class Parser implements IParser
         PSet pSetNode2 = (PSet)nodeArrayList1.get(0);
         ASetBasic pBasicNode1 = new ASetBasic(pSetNode2);
 
-        checkResult(pBasicNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pBasicNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pBasicNode1);
     }
 
@@ -4294,7 +4294,7 @@ public class Parser implements IParser
         TString tStringNode2 = (TString)nodeArrayList1.get(0);
         AStringBasic pBasicNode1 = new AStringBasic(tStringNode2);
 
-        checkResult(pBasicNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pBasicNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pBasicNode1);
     }
 
@@ -4304,7 +4304,7 @@ public class Parser implements IParser
         TId tIdNode2 = (TId)nodeArrayList1.get(0);
         AIdBasic pBasicNode1 = new AIdBasic(tIdNode2);
 
-        checkResult(pBasicNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pBasicNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pBasicNode1);
     }
 
@@ -4316,7 +4316,7 @@ public class Parser implements IParser
         PRegExp pRegExpNode2 = (PRegExp)nodeArrayList2.get(0);
         ARegExpBasic pBasicNode1 = new ARegExpBasic(pRegExpNode2);
 
-        checkResult(pBasicNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pBasicNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pBasicNode1);
     }
 
@@ -4326,7 +4326,7 @@ public class Parser implements IParser
         TChar tCharNode2 = (TChar)nodeArrayList1.get(0);
         ACharChar pCharNode1 = new ACharChar(tCharNode2);
 
-        checkResult(pCharNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pCharNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pCharNode1);
     }
 
@@ -4336,7 +4336,7 @@ public class Parser implements IParser
         TDecChar tDecCharNode2 = (TDecChar)nodeArrayList1.get(0);
         ADecChar pCharNode1 = new ADecChar(tDecCharNode2);
 
-        checkResult(pCharNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pCharNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pCharNode1);
     }
 
@@ -4346,7 +4346,7 @@ public class Parser implements IParser
         THexChar tHexCharNode2 = (THexChar)nodeArrayList1.get(0);
         AHexChar pCharNode1 = new AHexChar(tHexCharNode2);
 
-        checkResult(pCharNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pCharNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pCharNode1);
     }
 
@@ -4362,7 +4362,7 @@ public class Parser implements IParser
         PBasic pBasicNode4 = (PBasic)nodeArrayList4.get(0);
         AOperationSet pSetNode1 = new AOperationSet(pBasicNode2, pBinOpNode3, pBasicNode4);
 
-        checkResult(pSetNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pSetNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pSetNode1);
     }
 
@@ -4377,7 +4377,7 @@ public class Parser implements IParser
         PChar pCharNode3 = (PChar)nodeArrayList4.get(0);
         AIntervalSet pSetNode1 = new AIntervalSet(pCharNode2, pCharNode3);
 
-        checkResult(pSetNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pSetNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pSetNode1);
     }
 
@@ -4387,7 +4387,7 @@ public class Parser implements IParser
         TStar tStarNode2 = (TStar)nodeArrayList1.get(0);
         AStarUnOp pUnOpNode1 = new AStarUnOp(tStarNode2);
 
-        checkResult(pUnOpNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pUnOpNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pUnOpNode1);
     }
 
@@ -4397,7 +4397,7 @@ public class Parser implements IParser
         TQMark tQMarkNode2 = (TQMark)nodeArrayList1.get(0);
         AQMarkUnOp pUnOpNode1 = new AQMarkUnOp(tQMarkNode2);
 
-        checkResult(pUnOpNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pUnOpNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pUnOpNode1);
     }
 
@@ -4407,7 +4407,7 @@ public class Parser implements IParser
         TPlus tPlusNode2 = (TPlus)nodeArrayList1.get(0);
         APlusUnOp pUnOpNode1 = new APlusUnOp(tPlusNode2);
 
-        checkResult(pUnOpNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pUnOpNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pUnOpNode1);
     }
 
@@ -4416,7 +4416,7 @@ public class Parser implements IParser
         List<?> nodeArrayList1 = pop();
         APlusBinOp pBinOpNode1 = new APlusBinOp();
 
-        checkResult(pBinOpNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pBinOpNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pBinOpNode1);
     }
 
@@ -4425,7 +4425,7 @@ public class Parser implements IParser
         List<?> nodeArrayList1 = pop();
         AMinusBinOp pBinOpNode1 = new AMinusBinOp();
 
-        checkResult(pBinOpNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pBinOpNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pBinOpNode1);
     }
 
@@ -4437,7 +4437,7 @@ public class Parser implements IParser
         List<PProd> listNode3 = listNode2;
         AProductions pProductionsNode1 = new AProductions(listNode3);
 
-        checkResult(pProductionsNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pProductionsNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pProductionsNode1);
     }
 
@@ -4452,7 +4452,7 @@ public class Parser implements IParser
         List<PAlt> listNode6 = listNode5;
         AProd pProdNode1 = new AProd(tIdNode2, null, Collections.emptyList(), listNode6);
 
-        checkResult(pProdNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pProdNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pProdNode1);
     }
 
@@ -4471,7 +4471,7 @@ public class Parser implements IParser
         List<PAlt> listNode7 = listNode6;
         AProd pProdNode1 = new AProd(tIdNode2, tArrowNode3, listNode5, listNode7);
 
-        checkResult(pProdNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pProdNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pProdNode1);
     }
 
@@ -4481,7 +4481,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         TArrow tArrowNode1 = (TArrow)nodeArrayList2.get(0);
-        checkResult(tArrowNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(tArrowNode1, nodeArrayList1, nodeArrayList3);
         return Arrays.asList(new Object[] {
             tArrowNode1,
             Collections.emptyList(),
@@ -4497,7 +4497,7 @@ public class Parser implements IParser
         TArrow tArrowNode1 = (TArrow)nodeArrayList2.get(0);
         List<PElem> listNode2 = (List<PElem>)nodeArrayList3.get(0);
         List<PElem> listNode3 = listNode2;
-        checkResult(tArrowNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(tArrowNode1, nodeArrayList1, nodeArrayList4);
         return Arrays.asList(new Object[] {
             tArrowNode1,
             listNode3,
@@ -4514,7 +4514,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -4534,7 +4534,7 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -4543,7 +4543,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         PAlt pAltNode1 = (PAlt)nodeArrayList2.get(0);
-        checkResult(pAltNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pAltNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pAltNode1);
     }
 
@@ -4560,7 +4560,7 @@ public class Parser implements IParser
         TId tIdNode2 = (TId)nodeArrayList1.get(0);
         AAlt pAltNode1 = new AAlt(tIdNode2, Collections.emptyList(), null);
 
-        checkResult(pAltNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pAltNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pAltNode1);
     }
 
@@ -4571,7 +4571,7 @@ public class Parser implements IParser
         List<PElem> listNode4 = listNode3;
         AAlt pAltNode1 = new AAlt(null, listNode4, null);
 
-        checkResult(pAltNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pAltNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pAltNode1);
     }
 
@@ -4584,7 +4584,7 @@ public class Parser implements IParser
         List<PElem> listNode4 = listNode3;
         AAlt pAltNode1 = new AAlt(tIdNode2, listNode4, null);
 
-        checkResult(pAltNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pAltNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pAltNode1);
     }
 
@@ -4594,7 +4594,7 @@ public class Parser implements IParser
         PAltTransform pAltTransformNode4 = (PAltTransform)nodeArrayList1.get(0);
         AAlt pAltNode1 = new AAlt(null, Collections.emptyList(), pAltTransformNode4);
 
-        checkResult(pAltNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pAltNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pAltNode1);
     }
 
@@ -4606,7 +4606,7 @@ public class Parser implements IParser
         PAltTransform pAltTransformNode4 = (PAltTransform)nodeArrayList2.get(0);
         AAlt pAltNode1 = new AAlt(tIdNode2, Collections.emptyList(), pAltTransformNode4);
 
-        checkResult(pAltNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pAltNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pAltNode1);
     }
 
@@ -4619,7 +4619,7 @@ public class Parser implements IParser
         PAltTransform pAltTransformNode5 = (PAltTransform)nodeArrayList2.get(0);
         AAlt pAltNode1 = new AAlt(null, listNode4, pAltTransformNode5);
 
-        checkResult(pAltNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pAltNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pAltNode1);
     }
 
@@ -4634,7 +4634,7 @@ public class Parser implements IParser
         PAltTransform pAltTransformNode5 = (PAltTransform)nodeArrayList3.get(0);
         AAlt pAltNode1 = new AAlt(tIdNode2, listNode4, pAltTransformNode5);
 
-        checkResult(pAltNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pAltNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pAltNode1);
     }
 
@@ -4647,7 +4647,7 @@ public class Parser implements IParser
         TRBrace tRBraceNode4 = (TRBrace)nodeArrayList3.get(0);
         AAltTransform pAltTransformNode1 = new AAltTransform(tLBraceNode2, Collections.emptyList(), tRBraceNode4);
 
-        checkResult(pAltTransformNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pAltTransformNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pAltTransformNode1);
     }
 
@@ -4663,7 +4663,7 @@ public class Parser implements IParser
         TRBrace tRBraceNode5 = (TRBrace)nodeArrayList4.get(0);
         AAltTransform pAltTransformNode1 = new AAltTransform(tLBraceNode2, listNode4, tRBraceNode5);
 
-        checkResult(pAltTransformNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pAltTransformNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pAltTransformNode1);
     }
 
@@ -4677,7 +4677,7 @@ public class Parser implements IParser
         TLPar tLParNode3 = (TLPar)nodeArrayList3.get(0);
         ANewTerm pTermNode1 = new ANewTerm(pProdNameNode2, tLParNode3, Collections.emptyList());
 
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4694,7 +4694,7 @@ public class Parser implements IParser
         List<PTerm> listNode5 = listNode4;
         ANewTerm pTermNode1 = new ANewTerm(pProdNameNode2, tLParNode3, listNode5);
 
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4705,7 +4705,7 @@ public class Parser implements IParser
         TLBkt tLBktNode2 = (TLBkt)nodeArrayList1.get(0);
         AListTerm pTermNode1 = new AListTerm(tLBktNode2, Collections.emptyList());
 
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4719,7 +4719,7 @@ public class Parser implements IParser
         List<PListTerm> listNode4 = listNode3;
         AListTerm pTermNode1 = new AListTerm(tLBktNode2, listNode4);
 
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4729,7 +4729,7 @@ public class Parser implements IParser
         TId tIdNode3 = (TId)nodeArrayList1.get(0);
         ASimpleTerm pTermNode1 = new ASimpleTerm(null, tIdNode3, null);
 
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4741,7 +4741,7 @@ public class Parser implements IParser
         TId tIdNode3 = (TId)nodeArrayList2.get(0);
         ASimpleTerm pTermNode1 = new ASimpleTerm(pSpecifierNode2, tIdNode3, null);
 
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4753,7 +4753,7 @@ public class Parser implements IParser
         TId tIdNode4 = (TId)nodeArrayList2.get(0);
         ASimpleTerm pTermNode1 = new ASimpleTerm(null, tIdNode3, tIdNode4);
 
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4767,7 +4767,7 @@ public class Parser implements IParser
         TId tIdNode4 = (TId)nodeArrayList3.get(0);
         ASimpleTerm pTermNode1 = new ASimpleTerm(pSpecifierNode2, tIdNode3, tIdNode4);
 
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4776,7 +4776,7 @@ public class Parser implements IParser
         List<?> nodeArrayList1 = pop();
         ANullTerm pTermNode1 = new ANullTerm();
 
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4790,7 +4790,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -4810,7 +4810,7 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -4824,7 +4824,7 @@ public class Parser implements IParser
         TLPar tLParNode3 = (TLPar)nodeArrayList3.get(0);
         ANewListTerm pListTermNode1 = new ANewListTerm(pProdNameNode2, tLParNode3, Collections.emptyList());
 
-        checkResult(pListTermNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pListTermNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pListTermNode1);
     }
 
@@ -4841,7 +4841,7 @@ public class Parser implements IParser
         List<PTerm> listNode5 = listNode4;
         ANewListTerm pListTermNode1 = new ANewListTerm(pProdNameNode2, tLParNode3, listNode5);
 
-        checkResult(pListTermNode1, nodeArrayList1, nodeArrayList5);
+        computePositions(pListTermNode1, nodeArrayList1, nodeArrayList5);
         return Collections.singletonList(pListTermNode1);
     }
 
@@ -4851,7 +4851,7 @@ public class Parser implements IParser
         TId tIdNode3 = (TId)nodeArrayList1.get(0);
         ASimpleListTerm pListTermNode1 = new ASimpleListTerm(null, tIdNode3, null);
 
-        checkResult(pListTermNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pListTermNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pListTermNode1);
     }
 
@@ -4863,7 +4863,7 @@ public class Parser implements IParser
         TId tIdNode3 = (TId)nodeArrayList2.get(0);
         ASimpleListTerm pListTermNode1 = new ASimpleListTerm(pSpecifierNode2, tIdNode3, null);
 
-        checkResult(pListTermNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pListTermNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pListTermNode1);
     }
 
@@ -4875,7 +4875,7 @@ public class Parser implements IParser
         TId tIdNode4 = (TId)nodeArrayList2.get(0);
         ASimpleListTerm pListTermNode1 = new ASimpleListTerm(null, tIdNode3, tIdNode4);
 
-        checkResult(pListTermNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pListTermNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pListTermNode1);
     }
 
@@ -4889,7 +4889,7 @@ public class Parser implements IParser
         TId tIdNode4 = (TId)nodeArrayList3.get(0);
         ASimpleListTerm pListTermNode1 = new ASimpleListTerm(pSpecifierNode2, tIdNode3, tIdNode4);
 
-        checkResult(pListTermNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pListTermNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pListTermNode1);
     }
 
@@ -4898,7 +4898,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         PListTerm pListTermNode1 = (PListTerm)nodeArrayList2.get(0);
-        checkResult(pListTermNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pListTermNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pListTermNode1);
     }
 
@@ -4907,7 +4907,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         TId tIdNode1 = (TId)nodeArrayList2.get(0);
-        checkResult(tIdNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(tIdNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(tIdNode1);
     }
 
@@ -4917,7 +4917,7 @@ public class Parser implements IParser
         TId tIdNode2 = (TId)nodeArrayList1.get(0);
         AProdName pProdNameNode1 = new AProdName(tIdNode2, null);
 
-        checkResult(pProdNameNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pProdNameNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pProdNameNode1);
     }
 
@@ -4929,7 +4929,7 @@ public class Parser implements IParser
         TId tIdNode3 = (TId)nodeArrayList2.get(0);
         AProdName pProdNameNode1 = new AProdName(tIdNode2, tIdNode3);
 
-        checkResult(pProdNameNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pProdNameNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pProdNameNode1);
     }
 
@@ -4938,7 +4938,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         TId tIdNode1 = (TId)nodeArrayList2.get(0);
-        checkResult(tIdNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(tIdNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(tIdNode1);
     }
 
@@ -4952,7 +4952,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -4972,7 +4972,7 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -4981,7 +4981,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         PTerm pTermNode1 = (PTerm)nodeArrayList2.get(0);
-        checkResult(pTermNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pTermNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pTermNode1);
     }
 
@@ -4991,7 +4991,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         TId tIdNode1 = (TId)nodeArrayList2.get(0);
-        checkResult(tIdNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(tIdNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(tIdNode1);
     }
 
@@ -5001,7 +5001,7 @@ public class Parser implements IParser
         TId tIdNode4 = (TId)nodeArrayList1.get(0);
         AElem pElemNode1 = new AElem(null, null, tIdNode4, null);
 
-        checkResult(pElemNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pElemNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pElemNode1);
     }
 
@@ -5013,7 +5013,7 @@ public class Parser implements IParser
         TId tIdNode4 = (TId)nodeArrayList2.get(0);
         AElem pElemNode1 = new AElem(tIdNode2, null, tIdNode4, null);
 
-        checkResult(pElemNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pElemNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pElemNode1);
     }
 
@@ -5025,7 +5025,7 @@ public class Parser implements IParser
         TId tIdNode4 = (TId)nodeArrayList2.get(0);
         AElem pElemNode1 = new AElem(null, pSpecifierNode3, tIdNode4, null);
 
-        checkResult(pElemNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pElemNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pElemNode1);
     }
 
@@ -5039,7 +5039,7 @@ public class Parser implements IParser
         TId tIdNode4 = (TId)nodeArrayList3.get(0);
         AElem pElemNode1 = new AElem(tIdNode2, pSpecifierNode3, tIdNode4, null);
 
-        checkResult(pElemNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pElemNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pElemNode1);
     }
 
@@ -5051,7 +5051,7 @@ public class Parser implements IParser
         PUnOp pUnOpNode5 = (PUnOp)nodeArrayList2.get(0);
         AElem pElemNode1 = new AElem(null, null, tIdNode4, pUnOpNode5);
 
-        checkResult(pElemNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pElemNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pElemNode1);
     }
 
@@ -5065,7 +5065,7 @@ public class Parser implements IParser
         PUnOp pUnOpNode5 = (PUnOp)nodeArrayList3.get(0);
         AElem pElemNode1 = new AElem(tIdNode2, null, tIdNode4, pUnOpNode5);
 
-        checkResult(pElemNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pElemNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pElemNode1);
     }
 
@@ -5079,7 +5079,7 @@ public class Parser implements IParser
         PUnOp pUnOpNode5 = (PUnOp)nodeArrayList3.get(0);
         AElem pElemNode1 = new AElem(null, pSpecifierNode3, tIdNode4, pUnOpNode5);
 
-        checkResult(pElemNode1, nodeArrayList1, nodeArrayList3);
+        computePositions(pElemNode1, nodeArrayList1, nodeArrayList3);
         return Collections.singletonList(pElemNode1);
     }
 
@@ -5095,7 +5095,7 @@ public class Parser implements IParser
         PUnOp pUnOpNode5 = (PUnOp)nodeArrayList4.get(0);
         AElem pElemNode1 = new AElem(tIdNode2, pSpecifierNode3, tIdNode4, pUnOpNode5);
 
-        checkResult(pElemNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pElemNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pElemNode1);
     }
 
@@ -5106,7 +5106,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         TId tIdNode1 = (TId)nodeArrayList2.get(0);
-        checkResult(tIdNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(tIdNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(tIdNode1);
     }
 
@@ -5116,7 +5116,7 @@ public class Parser implements IParser
         List<?> nodeArrayList1 = pop();
         ATokenSpecifier pSpecifierNode1 = new ATokenSpecifier();
 
-        checkResult(pSpecifierNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pSpecifierNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pSpecifierNode1);
     }
 
@@ -5126,7 +5126,7 @@ public class Parser implements IParser
         List<?> nodeArrayList1 = pop();
         AProductionSpecifier pSpecifierNode1 = new AProductionSpecifier();
 
-        checkResult(pSpecifierNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pSpecifierNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pSpecifierNode1);
     }
 
@@ -5140,7 +5140,7 @@ public class Parser implements IParser
         List<PAstProd> listNode3 = listNode2;
         AAst pAstNode1 = new AAst(listNode3);
 
-        checkResult(pAstNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pAstNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pAstNode1);
     }
 
@@ -5155,7 +5155,7 @@ public class Parser implements IParser
         List<PAstAlt> listNode4 = listNode3;
         AAstProd pAstProdNode1 = new AAstProd(tIdNode2, listNode4);
 
-        checkResult(pAstProdNode1, nodeArrayList1, nodeArrayList4);
+        computePositions(pAstProdNode1, nodeArrayList1, nodeArrayList4);
         return Collections.singletonList(pAstProdNode1);
     }
 
@@ -5169,7 +5169,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5189,7 +5189,7 @@ public class Parser implements IParser
         } else {
             listNode3.addAll(listNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5198,7 +5198,7 @@ public class Parser implements IParser
         List<?> nodeArrayList2 = pop();
         List<?> nodeArrayList1 = pop();
         PAstAlt pAstAltNode1 = (PAstAlt)nodeArrayList2.get(0);
-        checkResult(pAstAltNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pAstAltNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pAstAltNode1);
     }
 
@@ -5215,7 +5215,7 @@ public class Parser implements IParser
         TId tIdNode2 = (TId)nodeArrayList1.get(0);
         AAstAlt pAstAltNode1 = new AAstAlt(tIdNode2, Collections.emptyList());
 
-        checkResult(pAstAltNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pAstAltNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pAstAltNode1);
     }
 
@@ -5226,7 +5226,7 @@ public class Parser implements IParser
         List<PElem> listNode4 = listNode3;
         AAstAlt pAstAltNode1 = new AAstAlt(null, listNode4);
 
-        checkResult(pAstAltNode1, nodeArrayList1, nodeArrayList1);
+        computePositions(pAstAltNode1, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(pAstAltNode1);
     }
 
@@ -5239,7 +5239,7 @@ public class Parser implements IParser
         List<PElem> listNode4 = listNode3;
         AAstAlt pAstAltNode1 = new AAstAlt(tIdNode2, listNode4);
 
-        checkResult(pAstAltNode1, nodeArrayList1, nodeArrayList2);
+        computePositions(pAstAltNode1, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(pAstAltNode1);
     }
 
@@ -5253,7 +5253,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5273,7 +5273,7 @@ public class Parser implements IParser
         {
             listNode3.add(tPkgIdNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5287,7 +5287,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5307,7 +5307,7 @@ public class Parser implements IParser
         {
             listNode3.add(pHelperDefNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5321,7 +5321,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5341,7 +5341,7 @@ public class Parser implements IParser
         {
             listNode3.add(tIdNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5355,7 +5355,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5375,7 +5375,7 @@ public class Parser implements IParser
         {
             listNode3.add(pTokenDefNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5389,7 +5389,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5409,7 +5409,7 @@ public class Parser implements IParser
         {
             listNode3.add(pStateListTailNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5423,7 +5423,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5443,7 +5443,7 @@ public class Parser implements IParser
         {
             listNode3.add(pConcatNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5457,7 +5457,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5477,7 +5477,7 @@ public class Parser implements IParser
         {
             listNode3.add(pUnExpNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5491,7 +5491,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5511,7 +5511,7 @@ public class Parser implements IParser
         {
             listNode3.add(pProdNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5525,7 +5525,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5545,7 +5545,7 @@ public class Parser implements IParser
         {
             listNode3.add(pElemNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5559,7 +5559,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5579,7 +5579,7 @@ public class Parser implements IParser
         {
             listNode3.add(pAltNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5593,7 +5593,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5613,7 +5613,7 @@ public class Parser implements IParser
         {
             listNode3.add(pTermNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5627,7 +5627,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5647,7 +5647,7 @@ public class Parser implements IParser
         {
             listNode3.add(pListTermNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5661,7 +5661,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5681,7 +5681,7 @@ public class Parser implements IParser
         {
             listNode3.add(pTermNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5695,7 +5695,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5715,7 +5715,7 @@ public class Parser implements IParser
         {
             listNode3.add(pAstProdNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
@@ -5729,7 +5729,7 @@ public class Parser implements IParser
         } else {
             listNode2 = Collections.emptyList();
         }
-        checkResult(listNode2, nodeArrayList1, nodeArrayList1);
+        computePositions(listNode2, nodeArrayList1, nodeArrayList1);
         return Collections.singletonList(listNode2);
     }
 
@@ -5749,7 +5749,7 @@ public class Parser implements IParser
         {
             listNode3.add(pAstAltNode2);
         }
-        checkResult(listNode3, nodeArrayList1, nodeArrayList2);
+        computePositions(listNode3, nodeArrayList1, nodeArrayList2);
         return Collections.singletonList(listNode3);
     }
 
diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt
index c952614e8d0b4caacc444d9ab56b38888d3a3729..af685dcd5f780d0e5e330fd2e1631c99905c8559 100644
--- a/src/main/resources/org/sablecc/sablecc/parser.txt
+++ b/src/main/resources/org/sablecc/sablecc/parser.txt
@@ -45,22 +45,22 @@ public class Parser implements IParser
         this.lexer = lexer;
     }
 
-    private void checkResult(Object elementToCheck, List<?> beginNodeList, List<?> endNodeList) {
-        if (elementToCheck instanceof List<?>) {
+    private void computePositions(Object resultNodeOrList, List<?> beginNodeList, List<?> endNodeList) {
+        if (resultNodeOrList instanceof List<?>) {
             /*
              * special case: this is a list of nodes, for example an identifier
-             * list, so we don't want to check the list but the last element
-             * added to it
+             * list, so we don't want to assign positions to the entire list,
+             * but the last element added to it
              */
-            final List<?> nodeList = (List<?>) elementToCheck;
+            final List<?> nodeList = (List<?>) resultNodeOrList;
             if (nodeList.isEmpty()) {
                 // no positions for empty lists...
                 return;
             }
-            elementToCheck = nodeList.get(nodeList.size() - 1);
+            resultNodeOrList = nodeList.get(nodeList.size() - 1);
         }
 
-        final PositionedNode node = (PositionedNode) elementToCheck;
+        final PositionedNode node = (PositionedNode) resultNodeOrList;
 
         // Add node positions if they haven't been calculated yet.
         // Tokens are skipped because they always have positions -
@@ -340,8 +340,8 @@ Macro:ParserTypedLinkedListAddAll
 
 $
 
-Macro:ParserNewCheck
-        checkResult($0$, nodeArrayList1, nodeArrayList$1$);
+Macro:ParserNewComputePositions
+        computePositions($0$, nodeArrayList1, nodeArrayList$1$);
 
 $