From 6bf00afde4801e29b5dd7116167c5e3e5bbc793a Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Wed, 15 May 2024 18:48:43 +0200
Subject: [PATCH] Avoid redundant counting of popCount in parser alternative
 codegen

---
 src/main/java/org/sablecc/sablecc/GenParser.java     |  3 ++-
 .../sablecc/GenerateAlternativeCodeForParser.java    | 12 +++---------
 2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/sablecc/sablecc/GenParser.java b/src/main/java/org/sablecc/sablecc/GenParser.java
index 98bcc81..7799a6f 100644
--- a/src/main/java/org/sablecc/sablecc/GenParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenParser.java
@@ -414,7 +414,8 @@ public class GenParser extends DepthFirstAdapter
                                                file, transformIds, CG, CTP,
                                                simpleTermTransform, macros,
                                                listSimpleTermTransform,
-                                               transformIds.simpleTermOrsimpleListTermTypes);
+                                               transformIds.simpleTermOrsimpleListTermTypes,
+                                               stack.size());
         node.apply(aParsedAltAdapter);
       }
 
diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
index 633ef58..0e64438 100644
--- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
@@ -30,7 +30,6 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
   private Map<Node, String> simpleTermTransformMap;
   private List<Node> listSimpleTermTransform;
   private Map<Node, String> simpleTermOrsimpleListTermTypes;
-
   private int popCount;
 
   GenerateAlternativeCodeForParser(File pkgDir, String aParsedAltName,
@@ -42,7 +41,8 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
                                    Map<Node, String> simpleTermTransformMap,
                                    MacroExpander macros,
                                    List<Node> listSimpleTermTransform,
-                                   Map<Node, String> simpleTermOrsimpleListTermTypes)
+                                   Map<Node, String> simpleTermOrsimpleListTermTypes,
+                                   int popCount)
   {
     this.pkgDir = pkgDir;
     this.file = file;
@@ -55,13 +55,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
     this.macros = macros;
     this.listSimpleTermTransform = listSimpleTermTransform;
     this.simpleTermOrsimpleListTermTypes = simpleTermOrsimpleListTermTypes;
-
-    this.popCount = 0;
-  }
-
-  @Override
-  public void caseAElem(final AElem node) {
-    popCount++;
+    this.popCount = popCount;
   }
 
   private String lookupInternalTypeName(Node term) {
-- 
GitLab