From 499e456d02fcb4f8174998cd029a031463be2485 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Thu, 20 Jul 2023 18:08:33 +0200 Subject: [PATCH] Split Parser.action array into two variables --- .../org/sablecc/sablecc/parser/Parser.java | 19 ++++++++++--------- .../resources/org/sablecc/sablecc/parser.txt | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/sablecc/sablecc/parser/Parser.java b/src/main/java/org/sablecc/sablecc/parser/Parser.java index c23684d..3e04de8 100644 --- a/src/main/java/org/sablecc/sablecc/parser/Parser.java +++ b/src/main/java/org/sablecc/sablecc/parser/Parser.java @@ -30,7 +30,8 @@ public class Parser implements IParser private int last_line; private Token last_token; private final TokenIndex converter = new TokenIndex(); - private final int[] action = new int[2]; + private int action; + private int destination; private final static int SHIFT = 0; private final static int REDUCE = 1; @@ -188,8 +189,8 @@ public class Parser implements IParser this.last_token = this.lexer.peek(); int index = index(this.lexer.peek()); - this.action[0] = Parser.actionTable[state()][0][1]; - this.action[1] = Parser.actionTable[state()][0][2]; + this.action = Parser.actionTable[state()][0][1]; + this.destination = Parser.actionTable[state()][0][2]; int low = 1; int high = Parser.actionTable[state()].length - 1; @@ -208,23 +209,23 @@ public class Parser implements IParser } else { - this.action[0] = Parser.actionTable[state()][middle][1]; - this.action[1] = Parser.actionTable[state()][middle][2]; + this.action = Parser.actionTable[state()][middle][1]; + this.destination = Parser.actionTable[state()][middle][2]; break; } } - switch(this.action[0]) + switch(this.action) { case SHIFT: { List<Object> list = new ArrayList<Object>(); list.add(this.lexer.next()); - push(this.action[1], list); + push(this.destination, list); } break; case REDUCE: - switch(this.action[1]) + switch(this.destination) { case 0: /* reduce AAgrammar1Grammar */ { @@ -1852,7 +1853,7 @@ public class Parser implements IParser case ERROR: throw new ParserException(this.last_token, "[" + this.last_line + "," + this.last_pos + "] " , - Parser.errorMessages[Parser.errors[this.action[1]]]); + Parser.errorMessages[Parser.errors[this.destination]]); } } } diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt index e5a46dc..7842214 100644 --- a/src/main/resources/org/sablecc/sablecc/parser.txt +++ b/src/main/resources/org/sablecc/sablecc/parser.txt @@ -38,7 +38,8 @@ public class Parser implements IParser private int last_line; private Token last_token; private final TokenIndex converter = new TokenIndex(); - private final int[] action = new int[2]; + private int action; + private int destination; private final static int SHIFT = 0; private final static int REDUCE = 1; @@ -222,8 +223,8 @@ Macro:ParserCommon this.last_token = this.lexer.peek(); int index = index(this.lexer.peek()); - this.action[0] = Parser.actionTable[state()][0][1]; - this.action[1] = Parser.actionTable[state()][0][2]; + this.action = Parser.actionTable[state()][0][1]; + this.destination = Parser.actionTable[state()][0][2]; int low = 1; int high = Parser.actionTable[state()].length - 1; @@ -242,23 +243,23 @@ Macro:ParserCommon } else { - this.action[0] = Parser.actionTable[state()][middle][1]; - this.action[1] = Parser.actionTable[state()][middle][2]; + this.action = Parser.actionTable[state()][middle][1]; + this.destination = Parser.actionTable[state()][middle][2]; break; } } - switch(this.action[0]) + switch(this.action) { case SHIFT: { List<Object> list = new ArrayList<Object>(); list.add(this.lexer.next()); - push(this.action[1], list$1$); + push(this.destination, list$1$); } break; case REDUCE: - switch(this.action[1]) + switch(this.destination) { $ @@ -296,7 +297,7 @@ Macro:ParserParseTail case ERROR: throw new ParserException(this.last_token, "[" + this.last_line + "," + this.last_pos + "] " , - Parser.errorMessages[Parser.errors[this.action[1]]]); + Parser.errorMessages[Parser.errors[this.destination]]); } } } -- GitLab