diff --git a/src/main/java/org/sablecc/sablecc/parser/Parser.java b/src/main/java/org/sablecc/sablecc/parser/Parser.java
index c23684d97bc6ad40fc6a2548c44ef60dfbdf7a48..3e04de83651404c2b2ffb16b5b3bf9b024cdc1e3 100644
--- a/src/main/java/org/sablecc/sablecc/parser/Parser.java
+++ b/src/main/java/org/sablecc/sablecc/parser/Parser.java
@@ -30,7 +30,8 @@ public class Parser implements IParser
     private int last_line;
     private Token last_token;
     private final TokenIndex converter = new TokenIndex();
-    private final int[] action = new int[2];
+    private int action;
+    private int destination;
 
     private final static int SHIFT = 0;
     private final static int REDUCE = 1;
@@ -188,8 +189,8 @@ public class Parser implements IParser
             this.last_token = this.lexer.peek();
 
             int index = index(this.lexer.peek());
-            this.action[0] = Parser.actionTable[state()][0][1];
-            this.action[1] = Parser.actionTable[state()][0][2];
+            this.action = Parser.actionTable[state()][0][1];
+            this.destination = Parser.actionTable[state()][0][2];
 
             int low = 1;
             int high = Parser.actionTable[state()].length - 1;
@@ -208,23 +209,23 @@ public class Parser implements IParser
                 }
                 else
                 {
-                    this.action[0] = Parser.actionTable[state()][middle][1];
-                    this.action[1] = Parser.actionTable[state()][middle][2];
+                    this.action = Parser.actionTable[state()][middle][1];
+                    this.destination = Parser.actionTable[state()][middle][2];
                     break;
                 }
             }
 
-            switch(this.action[0])
+            switch(this.action)
             {
                 case SHIFT:
                 {
                     List<Object> list = new ArrayList<Object>();
                     list.add(this.lexer.next());
-                    push(this.action[1], list);
+                    push(this.destination, list);
                 }
                 break;
                 case REDUCE:
-                    switch(this.action[1])
+                    switch(this.destination)
                     {
                         case 0: /* reduce AAgrammar1Grammar */
                         {
@@ -1852,7 +1853,7 @@ public class Parser implements IParser
                 case ERROR:
                     throw new ParserException(this.last_token,
                         "[" + this.last_line + "," + this.last_pos + "] " ,
-                        Parser.errorMessages[Parser.errors[this.action[1]]]);
+                        Parser.errorMessages[Parser.errors[this.destination]]);
             }
         }
     }
diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt
index e5a46dc88e2a8f439c4512b47838348d6414f1db..7842214a2f491980ba54a40c0c70c5f77ddaa1f1 100644
--- a/src/main/resources/org/sablecc/sablecc/parser.txt
+++ b/src/main/resources/org/sablecc/sablecc/parser.txt
@@ -38,7 +38,8 @@ public class Parser implements IParser
     private int last_line;
     private Token last_token;
     private final TokenIndex converter = new TokenIndex();
-    private final int[] action = new int[2];
+    private int action;
+    private int destination;
 
     private final static int SHIFT = 0;
     private final static int REDUCE = 1;
@@ -222,8 +223,8 @@ Macro:ParserCommon
             this.last_token = this.lexer.peek();
 
             int index = index(this.lexer.peek());
-            this.action[0] = Parser.actionTable[state()][0][1];
-            this.action[1] = Parser.actionTable[state()][0][2];
+            this.action = Parser.actionTable[state()][0][1];
+            this.destination = Parser.actionTable[state()][0][2];
 
             int low = 1;
             int high = Parser.actionTable[state()].length - 1;
@@ -242,23 +243,23 @@ Macro:ParserCommon
                 }
                 else
                 {
-                    this.action[0] = Parser.actionTable[state()][middle][1];
-                    this.action[1] = Parser.actionTable[state()][middle][2];
+                    this.action = Parser.actionTable[state()][middle][1];
+                    this.destination = Parser.actionTable[state()][middle][2];
                     break;
                 }
             }
 
-            switch(this.action[0])
+            switch(this.action)
             {
                 case SHIFT:
                 {
                     List<Object> list = new ArrayList<Object>();
                     list.add(this.lexer.next());
-                    push(this.action[1], list$1$);
+                    push(this.destination, list$1$);
                 }
                 break;
                 case REDUCE:
-                    switch(this.action[1])
+                    switch(this.destination)
                     {
 
 $
@@ -296,7 +297,7 @@ Macro:ParserParseTail
                 case ERROR:
                     throw new ParserException(this.last_token,
                         "[" + this.last_line + "," + this.last_pos + "] " ,
-                        Parser.errorMessages[Parser.errors[this.action[1]]]);
+                        Parser.errorMessages[Parser.errors[this.destination]]);
             }
         }
     }