summaryrefslogtreecommitdiff
path: root/Playground.java
diff options
context:
space:
mode:
Diffstat (limited to 'Playground.java')
-rw-r--r--Playground.java120
1 files changed, 0 insertions, 120 deletions
diff --git a/Playground.java b/Playground.java
deleted file mode 100644
index 8e9cbc0..0000000
--- a/Playground.java
+++ /dev/null
@@ -1,120 +0,0 @@
-import java.util.*;
-import st.*;
-
-/**
- * A small method to test the basic functionality
- * of the st Instance library
- */
-public class Playground {
-
- public static String HashMapToString(Map<String, AbstractInstance> map) {
- StringBuilder mapAsString = new StringBuilder("{");
- for (String key : map.keySet()) {
- mapAsString.append(key + "=" + map.get(key) + ", ");
- }
- mapAsString.delete(mapAsString.length()-2, mapAsString.length()).append("}");
- return mapAsString.toString();
- }
-
- public static void main(String[] args) {
-
- /*
- class Factorial{
- ....public static void main(String[] a){
- ........System.out.println(new Fac().ComputeFac(10));
- ....}
- }
- class Fac {
- ....int[] useless_var ;
- ....public int ComputeFac(int num){
- ........int num_aux ;
- ........if (num < 1)
- ............num_aux = 1 ;
- ........else
- ............num_aux = num * (this.ComputeFac(num-1)) ;
- ........return num_aux ;
- ....}
- }
- class Fac2 extends Fac {
- }
-
- The below is a manual practice run of the SymbolTable class.
- */
-
- SymbolTable ssymt = new SymbolTable();
-
- /* pass one */
- ssymt.put("Factorial", new ClassInstance("Factorial"));
- ssymt.put("main", new MethodInstance("main", TypeEnum.ERROR));
- ssymt.put("Fac", new ClassInstance("Fac"));
- ssymt.put("useless_var", new TypeInstance("useless_var", TypeEnum.intarray));
- ssymt.put("ComputeFac", new MethodInstance("ComputeFac", TypeEnum.integer));
- ssymt.put("num", new TypeInstance("num", TypeEnum.integer));
- ssymt.put("num_aux", new TypeInstance("num_aux", TypeEnum.integer));
- ssymt.put("Fac2", new ClassInstance("Fac2"));
-
- System.out.println("Post pass one: " + ssymt.toString());
-
- /* pass two */
- ssymt.setActive("Factorial", TypeEnum.classname);
- ssymt.setActive("main", TypeEnum.method);
- ssymt.addMethod("main");
- ssymt.setActive("Fac", TypeEnum.classname);
- ssymt.addAttribute("useless_var");
- ssymt.setActive("ComputeFac", TypeEnum.method);
- ssymt.addMethod("ComputeFac");
- ssymt.addParameter("num");
- ssymt.addLocal("num_aux");
- ssymt.setActive("Fac2", TypeEnum.classname);
- ssymt.setExtend("Fac");
-
- ArrayList<TypeInstance> attrs_in_factorial = new ArrayList<>();
- ArrayList<MethodInstance> mtds_in_factorial = new ArrayList<>();
- mtds_in_factorial.add(ssymt.getMethod("main"));
- ArrayList<TypeInstance> attrs_in_fac = new ArrayList<>();
- attrs_in_fac.add(ssymt.getType("useless_var"));
- ArrayList<MethodInstance> mtds_in_fac = new ArrayList<>();
- mtds_in_fac.add(ssymt.getMethod("ComputeFac"));
- ArrayList<TypeInstance> attrs_in_fac2 = new ArrayList<>(); // FIXME
- ArrayList<MethodInstance> mtds_in_fac2 = new ArrayList<>(); // FIXME
-
- System.out.println("test class children");
- System.out.println(ssymt.getClass("Factorial").getAttributes().equals(attrs_in_factorial));
- System.out.println(ssymt.getClass("Factorial").getMethods().equals(mtds_in_factorial));
- System.out.println(ssymt.getClass("Fac").getAttributes().equals(attrs_in_fac));
- System.out.println(ssymt.getClass("Fac").getMethods().equals(mtds_in_fac));
- System.out.println(ssymt.getClass("Fac2").getAttributes().equals(attrs_in_fac2));
- System.out.println(ssymt.getClass("Fac2").getMethods().equals(mtds_in_fac2));
-
- ArrayList<TypeInstance> args_in_computefac = new ArrayList<>();
- args_in_computefac.add(ssymt.getType("num"));
- ArrayList<TypeInstance> locals_in_computefac = new ArrayList<>(args_in_computefac);
- locals_in_computefac.add(ssymt.getType("num_aux"));
-
- System.out.println("test method children");
- System.out.println(ssymt.getMethod("ComputeFac").getArguments().equals(args_in_computefac));
- System.out.println(ssymt.getMethod("ComputeFac").getLocals().equals(locals_in_computefac));
-
- ClassInstance exts_factorial = null;
- ClassInstance exts_fac = null;
- ClassInstance exts_fac2 = ssymt.getClass("Fac");
-
- System.out.println("test inheritance");
- System.out.println(ssymt.getClass("Factorial").getExtend() == exts_factorial);
- System.out.println(ssymt.getClass("Fac").getExtend() == exts_fac);
- System.out.println(ssymt.getClass("Fac2").getExtend() == exts_fac2);
-
- AbstractInstance scope_main = ssymt.getClass("Factorial");
- AbstractInstance scope_computefac = ssymt.getClass("Fac");
- AbstractInstance scope_uselessvar = ssymt.getClass("Fac");
- AbstractInstance scope_num = ssymt.getMethod("ComputeFac");
- AbstractInstance scope_numaux = ssymt.getMethod("ComputeFac");
-
- System.out.println("test scope");
- System.out.println(ssymt.getMethod("main").getScope() == scope_main);
- System.out.println(ssymt.getMethod("ComputeFac").getScope() == scope_computefac);
- System.out.println(ssymt.getType("useless_var").getScope() == scope_uselessvar);
- System.out.println(ssymt.getType("num").getScope() == scope_num);
- System.out.println(ssymt.getType("num_aux").getScope() == scope_numaux);
- }
-}