From 849c9f1a4e60fce81a359cdf7c2884a5c1ab0fbc Mon Sep 17 00:00:00 2001
From: pechoux <romain.pechoux@loria.fr>
Date: Tue, 14 Jan 2020 18:53:41 +0100
Subject: [PATCH] Operators class  renamed as TypingEnvironment + operators
 attribute renamed as te

---
 src/main/java/Main.java                          |  4 ++--
 src/main/java/complexityparser/Model.java        |  6 +++---
 .../tierTypingVisitors/FinalPass.java            |  2 +-
 .../tierTypingVisitors/FirstPass.java            |  2 +-
 .../tierTypingVisitors/SecondPass.java           |  2 +-
 .../base/BaseExpressionVisitor.java              |  6 +++---
 .../tierTypingVisitors/base/BaseVisitor.java     |  6 +++---
 .../tierTypingVisitors/base/ObjectVisitor.java   |  4 ++--
 .../java/complexityparser/types/Operator.java    |  2 +-
 .../types/env/OperatorTypingEnvBuilder.java      | 14 +++++++-------
 .../types/env/{Operators.java => TypingEnv.java} | 16 ++++++++--------
 11 files changed, 32 insertions(+), 32 deletions(-)
 rename src/main/java/complexityparser/types/env/{Operators.java => TypingEnv.java} (96%)

diff --git a/src/main/java/Main.java b/src/main/java/Main.java
index cb43847..1f8d878 100644
--- a/src/main/java/Main.java
+++ b/src/main/java/Main.java
@@ -15,7 +15,7 @@ limitations under the License.
 */
 
 import complexityparser.Model;
-import complexityparser.types.env.Operators;
+import complexityparser.types.env.TypingEnv;
 import view.MainFrame;
 
 import java.io.IOException;
