Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class EV
  4. {
  5. public static Integer ev (E e, Map <String, Integer> env) { throw new RuntimeException ("oops: " + e); }
  6. public static Integer ev (V e, Map <String, Integer> env) { return env.get (e.name); }
  7. public static Integer ev (C e, Map <String, Integer> env) { return e.value; }
  8. public static Integer ev (P e, Map <String, Integer> env) { return ev (e.a1, env) + ev (e.a2, env); }
  9. public static Integer ev (T e, Map <String, Integer> env) { return ev (e.a1, env) * ev (e.a2, env); }
  10.  
  11. public static void main (String [] a)
  12. {
  13. E e = new P (new T (new C (2), new V ("a")), new V ("b"));
  14. Map <String, Integer> env = new Hashtable <String, Integer> ();
  15. env.put ("a", 123);
  16. env.put ("b", 456);
  17. System.out.println ("ev (e, env) => " + ev (e, env));
  18. }
  19. }
  20.  
  21. class E {}
  22.  
  23. class V extends E
  24. {
  25. String name;
  26. public V (String name) { this.name = name; }
  27. }
  28.  
  29. class C extends E
  30. {
  31. Integer value;
  32. public C (Integer value) { this.value = value; }
  33. }
  34.  
  35. class P extends E
  36. {
  37. E a1, a2;
  38. public P (E a1, E a2) { this.a1 = a1; this.a2 = a2; }
  39. }
  40.  
  41. class T extends E
  42. {
  43. E a1, a2;
  44. public T (E a1, E a2) { this.a1 = a1; this.a2 = a2; }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement