AL.dot 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. digraph G{
  2. // Inheritance links between superclasses
  3. Expression -> Action [arrowhead="empty"];
  4. Statement -> Action [arrowhead="empty"];
  5. Action -> Any [arrowhead="empty"];
  6. // Links on superclasses
  7. Statement -> Statement [label="next"];
  8. // Inheritance hierarchy
  9. If -> Statement [arrowhead="empty"];
  10. While -> Statement [arrowhead="empty"];
  11. Assign -> Statement [arrowhead="empty"];
  12. Call -> Statement [arrowhead="empty"];
  13. Call -> Expression [arrowhead="empty"];
  14. Break -> Statement [arrowhead="empty"];
  15. Continue -> Statement [arrowhead="empty"];
  16. Return -> Statement [arrowhead="empty"];
  17. Resolve -> Statement [arrowhead="empty"];
  18. Resolve -> Lvalue [arrowhead="empty"];
  19. Access -> Expression [arrowhead="empty"];
  20. Constant -> Expression [arrowhead="empty"];
  21. Constant -> Lvalue [arrowhead="empty"];
  22. Input -> Expression [arrowhead="empty"];
  23. Output -> Statement [arrowhead="empty"];
  24. Declare -> Statement [arrowhead="empty"];
  25. Global -> Statement [arrowhead="empty"];
  26. // Actual types
  27. // If
  28. If -> Expression [label="cond"];
  29. If -> Statement [label="true"];
  30. If -> Statement [label="false"];
  31. // While
  32. While -> Expression [label="cond"];
  33. While -> Statement [label="body"];
  34. // Assign
  35. Assign -> Lvalue [label="var"];
  36. Assign -> Expression [label="value"];
  37. // Call
  38. Call -> Expression [label="func"];
  39. Call -> Param [label="params"];
  40. Call -> Param [label="last_param"];
  41. // Break
  42. Break -> While [label="while"];
  43. // Continue
  44. Continue -> While [label="while"];
  45. // Return
  46. Return -> Expression [label="value"];
  47. // Resolve
  48. Resolve -> Any [label="var"];
  49. // Access
  50. Access -> Lvalue [label="var"];
  51. // Constant
  52. Constant -> Any [label="node"];
  53. // Input
  54. // Output
  55. Output -> Any [label="value"];
  56. // Declare
  57. // Global
  58. Global -> String [label="var"];
  59. // Param
  60. Param -> String [label="name"];
  61. Param -> Expression [label="value"];
  62. Param -> Param [label="next_param"];
  63. // Function definition
  64. Funcdef -> Statement [label="body"];
  65. }