@@ -24,7 +24,7 @@ public class Main {
     public static void main(String[] args) {
 
         try {
-            Operators.loadInstanceFromFile();
+            TypingEnv.loadInstanceFromFile();
         } catch (IOException e) {
             System.err.println("Operator config file load failed, exiting");
             System.exit(1);
diff --git a/src/main/java/complexityparser/Model.java b/src/main/java/complexityparser/Model.java
index 3fcbe15..2c3eebe 100644
--- a/src/main/java/complexityparser/Model.java
+++ b/src/main/java/complexityparser/Model.java
@@ -21,7 +21,7 @@ import complexityparser.analyse.antlr.JavaParser;
 import complexityparser.listener.CallGraphBuilder;
 import complexityparser.listener.TOSBuilder;
 import complexityparser.listener.TypingListener;
-import complexityparser.types.env.Operators;
+import complexityparser.types.env.TypingEnv;
 import complexityparser.types.Tier;
 import complexityparser.tierTypingVisitors.FinalPass;
 import complexityparser.tierTypingVisitors.FirstPass;
@@ -99,7 +99,7 @@ public class Model extends Observable {
      * @param code - a string of code.
      */
     public void setCode(String code) {
-        Operators.getInstance().clear();
+        TypingEnv.getInstance().clear();
         this.code = code;
         CharStream input = CharStreams.fromString(code);
         lexer = new JavaLexer(input);
@@ -154,7 +154,7 @@ public class Model extends Observable {
         //usually a good idea for debugging and testing
         //but showing bot might create a difficult to read output
 
-        System.out.println(Operators.getInstance());
+        System.out.println(TypingEnv.getInstance());
         //System.out.println(TOS.getInstance());
         //calls update on the Observer objects
         update();
diff --git a/src/main/java/complexityparser/tierTypingVisitors/FinalPass.java b/src/main/java/complexityparser/tierTypingVisitors/FinalPass.java
index 2335842..0632407 100644
--- a/src/main/java/complexityparser/tierTypingVisitors/FinalPass.java
+++ b/src/main/java/complexityparser/tierTypingVisitors/FinalPass.java
@@ -83,7 +83,7 @@ public class FinalPass extends ObjectVisitor {
         if(ctx.formalParameters().formalParameterList() != null) {
             nbParam = ctx.formalParameters().formalParameterList().formalParameter().size();
         }
-        Operator op = operators.get(namespace);
+        Operator op = te.get(namespace);
         if(op.size() == 0) {
             putTierType(ctx, Tier.None, Tier.None);
         }
diff --git a/src/main/java/complexityparser/tierTypingVisitors/FirstPass.java b/src/main/java/complexityparser/tierTypingVisitors/FirstPass.java
index 8ceadcd..a072180 100644
--- a/src/main/java/complexityparser/tierTypingVisitors/FirstPass.java
+++ b/src/main/java/complexityparser/tierTypingVisitors/FirstPass.java
@@ -124,7 +124,7 @@ public class FirstPass extends ObjectVisitor {
             }
             paramTiers.increment();
         }
-        operators.add(namespace, op);
+        te.add(namespace, op);
         setOverrideResult(true);
         return res;
     }
diff --git a/src/main/java/complexityparser/tierTypingVisitors/SecondPass.java b/src/main/java/complexityparser/tierTypingVisitors/SecondPass.java
index 111ca14..22f3b32 100644
--- a/src/main/java/complexityparser/tierTypingVisitors/SecondPass.java
+++ b/src/main/java/complexityparser/tierTypingVisitors/SecondPass.java
@@ -68,7 +68,7 @@ public class SecondPass extends ObjectVisitor {
         if(ctx.formalParameters().formalParameterList() != null) {
             nbParam = ctx.formalParameters().formalParameterList().formalParameter().size();
         }
-        Operator op = operators.get(namespace);
+        Operator op = te.get(namespace);
         setOverrideResult(false);
         int noBloc = getBlockNumber(ctx.methodBody().block());
         int i = 0;
diff --git a/src/main/java/complexityparser/tierTypingVisitors/base/BaseExpressionVisitor.java b/src/main/java/complexityparser/tierTypingVisitors/base/BaseExpressionVisitor.java
index b315c94..b651cae 100644
--- a/src/main/java/complexityparser/tierTypingVisitors/base/BaseExpressionVisitor.java
+++ b/src/main/java/complexityparser/tierTypingVisitors/base/BaseExpressionVisitor.java
@@ -160,7 +160,7 @@ public abstract class BaseExpressionVisitor extends BaseVisitor {
             in[i] = getTierType(list.get(i));
             env = Tier.max(env, getEnvironmentType(list.get(i)));
         }
-        res = operators.findRes(op, in).getOut();
+        res = te.findRes(op, in).getOut();
         putTierType(ctx, res, env);
         return res;
     }
@@ -231,12 +231,12 @@ public abstract class BaseExpressionVisitor extends BaseVisitor {
         Tier env = getEnvironmentType(ctx.expression());
         String op = ctx.prefix.getText();
         String type = getType(ctx.expression());
-        Output out = operators.findRes(op, res);
+        Output out = te.findRes(op, res);
         if(out == null || out.getOut() == Tier.None) {
             if(type.equals("int") || type.equals("boolean")) {
                 Mask m = new Mask(1);
                 m.set(0, true);
-                out = operators.findCompatibleIn(op, m, res);
+                out = te.findCompatibleIn(op, m, res);
             }
         }
         if(out != null) {
diff --git a/src/main/java/complexityparser/tierTypingVisitors/base/BaseVisitor.java b/src/main/java/complexityparser/tierTypingVisitors/base/BaseVisitor.java
index c7b156c..1eaa099 100644
--- a/src/main/java/complexityparser/tierTypingVisitors/base/BaseVisitor.java
+++ b/src/main/java/complexityparser/tierTypingVisitors/base/BaseVisitor.java
@@ -17,7 +17,7 @@ limitations under the License.
 package complexityparser.tierTypingVisitors.base;
 
 import complexityparser.types.Tier;
-import complexityparser.types.env.Operators;
+import complexityparser.types.env.TypingEnv;
 import complexityparser.analyse.antlr.JavaParser;
 import complexityparser.analyse.antlr.JavaParserBaseVisitor;
 import complexityparser.listener.TOSBuilder;
@@ -47,7 +47,7 @@ public abstract class BaseVisitor extends JavaParserBaseVisitor {
     private int whileCount; //The number of while statements encountered in the current block.
     private ParseTreeProperty<Integer> blockNumbers; //The block index associated to the each node of the parse tree.
     protected TOS tos; //The table of symbols.
-    protected Operators operators; //The hashmap of operators (HashMap<String, Operator>).
+    protected TypingEnv te; //The typing environment (HashMap<String, Operator>).
     private CommonTokenStream commonTokenStream; //ANTLR token stream to show line numbers.
     private boolean overrideResult = true; //A flag to set if the final result should be overridden and if a string output should be generated.
     private boolean inInitBlock; //A flag to indicate if the visitor is currently located inside an init block or not.
@@ -61,7 +61,7 @@ public abstract class BaseVisitor extends JavaParserBaseVisitor {
         this.types = typingListener.getTypes();
         commonTokenStream = stream;
         tos = TOS.getInstance();
-        operators = Operators.getInstance();
+        te = TypingEnv.getInstance();
         currentNamespace = tos.getNameSpace(0);
         recursiveCallsCount = 0;
         recursiveCallsReceivers = new HashSet<>();
diff --git a/src/main/java/complexityparser/tierTypingVisitors/base/ObjectVisitor.java b/src/main/java/complexityparser/tierTypingVisitors/base/ObjectVisitor.java
index df553f8..9e0607f 100644
--- a/src/main/java/complexityparser/tierTypingVisitors/base/ObjectVisitor.java
+++ b/src/main/java/complexityparser/tierTypingVisitors/base/ObjectVisitor.java
@@ -246,9 +246,9 @@ public abstract class ObjectVisitor extends BaseBlockStatementVisitor {
         }
         //Finds the namespace in the operator table
         //and returns a compatible output with the input found in the parameters and the receiver type.
-        Output output = operators.findMethod(namespace, paramTiers.getArray());
+        Output output = te.findMethod(namespace, paramTiers.getArray());
         if(output == null || output.getOut() == Tier.None) {
-            output = operators.findCompatibleMethod(namespace, mask, paramTiers.getArray());
+            output = te.findCompatibleMethod(namespace, mask, paramTiers.getArray());
             if(output == null) {
                 res = Tier.None;
             }
diff --git a/src/main/java/complexityparser/types/Operator.java b/src/main/java/complexityparser/types/Operator.java
index ee5f90c..36dc7b6 100644
--- a/src/main/java/complexityparser/types/Operator.java
+++ b/src/main/java/complexityparser/types/Operator.java
@@ -21,7 +21,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
-import complexityparser.types.env.Operators;
+import complexityparser.types.env.TypingEnv;
 
 
     /**
diff --git a/src/main/java/complexityparser/types/env/OperatorTypingEnvBuilder.java b/src/main/java/complexityparser/types/env/OperatorTypingEnvBuilder.java
index 8fde03e..4ca8906 100644
--- a/src/main/java/complexityparser/types/env/OperatorTypingEnvBuilder.java
+++ b/src/main/java/complexityparser/types/env/OperatorTypingEnvBuilder.java
@@ -28,11 +28,11 @@ import complexityparser.types.Output;
  */
 public class OperatorTypingEnvBuilder extends OperatorsBaseListener {
 
-    private Operators op = new Operators();
+    private TypingEnv te = new TypingEnv();
     private Operator latest;
 
-    public Operators getOp() {
-        return op;
+    public TypingEnv getOp() {
+        return te;
     }
 
     /**
@@ -42,14 +42,14 @@ public class OperatorTypingEnvBuilder extends OperatorsBaseListener {
      */
     @Override
     public void enterOperator(OperatorsParser.OperatorContext ctx) {
-        if(op == null) {
+        if(te == null) {
             return;
         }
         super.enterOperator(ctx);
         latest = new Operator(true);
         String opString = ctx.STRING_LITERAL().getText();
         opString = opString.substring(1, opString.length() - 1);
-        op.add(opString, latest);
+        te.add(opString, latest);
     }
 
     /**
@@ -58,7 +58,7 @@ public class OperatorTypingEnvBuilder extends OperatorsBaseListener {
      */
     @Override
     public void enterUnit(OperatorsParser.UnitContext ctx) {
-        if(op == null) {
+        if(te == null) {
             return;
         }
         super.enterUnit(ctx);
@@ -72,7 +72,7 @@ public class OperatorTypingEnvBuilder extends OperatorsBaseListener {
             latest.add(new Output(out, Tier.T0), in);
         } catch (IOException e) {
             e.printStackTrace();
-            op = null;
+            te = null;
         }
     }
 }
\ No newline at end of file
diff --git a/src/main/java/complexityparser/types/env/Operators.java b/src/main/java/complexityparser/types/env/TypingEnv.java
similarity index 96%
rename from src/main/java/complexityparser/types/env/Operators.java
rename to src/main/java/complexityparser/types/env/TypingEnv.java
index bba4508..93018fb 100644
--- a/src/main/java/complexityparser/types/env/Operators.java
+++ b/src/main/java/complexityparser/types/env/TypingEnv.java
@@ -35,13 +35,13 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 /**
-* This class contains information about the used operators and their (admissible) input/output tiers.
+* This class encodes typing environements, information about the operations and their (admissible) types.
 */
-public class Operators {
-    private static Operators instance = null;
+public class TypingEnv {
+    private static TypingEnv instance = null;
     private HashMap<String, Operator> operators;
 
-    protected Operators() {
+    protected TypingEnv() {
         operators = new HashMap<>();
     }
 
@@ -76,12 +76,12 @@ public class Operators {
      *
      * @return the attribute instance (null if the method #loadInstanceFromFIle() has not been called yet).
      */
-    public static Operators getInstance() {
+    public static TypingEnv getInstance() {
         return instance;
     }
 
     /**
-     * Adds an operator and a name to the hashmap #operators.
+     * Adds an operator and a name to the hashmap operators.
      * @param k - a name
      * @param o - an operator
      */
@@ -226,8 +226,8 @@ public class Operators {
      * @param fileName - a file name.
      * @return the singleton instance of Operators.
      */
-    private static Operators loadFromFile(String fileName) {
-        Operators res = null;
+    private static TypingEnv loadFromFile(String fileName) {
+        TypingEnv res = null;
         byte[] input = null;
         try {
             Path p = new File(fileName).toPath();
-- 
GitLab