diff options
Diffstat (limited to 'Playground.java')
-rw-r--r-- | Playground.java | 120 |
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); - } -} |