From c0911fb8daff268e99baf10282cde7b6311cf6e6 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Thu, 20 Jul 2023 18:56:30 +0200 Subject: [PATCH] Eliminate a double call to index in Parser.parser --- src/main/java/org/sablecc/sablecc/parser/Parser.java | 9 +++++---- src/main/resources/org/sablecc/sablecc/parser.txt | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/sablecc/sablecc/parser/Parser.java b/src/main/java/org/sablecc/sablecc/parser/Parser.java index fd96806..7e8878d 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 cd56e7b..0632711 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]; -- GitLab