summaryrefslogtreecommitdiff
path: root/docs/chapter07/07-graph1.gv
diff options
context:
space:
mode:
authorDibyendu Majumdar <mobile@majumdar.org.uk>2023-12-03 23:23:04 +0000
committerDibyendu Majumdar <mobile@majumdar.org.uk>2026-08-10 11:11:18 -0700
commit43d3ee3722dc08d87f787cd6eae75cc0359af621 (patch)
treeb85dec25dafde51957d17d849f7e6e3426a32d9c /docs/chapter07/07-graph1.gv
parentbacc96cb93d078034390be678f8b986149d540ee (diff)
downloadSimple-43d3ee3722dc08d87f787cd6eae75cc0359af621.tar.gz
Simple-43d3ee3722dc08d87f787cd6eae75cc0359af621.zip
Chapter 7: While Statement
Co-authored-by: Cliff Click <cliffc@acm.org> Co-authored-by: Thalia Archibald <thalia@archibald.dev> Co-authored-by: XmiliaH <45106915+XmiliaH@users.noreply.github.com> Co-authored-by: Hsiang-Ying Fu <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: tannal <tannal2409@gmail.com> Co-authored-by: hadha <helsgithub15@gmail.com> Co-authored-by: Tamás Hadházy <85063808+Hels15@users.noreply.github.com> Co-authored-by: RobertObkircher <robert.obkircher@gmail.com> Co-authored-by: Robert Obkircher <robert.obkircher@gmail.com>
Diffstat (limited to 'docs/chapter07/07-graph1.gv')
-rw-r--r--docs/chapter07/07-graph1.gv107
1 files changed, 107 insertions, 0 deletions
diff --git a/docs/chapter07/07-graph1.gv b/docs/chapter07/07-graph1.gv
new file mode 100644
index 00000000..ba806a28
--- /dev/null
+++ b/docs/chapter07/07-graph1.gv
@@ -0,0 +1,107 @@
+digraph chapter07 {
+/*
+while(arg < 10) {
+ arg = arg + 1;
+ #showGraph;
+}
+return arg;
+
+*/
+ rankdir=BT;
+ ordering="in";
+ concentrate="true";
+ compound="true";
+ subgraph cluster_Nodes {
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Loop6 [ shape=box style=filled fillcolor=yellow label="Loop" ];
+ Phi_arg8 [ style=filled fillcolor=lightyellow label="&phi;_arg" ];
+ Con_9 [ label="10" ];
+ LT10 [ label="<" ];
+ If11 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Con_15 [ label="1" ];
+ Add16 [ label="+" ];
+ { rank=same; Loop6;Phi_arg8;}
+ }
+ node [shape=plaintext];
+ subgraph cluster_Scope7_1 {
+ Scope7_1 [label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD BGCOLOR="cyan">2</TD></TR>
+ </TABLE>>];
+ subgraph cluster_Scope7_2 {
+ Scope7_2 [label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD BGCOLOR="cyan">1</TD></TR>
+ </TABLE>>];
+ subgraph cluster_Scope7_3 {
+ Scope7_3 [label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope7_3_$ctrl">$ctrl</TD><TD PORT="Scope7_3_arg">arg</TD></TR>
+ </TABLE>>];
+ }
+ }
+ }
+ node [shape=plaintext];
+ subgraph cluster_Scope1_1 {
+ Scope1_1 [label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD BGCOLOR="cyan">1</TD></TR>
+ </TABLE>>];
+ subgraph cluster_Scope1_2 {
+ Scope1_2 [label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope1_2_$ctrl">$ctrl</TD><TD PORT="Scope1_2_arg">arg</TD></TR>
+ </TABLE>>];
+ }
+ }
+ node [shape=plaintext];
+ subgraph cluster_Scope14_1 {
+ Scope14_1 [label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD BGCOLOR="cyan">1</TD></TR>
+ </TABLE>>];
+ subgraph cluster_Scope14_2 {
+ Scope14_2 [label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope14_2_$ctrl">$ctrl</TD><TD PORT="Scope14_2_arg">arg</TD></TR>
+ </TABLE>>];
+ }
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Loop6 -> Start2:p0[taillabel=1 color=red];
+ Phi_arg8 -> Loop6 [style=dotted taillabel=0];
+ Phi_arg8 -> Start2:p1[taillabel=1];
+ LT10 -> Phi_arg8[taillabel=1];
+ LT10 -> Con_9[taillabel=2];
+ If11 -> Loop6[taillabel=0 color=red];
+ If11 -> LT10[taillabel=1];
+ Add16 -> Phi_arg8[taillabel=1];
+ Add16 -> Con_15[taillabel=2];
+ edge [style=dashed color=cornflowerblue];
+ Scope7_3:"Scope7_3_$ctrl" -> If11:p0;
+ Scope7_3:"Scope7_3_arg" -> Add16;
+ edge [style=dashed color=cornflowerblue];
+ Scope1_2:"Scope1_2_$ctrl" -> Loop6;
+ Scope1_2:"Scope1_2_arg" -> Phi_arg8;
+ edge [style=dashed color=cornflowerblue];
+ Scope14_2:"Scope14_2_$ctrl" -> If11:p1;
+ Scope14_2:"Scope14_2_arg" -> Phi_arg8;
+}