From 7ebb3951a5e0fc40e90984448a080c41d63e7f27 Mon Sep 17 00:00:00 2001
From: Michael Leuschel <leuschel@uni-duesseldorf.de>
Date: Fri, 19 Mar 2021 11:41:26 +0100
Subject: [PATCH] add comments and debug prints

---
 src/main/java/de/tla2b/analysis/BOperation.java | 17 +++++++++++------
 src/main/java/de/tla2bAst/BAstCreator.java      |  2 +-
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/src/main/java/de/tla2b/analysis/BOperation.java b/src/main/java/de/tla2b/analysis/BOperation.java
index 106d7b7..f8e0945 100644
--- a/src/main/java/de/tla2b/analysis/BOperation.java
+++ b/src/main/java/de/tla2b/analysis/BOperation.java
@@ -64,7 +64,9 @@ public class BOperation extends BuiltInOPs implements ASTConstants,
 				.getModuleNode().getVariableDecls()));
 
 		evalParams();
+		// System.out.println("Construction B Operation for TLA+ action: " + name);
 		findUnchangedVariables();
+		// System.out.println(" UNCHANGED = " + unchangedVariables.toString());
 		separateGuardsAndBeforeAfterPredicates(node);
 		findAssignments();
 	}
@@ -186,19 +188,22 @@ public class BOperation extends BuiltInOPs implements ASTConstants,
 
 					if (OPCODE_eq == getOpCode(opApplNode.getOperator()
 							.getName())) {
-						ExprOrOpArgNode arg1 = opApplNode.getArgs()[0];
+						ExprOrOpArgNode arg1 = opApplNode.getArgs()[0]; // we have equality arg1 = RHS
 						try {
 							OpApplNode arg11 = (OpApplNode) arg1;
 							if (getOpCode(arg11.getOperator().getName()) == OPCODE_prime) {
 								OpApplNode v = (OpApplNode) arg11.getArgs()[0];
 								SymbolNode var = v.getOperator();
+								// we have equality var' = RHS
 								if (!primedVariablesFinder
 										.getTwiceUsedVariables().contains(var)) {
-									// var is only used once in all before after
-									// predicates
+									// var' is only used once in all before after predicates
+									// meaning we do not need it as parameter of the ANY
+									// and can add an assignment var := RHS
 									assignments.put(v.getOperator(),
-											opApplNode.getArgs()[1]);
+											opApplNode.getArgs()[1]); // RHS of assignment
 									beforeAfterPredicates.remove(node);
+								    // System.out.println("Detected assignment " + var.getName().toString() + "' = <RHS>");
 								}
 
 							}
@@ -241,8 +246,8 @@ public class BOperation extends BuiltInOPs implements ASTConstants,
 					return;
 				}
 				default: {
-					if (opApplNode.level < 2) {
-						guards.add(node);
+					if (opApplNode.level < 2) {  
+						guards.add(node); // should we be checking nonLeibnizParams is empty ?
 						return;
 					} else {
 						beforeAfterPredicates.add(node);
diff --git a/src/main/java/de/tla2bAst/BAstCreator.java b/src/main/java/de/tla2bAst/BAstCreator.java
index 8fd68c5..663673f 100644
--- a/src/main/java/de/tla2bAst/BAstCreator.java
+++ b/src/main/java/de/tla2bAst/BAstCreator.java
@@ -2186,8 +2186,8 @@ public class BAstCreator extends BuiltInOPs
 			break;
 		}
 		case OPCODE_unchanged: {
-			// System.out.println("hier");
 			OpApplNode node = (OpApplNode) n.getArgs()[0];
+			// System.out.println(" Translating UNCHANGED : " + node.toString());
 			if (node.getOperator().getKind() == VariableDeclKind) {
 				AEqualPredicate equal = new AEqualPredicate();
 				equal.setLeft(createIdentifierNode(getName(node.getOperator()) + "_n"));
-- 
GitLab