From dc315e2e35f474b7b8421fdd9f7dcc888ea7621f Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Thu, 20 Jul 2023 18:52:28 +0200
Subject: [PATCH] Replace Parser.last_* fields with a single local variable

---
 src/main/java/org/sablecc/sablecc/parser/Parser.java | 11 +++--------
 src/main/resources/org/sablecc/sablecc/parser.txt    | 11 +++--------
 2 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/sablecc/sablecc/parser/Parser.java b/src/main/java/org/sablecc/sablecc/parser/Parser.java
index 25f7533..fd96806 100644
--- a/src/main/java/org/sablecc/sablecc/parser/Parser.java
+++ b/src/main/java/org/sablecc/sablecc/parser/Parser.java
@@ -26,9 +26,6 @@ public class Parser implements IParser
 
     private final Lexer lexer;
     private final ListIterator<State> stack = new LinkedList<State>().listIterator();
-    private int last_pos;
-    private int last_line;
-    private Token last_token;
     private final TokenIndex converter = new TokenIndex();
 
     private final static int SHIFT = 0;
@@ -182,9 +179,7 @@ public class Parser implements IParser
                 this.lexer.next();
             }
 
-            this.last_pos = this.lexer.peek().getPos();
-            this.last_line = this.lexer.peek().getLine();
-            this.last_token = this.lexer.peek();
+            Token lastToken = this.lexer.peek();
 
             int index = index(this.lexer.peek());
             int state = state();
@@ -1850,8 +1845,8 @@ public class Parser implements IParser
                     return node;
                 }
                 case ERROR:
-                    throw new ParserException(this.last_token,
-                        "[" + this.last_line + "," + this.last_pos + "] " ,
+                    throw new ParserException(lastToken,
+                        "[" + lastToken.getLine() + "," + lastToken.getPos() + "] " ,
                         Parser.errorMessages[Parser.errors[destination]]);
             }
         }
diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt
index b90e4a6..cd56e7b 100644
--- a/src/main/resources/org/sablecc/sablecc/parser.txt
+++ b/src/main/resources/org/sablecc/sablecc/parser.txt
@@ -34,9 +34,6 @@ public class Parser implements IParser
 
     private final Lexer lexer;
     private final ListIterator<State> stack = new LinkedList<State>().listIterator();
-    private int last_pos;
-    private int last_line;
-    private Token last_token;
     private final TokenIndex converter = new TokenIndex();
 
     private final static int SHIFT = 0;
@@ -216,9 +213,7 @@ Macro:ParserCommon
                 this.lexer.next();
             }
 
-            this.last_pos = this.lexer.peek().getPos();
-            this.last_line = this.lexer.peek().getLine();
-            this.last_token = this.lexer.peek();
+            Token lastToken = this.lexer.peek();
 
             int index = index(this.lexer.peek());
             int state = state();
@@ -294,8 +289,8 @@ Macro:ParserParseTail
                     return node;
                 }
                 case ERROR:
-                    throw new ParserException(this.last_token,
-                        "[" + this.last_line + "," + this.last_pos + "] " ,
+                    throw new ParserException(lastToken,
+                        "[" + lastToken.getLine() + "," + lastToken.getPos() + "] " ,
                         Parser.errorMessages[Parser.errors[destination]]);
             }
         }
-- 
GitLab