diff --git a/src/main/java/org/sablecc/sablecc/parser/Parser.java b/src/main/java/org/sablecc/sablecc/parser/Parser.java
index 307f9d19a936b93f4672059a32d01fefbd94b242..1f17b9a1d837c17584c47365d80d63e39d145dfa 100644
--- a/src/main/java/org/sablecc/sablecc/parser/Parser.java
+++ b/src/main/java/org/sablecc/sablecc/parser/Parser.java
@@ -1800,6 +1800,8 @@ public class Parser implements IParser
                             push(goTo(64), list);
                         }
                         break;
+                        default:
+                            throw new ParserException(lastToken, "[" + lastToken.getLine() + "," + lastToken.getPos() + "] Internal parser error: invalid action table REDUCE destination " + destination + ", current state " + state());
                     }
                     break;
                 case ACCEPT:
@@ -1813,6 +1815,9 @@ public class Parser implements IParser
                     throw new ParserException(lastToken,
                         "[" + lastToken.getLine() + "," + lastToken.getPos() + "] " ,
                         Parser.errorMessages[Parser.errors[destination]]);
+
+                default:
+                    throw new ParserException(lastToken, "[" + lastToken.getLine() + "," + lastToken.getPos() + "] Internal parser error: invalid action table entry " + action + ", destination " + destination + ", current state " + state());
             }
         }
     }
diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt
index 74b289fde1c718310093ab8549a227fa2fce7bda..3d28b807dc5ac120e6ccbebb77c61aba7595c26f 100644
--- a/src/main/resources/org/sablecc/sablecc/parser.txt
+++ b/src/main/resources/org/sablecc/sablecc/parser.txt
@@ -208,6 +208,8 @@ Macro:ParserParseReduce
 $
 
 Macro:ParserParseTail
+                        default:
+                            throw new ParserException(lastToken, "[" + lastToken.getLine() + "," + lastToken.getPos() + "] Internal parser error: invalid action table REDUCE destination " + destination + ", current state " + state());
                     }
                     break;
                 case ACCEPT:
@@ -221,6 +223,9 @@ Macro:ParserParseTail
                     throw new ParserException(lastToken,
                         "[" + lastToken.getLine() + "," + lastToken.getPos() + "] " ,
                         Parser.errorMessages[Parser.errors[destination]]);
+
+                default:
+                    throw new ParserException(lastToken, "[" + lastToken.getLine() + "," + lastToken.getPos() + "] Internal parser error: invalid action table entry " + action + ", destination " + destination + ", current state " + state());
             }
         }
     }