summaryrefslogtreecommitdiff
path: root/chapter10/docs/lattice.gv
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2024-11-27 11:29:33 -0800
committerCliff Click <cliffc@acm.org>2025-01-15 15:07:30 -0800
commit65454d77eba95d7f814336377f78d9f42c7455f9 (patch)
tree976efed369498c7e976fe5098f6a406fed81cb53 /chapter10/docs/lattice.gv
parent34766f1a2e9e60626eb1bd5a08140fc41a3770c8 (diff)
downloadSimple-65454d77eba95d7f814336377f78d9f42c7455f9.tar.gz
Simple-65454d77eba95d7f814336377f78d9f42c7455f9.zip
More lattice docs reworks
Diffstat (limited to 'chapter10/docs/lattice.gv')
-rw-r--r--chapter10/docs/lattice.gv46
1 files changed, 19 insertions, 27 deletions
diff --git a/chapter10/docs/lattice.gv b/chapter10/docs/lattice.gv
index 5ac1bd5a..7723e2a2 100644
--- a/chapter10/docs/lattice.gv
+++ b/chapter10/docs/lattice.gv
@@ -5,12 +5,12 @@ digraph Lattice {
node [shape=circle, style=filled];
nodesep=0.6;
- TOP [label=<<B>⊤ </B>>, fillcolor=black, fontcolor=white];
+ TOP [label=<<B>⊤</B >>, fillcolor=black, fontcolor=white];
BOT [label=<<B>⊥</B>>, fillcolor=black, fontcolor=white];
// ----------------------
// Control
- XCTRL [label=<<B>⊤ </B>:ctrl>, fillcolor=yellow, shape=oval];
+ XCTRL [label=<<B>⊤</B >:ctrl>, fillcolor=yellow, shape=oval];
CTRL [label=<<B>⊥</B>:ctrl>, fillcolor=yellow, shape=oval];
TOP -> XCTRL;
@@ -19,29 +19,23 @@ digraph Lattice {
// ----------------------
// Integers
- INT_TOP [label=<<B>⊤ </B>:int>, fillcolor=lightblue, shape=oval];
+ INT_TOP [label=<<B>⊤</B >:int>, fillcolor=lightblue, shape=oval];
INT_BOT [label=<<B>⊥</B>:int>, fillcolor=lightblue, shape=oval];
- INT_MIN [label="-n" , fillcolor=lightblue];
INT_MINDOTS [label="...", fillcolor=lightblue, shape=oval];
INT_ZERO [label="0" , fillcolor=lightblue];
INT_MAXDOTS [label="...", fillcolor=lightblue, shape=oval];
- INT_MAX [label="+n" , fillcolor=lightblue];
TOP -> INT_TOP;
- INT_TOP -> INT_MIN;
INT_TOP -> INT_MINDOTS;
INT_TOP -> INT_ZERO;
INT_TOP -> INT_MAXDOTS;
- INT_TOP -> INT_MAX;
- INT_MIN -> INT_BOT;
INT_MINDOTS -> INT_BOT;
INT_ZERO -> INT_BOT;
INT_MAXDOTS -> INT_BOT;
- INT_MAX -> INT_BOT;
INT_BOT -> BOT;
- INT_MIN -> INT_MINDOTS -> INT_ZERO -> INT_MAXDOTS -> INT_MAX [style=invis];
+ INT_MINDOTS -> INT_ZERO -> INT_MAXDOTS [style=invis];
// ----------------------
// Pointers, just a boolean nil/not and a struct
@@ -64,28 +58,28 @@ digraph Lattice {
// ----------------------
// Structs
- STRUCT_TOP [label=<<B>⊤</B>:struct>, fillcolor=lightgreen, shape=oval];
+ STRUCT_TOP [label=<<B>⊤</B >:struct>, fillcolor=lightgreen, shape=oval];
+ STRUCT_BOT [label=<<B>⊥</B>:struct>, fillcolor=lightgreen, shape=oval];
STRUCT_S1 [shape=none, fillcolor=none, label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
</TABLE>
>];
STRUCT_S2 [shape=none, fillcolor=none, label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
</TABLE>
>];
STRUCT_SN [shape=none, fillcolor=none, label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
- <TR><TD BGCOLOR="lightgreen">... </TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
- <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int:ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">... </TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
+ <TR><TD BGCOLOR="lightgreen">field</TD><TD BGCOLOR="lightblue:green" gradientangle="315">int/ptr</TD></TR>
</TABLE>
>];
- STRUCT_BOT [label=<<B>⊥</B>:struct>, fillcolor=lightgreen, shape=oval]
TOP -> STRUCT_TOP;
STRUCT_TOP -> STRUCT_S1;
@@ -100,11 +94,11 @@ digraph Lattice {
// ----------------------
// Memory
- MEM_TOP [label=<<B>⊤</B>:mem>, fillcolor=blue, fontcolor=white, shape=oval];
+ MEM_TOP [label=<<B>⊤</B >:mem>, fillcolor=blue, fontcolor=white, shape=oval];
+ MEM_BOT [label=<<B>⊥</B>:mem>, fillcolor=blue, fontcolor=white, shape=oval];
MEM_ALIAS1 [label="#1" , fillcolor=blue, fontcolor=white];
MEM_ALIASDOTS [label="..." , fillcolor=blue, fontcolor=white, shape=oval];
MEM_ALIASN [label="#n" , fillcolor=blue, fontcolor=white];
- MEM_BOT [label=<<B>⊥</B>:mem>, fillcolor=blue, fontcolor=white, shape=oval];
TOP -> MEM_TOP;
MEM_TOP -> MEM_ALIAS1;
@@ -120,7 +114,8 @@ digraph Lattice {
// ----------------------
// Tuples
- TUPLE_TOP [label=<<B>⊤</B>:tuple>, fillcolor=pink, shape=oval];
+ TUPLE_TOP [label=<<B>⊤</B >:tuple>, fillcolor=pink, shape=oval];
+ TUPLE_BOT [label=<<B>⊥</B>:tuple>, fillcolor=pink, shape=oval];
TUPLE1 [shape=none, fillcolor=none, label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
@@ -144,7 +139,6 @@ digraph Lattice {
</TABLE>
>];
- TUPLE_BOT [label=<<B>⊥</B>:tuple>, fillcolor=pink, shape=oval];
TOP -> TUPLE_TOP;
TUPLE_TOP -> TUPLE1;
@@ -159,11 +153,9 @@ digraph Lattice {
// Additional customization
{rank=same; TOP;}
{rank=same; INT_TOP; XCTRL; STRUCT_TOP; MEM_TOP; TUPLE_TOP}
- {rank=same; INT_MIN; INT_MINDOTS;
- INT_ZERO; INT_MAXDOTS;
- INT_MAX; STRUCT_S1; STRUCT_S2; STRUCT_SN;
- MEM_ALIAS1;
- MEM_ALIASDOTS; MEM_ALIASN;}
+ {rank=same; INT_MINDOTS; INT_ZERO; INT_MAXDOTS;
+ STRUCT_S1; STRUCT_S2; STRUCT_SN;
+ MEM_ALIAS1; MEM_ALIASDOTS; MEM_ALIASN;}
{rank=same; INT_BOT; CTRL; STRUCT_BOT; MEM_BOT; TUPLE_BOT}
{rank=same; BOT;}
}