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()); } } }