|
@@ -0,0 +1,59 @@
|
|
|
+digraph G{
|
|
|
+ // Inheritance links between superclasses
|
|
|
+ Expression -> Action [arrowhead="empty"];
|
|
|
+ Statement -> Action [arrowhead="empty"];
|
|
|
+ Action -> Any [arrowhead="empty"];
|
|
|
+
|
|
|
+ // Links on superclasses
|
|
|
+ Statement -> Statement [label="next"];
|
|
|
+
|
|
|
+ // Inheritance hierarchy
|
|
|
+ If -> Statement [arrowhead="empty"];
|
|
|
+ While -> Statement [arrowhead="empty"];
|
|
|
+ Assign -> Statement [arrowhead="empty"];
|
|
|
+ Call -> Statement [arrowhead="empty"];
|
|
|
+ Call -> Expression [arrowhead="empty"];
|
|
|
+ Break -> Statement [arrowhead="empty"];
|
|
|
+ Continue -> Statement [arrowhead="empty"];
|
|
|
+ Return -> Statement [arrowhead="empty"];
|
|
|
+ Resolve -> Statement [arrowhead="empty"];
|
|
|
+ Resolve -> Lvalue [arrowhead="empty"];
|
|
|
+ Access -> Expression [arrowhead="empty"];
|
|
|
+ Constant -> Expression [arrowhead="empty"];
|
|
|
+ Constant -> Lvalue [arrowhead="empty"];
|
|
|
+ Input -> Expression [arrowhead="empty"];
|
|
|
+ Output -> Statement [arrowhead="empty"];
|
|
|
+ Declare -> Statement [arrowhead="empty"];
|
|
|
+ Global -> Statement [arrowhead="empty"];
|
|
|
+
|
|
|
+ // Actual types
|
|
|
+ // If
|
|
|
+ If -> Expression [label="cond"];
|
|
|
+ If -> Statement [label="true"];
|
|
|
+ If -> Statement [label="false"];
|
|
|
+
|
|
|
+ // While
|
|
|
+ While -> Expression [label="cond"];
|
|
|
+ While -> Statement [label="body"];
|
|
|
+
|
|
|
+ // Assign
|
|
|
+ Assign -> Lvalue [label="var"];
|
|
|
+ Assign -> Expression [label="value"];
|
|
|
+
|
|
|
+ // Call
|
|
|
+ Call -> Expression [label="func"];
|
|
|
+ Call -> Param [label="params"];
|
|
|
+ Call -> Param [label="last_param"];
|
|
|
+
|
|
|
+ // Break
|
|
|
+ Break -> While [label="while"];
|
|
|
+
|
|
|
+ // Continue
|
|
|
+ Continue -> While [label="while"];
|
|
|
+
|
|
|
+ // Return
|
|
|
+ Return -> Expression [label="value"];
|
|
|
+
|
|
|
+ // Resolve
|
|
|
+ Resolve -> Any [label="var"];
|
|
|
+}
|