diff --git a/src/main/java/org/sablecc/sablecc/parser/Parser.java b/src/main/java/org/sablecc/sablecc/parser/Parser.java index fd96806607c8e5da458f60ca4f747b544b4d964e..7e8878d6eaf31cc2769eceb9870f37b62c60bbed 100644 --- a/src/main/java/org/sablecc/sablecc/parser/Parser.java +++ b/src/main/java/org/sablecc/sablecc/parser/Parser.java @@ -173,15 +173,16 @@ public class Parser implements IParser push(0, null); while(true) { - while(index(this.lexer.peek()) == -1) + Token lastToken = this.lexer.peek(); + int index = index(lastToken); + while(index == -1) { // this is an ignored token this.lexer.next(); + lastToken = this.lexer.peek(); + index = index(lastToken); } - Token lastToken = this.lexer.peek(); - - int index = index(this.lexer.peek()); int state = state(); int action = Parser.actionTable[state][0][1]; int destination = Parser.actionTable[state][0][2]; diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt index cd56e7b115fd386477648cdce010d92923097901..0632711d7ecfebd8eecabe76a3fa6b91a3bd32d9 100644 --- a/src/main/resources/org/sablecc/sablecc/parser.txt +++ b/src/main/resources/org/sablecc/sablecc/parser.txt @@ -207,15 +207,16 @@ Macro:ParserCommon push(0, null$0$); while(true) { - while(index(this.lexer.peek()) == -1) + Token lastToken = this.lexer.peek(); + int index = index(lastToken); + while(index == -1) { // this is an ignored token this.lexer.next(); + lastToken = this.lexer.peek(); + index = index(lastToken); } - Token lastToken = this.lexer.peek(); - - int index = index(this.lexer.peek()); int state = state(); int action = Parser.actionTable[state][0][1]; int destination = Parser.actionTable[state][0][2];