diff options
Diffstat (limited to 'chapter05/docs')
| -rw-r--r-- | chapter05/docs/05-graph1.gv | 77 | ||||
| -rw-r--r-- | chapter05/docs/05-graph1.svg | 274 | ||||
| -rw-r--r-- | chapter05/docs/05-graph2.gv | 80 | ||||
| -rw-r--r-- | chapter05/docs/05-graph2.svg | 326 |
4 files changed, 359 insertions, 398 deletions
diff --git a/chapter05/docs/05-graph1.gv b/chapter05/docs/05-graph1.gv index 99993814..6b2a5788 100644 --- a/chapter05/docs/05-graph1.gv +++ b/chapter05/docs/05-graph1.gv @@ -2,18 +2,19 @@ digraph chapter05 { /* int a = 1; if (arg == 1) - a = arg+2; + a = arg+2; else { - a = arg-3; - #showGraph; + a = arg-3; + #showGraph; } return a; -#showGraph; */ rankdir=BT; + ordering="in"; + concentrate="true"; subgraph cluster_Nodes { - Start1 [ shape=plaintext label=< + Start2 [ shape=plaintext label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> <TR><TD BGCOLOR="yellow">Start</TD></TR> <TR><TD> @@ -23,9 +24,9 @@ return a; </TD></TR> </TABLE>> ]; - Con_5 [ label="#1" ]; - EQNode6 [ label="EQNode" ]; - If7 [ shape=plaintext label=< + Con_7 [ label="#1" ]; + EQNode8 [ label="==" ]; + If9 [ shape=plaintext label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> <TR><TD BGCOLOR="yellow">If</TD></TR> <TR><TD> @@ -35,51 +36,51 @@ return a; </TD></TR> </TABLE>> ]; - Con_11 [ label="#2" ]; - Add12 [ label="Add" ]; - Con_13 [ label="#3" ]; - Sub14 [ label="Sub" ]; + Con_13 [ label="#2" ]; + Add14 [ label="+" ]; + Con_15 [ label="#3" ]; + Sub16 [ label="-" ]; } node [shape=plaintext]; - subgraph cluster_Scope20_0 { - Scope20_0 [label=< + subgraph cluster_Scope1_0 { + Scope1_0 [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> - <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope20_0_$ctrl">$ctrl</TD><TD PORT="Scope20_0_arg">arg</TD></TR> + <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope1_0_$ctrl">$ctrl</TD><TD PORT="Scope1_0_arg">arg</TD></TR> </TABLE>>]; - subgraph cluster_Scope20_1 { - Scope20_1 [label=< + subgraph cluster_Scope1_1 { + Scope1_1 [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> - <TR><TD BGCOLOR="cyan">1</TD><TD PORT="Scope20_1_a">a</TD></TR> + <TR><TD BGCOLOR="cyan">1</TD><TD PORT="Scope1_1_a">a</TD></TR> </TABLE>>]; } } node [shape=plaintext]; - subgraph cluster_Scope21_0 { - Scope21_0 [label=< + subgraph cluster_Scope12_0 { + Scope12_0 [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> - <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope21_0_$ctrl">$ctrl</TD><TD PORT="Scope21_0_arg">arg</TD></TR> + <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope12_0_$ctrl">$ctrl</TD><TD PORT="Scope12_0_arg">arg</TD></TR> </TABLE>>]; - subgraph cluster_Scope21_1 { - Scope21_1 [label=< + subgraph cluster_Scope12_1 { + Scope12_1 [label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> - <TR><TD BGCOLOR="cyan">1</TD><TD PORT="Scope21_1_a">a</TD></TR> + <TR><TD BGCOLOR="cyan">1</TD><TD PORT="Scope12_1_a">a</TD></TR> </TABLE>>]; } } - EQNode6 -> Start1:p1; - EQNode6 -> Con_5; - If7 -> Start1:p0 [color=red]; - If7 -> EQNode6; - Add12 -> Start1:p1; - Add12 -> Con_11; - Sub14 -> Start1:p1; - Sub14 -> Con_13; + EQNode8 -> Start2:p1; + EQNode8 -> Con_7; + If9 -> Start2:p0 [color=red]; + If9 -> EQNode8; + Add14 -> Start2:p1; + Add14 -> Con_13; + Sub16 -> Start2:p1; + Sub16 -> Con_15; edge [style=dashed color=cornflowerblue]; - Scope20_0:"Scope20_0_$ctrl" -> If7:p1; - Scope20_0:"Scope20_0_arg" -> Start1:p1; - Scope20_1:"Scope20_1_a" -> Sub14; + Scope1_0:"Scope1_0_$ctrl" -> If9:p0; + Scope1_0:"Scope1_0_arg" -> Start2:p1; + Scope1_1:"Scope1_1_a" -> Add14; edge [style=dashed color=cornflowerblue]; - Scope21_0:"Scope21_0_$ctrl" -> If7:p0; - Scope21_0:"Scope21_0_arg" -> Start1:p1; - Scope21_1:"Scope21_1_a" -> Add12; + Scope12_0:"Scope12_0_$ctrl" -> If9:p1; + Scope12_0:"Scope12_0_arg" -> Start2:p1; + Scope12_1:"Scope12_1_a" -> Sub16; }
\ No newline at end of file diff --git a/chapter05/docs/05-graph1.svg b/chapter05/docs/05-graph1.svg index 488a71cb..ac1f91fc 100644 --- a/chapter05/docs/05-graph1.svg +++ b/chapter05/docs/05-graph1.svg @@ -4,145 +4,145 @@ <!-- Generated by graphviz version 2.43.0 (0) --> <!-- Title: chapter05 Pages: 1 --> -<svg width="471pt" height="356pt" - viewBox="0.00 0.00 471.00 356.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg width="432pt" height="356pt" + viewBox="0.00 0.00 432.00 356.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 352)"> <title>chapter05</title> -<polygon fill="white" stroke="transparent" points="-4,4 -4,-352 467,-352 467,4 -4,4"/> +<polygon fill="white" stroke="transparent" points="-4,4 -4,-352 428,-352 428,4 -4,4"/> <g id="clust1" class="cluster"> <title>cluster_Nodes</title> -<polygon fill="none" stroke="black" points="89,-88 89,-340 419,-340 419,-88 89,-88"/> +<polygon fill="none" stroke="black" points="85,-88 85,-340 415,-340 415,-88 85,-88"/> </g> <g id="clust2" class="cluster"> -<title>cluster_Scope20_0</title> +<title>cluster_Scope1_0</title> <polygon fill="none" stroke="black" points="8,-8 8,-76 208,-76 208,-8 8,-8"/> </g> <g id="clust3" class="cluster"> -<title>cluster_Scope20_1</title> +<title>cluster_Scope1_1</title> <polygon fill="none" stroke="black" points="16,-16 16,-68 86,-68 86,-16 16,-16"/> </g> <g id="clust4" class="cluster"> -<title>cluster_Scope21_0</title> -<polygon fill="none" stroke="black" points="255,-8 255,-76 455,-76 455,-8 255,-8"/> +<title>cluster_Scope12_0</title> +<polygon fill="none" stroke="black" points="216,-8 216,-76 416,-76 416,-8 216,-8"/> </g> <g id="clust5" class="cluster"> -<title>cluster_Scope21_1</title> -<polygon fill="none" stroke="black" points="263,-16 263,-68 333,-68 333,-16 263,-16"/> +<title>cluster_Scope12_1</title> +<polygon fill="none" stroke="black" points="224,-16 224,-68 294,-68 294,-16 224,-16"/> </g> -<!-- Start1 --> +<!-- Start2 --> <g id="node1" class="node"> -<title>Start1</title> -<polygon fill="yellow" stroke="transparent" points="178,-303 178,-328 259,-328 259,-303 178,-303"/> -<polygon fill="none" stroke="black" points="178,-303 178,-328 259,-328 259,-303 178,-303"/> -<text text-anchor="start" x="200" y="-311.8" font-family="Times,serif" font-size="14.00">Start</text> -<polygon fill="none" stroke="black" points="178,-272 178,-303 259,-303 259,-272 178,-272"/> -<polygon fill="yellow" stroke="transparent" points="183,-277 183,-298 223,-298 223,-277 183,-277"/> -<polygon fill="none" stroke="black" points="183,-277 183,-298 223,-298 223,-277 183,-277"/> -<text text-anchor="start" x="186" y="-283.8" font-family="Times,serif" font-size="14.00">$ctrl</text> -<polygon fill="none" stroke="black" points="223,-277 223,-298 254,-298 254,-277 223,-277"/> -<text text-anchor="start" x="226" y="-283.8" font-family="Times,serif" font-size="14.00">arg</text> -</g> -<!-- Con_5 --> +<title>Start2</title> +<polygon fill="yellow" stroke="transparent" points="174,-303 174,-328 255,-328 255,-303 174,-303"/> +<polygon fill="none" stroke="black" points="174,-303 174,-328 255,-328 255,-303 174,-303"/> +<text text-anchor="start" x="196" y="-311.8" font-family="Times,serif" font-size="14.00">Start</text> +<polygon fill="none" stroke="black" points="174,-272 174,-303 255,-303 255,-272 174,-272"/> +<polygon fill="yellow" stroke="transparent" points="179,-277 179,-298 219,-298 219,-277 179,-277"/> +<polygon fill="none" stroke="black" points="179,-277 179,-298 219,-298 219,-277 179,-277"/> +<text text-anchor="start" x="182" y="-283.8" font-family="Times,serif" font-size="14.00">$ctrl</text> +<polygon fill="none" stroke="black" points="219,-277 219,-298 250,-298 250,-277 219,-277"/> +<text text-anchor="start" x="222" y="-283.8" font-family="Times,serif" font-size="14.00">arg</text> +</g> +<!-- Con_7 --> <g id="node2" class="node"> -<title>Con_5</title> -<ellipse fill="none" stroke="black" cx="312" cy="-300" rx="27" ry="18"/> -<text text-anchor="middle" x="312" y="-296.3" font-family="Times,serif" font-size="14.00">#1</text> +<title>Con_7</title> +<ellipse fill="none" stroke="black" cx="308" cy="-300" rx="27" ry="18"/> +<text text-anchor="middle" x="308" y="-296.3" font-family="Times,serif" font-size="14.00">#1</text> </g> -<!-- EQNode6 --> +<!-- EQNode8 --> <g id="node3" class="node"> -<title>EQNode6</title> -<ellipse fill="none" stroke="black" cx="271" cy="-214" rx="49.29" ry="18"/> -<text text-anchor="middle" x="271" y="-210.3" font-family="Times,serif" font-size="14.00">EQNode</text> +<title>EQNode8</title> +<ellipse fill="none" stroke="black" cx="245" cy="-214" rx="27" ry="18"/> +<text text-anchor="middle" x="245" y="-210.3" font-family="Times,serif" font-size="14.00">==</text> </g> -<!-- EQNode6->Start1 --> +<!-- EQNode8->Start2 --> <g id="edge1" class="edge"> -<title>EQNode6->Start1:p1</title> -<path fill="none" stroke="black" d="M256.87,-231.41C250.04,-240.69 242.75,-253.02 240.07,-265.99"/> -<polygon fill="black" stroke="black" points="236.58,-265.69 239,-276 243.54,-266.43 236.58,-265.69"/> +<title>EQNode8->Start2:p1</title> +<path fill="none" stroke="black" d="M240.7,-231.97C238.58,-241.48 236.3,-253.83 235.4,-265.95"/> +<polygon fill="black" stroke="black" points="231.9,-265.87 235,-276 238.89,-266.15 231.9,-265.87"/> </g> -<!-- EQNode6->Con_5 --> +<!-- EQNode8->Con_7 --> <g id="edge2" class="edge"> -<title>EQNode6->Con_5</title> -<path fill="none" stroke="black" d="M279.3,-232C285.1,-243.88 292.94,-259.96 299.5,-273.39"/> -<polygon fill="black" stroke="black" points="296.46,-275.15 303.99,-282.6 302.75,-272.08 296.46,-275.15"/> +<title>EQNode8->Con_7</title> +<path fill="none" stroke="black" d="M256.56,-230.41C266.06,-243.08 279.67,-261.23 290.51,-275.68"/> +<polygon fill="black" stroke="black" points="287.72,-277.79 296.52,-283.69 293.32,-273.59 287.72,-277.79"/> </g> -<!-- If7 --> +<!-- If9 --> <g id="node4" class="node"> -<title>If7</title> -<polygon fill="yellow" stroke="transparent" points="181,-131 181,-156 275,-156 275,-131 181,-131"/> -<polygon fill="none" stroke="black" points="181,-131 181,-156 275,-156 275,-131 181,-131"/> -<text text-anchor="start" x="222.5" y="-139.8" font-family="Times,serif" font-size="14.00">If</text> -<polygon fill="none" stroke="black" points="181,-100 181,-131 275,-131 275,-100 181,-100"/> -<polygon fill="yellow" stroke="transparent" points="186,-105 186,-126 226,-126 226,-105 186,-105"/> -<polygon fill="none" stroke="black" points="186,-105 186,-126 226,-126 226,-105 186,-105"/> -<text text-anchor="start" x="189" y="-111.8" font-family="Times,serif" font-size="14.00">True</text> -<polygon fill="yellow" stroke="transparent" points="226,-105 226,-126 270,-126 270,-105 226,-105"/> -<polygon fill="none" stroke="black" points="226,-105 226,-126 270,-126 270,-105 226,-105"/> -<text text-anchor="start" x="229" y="-111.8" font-family="Times,serif" font-size="14.00">False</text> -</g> -<!-- If7->Start1 --> +<title>If9</title> +<polygon fill="yellow" stroke="transparent" points="169,-131 169,-156 263,-156 263,-131 169,-131"/> +<polygon fill="none" stroke="black" points="169,-131 169,-156 263,-156 263,-131 169,-131"/> +<text text-anchor="start" x="210.5" y="-139.8" font-family="Times,serif" font-size="14.00">If</text> +<polygon fill="none" stroke="black" points="169,-100 169,-131 263,-131 263,-100 169,-100"/> +<polygon fill="yellow" stroke="transparent" points="174,-105 174,-126 214,-126 214,-105 174,-105"/> +<polygon fill="none" stroke="black" points="174,-105 174,-126 214,-126 214,-105 174,-105"/> +<text text-anchor="start" x="177" y="-111.8" font-family="Times,serif" font-size="14.00">True</text> +<polygon fill="yellow" stroke="transparent" points="214,-105 214,-126 258,-126 258,-105 214,-105"/> +<polygon fill="none" stroke="black" points="214,-105 214,-126 258,-126 258,-105 214,-105"/> +<text text-anchor="start" x="217" y="-111.8" font-family="Times,serif" font-size="14.00">False</text> +</g> +<!-- If9->Start2 --> <g id="edge3" class="edge"> -<title>If7->Start1:p0</title> -<path fill="none" stroke="red" d="M219.54,-160.28C212.88,-187.44 204.51,-228.22 203.18,-265.97"/> -<polygon fill="red" stroke="red" points="199.68,-265.94 203,-276 206.68,-266.06 199.68,-265.94"/> +<title>If9->Start2:p0</title> +<path fill="none" stroke="red" d="M210.29,-160.14C205.78,-187.26 200.08,-228.01 199.14,-265.52"/> +<polygon fill="red" stroke="red" points="195.63,-265.96 199,-276 202.63,-266.05 195.63,-265.96"/> </g> -<!-- If7->EQNode6 --> +<!-- If9->EQNode8 --> <g id="edge4" class="edge"> -<title>If7->EQNode6</title> -<path fill="none" stroke="black" d="M244.01,-160.28C248.52,-169.09 253.38,-178.58 257.71,-187.04"/> -<polygon fill="black" stroke="black" points="254.66,-188.76 262.33,-196.07 260.89,-185.57 254.66,-188.76"/> +<title>If9->EQNode8</title> +<path fill="none" stroke="black" d="M226.8,-160.28C229.78,-168.9 232.97,-178.17 235.85,-186.49"/> +<polygon fill="black" stroke="black" points="232.58,-187.76 239.16,-196.07 239.2,-185.48 232.58,-187.76"/> </g> -<!-- Con_11 --> +<!-- Con_13 --> <g id="node5" class="node"> -<title>Con_11</title> -<ellipse fill="none" stroke="black" cx="384" cy="-300" rx="27" ry="18"/> -<text text-anchor="middle" x="384" y="-296.3" font-family="Times,serif" font-size="14.00">#2</text> +<title>Con_13</title> +<ellipse fill="none" stroke="black" cx="120" cy="-300" rx="27" ry="18"/> +<text text-anchor="middle" x="120" y="-296.3" font-family="Times,serif" font-size="14.00">#2</text> </g> -<!-- Add12 --> +<!-- Add14 --> <g id="node6" class="node"> -<title>Add12</title> -<ellipse fill="none" stroke="black" cx="367" cy="-214" rx="28.7" ry="18"/> -<text text-anchor="middle" x="367" y="-210.3" font-family="Times,serif" font-size="14.00">Add</text> +<title>Add14</title> +<ellipse fill="none" stroke="black" cx="153" cy="-214" rx="27" ry="18"/> +<text text-anchor="middle" x="153" y="-210.3" font-family="Times,serif" font-size="14.00">+</text> </g> -<!-- Add12->Start1 --> +<!-- Add14->Start2 --> <g id="edge5" class="edge"> -<title>Add12->Start1:p1</title> -<path fill="none" stroke="black" d="M345.25,-226.01C326.31,-235.99 298.43,-251.6 276,-268 269.65,-272.64 267.95,-278.9 264.5,-282.95"/> -<polygon fill="black" stroke="black" points="262.82,-279.86 255,-287 265.57,-286.29 262.82,-279.86"/> +<title>Add14->Start2:p1</title> +<path fill="none" stroke="black" d="M174.12,-225.69C193.67,-236.17 221.18,-252.54 231.18,-266.44"/> +<polygon fill="black" stroke="black" points="228.04,-268.01 235,-276 234.54,-265.42 228.04,-268.01"/> </g> -<!-- Add12->Con_11 --> +<!-- Add14->Con_13 --> <g id="edge6" class="edge"> -<title>Add12->Con_11</title> -<path fill="none" stroke="black" d="M370.44,-232C372.77,-243.5 375.89,-258.93 378.55,-272.08"/> -<polygon fill="black" stroke="black" points="375.15,-272.92 380.56,-282.03 382.01,-271.53 375.15,-272.92"/> +<title>Add14->Con_13</title> +<path fill="none" stroke="black" d="M146.48,-231.6C141.87,-243.33 135.59,-259.3 130.31,-272.76"/> +<polygon fill="black" stroke="black" points="126.91,-271.85 126.51,-282.44 133.42,-274.41 126.91,-271.85"/> </g> -<!-- Con_13 --> +<!-- Con_15 --> <g id="node7" class="node"> -<title>Con_13</title> -<ellipse fill="none" stroke="black" cx="124" cy="-300" rx="27" ry="18"/> -<text text-anchor="middle" x="124" y="-296.3" font-family="Times,serif" font-size="14.00">#3</text> +<title>Con_15</title> +<ellipse fill="none" stroke="black" cx="380" cy="-300" rx="27" ry="18"/> +<text text-anchor="middle" x="380" y="-296.3" font-family="Times,serif" font-size="14.00">#3</text> </g> -<!-- Sub14 --> +<!-- Sub16 --> <g id="node8" class="node"> -<title>Sub14</title> -<ellipse fill="none" stroke="black" cx="155" cy="-214" rx="28.7" ry="18"/> -<text text-anchor="middle" x="155" y="-210.3" font-family="Times,serif" font-size="14.00">Sub</text> +<title>Sub16</title> +<ellipse fill="none" stroke="black" cx="317" cy="-214" rx="27" ry="18"/> +<text text-anchor="middle" x="317" y="-210.3" font-family="Times,serif" font-size="14.00">-</text> </g> -<!-- Sub14->Start1 --> +<!-- Sub16->Start2 --> <g id="edge7" class="edge"> -<title>Sub14->Start1:p1</title> -<path fill="none" stroke="black" d="M177.07,-225.84C197.1,-236.27 224.99,-252.48 235.13,-266.39"/> -<polygon fill="black" stroke="black" points="232.02,-268.03 239,-276 238.51,-265.42 232.02,-268.03"/> +<title>Sub16->Start2:p1</title> +<path fill="none" stroke="black" d="M304.31,-229.92C290.9,-245.57 270.14,-269.43 258.76,-280.7"/> +<polygon fill="black" stroke="black" points="256.56,-277.98 251,-287 260.97,-283.41 256.56,-277.98"/> </g> -<!-- Sub14->Con_13 --> +<!-- Sub16->Con_15 --> <g id="edge8" class="edge"> -<title>Sub14->Con_13</title> -<path fill="none" stroke="black" d="M148.88,-231.6C144.54,-243.33 138.65,-259.3 133.69,-272.76"/> -<polygon fill="black" stroke="black" points="130.29,-271.85 130.11,-282.44 136.86,-274.27 130.29,-271.85"/> +<title>Sub16->Con_15</title> +<path fill="none" stroke="black" d="M328.56,-230.41C338.06,-243.08 351.67,-261.23 362.51,-275.68"/> +<polygon fill="black" stroke="black" points="359.72,-277.79 368.52,-283.69 365.32,-273.59 359.72,-277.79"/> </g> -<!-- Scope20_0 --> +<!-- Scope1_0 --> <g id="node9" class="node"> -<title>Scope20_0</title> +<title>Scope1_0</title> <polygon fill="cyan" stroke="transparent" points="105,-31 105,-52 121,-52 121,-31 105,-31"/> <polygon fill="none" stroke="black" points="105,-31 105,-52 121,-52 121,-31 105,-31"/> <text text-anchor="start" x="108" y="-37.8" font-family="Times,serif" font-size="14.00">0</text> @@ -151,70 +151,70 @@ <polygon fill="none" stroke="black" points="161,-31 161,-52 192,-52 192,-31 161,-31"/> <text text-anchor="start" x="164" y="-37.8" font-family="Times,serif" font-size="14.00">arg</text> </g> -<!-- Scope20_0->Start1 --> +<!-- Scope1_0->Start2 --> <g id="edge10" class="edge"> -<title>Scope20_0:Scope20_0_arg->Start1:p1</title> -<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M177,-53C177,-61.62 118.7,-187.55 117,-196 113.84,-211.69 107.8,-218.91 117,-232 147.93,-276.04 227.44,-225.96 237.87,-266.02"/> -<polygon fill="cornflowerblue" stroke="cornflowerblue" points="234.39,-266.46 239,-276 241.35,-265.67 234.39,-266.46"/> +<title>Scope1_0:Scope1_0_arg->Start2:p1</title> +<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M177,-53C177,-72.12 160.6,-70.93 152,-88 122.36,-146.82 79.43,-177.9 117,-232 146.68,-274.74 223.16,-227.66 233.77,-265.81"/> +<polygon fill="cornflowerblue" stroke="cornflowerblue" points="230.33,-266.49 235,-276 237.28,-265.65 230.33,-266.49"/> </g> -<!-- Scope20_0->If7 --> +<!-- Scope1_0->If9 --> <g id="edge9" class="edge"> -<title>Scope20_0:Scope20_0_$ctrl->If7:p1</title> -<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M141,-53C141,-101.77 232.71,-58.8 246.32,-93.95"/> -<polygon fill="cornflowerblue" stroke="cornflowerblue" points="242.9,-94.71 248,-104 249.8,-93.56 242.9,-94.71"/> +<title>Scope1_0:Scope1_0_$ctrl->If9:p0</title> +<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M141,-53C141,-81.73 181.94,-74.1 191.86,-94.03"/> +<polygon fill="cornflowerblue" stroke="cornflowerblue" points="188.48,-94.96 194,-104 195.32,-93.49 188.48,-94.96"/> </g> -<!-- Scope20_1 --> +<!-- Scope1_1 --> <g id="node10" class="node"> -<title>Scope20_1</title> +<title>Scope1_1</title> <polygon fill="cyan" stroke="transparent" points="36,-31 36,-52 52,-52 52,-31 36,-31"/> <polygon fill="none" stroke="black" points="36,-31 36,-52 52,-52 52,-31 36,-31"/> <text text-anchor="start" x="39" y="-37.8" font-family="Times,serif" font-size="14.00">1</text> <polygon fill="none" stroke="black" points="52,-31 52,-52 67,-52 67,-31 52,-31"/> <text text-anchor="start" x="55" y="-37.8" font-family="Times,serif" font-size="14.00">a</text> </g> -<!-- Scope20_1->Sub14 --> +<!-- Scope1_1->Add14 --> <g id="edge11" class="edge"> -<title>Scope20_1:Scope20_1_a->Sub14</title> -<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M60,-53C60,-109.34 104.1,-163.18 132.2,-191.77"/> -<polygon fill="cornflowerblue" stroke="cornflowerblue" points="129.75,-194.27 139.31,-198.82 134.67,-189.29 129.75,-194.27"/> +<title>Scope1_1:Scope1_1_a->Add14</title> +<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M60,-53C60,-108.8 102.8,-162.53 130.33,-191.31"/> +<polygon fill="cornflowerblue" stroke="cornflowerblue" points="128.14,-194.07 137.64,-198.75 133.13,-189.17 128.14,-194.07"/> </g> -<!-- Scope21_0 --> +<!-- Scope12_0 --> <g id="node11" class="node"> -<title>Scope21_0</title> -<polygon fill="cyan" stroke="transparent" points="352,-31 352,-52 368,-52 368,-31 352,-31"/> -<polygon fill="none" stroke="black" points="352,-31 352,-52 368,-52 368,-31 352,-31"/> -<text text-anchor="start" x="355" y="-37.8" font-family="Times,serif" font-size="14.00">0</text> -<polygon fill="none" stroke="black" points="368,-31 368,-52 408,-52 408,-31 368,-31"/> -<text text-anchor="start" x="371" y="-37.8" font-family="Times,serif" font-size="14.00">$ctrl</text> -<polygon fill="none" stroke="black" points="408,-31 408,-52 439,-52 439,-31 408,-31"/> -<text text-anchor="start" x="411" y="-37.8" font-family="Times,serif" font-size="14.00">arg</text> -</g> -<!-- Scope21_0->Start1 --> +<title>Scope12_0</title> +<polygon fill="cyan" stroke="transparent" points="313,-31 313,-52 329,-52 329,-31 313,-31"/> +<polygon fill="none" stroke="black" points="313,-31 313,-52 329,-52 329,-31 313,-31"/> +<text text-anchor="start" x="316" y="-37.8" font-family="Times,serif" font-size="14.00">0</text> +<polygon fill="none" stroke="black" points="329,-31 329,-52 369,-52 369,-31 329,-31"/> +<text text-anchor="start" x="332" y="-37.8" font-family="Times,serif" font-size="14.00">$ctrl</text> +<polygon fill="none" stroke="black" points="369,-31 369,-52 400,-52 400,-31 369,-31"/> +<text text-anchor="start" x="372" y="-37.8" font-family="Times,serif" font-size="14.00">arg</text> +</g> +<!-- Scope12_0->Start2 --> <g id="edge13" class="edge"> -<title>Scope21_0:Scope21_0_arg->Start1:p1</title> -<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M424,-53C424,-133 456.67,-170.92 405,-232 366.55,-277.44 328.13,-239.26 276,-268 269.11,-271.8 267.55,-278.27 264.27,-282.59"/> -<polygon fill="cornflowerblue" stroke="cornflowerblue" points="262.53,-279.54 255,-287 265.53,-285.86 262.53,-279.54"/> +<title>Scope12_0:Scope12_0_arg->Start2:p1</title> +<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M385,-53C385,-133.82 402.85,-168.39 353,-232 328.7,-263.01 305.02,-246.51 272,-268 265.41,-272.29 263.77,-278.64 260.39,-282.8"/> +<polygon fill="cornflowerblue" stroke="cornflowerblue" points="258.7,-279.72 251,-287 261.56,-286.11 258.7,-279.72"/> </g> -<!-- Scope21_0->If7 --> +<!-- Scope12_0->If9 --> <g id="edge12" class="edge"> -<title>Scope21_0:Scope21_0_$ctrl->If7:p0</title> -<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M388,-53C388,-77.87 360.63,-68.25 337,-76 312.25,-84.12 230.52,-76.68 210.47,-94.63"/> -<polygon fill="cornflowerblue" stroke="cornflowerblue" points="207.15,-93.47 206,-104 213.46,-96.48 207.15,-93.47"/> +<title>Scope12_0:Scope12_0_$ctrl->If9:p1</title> +<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M349,-53C349,-98.16 313.19,-112.94 269.13,-114.79"/> +<polygon fill="cornflowerblue" stroke="cornflowerblue" points="268.93,-111.3 259,-115 269.07,-118.3 268.93,-111.3"/> </g> -<!-- Scope21_1 --> +<!-- Scope12_1 --> <g id="node12" class="node"> -<title>Scope21_1</title> -<polygon fill="cyan" stroke="transparent" points="283,-31 283,-52 299,-52 299,-31 283,-31"/> -<polygon fill="none" stroke="black" points="283,-31 283,-52 299,-52 299,-31 283,-31"/> -<text text-anchor="start" x="286" y="-37.8" font-family="Times,serif" font-size="14.00">1</text> -<polygon fill="none" stroke="black" points="299,-31 299,-52 314,-52 314,-31 299,-31"/> -<text text-anchor="start" x="302" y="-37.8" font-family="Times,serif" font-size="14.00">a</text> -</g> -<!-- Scope21_1->Add12 --> +<title>Scope12_1</title> +<polygon fill="cyan" stroke="transparent" points="244,-31 244,-52 260,-52 260,-31 244,-31"/> +<polygon fill="none" stroke="black" points="244,-31 244,-52 260,-52 260,-31 244,-31"/> +<text text-anchor="start" x="247" y="-37.8" font-family="Times,serif" font-size="14.00">1</text> +<polygon fill="none" stroke="black" points="260,-31 260,-52 275,-52 275,-31 260,-31"/> +<text text-anchor="start" x="263" y="-37.8" font-family="Times,serif" font-size="14.00">a</text> +</g> +<!-- Scope12_1->Sub16 --> <g id="edge14" class="edge"> -<title>Scope21_1:Scope21_1_a->Add12</title> -<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M307,-53C307,-103.54 333.58,-157.68 351.35,-188.24"/> -<polygon fill="cornflowerblue" stroke="cornflowerblue" points="348.42,-190.15 356.55,-196.94 354.42,-186.56 348.42,-190.15"/> +<title>Scope12_1:Scope12_1_a->Sub16</title> +<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M268,-53C268,-69.44 275,-72.33 280,-88 290.77,-121.73 302.19,-160.92 309.45,-186.29"/> +<polygon fill="cornflowerblue" stroke="cornflowerblue" points="306.09,-187.29 312.2,-195.95 312.83,-185.37 306.09,-187.29"/> </g> </g> </svg> diff --git a/chapter05/docs/05-graph2.gv b/chapter05/docs/05-graph2.gv index d2c819a8..55702eea 100644 --- a/chapter05/docs/05-graph2.gv +++ b/chapter05/docs/05-graph2.gv @@ -2,18 +2,19 @@ digraph chapter05 { /* int a = 1; if (arg == 1) - a = arg+2; + a = arg+2; else { - a = arg-3; - #showGraph; + a = arg-3; + #showGraph; } return a; -#showGraph; */ rankdir=BT; + ordering="in"; + concentrate="true"; subgraph cluster_Nodes { - Start1 [ shape=plaintext label=< + Start2 [ shape=plaintext label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> <TR><TD BGCOLOR="yellow">Start</TD></TR> <TR><TD> @@ -23,9 +24,10 @@ return a; </TD></TR> </TABLE>> ]; - Con_5 [ label="#1" ]; - EQNode6 [ label="EQNode" ]; - If7 [ shape=plaintext label=< + Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ]; + Con_7 [ label="#1" ]; + EQNode8 [ label="==" ]; + If9 [ shape=plaintext label=< <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> <TR><TD BGCOLOR="yellow">If</TD></TR> <TR><TD> @@ -35,43 +37,29 @@ return a; </TD></TR> </TABLE>> ]; - Con_11 [ label="#2" ]; - Add12 [ label="Add" ]; - Con_13 [ label="#3" ]; - Sub14 [ label="Sub" ]; - Region15 [ shape=box style=filled fillcolor=yellow label="Region" ]; - Phi16 [ label="Phi" ]; - Return17 [ shape=box style=filled fillcolor=yellow label="Return" ]; + Con_13 [ label="#2" ]; + Add14 [ label="+" ]; + Con_15 [ label="#3" ]; + Sub16 [ label="-" ]; + Region17 [ shape=box style=filled fillcolor=yellow label="Region" ]; + Phi_a18 [ style=filled fillcolor=lightyellow label="φ_a" ]; + Return19 [ shape=box style=filled fillcolor=yellow label="Return" ]; + { rank=same; Phi_a18;} } - node [shape=plaintext]; - subgraph cluster_Scope20_0 { - Scope20_0 [label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> - <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope20_0_$ctrl">$ctrl</TD><TD PORT="Scope20_0_arg">arg</TD></TR> - </TABLE>>]; - subgraph cluster_Scope20_1 { - Scope20_1 [label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> - <TR><TD BGCOLOR="cyan">1</TD><TD PORT="Scope20_1_a">a</TD></TR> - </TABLE>>]; - } - } - EQNode6 -> Start1:p1; - EQNode6 -> Con_5; - If7 -> Start1:p0 [color=red]; - If7 -> EQNode6; - Add12 -> Start1:p1; - Add12 -> Con_11; - Sub14 -> Start1:p1; - Sub14 -> Con_13; - Region15 -> If7:p0 [color=red]; - Region15 -> If7:p1 [color=red]; - Phi16 -> Region15 [color=red]; - Phi16 -> Add12; - Phi16 -> Sub14; - Return17 -> Region15 [color=red]; - Return17 -> Phi16; - edge [style=dashed color=cornflowerblue]; - Scope20_0:"Scope20_0_arg" -> Start1:p1; - Scope20_1:"Scope20_1_a" -> Phi16; + Stop3 -> Return19 [color=red]; + EQNode8 -> Start2:p1; + EQNode8 -> Con_7; + If9 -> Start2:p0 [color=red]; + If9 -> EQNode8; + Add14 -> Start2:p1; + Add14 -> Con_13; + Sub16 -> Start2:p1; + Sub16 -> Con_15; + Region17 -> If9:p0 [color=red]; + Region17 -> If9:p1 [color=red]; + Phi_a18 -> Region17 [color=red]; + Phi_a18 -> Add14; + Phi_a18 -> Sub16; + Return19 -> Region17 [color=red]; + Return19 -> Phi_a18; }
\ No newline at end of file diff --git a/chapter05/docs/05-graph2.svg b/chapter05/docs/05-graph2.svg index 70d1a8c5..07a07ced 100644 --- a/chapter05/docs/05-graph2.svg +++ b/chapter05/docs/05-graph2.svg @@ -4,225 +4,197 @@ <!-- Generated by graphviz version 2.43.0 (0) --> <!-- Title: chapter05 Pages: 1 --> -<svg width="542pt" height="500pt" - viewBox="0.00 0.00 542.00 500.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 496)"> +<svg width="334pt" height="564pt" + viewBox="0.00 0.00 334.00 564.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 560)"> <title>chapter05</title> -<polygon fill="white" stroke="transparent" points="-4,4 -4,-496 538,-496 538,4 -4,4"/> +<polygon fill="white" stroke="transparent" points="-4,4 -4,-560 330,-560 330,4 -4,4"/> <g id="clust1" class="cluster"> <title>cluster_Nodes</title> -<polygon fill="none" stroke="black" points="8,-16 8,-484 318,-484 318,-16 8,-16"/> +<polygon fill="none" stroke="black" points="8,-8 8,-548 318,-548 318,-8 8,-8"/> </g> -<g id="clust2" class="cluster"> -<title>cluster_Scope20_0</title> -<polygon fill="none" stroke="black" points="326,-8 326,-76 526,-76 526,-8 326,-8"/> -</g> -<g id="clust3" class="cluster"> -<title>cluster_Scope20_1</title> -<polygon fill="none" stroke="black" points="334,-16 334,-68 404,-68 404,-16 334,-16"/> -</g> -<!-- Start1 --> +<!-- Start2 --> <g id="node1" class="node"> -<title>Start1</title> -<polygon fill="yellow" stroke="transparent" points="174,-447 174,-472 255,-472 255,-447 174,-447"/> -<polygon fill="none" stroke="black" points="174,-447 174,-472 255,-472 255,-447 174,-447"/> -<text text-anchor="start" x="196" y="-455.8" font-family="Times,serif" font-size="14.00">Start</text> -<polygon fill="none" stroke="black" points="174,-416 174,-447 255,-447 255,-416 174,-416"/> -<polygon fill="yellow" stroke="transparent" points="179,-421 179,-442 219,-442 219,-421 179,-421"/> -<polygon fill="none" stroke="black" points="179,-421 179,-442 219,-442 219,-421 179,-421"/> -<text text-anchor="start" x="182" y="-427.8" font-family="Times,serif" font-size="14.00">$ctrl</text> -<polygon fill="none" stroke="black" points="219,-421 219,-442 250,-442 250,-421 219,-421"/> -<text text-anchor="start" x="222" y="-427.8" font-family="Times,serif" font-size="14.00">arg</text> -</g> -<!-- Con_5 --> +<title>Start2</title> +<polygon fill="yellow" stroke="transparent" points="135,-511 135,-536 216,-536 216,-511 135,-511"/> +<polygon fill="none" stroke="black" points="135,-511 135,-536 216,-536 216,-511 135,-511"/> +<text text-anchor="start" x="157" y="-519.8" font-family="Times,serif" font-size="14.00">Start</text> +<polygon fill="none" stroke="black" points="135,-480 135,-511 216,-511 216,-480 135,-480"/> +<polygon fill="yellow" stroke="transparent" points="140,-485 140,-506 180,-506 180,-485 140,-485"/> +<polygon fill="none" stroke="black" points="140,-485 140,-506 180,-506 180,-485 140,-485"/> +<text text-anchor="start" x="143" y="-491.8" font-family="Times,serif" font-size="14.00">$ctrl</text> +<polygon fill="none" stroke="black" points="180,-485 180,-506 211,-506 211,-485 180,-485"/> +<text text-anchor="start" x="183" y="-491.8" font-family="Times,serif" font-size="14.00">arg</text> +</g> +<!-- Stop3 --> <g id="node2" class="node"> -<title>Con_5</title> -<ellipse fill="none" stroke="black" cx="120" cy="-444" rx="27" ry="18"/> -<text text-anchor="middle" x="120" y="-440.3" font-family="Times,serif" font-size="14.00">#1</text> +<title>Stop3</title> +<polygon fill="yellow" stroke="black" points="221,-52 167,-52 167,-16 221,-16 221,-52"/> +<text text-anchor="middle" x="194" y="-30.3" font-family="Times,serif" font-size="14.00">Stop</text> </g> -<!-- EQNode6 --> -<g id="node3" class="node"> -<title>EQNode6</title> -<ellipse fill="none" stroke="black" cx="139" cy="-358" rx="49.29" ry="18"/> -<text text-anchor="middle" x="139" y="-354.3" font-family="Times,serif" font-size="14.00">EQNode</text> +<!-- Return19 --> +<g id="node12" class="node"> +<title>Return19</title> +<polygon fill="yellow" stroke="black" points="227,-124 161,-124 161,-88 227,-88 227,-124"/> +<text text-anchor="middle" x="194" y="-102.3" font-family="Times,serif" font-size="14.00">Return</text> </g> -<!-- EQNode6->Start1 --> +<!-- Stop3->Return19 --> <g id="edge1" class="edge"> -<title>EQNode6->Start1:p1</title> -<path fill="none" stroke="black" d="M179.99,-368.1C202.72,-375.5 227.59,-388.34 233.63,-409.86"/> -<polygon fill="black" stroke="black" points="230.19,-410.56 235,-420 237.13,-409.62 230.19,-410.56"/> +<title>Stop3->Return19</title> +<path fill="none" stroke="red" d="M194,-52.3C194,-60.02 194,-69.29 194,-77.89"/> +<polygon fill="red" stroke="red" points="190.5,-77.9 194,-87.9 197.5,-77.9 190.5,-77.9"/> </g> -<!-- EQNode6->Con_5 --> -<g id="edge2" class="edge"> -<title>EQNode6->Con_5</title> -<path fill="none" stroke="black" d="M135.16,-376C132.55,-387.5 129.06,-402.93 126.09,-416.08"/> -<polygon fill="black" stroke="black" points="122.63,-415.5 123.84,-426.03 129.46,-417.05 122.63,-415.5"/> +<!-- Con_7 --> +<g id="node3" class="node"> +<title>Con_7</title> +<ellipse fill="none" stroke="black" cx="269" cy="-508" rx="27" ry="18"/> +<text text-anchor="middle" x="269" y="-504.3" font-family="Times,serif" font-size="14.00">#1</text> </g> -<!-- If7 --> +<!-- EQNode8 --> <g id="node4" class="node"> -<title>If7</title> -<polygon fill="yellow" stroke="transparent" points="24,-275 24,-300 118,-300 118,-275 24,-275"/> -<polygon fill="none" stroke="black" points="24,-275 24,-300 118,-300 118,-275 24,-275"/> -<text text-anchor="start" x="65.5" y="-283.8" font-family="Times,serif" font-size="14.00">If</text> -<polygon fill="none" stroke="black" points="24,-244 24,-275 118,-275 118,-244 24,-244"/> -<polygon fill="yellow" stroke="transparent" points="29,-249 29,-270 69,-270 69,-249 29,-249"/> -<polygon fill="none" stroke="black" points="29,-249 29,-270 69,-270 69,-249 29,-249"/> -<text text-anchor="start" x="32" y="-255.8" font-family="Times,serif" font-size="14.00">True</text> -<polygon fill="yellow" stroke="transparent" points="69,-249 69,-270 113,-270 113,-249 69,-249"/> -<polygon fill="none" stroke="black" points="69,-249 69,-270 113,-270 113,-249 69,-249"/> -<text text-anchor="start" x="72" y="-255.8" font-family="Times,serif" font-size="14.00">False</text> -</g> -<!-- If7->Start1 --> +<title>EQNode8</title> +<ellipse fill="none" stroke="black" cx="255" cy="-422" rx="27" ry="18"/> +<text text-anchor="middle" x="255" y="-418.3" font-family="Times,serif" font-size="14.00">==</text> +</g> +<!-- EQNode8->Start2 --> +<g id="edge2" class="edge"> +<title>EQNode8->Start2:p1</title> +<path fill="none" stroke="black" d="M248.78,-439.7C242.25,-456.15 231.48,-480.23 221.01,-490.3"/> +<polygon fill="black" stroke="black" points="219.25,-487.27 212,-495 222.49,-493.48 219.25,-487.27"/> +</g> +<!-- EQNode8->Con_7 --> <g id="edge3" class="edge"> -<title>If7->Start1:p0</title> -<path fill="none" stroke="red" d="M66.46,-304.11C64.93,-326.1 66.49,-355.24 81,-376 102.18,-406.31 125.07,-391.74 156,-412 162.92,-416.54 164.7,-423.06 168.48,-427.16"/> -<polygon fill="red" stroke="red" points="167.42,-430.5 178,-431 170.04,-424.01 167.42,-430.5"/> +<title>EQNode8->Con_7</title> +<path fill="none" stroke="black" d="M257.83,-440C259.75,-451.5 262.32,-466.93 264.51,-480.08"/> +<polygon fill="black" stroke="black" points="261.07,-480.74 266.17,-490.03 267.98,-479.59 261.07,-480.74"/> </g> -<!-- If7->EQNode6 --> +<!-- If9 --> +<g id="node5" class="node"> +<title>If9</title> +<polygon fill="yellow" stroke="transparent" points="208,-339 208,-364 302,-364 302,-339 208,-339"/> +<polygon fill="none" stroke="black" points="208,-339 208,-364 302,-364 302,-339 208,-339"/> +<text text-anchor="start" x="249.5" y="-347.8" font-family="Times,serif" font-size="14.00">If</text> +<polygon fill="none" stroke="black" points="208,-308 208,-339 302,-339 302,-308 208,-308"/> +<polygon fill="yellow" stroke="transparent" points="213,-313 213,-334 253,-334 253,-313 213,-313"/> +<polygon fill="none" stroke="black" points="213,-313 213,-334 253,-334 253,-313 213,-313"/> +<text text-anchor="start" x="216" y="-319.8" font-family="Times,serif" font-size="14.00">True</text> +<polygon fill="yellow" stroke="transparent" points="253,-313 253,-334 297,-334 297,-313 253,-313"/> +<polygon fill="none" stroke="black" points="253,-313 253,-334 297,-334 297,-313 253,-313"/> +<text text-anchor="start" x="256" y="-319.8" font-family="Times,serif" font-size="14.00">False</text> +</g> +<!-- If9->Start2 --> <g id="edge4" class="edge"> -<title>If7->EQNode6</title> -<path fill="none" stroke="black" d="M96.32,-304.28C103.88,-313.61 112.04,-323.7 119.19,-332.53"/> -<polygon fill="black" stroke="black" points="116.66,-334.97 125.68,-340.54 122.11,-330.57 116.66,-334.97"/> +<title>If9->Start2:p0</title> +<path fill="none" stroke="red" d="M234.15,-368.33C211.65,-402.25 177.35,-454.28 164.81,-475.08"/> +<polygon fill="red" stroke="red" points="161.66,-473.54 160,-484 167.82,-476.86 161.66,-473.54"/> </g> -<!-- Con_11 --> -<g id="node5" class="node"> -<title>Con_11</title> -<ellipse fill="none" stroke="black" cx="263" cy="-272" rx="27" ry="18"/> -<text text-anchor="middle" x="263" y="-268.3" font-family="Times,serif" font-size="14.00">#2</text> +<!-- If9->EQNode8 --> +<g id="edge5" class="edge"> +<title>If9->EQNode8</title> +<path fill="none" stroke="black" d="M255,-368.28C255,-376.58 255,-385.48 255,-393.56"/> +<polygon fill="black" stroke="black" points="251.5,-393.6 255,-403.6 258.5,-393.6 251.5,-393.6"/> </g> -<!-- Add12 --> +<!-- Con_13 --> <g id="node6" class="node"> -<title>Add12</title> -<ellipse fill="none" stroke="black" cx="263" cy="-186" rx="28.7" ry="18"/> -<text text-anchor="middle" x="263" y="-182.3" font-family="Times,serif" font-size="14.00">Add</text> +<title>Con_13</title> +<ellipse fill="none" stroke="black" cx="63" cy="-336" rx="27" ry="18"/> +<text text-anchor="middle" x="63" y="-332.3" font-family="Times,serif" font-size="14.00">#2</text> </g> -<!-- Add12->Start1 --> -<g id="edge5" class="edge"> -<title>Add12->Start1:p1</title> -<path fill="none" stroke="black" d="M276.75,-201.93C284.96,-211.9 294.62,-225.75 299,-240 323.67,-320.23 337.38,-422.23 261.26,-430.47"/> -<polygon fill="black" stroke="black" points="260.81,-426.99 251,-431 261.17,-433.98 260.81,-426.99"/> +<!-- Add14 --> +<g id="node7" class="node"> +<title>Add14</title> +<ellipse fill="none" stroke="black" cx="63" cy="-250" rx="27" ry="18"/> +<text text-anchor="middle" x="63" y="-246.3" font-family="Times,serif" font-size="14.00">+</text> </g> -<!-- Add12->Con_11 --> +<!-- Add14->Start2 --> <g id="edge6" class="edge"> -<title>Add12->Con_11</title> -<path fill="none" stroke="black" d="M263,-204.4C263,-215.74 263,-230.77 263,-243.68"/> -<polygon fill="black" stroke="black" points="259.5,-243.9 263,-253.9 266.5,-243.9 259.5,-243.9"/> +<title>Add14->Start2:p1</title> +<path fill="none" stroke="black" d="M49.25,-265.93C41.04,-275.9 31.38,-289.75 27,-304 18.64,-331.19 10.48,-344.84 27,-368 69.04,-426.93 155.55,-353.24 181,-421"/> +<path fill="none" stroke="black" d="M181,-423C182.58,-427.33 188.61,-449.48 192.53,-466.05"/> +<polygon fill="black" stroke="black" points="189.13,-466.89 194.73,-475.88 195.96,-465.36 189.13,-466.89"/> </g> -<!-- Con_13 --> -<g id="node7" class="node"> -<title>Con_13</title> -<ellipse fill="none" stroke="black" cx="171" cy="-272" rx="27" ry="18"/> -<text text-anchor="middle" x="171" y="-268.3" font-family="Times,serif" font-size="14.00">#3</text> +<!-- Add14->Con_13 --> +<g id="edge7" class="edge"> +<title>Add14->Con_13</title> +<path fill="none" stroke="black" d="M63,-268.4C63,-279.74 63,-294.77 63,-307.68"/> +<polygon fill="black" stroke="black" points="59.5,-307.9 63,-317.9 66.5,-307.9 59.5,-307.9"/> </g> -<!-- Sub14 --> +<!-- Con_15 --> <g id="node8" class="node"> -<title>Sub14</title> -<ellipse fill="none" stroke="black" cx="180" cy="-186" rx="28.7" ry="18"/> -<text text-anchor="middle" x="180" y="-182.3" font-family="Times,serif" font-size="14.00">Sub</text> +<title>Con_15</title> +<ellipse fill="none" stroke="black" cx="135" cy="-336" rx="27" ry="18"/> +<text text-anchor="middle" x="135" y="-332.3" font-family="Times,serif" font-size="14.00">#3</text> </g> -<!-- Sub14->Start1 --> -<g id="edge7" class="edge"> -<title>Sub14->Start1:p1</title> -<path fill="none" stroke="black" d="M189.92,-203.13C195.76,-213.34 202.81,-227.03 207,-240 230.84,-313.72 234.69,-337.05 234.98,-409.88"/> -<polygon fill="black" stroke="black" points="231.48,-410.01 235,-420 238.48,-409.99 231.48,-410.01"/> +<!-- Sub16 --> +<g id="node9" class="node"> +<title>Sub16</title> +<ellipse fill="none" stroke="black" cx="155" cy="-250" rx="27" ry="18"/> +<text text-anchor="middle" x="155" y="-246.3" font-family="Times,serif" font-size="14.00">-</text> </g> -<!-- Sub14->Con_13 --> +<!-- Sub16->Start2 --> <g id="edge8" class="edge"> -<title>Sub14->Con_13</title> -<path fill="none" stroke="black" d="M178.18,-204C176.96,-215.38 175.33,-230.62 173.93,-243.69"/> -<polygon fill="black" stroke="black" points="170.4,-243.71 172.82,-254.03 177.36,-244.46 170.4,-243.71"/> +<title>Sub16->Start2:p1</title> +<path fill="none" stroke="black" d="M161.1,-267.96C164.56,-278.25 168.65,-291.73 171,-304 180.82,-355.26 163.3,-371.9 181,-421"/> </g> -<!-- Region15 --> -<g id="node9" class="node"> -<title>Region15</title> -<polygon fill="yellow" stroke="black" points="128,-204 62,-204 62,-168 128,-168 128,-204"/> -<text text-anchor="middle" x="95" y="-182.3" font-family="Times,serif" font-size="14.00">Region</text> -</g> -<!-- Region15->If7 --> +<!-- Sub16->Con_15 --> <g id="edge9" class="edge"> -<title>Region15->If7:p0</title> -<path fill="none" stroke="red" d="M72.54,-204.25C63.23,-213.05 53.81,-224.66 50.37,-237.74"/> -<polygon fill="red" stroke="red" points="46.85,-237.63 49,-248 53.79,-238.55 46.85,-237.63"/> -</g> -<!-- Region15->If7 --> -<g id="edge10" class="edge"> -<title>Region15->If7:p1</title> -<path fill="none" stroke="red" d="M93.28,-204.07C92.44,-213.52 91.54,-225.74 91.17,-237.67"/> -<polygon fill="red" stroke="red" points="87.66,-237.94 91,-248 94.66,-238.06 87.66,-237.94"/> +<title>Sub16->Con_15</title> +<path fill="none" stroke="black" d="M150.95,-268C148.21,-279.5 144.54,-294.93 141.41,-308.08"/> +<polygon fill="black" stroke="black" points="137.95,-307.49 139.04,-318.03 144.76,-309.11 137.95,-307.49"/> </g> -<!-- Phi16 --> +<!-- Region17 --> <g id="node10" class="node"> -<title>Phi16</title> -<ellipse fill="none" stroke="black" cx="180" cy="-114" rx="27" ry="18"/> -<text text-anchor="middle" x="180" y="-110.3" font-family="Times,serif" font-size="14.00">Phi</text> +<title>Region17</title> +<polygon fill="yellow" stroke="black" points="266,-268 200,-268 200,-232 266,-232 266,-268"/> +<text text-anchor="middle" x="233" y="-246.3" font-family="Times,serif" font-size="14.00">Region</text> </g> -<!-- Phi16->Add12 --> -<g id="edge12" class="edge"> -<title>Phi16->Add12</title> -<path fill="none" stroke="black" d="M196.4,-128.83C208.45,-138.99 225.02,-152.97 238.62,-164.44"/> -<polygon fill="black" stroke="black" points="236.74,-167.43 246.64,-171.2 241.25,-162.08 236.74,-167.43"/> -</g> -<!-- Phi16->Sub14 --> -<g id="edge13" class="edge"> -<title>Phi16->Sub14</title> -<path fill="none" stroke="black" d="M180,-132.3C180,-140.02 180,-149.29 180,-157.89"/> -<polygon fill="black" stroke="black" points="176.5,-157.9 180,-167.9 183.5,-157.9 176.5,-157.9"/> +<!-- Region17->If9 --> +<g id="edge10" class="edge"> +<title>Region17->If9:p0</title> +<path fill="none" stroke="red" d="M233,-268.09C233,-277.55 233,-289.77 233,-301.69"/> +<polygon fill="red" stroke="red" points="229.5,-302 233,-312 236.5,-302 229.5,-302"/> </g> -<!-- Phi16->Region15 --> +<!-- Region17->If9 --> <g id="edge11" class="edge"> -<title>Phi16->Region15</title> -<path fill="none" stroke="red" d="M163.61,-128.5C152.35,-137.77 137.08,-150.34 123.81,-161.27"/> -<polygon fill="red" stroke="red" points="121.36,-158.76 115.86,-167.82 125.81,-164.16 121.36,-158.76"/> +<title>Region17->If9:p1</title> +<path fill="none" stroke="red" d="M253.02,-268.12C261.64,-277.06 270.48,-288.84 273.71,-301.84"/> +<polygon fill="red" stroke="red" points="270.27,-302.52 275,-312 277.22,-301.64 270.27,-302.52"/> </g> -<!-- Return17 --> +<!-- Phi_a18 --> <g id="node11" class="node"> -<title>Return17</title> -<polygon fill="yellow" stroke="black" points="183,-60 117,-60 117,-24 183,-24 183,-60"/> -<text text-anchor="middle" x="150" y="-38.3" font-family="Times,serif" font-size="14.00">Return</text> +<title>Phi_a18</title> +<ellipse fill="lightyellow" stroke="black" cx="163" cy="-178" rx="27" ry="18"/> +<text text-anchor="middle" x="163" y="-174.3" font-family="Times,serif" font-size="14.00">φ_a</text> +</g> +<!-- Phi_a18->Add14 --> +<g id="edge13" class="edge"> +<title>Phi_a18->Add14</title> +<path fill="none" stroke="black" d="M145.12,-191.51C129.72,-202.3 107.26,-218.02 89.72,-230.3"/> +<polygon fill="black" stroke="black" points="87.25,-227.76 81.06,-236.36 91.26,-233.49 87.25,-227.76"/> </g> -<!-- Return17->Region15 --> +<!-- Phi_a18->Sub16 --> <g id="edge14" class="edge"> -<title>Return17->Region15</title> -<path fill="none" stroke="red" d="M143.37,-60.13C133.91,-84.54 116.47,-129.57 105.32,-158.36"/> -<polygon fill="red" stroke="red" points="102.01,-157.22 101.66,-167.81 108.53,-159.75 102.01,-157.22"/> +<title>Phi_a18->Sub16</title> +<path fill="none" stroke="black" d="M161.02,-196.3C160.14,-204.02 159.08,-213.29 158.1,-221.89"/> +<polygon fill="black" stroke="black" points="154.61,-221.56 156.95,-231.9 161.57,-222.36 154.61,-221.56"/> +</g> +<!-- Phi_a18->Region17 --> +<g id="edge12" class="edge"> +<title>Phi_a18->Region17</title> +<path fill="none" stroke="red" d="M177.5,-193.5C186.46,-202.46 198.19,-214.19 208.55,-224.55"/> +<polygon fill="red" stroke="red" points="206.25,-227.2 215.8,-231.8 211.2,-222.25 206.25,-227.2"/> </g> -<!-- Return17->Phi16 --> +<!-- Return19->Region17 --> <g id="edge15" class="edge"> -<title>Return17->Phi16</title> -<path fill="none" stroke="black" d="M157.42,-60.3C160.88,-68.39 165.08,-78.19 168.91,-87.13"/> -<polygon fill="black" stroke="black" points="165.72,-88.56 172.88,-96.38 172.15,-85.81 165.72,-88.56"/> +<title>Return19->Region17</title> +<path fill="none" stroke="red" d="M198.7,-124.13C205.38,-148.44 217.67,-193.18 225.58,-221.99"/> +<polygon fill="red" stroke="red" points="222.26,-223.09 228.28,-231.81 229.01,-221.24 222.26,-223.09"/> </g> -<!-- Scope20_0 --> -<g id="node12" class="node"> -<title>Scope20_0</title> -<polygon fill="cyan" stroke="transparent" points="423,-31 423,-52 439,-52 439,-31 423,-31"/> -<polygon fill="none" stroke="black" points="423,-31 423,-52 439,-52 439,-31 423,-31"/> -<text text-anchor="start" x="426" y="-37.8" font-family="Times,serif" font-size="14.00">0</text> -<polygon fill="none" stroke="black" points="439,-31 439,-52 479,-52 479,-31 439,-31"/> -<text text-anchor="start" x="442" y="-37.8" font-family="Times,serif" font-size="14.00">$ctrl</text> -<polygon fill="none" stroke="black" points="479,-31 479,-52 510,-52 510,-31 479,-31"/> -<text text-anchor="start" x="482" y="-37.8" font-family="Times,serif" font-size="14.00">arg</text> -</g> -<!-- Scope20_0->Start1 --> +<!-- Return19->Phi_a18 --> <g id="edge16" class="edge"> -<title>Scope20_0:Scope20_0_arg->Start1:p1</title> -<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M495,-53C495,-121.37 416,-116.63 416,-185 416,-185 416,-185 416,-273 416,-371.06 356.8,-427.09 261.28,-430.8"/> -<polygon fill="cornflowerblue" stroke="cornflowerblue" points="260.93,-427.31 251,-431 261.07,-434.31 260.93,-427.31"/> -</g> -<!-- Scope20_1 --> -<g id="node13" class="node"> -<title>Scope20_1</title> -<polygon fill="cyan" stroke="transparent" points="354,-31 354,-52 370,-52 370,-31 354,-31"/> -<polygon fill="none" stroke="black" points="354,-31 354,-52 370,-52 370,-31 354,-31"/> -<text text-anchor="start" x="357" y="-37.8" font-family="Times,serif" font-size="14.00">1</text> -<polygon fill="none" stroke="black" points="370,-31 370,-52 385,-52 385,-31 370,-31"/> -<text text-anchor="start" x="373" y="-37.8" font-family="Times,serif" font-size="14.00">a</text> -</g> -<!-- Scope20_1->Phi16 --> -<g id="edge17" class="edge"> -<title>Scope20_1:Scope20_1_a->Phi16</title> -<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M378,-53C378,-86.31 274.09,-102.84 216.82,-109.43"/> -<polygon fill="cornflowerblue" stroke="cornflowerblue" points="216.26,-105.97 206.7,-110.55 217.03,-112.93 216.26,-105.97"/> +<title>Return19->Phi_a18</title> +<path fill="none" stroke="black" d="M186.34,-124.3C182.76,-132.39 178.42,-142.19 174.46,-151.13"/> +<polygon fill="black" stroke="black" points="171.21,-149.82 170.36,-160.38 177.61,-152.65 171.21,-149.82"/> </g> </g> </svg> |
